TCP和UDP协议发送的数据包的大小

MTU最大传输单元,最大传输单元和链路层协议实际上有着密切的关系的ethernetii DMAC SMAC框架结构+ +类型+数据+ CRC作为以太网传输电的限制,每个以太网帧的最小尺寸64bytes最高不超过1518bytes,小于或大于该以太网帧限制我们可以把它作为数据帧错误,一般以太网转发设备将这些数据帧被丢弃。


由于以太网数据帧的最大ethernetii 1518bytes,帧头平面的以太网帧(DMAC的MAC地址48bit = 6bytes + SMAC源MAC地址48bit = 6bytes +型域2bytes)14bytes和CRC 4bytes车架尾部检查部分剩下的轴承上的协议是当地最大的数据域值只能1500bytes我们叫它MTU。


PPPoE所谓PPPoE运行PPP以太网。奇怪的是,PPP协议和以太网都不是链路层协议,如何将一个链路层运行到另一个链路层,不可能升级到网络层协议,实际上这是一个误解:一层协议只能承载更多的协议层。


为什么会出现这种奇怪的需求这是因为宽带接入(如宽带接入一般是xDSL或电缆调制解调器或以太网接入),因为以太网缺乏认证和计费机制,而传统的运营商使用PPP协议的认证和收费接入服务,如拨号。


效益PPPoE,它也带来了一些弊端,如:两包装成本,降低传动效率,所以,我没有太多要说的危害,最大的缺点是PPPoE导致较小的MTU以太网的MTU是1500,减去包头PPP包开销(8bytes)。它变成了1492。


UDP包的大小应该是1492 - IP头(20)- UDP头(8)= 1464(字节)


TCP包的大小应该是1492 - IP头(20)- TCP头(20)= 1452(字节)


目前大多数的路由设备有一个MTU 1500


我的上述理解是:如果我们定义的TCP和UDP数据包小于14521464,那么我们的软件包将被分包在IP层,以便在IP层包的错误会在传输过程中避免。如果使用UDP协议,如果在IP层包出现错误,数据包将被丢弃,而UDP不保证可靠传输。然而,当TCP数据包错了,包会被转发到保证可靠传输。因此,当我们用Socket编程,包的大小不得小于1400,UDP协议的要求,包小于64K,和TCP不限。


总结:


UDP和tcp协议的包大小不同。关键是看系统性能和网络性能。网络是一个很好的局域网,因此UDP数据包是足够大,以提高系统的性能。糟糕,得分小于1464,可降低损失率。TCP,它依赖于经验,因为TCP丢包可以自动重传,并改善了系统的性能。分包和错误重组可能需要时间,延长传输时间并降低系统性能。