首页 > 代码库 > 关于网络编程中MTU、TCP、UDP、IP

关于网络编程中MTU、TCP、UDP、IP

名词解释:

MTU(Maxium Transmission Unit)最大传输单元

TCP (Transmission Control Protocal)传输控制协议

UDP (Usage Datagram Protocal)用户数据报协议

IP (Internet Protocal) 因特网协议

TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层(TCP/IP是一个协议簇,并不是代表TCP协议和IP协议)

以太网(Ethemet)的数据帧在链路层

IP包在网络层

TCP或UDP包在传输层

TCP或UDP中的数据(Data)在应用层

1.链路层:以太网的数据帧的长度为(64+18)~(1500+18)字节,其中18是数据帧的帧头和帧尾,所以数据帧的内容最大为1500字节(不包括帧头和帧尾),即MUT为1500字节

图2 IEEE802.3以太帧头
字段
字段长度(字节)
目的
前导码(Preamble)
7
同步
帧开始符(SFD)
1
标明下一个字节为目的MAC字段
目的MAC地址
6
指明帧的接受者
源MAC地址
6
指明帧的发送者
长度(Length)
2
帧的数据字段的长度(长度或类型)
类型(Type)
2
帧中数据的协议类型(长度或类型)
数据和填充(Data and Pad)注
46~1500
高层的数据,通常为3层协议数据单元。对于TCP/IP是IP数据包
帧校验序列(FCS)
4
对接收网卡提供判断是否传输错误的一种方法,如果发现错误,丢弃此帧

2.网络层:IP包的首部要占用20字节,所以这里的MTU=1500-20=1480字节

3.传输层:UDP包的首部要占有8字节,所以这里的MTU=1480-8=1472字节