TCP、 UDP、端口号、协议号
TCP:传输控制协议,可靠度面向用户的连接。
UDP:用户数据报协议,不可靠的无连接服务。
UDP用于视频传输,一般长度为500个字节。
端口号:为了标识上层(应用层)协议。
协议号:用于标识上层(传输层)协议。
MTU:最大传输单元,针对网络层数据的大小。
MSS:最大报文段长度,针对TCP能承载的数据大小。
2. TCP数据包结构
源端口(sport):指一个发送端口,系统随机分配。
目标端口(dport):指数据接收者端口,一般是确定的。
序列号:为了标识数据包。
确认序号:确认数据包的到达。
报头长度:占用4bit,最大60B,最小20B。报头长度就是TCP报文长度。
保留:占6bit
标志位:六个标志位,每个作用如表1:
标志位
|
作用
|
URG
|
连接紧急位
|
ACK
|
在三次握手和四次挥手用(跟确认序列号挂钩)
|
PSH
|
推送数据时用
|
RAT
|
重置链接
|
SYN
|
三次握手用
|
FIN
|
拆连接用
|
表1
窗口:用来控制对方发送的数据量,单位字节。窗口大小指的是TCP缓存大小,最大65536B。
检验和:检查数据包
紧急位:用来标记某些紧急数据,可提前处理。
可选项:报头长度大于20B时选择可选项。
3. UDP数据包结构
源端口:指一个发送端口,系统随机分配。
目标端口:指数据接收者端口,一般是确定的。
长度:就是指数据长度+UDP长度。
检验和:检查数据包。
4. IP数据包结构
版本号:4,占4bit。
头部长度:占4bit,IP协议本身头部长度。
服务类型:用于流控,占8bit,QoS服务质量。
数据包长度:数据包数据长度+报头长度。
标识号:用来标识一个数据包。
标志位:占3bit,第一个保留,第二个允许分片位d(don’t),当d=0时,允许分片,当d=1时,不允许分片。第三个更多分片位m(more),当m=0时,是代表最后一片,当m=1时,表示更多分片位。
偏移位:分开的数据重组的时候需要用偏移位。
生存时间(TTL):数据包每经过一个路由器TTL的指就会减1,如果TTL的值为0,路由器则丢包,不负责传送。
协议号:用来标识上层协议(TCP=6 UDP=17 ICMP=1 IGMP=2)。
头部检验和:就是用来检测头部数据是否完整。
源IP地址:发送者地址。
目标IP地址:接受者地址。
可选项
填充