为什么UDP报头含有长度字段,而TCP报头没有呢?
发布网友
发布时间:2022-04-27 01:06
我来回答
共5个回答
热心网友
时间:2022-06-22 00:52
TCP报头没有含有长度字段可能的原因是:
1),TCP使用IP协议,IP首部中有包括 IP首部+TCP首部+TCP数据段 总长度的字段;
2),TCP首部中有 TCP首部 的长度字段;
3),TCP提供的是面向字节流的传输,所传输的数据是无边界的。socket套接字可以直接通过IP首部及TCP首部中的长度字段计算出TCP数据段长度,TCP底层收到数据直接放到底层接收缓存中。而UDP是报文传输,每个UDP报文就是一个独立的记录,所以直接在UDP头部中提供长度字段,其实UDP也可以通过IP首部计算出来。可能是另一方面是为了字节对齐,所以有长度字段。
热心网友
时间:2022-06-22 00:52
可能的原因是:
1),TCP使用IP协议,IP首部中有包括 IP首部+TCP首部+TCP数据段 总长度的字段;
2),TCP首部中有 TCP首部 的长度字段;
3),TCP提供的是面向字节流的传输,所传输的数据是无边界的。socket套接字可以直接通过IP首部及TCP首部中的长度字段计算出TCP数据段长度,TCP底层收到数据直接放到底层接收缓存中。而UDP是报文传输,每个UDP报文就是一个独立的记录,所以直接在UDP头部中提供长度字段,其实UDP也可以通过IP首部计算出来。可能是另一方面是为了字节对齐,所以有长度字段。
热心网友
时间:2022-06-22 00:53
简单的说
就是UDP协议是不需要建立稳定联接的 所以需要报头来确认每次发送数据所需要内容 包括这段数据的目标地址和效验等内容
TCP建立连接之后是相对稳定的链路 可以省略一些内容
热心网友
时间:2022-06-22 00:53
UDP长度字段标识UDP数据字段的长度,TCP则不需要,它有序列号和确认号,TCP数据流中所有相邻的报文之间的序列号,确认号都是有联系的,能够精确计算收到了多少字节,给对方确认了多少字节。
热心网友
时间:2022-06-22 00:54
UDP报头含有长度字段,这个容易理解。而TCP没有报头也是有它的道理的,因为TCP报头中有一个字段是窗口,TCP是面向字节流的。也就是说,发送只能发送窗口值大小的数据啊~