TCP简述

  • 每一条TCP只有两个端点(无法形成广播)
  • 可靠交付
  • 全双工
  • 面向字节流(TCP把应用层交付的数据看作为无结构的字节流)
  • 将建立连接的两端抽象成一条连接,但物理上仍然借助网络上多个router的网络层链路层物理层一次次的传送实现。

套接字

定义套接字(socket)为IP地址 + “:” + 端口号。这里区分socket和其他领域的socket的含义。

TCP实现的可靠传输

停止等待协议

在真实的可靠传输中不使用停等协议(利用率过低)。

停等协议的含义是发送方发送一个数据包,要等到接收到接收方的确认才会发送下一个数据包。

无差错情况

【计算机网络】运输层总结-2

出现差错

【计算机网络】运输层总结-2

确认包丢失

【计算机网络】运输层总结-2

确认包迟到

【计算机网络】运输层总结-2

信道利用率

  • RTT:往返时间。
  • TdT_d:发送分组数据的时间。
  • TaT_a:发送确认分组的时间。

信道利用率应该为总时间(往返+发送确认+发送有效)内有效时间的占比。即:U=TdTd+RTT+TaU=\frac {T_d} {T_d + RTT + T_a}

连续ARQ协议

发送方维持一个发送窗口,在窗口中的数据可以直接发送,不需要等待确认。

ARQ协议规定,发送方每收到一个ack,就把发送窗口向前移动到ACK之后的位置(因为接受方使用的是累积确认)。

  • 累积确认:接收方会发送自己按序到达的最后一个分组的ACK包

因此,接收方不必对中间某个确认包的丢失进行重传,因为累积确认的效果,一旦一个较大序号的ACK被接收到,则表示这个包之前的包都已经成功收到。

但同时累积确认也有缺陷,例如发送方传送了5个包,但是第3个包丢失了。这时根据累积确认,接收方只能传送前两个包的ACK(按序到达的最后一个)。在接收到第2个包ACK的发送方不知道后面3个包是否到达,就会将后3个包全部进行重传。这也叫Go-back-N

相关文章:

  • 2021-05-11
  • 2021-09-13
  • 2021-05-26
  • 2021-05-09
  • 2022-12-23
猜你喜欢
  • 2021-11-01
  • 2021-08-20
  • 2021-10-26
  • 2021-07-09
  • 2021-05-21
相关资源
相似解决方案