天天看点

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

文章目录

    • 一. TCP传输
      • 1 TCP报文段结构
      • 2 TCP可靠数据传输
      • 3 TCP流量控制
      • 4 TCP连接管理:3次握手和四次挥手
    • 二. 拥塞控制原理
      • 1. 拥塞的成因和代价
      • 2. 拥塞控制方法
    • 三. TCP拥塞控制
      • 1. 拥塞控制的基本原理
      • 2. TCP拥塞控制算法

一. TCP传输

TCP连接提供的服务是全双工服务,同一连接能够双向传输数据,同时,也是点对点的连接(仅有一个发送方和一个接收方)。

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

1 TCP报文段结构

TCP报文段由首部字段和数据字段组成。

  1. 首部字段

    源端口号和目的端口号:用于多路分用和多路复用

    因特网检验和:差错检验

    序号和确认号(32比特):用于实现可靠数据传输服务

    接收窗口字段(16bite):用于流量控制,该字段指示接收方愿意接收的字节数量。

    首部长度字段(4bit):典型长度20bit

    可选与变长的选项字段:用于双方协商最大报文长度、或在高速网络环境下用于窗口调节因子。

    标志字段(6bit):ACK用于确认字段是否有效、RST、SYN、FIN用于连接的建立和拆除

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

2. 序号和确认号

序列号指的是segment中

第一个字节的编号

,而不是segment的编号

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

ACKs:希望接收到的下一个字节的序列号

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

telnet示例:

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

2 TCP可靠数据传输

TCP在IP层提供的不可靠服务基础上实现可靠数据传输服务。使用了流水线机制、累积确认机制、使用单一的重传定时器。采用重传来处理丢包,触发重传的时间包括定时器超时和收到重复ACK。

  1. 定时器超时时间设置与往返时间(RTT)的估计

    定时器的超时时间是肯定要大于RTT的.

    RTT的估计方式

    为:测量从段发出去到收到ACK的时间(称为SampleRTT,

    忽略重传),测量多个SampleRTT,求平均值,形成RTT的估计值EstimatedRTT

    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
    定时器时间设置:TimeoutInterval = EstimatedRTT + 4*DevRTT
  2. 发送方处理事件

    为了实现可靠性数据传输,发送方需要进行一些事件处理。

  1. 从应用层收到数据: 创建Segment、序列号是Segment第一个字节的编号、 开启计时器、设置超时时间TimeOutInterval
  2. 超时:重传引起超时的Segment、重启定时器
  3. 收到ACK:如果确认此前未确认的Segment, 则更新SendBase,如果更新后,窗口中还有未被确认的分组,重新启动定时器(这里采用的是单一重传)。
计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
  1. 接收方处理
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
  2. 快速重传机制

    收到3个冗余的ACK,则进行快速重传。

    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

3 TCP流量控制

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

TCP为应用程序提供了流量控制服务,以消除发送方使接收方缓存溢出的可能性。流量控制实际上是一个速度匹配服务

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

4 TCP连接管理:3次握手和四次挥手

强烈推荐:TCP的三次握手与四次挥手(详解+动图)

  1. 建立连接:三次握手
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
  2. 关闭连接
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

二. 拥塞控制原理

拥塞(Congestion)非正式定义:“太多发送主机发送了太多数据或者发送速度太快,以至于网络无法处理”

表现: 分组丢失(路由器缓存溢出)、 分组延迟过大(在路由器缓存中排队)

1. 拥塞的成因和代价

  • 情况1:两个发送方和一台具有无穷大缓存的路由器
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
  • 情况2:两个发送方和一台具有有限缓存的路由器
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

2. 拥塞控制方法

  1. 网络辅助的拥塞控制

    路由器向发送方显式地反馈网络拥塞信息 ,简单的拥塞指示(1bit):SNA, DECbit, TCP/IP ECN, ATM) ,指示发送方应该采取何种速率。

  2. 端到端的拥塞控制 (TCP)

    网络层不需要显式的提供支持,端系统通过观察loss,delay等网络行为判断是否发生拥塞。 TCP采取这种方法。

三. TCP拥塞控制

TCP必须通过端到端的控制方法解决拥塞控制,因为IP层不会向端系统提供有关网络拥塞的反馈信息。

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

1. 拥塞控制的基本原理

首先是如何

限制TCP发送方向连接发送的流量速率,主要采取的方式是控制拥塞窗口cwnd的大小

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

其次是如何使发送方感知网络拥塞:丢包时间则意味着拥塞

计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

最后是如何合理的调整发送速率,主要采用的是TCP拥塞控制算法

2. TCP拥塞控制算法

  1. 加性增-乘性减算法:AIMD
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
  2. 慢启动:SS
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
  3. 拥塞避免
    计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制
计算机网络(5)-传输层--TCP传输:可靠数据传输、流量控制、连接管理、拥塞控制

继续阅读