计算机网络 王道考研2021 第五章:传输层 -- TCP协议特点和TCP报文段面向报文和面向字节流的区别

Posted CodeJiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络 王道考研2021 第五章:传输层 -- TCP协议特点和TCP报文段面向报文和面向字节流的区别相关的知识,希望对你有一定的参考价值。

1. TCP协议特点和TCP报文段


1.1 TCP协议的特点

TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠、有序、无丢失和不重复问题。

面向报文和面向字节流的区别:

  • UDP是面向报文的,发送方的UDP对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层,也就是说无论应用层交给UDP多长的报文,它统统发送,一次发送一个。而对接收方,接到后直接去除首部,交给上面的应用层就完成任务了。因此,它需要应用层控制报文的大小。

  • TCP是面向字节流的,它把上面应用层交下来的数据看成无结构的字节流来发送,可以想象成流水形式的,发送方TCP会将数据放入“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送就等着,TCP会根据当前网络的拥塞状态来确定每个报文段的大小。


1.2 TCP报文段首部格式(考研重点)


  • 源端口和目的端口字段。各占2B。端口是运输层与应用层的服务接口,运输层的复用和分用功能都要通过端口实现。
  • 序号字段。占4B。TCP是面向字节流的(即TCP传送时是逐个字节传送的),所以TCP连接传送的数据流中的每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的序号。
    例如,一报文段的序号字段值是301,而携带的数据共有100B,表明本报文段的数据的最后一个字节的序号是400,因此下一个报文段的数据序号应从401开始。
  • 确认号字段。占4B,是期望收到对方的下一个报文段的数据的第一个字节的序号。若确认号为N,则表明到序号N-1为止的所有数据都已正确收到。
    例如,B正确收到了A发送过来的一个报文段,其序号字段是501,而数据长度是200B(序号501~700),这表明B正确收到了A发送的到序号700为止的数据。因此B期望收到A的下一个数据序号是701,于是B在发送给A的确认报文段中把确认号置为701。
  • 数据偏移(即首部长度)。占4位,这里不是IP数据报分片的那个数据偏移,而是表示首部长度,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位是32位(以4B为计算单位)。因此当此字段的值为15时,达到TCP首部的最大长度60B。
  • 保留字段。占6位,保留为今后使用,但目前应置为0,该字段可以忽略不计。
  • 紧急位 URG。URG=1时,表明紧急指针字段有效。它告诉系统报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。但 URG需要和紧急指针配套使用,即数据从第一个字节到紧急指针所指字节就是紧急数据。
  • 确认位 ACK。只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK 置1。
  • 推送位PSH (Push)接收TCP收到PSH= 1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满后再向上交付。
  • 复位位RST (Reset)。RST=1时,表明TCP 连接中出现严重差错(如主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。
  • 同步位SYN。同步位SYN=1表示这是一个连接请求或连接接收报文。
    当SYN=1,ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则在响应报文中使用SYN=1,ACK=1。即 SYN=1表示这是一个连接请求或连接接收报文。
  • 终止位FIN(Finish)。用来释放一个连接。FIN=1表明此报文段的发送方的数据已发送完毕,并要求释放传输连接。
  • 窗口字段。占2B。它指出现在允许对方发送的数据量,接收方的数据缓存空间是有限的,因此用窗口值作为接收方让发送方设置其发送窗口的依据,单位为字节。例如,假设确认号是701,窗口字段是1000。这表明,从701号算起,发送此报文段的一方还有接收1000B数据(字节序号701~1700)的接收缓存空间。
  • 校验和。占2B。校验和字段检验的范围包括首部和数据两部分。在计算校验和时,和UDP 一样,要在TCP报文段的前面加上12B的伪首部(只需将UDP伪首部的第4个字段,即协议字段的17改成6,其他的和UDP一样)。
  • 紧急指针字段。占16位,指出在本报文段中紧急数据共有多少字节(紧急数据放在本报文段数据的最前面)。
  • 选项字段。长度可变。TCP最初只规定了一种选项,即最大报文段长度(Maximum Segment Size,MSS)。MSS是TCP报文段中的数据字段的最大长度。
  • 填充字段。这是为了使整个首部长度是4B的整数倍。

帮助理解序号:

帮助理解确认号:

帮助理解紧急位URG和推送位PSH:



以上是关于计算机网络 王道考研2021 第五章:传输层 -- TCP协议特点和TCP报文段面向报文和面向字节流的区别的主要内容,如果未能解决你的问题,请参考以下文章

第五章 传输层 计算机网络(王道考研)

计算机网络 王道考研2021 第五章:传输层 -- 无连接服务与面向连接服务UDP协议

计算机网络 王道考研2021 第五章:传输层 -- TCP协议特点和TCP报文段面向报文和面向字节流的区别

计算机网络 王道考研2021 第五章:传输层 -- 传输层概述点对点和端对端的区别TCP / UDP概述端口号(传输层的SAP(服务访问点))套接字

超详细的计算机网络基础知识总结 第五章:传输层

计算机组成原理 王道考研2021 第五章:中央处理器 -- CPU的功能和基本结构指令执行过程