TcpUdp发送数据长度问题探讨

上传人:san****019 文档编号:16425912 上传时间:2020-10-02 格式:PPTX 页数:24 大小:722.60KB
返回 下载 相关 举报
TcpUdp发送数据长度问题探讨_第1页
第1页 / 共24页
TcpUdp发送数据长度问题探讨_第2页
第2页 / 共24页
TcpUdp发送数据长度问题探讨_第3页
第3页 / 共24页
点击查看更多>>
资源描述
,TCP/UDP发送数据长度问题探讨,使用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数据包的封装,UDP数据封装格式,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,谢 谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!