- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCPZUDP发送数据包大小浅析
MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,Ethernetll 帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方而的限制,每个以太网 帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制的以太 网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数拯帧。
由于以太网Ethernetll最大的数据帧是1518Bytes这样,创去以太网帧的帧头(DMAC目 的 MAC 地址 48bit=6Bytes+SMAC 源 MAC 地址 48bit=6Bytes+Type 域 2bytes) 14Bytes和帧尾CRC校验部分4Bytes那么剩下承载上层协议的地方也就是Data域最大就 只能有1500Bytes这个值我们就把它称之为MTU。
PPPoE所谓PPPoE就是在以太网上面跑PPP协议,有人奇怪了,PPP协议和Ethernet不 都是链路层协议吗?怎么一个链路层跑到另外一个链路层上面去了,难道升级成网络层协议
了不成。其实这是个误区:就是某层协议只能承载更上一层协议。
为什么会产生这种奇怪的需求呢?这是因为随着宽带接入(这种宽带接入一般为Cable
Modem或者xDSL或者以太网的接入),因为以太网缺乏认证计费机制而传统运营商是通 过PPP协议来对拨号等接入服务进行认证计费的.
PPPoE带来了好处,也带来了一些坏处,比如:二次封装耗费资源,降低了传输效能等等, 这些坏处俺也不多说了,最大的坏处就是PPPoE导致MTU变小了以太网的MTU是1500, 再减去PPP的包头包尾的开销(8Bytes),就变成1492。
UDP 包的大小就应该是 1492 - IP 头(20) - UDP 头(8) = 1464(BYTES)
TCP 包的大小就应该是 1492 - IP 头(20) - TCP 头(20) = 1452(BYTES)
目前大多数的路由设备的MTU都为1500 我对上而的理解是:如果我们泄义的TCP和UDP包小于1452, 1464,那么我们的包在IP 层就不用分包了,这样传输过程中就避免了在IP层组包发生的错误。如果使用UDP协议, 如果IP层组包发生错误,那么包就会被丢弃,UDP不保证可靠传输。但是TCP发生组包 错误时,该包会被重传,保证可靠传输。所以,我们在用Socket编程时,包的大小设泄不 一泄非要小于1400, UDP协议要求包小于64K, TCP没有限泄。
总结:
我们设左包的大小对于UDP和TCP协议是不同的,关键是看系统性能和网络性能,网络是 状态很好的局域网,那么UDP包分大点,提髙系统的性能。不好,就分小于1464,这样 可以减低丢包率。对于TCP来说,这个就要靠经验了,因为,TCP丢包可以自动重传,分 大了,系统性能提高了,分包和错误重组可能会耗费时间,使传送时间延长,分小了,系统
性能又降低了。
UDP数据包大小的问题
在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好?
当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对 像ICQ-类的发送聊天消息的情况作分析,对于英他情况,或许也能得到一点帮助: 首先,我们知iti,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,传输层,应用 层.UDP属于运输层,下而我们由下至上一步一步来看:
以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决龙的. 这个1500字节被称为链路层的MTU(最大传输单元).但这并不是指链路层的长度被限制在 1500字节,苴实这个MTU指的是链路层的数据区.并不包括链路层的首部和尾部的18个字 节.所以,事实上,这个1500字节就是网络层IP数拯报的长度限制.因为IP数据报的首部为20 字节,所以IP数据报的数据区长度最大为1480字节.而这个1480字节就是用来放TCP传来 的TCP报文段或UDP传来的UDP数据报的.又因为UDP数据报的首部8字节,所以UDP 数据报的数据区最大长度为1472字节.这个1472字节就是我们可以使用的字节数。:) 当我们发送的UDP数据大于1472的时候会怎样呢?这也就是说IP数据报大于1500字节, 大于MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一 片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的 是,由于UDP的特性,当某一片数据传送中丢失时,接收方便无法重组数据报.将导致丢弃整个 UDP数据报。
因此,在普通的局域网环境下,我建议将UDP的数据控制在14
您可能关注的文档
- LIS系统为检验科带来了春天.docx
- LT型弹性套柱销联轴器基本性能参数和主要尺寸.docx
- mapgis中将经纬度坐标投影到公里网坐标系上的实用方法.docx
- Matlab动画模拟太阳系行星运动.docx
- MBR工艺流程、原理、适用范围.docx
- MRI解剖图片(头颈部).docx
- nc操作手册——总账往来核销.docx
- NPORT5610串口服务器使用说明.doc.docx
- N系列常用整流二极管的主要参数.docx
- PCCPE作业指导合集.doc.docx
- GB/T 29324-2024架空导线用碳纤维增强复合材料芯.pdf
- 《GB/T 29324-2024架空导线用碳纤维增强复合材料芯》.pdf
- GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 《GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集》.pdf
- 中国国家标准 GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 中国国家标准 GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- 《GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范》.pdf
- GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
- 中国国家标准 GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
文档评论(0)