收藏 分销(赏)

TcpUdp发送数据长度问题探讨.ppt

上传人:w****g 文档编号:14627815 上传时间:2026-10-22 格式:PPT 页数:23 大小:798.50KB 下载积分:10 金币
下载 相关
TcpUdp发送数据长度问题探讨.ppt_第1页
第1页 / 共23页
TcpUdp发送数据长度问题探讨.ppt_第2页
第2页 / 共23页


点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,使用,TCP,发送数据时,我们常用,send,函数:,ssize_t send(int sockfd,const void,*,buff,size_t nbytes,int flags);,使用,UDP,发送数据时,我们常用,sendto,函数:,ssize_t sendto(int sockfd,const void,*,buff,size_t nbytes,int flags,const struct sockaddr,*,to,socklen_t addrlen);,问题?,应用程序在使用上述接口发送数据时,究竟一次发送多少数据合适?,探讨一:协议本身有没有定义?,TCP/IP,通讯过程,TCP/IP,数据包的封装,TCP,数据封装格式,IP,数据封装格式,TCP/UDP,数据发送长度选择依据:,协议定义,TCP/UDP,数据发送长度选择标准:,TCP,:,无上限,UDP,:,不能超过报文数据长度上限:,65535-20-8=65507,(,64KB,),探讨一的结论,探讨二:有没有缓冲区限制?,TCP,输出,UDP,输出,UDP,:,UDP,没有流量控制,如果发送端发送的速度较快,接收端接收到数据后处理的速度较慢,而接收缓冲区的大小是固定的,就会丢失数据。,流量控制,TCP,:,TCP,通过“滑动窗口”机制进行流量控制,保证可靠传输。,TCP,“滑动窗口”流量控制,TCP/UDP,数据发送长度选择依据:,协议定义,发送缓冲区大小,TCP/UDP,数据发送长度选择标准:,TCP,:,阻塞:无上限,非阻塞:不能超过套接口发送缓冲区长度,UDP,:,不能超过报文数据长度上限:,65535-20-8=65507,(,64KB,),不能超过套接口发送缓冲区长度,采用流量控制、应答机制、超时重发等,探讨二的结论,探讨三:链路层有没有限制?,以太网数据封装格式,MTU,本地,MTU,Windows:,注册表,Linux,:,ifconfig,网络,MTU,以太网(,Ethernet,)协议:,1500,字节,PPPoE,(,ADSL,)协议:,1492,字节,X.25,协议(,Dial Up/Modem,):,576,字节,Point-to-Point,:,4470,字节,FDDI,协议:,4352,字节,网络,MTU(,路径,MTU),查看方法,Windows,:,ping-f-l ,Linux,:,ping-c -M do-s ,关于,MTU,IP,数据长度超过,MTU,时:,发送端,IP,层分片,接收端,IP,层重组,关于,MTU,IP,数据长度超过,MTU,的问题:,产生多余的数据包,分包组包时间消耗大,组包错误时,,TCP,会导致重传,,UDP,会导致丢包,计算方法:,TCP,:,MTU-20(IP,头,)-20(TCP,头,),UDP,:,MTU-20(IP,头,)-8(UDP,头,),对于以太网:,TCP,:,1500 20 20=1460,UDP,:,1500-20-8=1472,IP,最小重组缓冲区大小(,Internet,标准,MTU,):,576,TCP,:,576 20-20=536,UDP,:,576 20 8=548,DNS,、,RIP,、,TFTP,、,SNMP,的数据报都小于这个值,TCP/UDP,不分包数据发送长度限制,TCP/UDP,数据发送长度选择依据:,协议定义,发送缓冲区大小,系统性能和网络性能,TCP/UDP,数据发送长度选择标准:,TCP,:,不能超过套接口发送缓冲区长度(非阻塞),根据系统性能和网络性能,选择一个合适值,UDP,:,不能超过报文数据长度上限:,65535-20-8=65507,(,64KB,),不能超过套接口发送缓冲区长度,根据系统性能和网络性能,选择一个合适值,采用流量控制、应答机制、超时重发等,探讨三的结论,TCP,:,对于需要一次性发送数据长度较大的场景(如大于,10KB,),推荐使用阻塞,TCP,;,如果使用非阻塞,TCP,,一次性发送数据长度不要超过发送缓冲区长度,推荐发送,10KB,以下的值;,当发送的数据长度不固定时,推荐使用单次定长循环发送的封装函数,writen,(,readn,);,当网络状态较好时,适当增大一次发送的数据长度,提高系统性能;当网络状态较差时,适当减小一次发送的数据长度,减小丢包重传的时间消耗。,最终结论,TCP,UDP,:,一次发送的数据长度不能超过单包,IP,承载的最大数据长度(小于,64KB,);,一次发送的数据长度不能超过发送缓冲区的长度;,当网络状态较好时,适当增大一次发送的数据长度,提高系统性能;当网络状态较差时,适当减小一次发送的数据长度,降低丢包率;,推荐值:网络状态很好,推荐,1-64KB,;网络状态一般,推荐,1KB,以下;网络状态较差,推荐,512,字节以下;,UDP,应用开发时,要考虑流量控制、应答机制、超时重发等机制。,最终结论,UDP,谢 谢!,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服