TCP协议是如何实现可靠传输的

一、TCP最主要的特点

1.TCP 是面向连接的运输层协议,在无连接的、不可靠的 IP 网络服务基础之上提供可靠交付的服务。为此,在 IP 的数据报服务基础之上,增加了保证可靠性的一系列措施。

TCP协议是如何实现可靠传输的_第1张图片2.TCP最主要的特点

(1)TCP 是面向连接的运输层协议。

        每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。

(2)TCP 提供可靠交付的服务。

(3)TCP 提供全双工通信。

(4)面向字节流

        TCP 中的“流”(stream) 指的是流入或流出进程的字节序列。

        面向字节流:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。

3.面向流的概念

TCP协议是如何实现可靠传输的_第2张图片

TCP协议是如何实现可靠传输的_第3张图片

 4.TCP的连接

TCP协议是如何实现可靠传输的_第4张图片

 5.Socket 有多种不同的意思

应用编程接口  API  称为 socket API, 简称为 socket。

socket API 中使用的一个函数名也叫作 socket。

调用 socket 函数的端点称为 socket。

调用 socket 函数时其返回值称为 socket 描述符,可简称为 socket。

二、TCP是如何实现可靠传输的?

每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

全双工通信的双方既是发送方也是接收方。

假设仅考虑 A 发送数据,而 B 接收数据并发送确认。因此 A 叫做发送方,而 B 叫做接收方。

TCP协议是如何实现可靠传输的_第5张图片

TCP协议是如何实现可靠传输的_第6张图片

1.A 如何知道 B 是否正确收到了 M1 呢?

解决方法:超时重传

A 为每一个已发送的分组设置一个超时计时器。

A 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 

若 A 在超时计时器规定时间内没有收到 B 的确认,就认为分组错误或丢失,就重发该分组。

TCP协议是如何实现可靠传输的_第7张图片

 2.确认丢失

        若 B 所发送的对 M1 的确认丢失了,那么 A 在设定的超时重传时间内将不会收到确认,因此 A 在超时计时器到期后重传 M1。

假定 B 正确收到了 A 重传的分组 M1。这时 B 应采取两个行动:

(1) 丢弃这个重复的分组 M1,不向上层交付。

(2) 向 A 发送确认。

3.确认迟到

B 对分组 M1 的确认迟到了,因此 A 在超时计时器到期后重传 M1。

B 会收到重复的 M1,丢弃重复的 M1,并重传确认分组。

A 会收到重复的确认。对重复的确认的处理:丢弃。

TCP协议是如何实现可靠传输的_第8张图片

4.提高传输效率:流水线传输

TCP协议是如何实现可靠传输的_第9张图片

5.连续ARQ协议

        发送窗口:发送方维持一个发送窗口,位于发送窗口内的分组都可被连续发送出去,而不需要等待对方的确认。

        发送窗口滑动:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。

        累积确认:接收方对按序到达的最后一个分组发送确认,表示:到这个分组为止的所有分组都已正确收到了。

6.发送窗口

TCP协议是如何实现可靠传输的_第10张图片

 7.累计确认

TCP协议是如何实现可靠传输的_第11张图片

三、TCP报文段的首部格式 

TCP协议是如何实现可靠传输的_第12张图片

你可能感兴趣的:(tcp/ip,网络,服务器)