可靠数据传输原理

  1. 发送数据前的三次握手
  2. 发送数据的情况:

可靠数据传输为上层包保证:数据可以通过一条可靠的信道进行传输。

TCP 是在不可靠的端到端网络上实现的可靠数据传输协议,因此可以将较低层直接视为不可靠的点对点信道。

  • TCP 是面向连接的,是因为在一个应用进程可以开始向另一个应用进程 ** 发送数据之前 **,这两个进程必须先进行“握手”。就是说,它们必须相互发送某些预备报文段,以建立确保数据传输相关的参数。
  • TCP 的 “连接” 不是一条真实的线路,而是 ** 逻辑上的连接 **,连接的状态仅仅在两个通信端的系统的 TCP 程序中会保留,而中间的网络元素(路由器和链路层交换机)不会维持这个 TCP 连接,因为他们看到的只是数据包。
  • TCP 连接提供 ** 全双工 ** 的服务:一台主机的进程 A 与另一台主机的进程 B 存在 TCP 连接时,应用层的数据可以由进程 A→进程 B 的同时进程 B→进程 A。
  • TCP 连接总是在单个发送方和单个接收方的连接。** 点对点 **。多播(一个发送方,多个接收方)是不可能的。

发送数据前的三次握手

  1. 首先,客户首先发送特殊的 TCP 报文段,
  2. 服务器用另一个特殊的 TCP 报文段来响应
  3. 客户再用第三个特殊报文段作为响应。
  4. 前两个报文段不承载应用层数据
  5. 第三个报文段可以承载应用层数据

发送数据的情况:

  1. 客户机进程通过套接字传递数据流
  2. 数据流过套接字后,数据就全权交给 TCP 程序控制
  3. TCP 将数据引导至该 TCP 连接 的发送缓存(send buffer)中,发送缓存是发起三次握手期间设置的多个缓存中的一个
  4. 接下来,TCP 不时从缓存中取出数据,并将数据传递到网络层。
  5. TCp 从缓存中取出并放入报文段中的数据数量受限于 ** 最大报文段长度(MSS)(不包括 TCP 首部长度)**
  6. MSS 一般由最大链路层帧长度(MTU)设置。MSS 要保证一个 TCP 报文段加上 TCP,IP 首部长度(一般 40 字节)后适合单个链路层帧。以太网链路层协议具有 1500 字节的 MTU,因此 MSS 典型值为 1460 字节。

计算机网络(第七版)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论。
我的空间