计算机网络 UDP协议与TCP协议首部

目录

UDP首部

UDP-源端口号(Source Port)

UDP-目标端口号(Destination Port)

UDP-包长度(Length)

UDP-校验和(Checksum)

校验和计算中计算UDP伪首部的理由

TCP首部格式

TCP-源端口号(Source Port)

TCP-目标端口号(Destination Port)

TCP-序列号(Sequence Number)

TCP-确认应答号(Acknowledgement Number)

TCP-数据偏移(Data Offset)

TCP-保留(Reserved)

TCP-控制位(Control Flag)

CWR (Congestion Window Reduced)

ECE (ECN-Echo)

URG (Urgent Flag)

ACK (Acknowledgement Flag)

PSH (Push Flag)

RST (Reset Flag)

SYN (Synchronize Flag)

FIN (Fin Flag)

TCP-窗口大小(Window Size)

TCP-校验和(Checksum)

使用校验和的目的是什么?

TCP-紧急指针(Urgent Pointer)

TCP-选项(Options)

窗口大小与吞吐量


UDP首部

UDP首部的格式。除去数据的部分正是UDP的首部。UDP首 部由源端口号,目标端口号,包长和校验和组成。

UDP-源端口号(Source Port)

表示发送端端口号,字段长16位。该字段是可选项,有时可能不会设置源端 口号。没有源端口号的时候该字段的值设置为0。可用于不需要返回的通信中。

UDP-目标端口号(Destination Port)

表示接收端端口,字段长度16位。

UDP-包长度(Length)

该字段保存了UDP首部的长度跟数据的长度之和。单位为字节(8位字 节)。

UDP-校验和(Checksum)

校验和是为了提供可靠的UDP首部和数据而设计。在计算校验和时,附加在UDP伪首部与UDP数据报之前。通过在最后一位增加一个  0 将全长增加16倍。此时将UDP首部的校验和字段设置为 0 。然后以16 比特为单位进行1的补码和,并将所得到的1的补码和写入校验和字段。

接收主机在收到UDP数据报以后,从IP首部获知IP地址信息构造UDP伪首部,再进行校验和计算。校验和字段的值是校验和字段以外剩下部分的1的补码和。因此,包括校验和字段在内的所有数据之和结果为  16位全部为1  时,才会被认为所收到的数据是正确的。

其实就是发送UDP包时,一定知道IP的地址之类的,构造一个临时的空间,存放上述的源IP地址等,将临时空间,UDP首部,数据部分联合计算校验和。

接受UDP包时,根据IP首部得到IP地址,构造一个临时的空间,存放上述的源IP地址等,临时空间,UDP首部,数据部分加起来,如果为1,则正确。

另外, UDP中也有可能不用校验和。此时,校验和字段中填入0。这种情况下,由于不进行校验和计算,协议处理的开销就会降低,从而可以提高数据转发的速度。然而,如果UDP首部的端口号或是IP首部的IP地址遇到损坏,那么 可能会对其他通信造成不好的影响。因此,在互联网中比较推荐使用校验和检查。

校验和计算中计算UDP伪首部的理由

为什么在进行校验和计算时,也要计算UDP伪首部呢?

TCP/IP中识别一个进行通信的应用需要5大要素,它们分别为"源 IP地址”、“目标IP地址”、“源端口”、“目标端口”、“协议号”。然而, 在UDP的首部中只包含它们当中的两项(源端口和目标端口),余下的3 项都包含在IP首部里。

假定其他3项的信息被破坏会产生什么样的后果呢?很显然,这极 有可能会导致应该收包的应用收不到包,不该收到包的应用却收到了包。

为了避免这类问题,有必要验证一个通信中必要的5项识别码是否 正确。为此,在校验和的计算中就引入了伪首部的概念。

此外,IPv6中的IP首部没有校验和字段TCP或UDP通过伪首部, 得以对5项数字进行校验,从而实现即使在IP首部并不可靠的情况下仍 然能够提供可靠的通信传输。

TCP首部格式

TCP首部的格式。TCP首部相比UDP首部要复杂得多。

另外,TCP中没有表示包长度和数据长度的字段。可由IP层获知TCP的包长 由TCP的包长可知数据的长度。

TCP-源端口号(Source Port)

表示发送端端口号&#x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值