TCP 报头与 TCP 段相同吗?

TCP 报头与 TCP 段相同吗?

那么,TCP 报头实际上和 TCP 段是一回事吗?我读到页面末尾处写着:

尽管看起来是这样,但在大多数情况下,当提到 TCP 报头时,我们谈论的是没有数据的报头,而 TCP 段包含数据。

下面写着:

请务必记住,“TCP 报头”与“TCP 段”相同,这意味着它是 TCP 报头信息加上数据

这些说法互相矛盾。事实到底是什么呢?

答案1

第二段是错误的。也许本意是说数据包而不是标头。这种措辞更有意义:

请务必记住,“TCP 数据包”与“TCP 段”相同,这意味着它是 TCP 标头信息加上数据

答案2

虽然我同意 kce 和 kasperd 提供的关于 TCP 报头和 TCP 段的含义和区别的答案,但我要补充一点,据我所知,TCP 层“包”的正确术语是。以下是我认为OSI 模型每一层TCP Segment数据的正确术语:package

第 7 层至第 5 层(应用层、表示层、会话层)= PDU(协议数据单元)

第 4 层(TCP、UDP)= TCP 段或 UDP 数据报

第 3 层 (IP) = 数据包

第 2 层(数据链路层)= 帧(以太网帧)

在第 1 层,数据on the wire以位/电子信号的形式存在

答案3

事实是人们并不一致地使用词汇,我同意你的评估,即该句子是矛盾的(或错误的)。

可以说,最接近标准的是 RFC。在这种情况下RFC793其中段和标头定义如下:

数据报

      A message sent in a packet switched computer communications
      network.

标题

      Control information at the beginning of a message, segment,
      fragment, packet or block of data.

模块

      An implementation, usually in software, of a protocol or other
      procedure.

部分

      A logical unit of data, in particular a TCP segment is the
      unit of data transferred between a pair of TCP modules.


我想说在这种情况下你的评估是正确的(尽管我很乐意看到相反的结果),但是这种语言有点含糊不清,因为你可以将“数据单位……在 TCP 模块之间传输”解释为包含整个数据报。

相关内容