TCP协议如何实现可靠传输

TCP最主要的特点

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

TCP最主要的特点:

  1. TCP是面向连接的输出层协议

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

2.TCP提供可靠交付的服务

3.TCP提供全双工通信(TCP协议会维护两个缓冲区,分别是接收缓冲区和发送缓冲区)

4.面向字节流

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

TCP如何实现可靠传输

  • TCP每次发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。
  • 全双工通信的双方既是发送方也是接收方。
  • 假设仅考虑A发送数据,而B接收数据并发送确认。因此A叫做发送方,而B叫做接收方。

发送端如何知道接收端是否正确收到了M1呢?

解决方法:超时重传

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

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

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

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

流水线传输:在收到确认之前,发送方连续发出多个分组。

由于在信道上一直有数据不间断地传送,流水线传输可获得很高的信道利用率

连续ARQ协议和滑动窗口协议采用流水线传输方式。

连续ARQ协议

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

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

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

TCP包

相关推荐
海拥✘24 分钟前
深入理解 IP 地址:概念、分类与日常应用
网络·网络协议·tcp/ip
Miracle&1 小时前
1.TCP/IP模型:各层协议(重点TCP/UDP)
网络协议·tcp/ip·udp
Miracle&1 小时前
2.TCP深度解析:握手、挥手、状态机、流量与拥塞控制
linux·网络·tcp/ip
C语言小火车1 小时前
【C++八股文】基础知识篇
c++·tcp/ip·const·智能指针·多线程同步·static关键字·c++内存模型
liulilittle2 小时前
IP校验和算法:从网络协议到SIMD深度优化
网络·c++·网络协议·tcp/ip·算法·ip·通信
c&0xff002 小时前
Flink反压问题
网络·flink
7ACE2 小时前
Wireshark TS | 接收数据超出接收窗口
网络协议·tcp/ip·wireshark
深圳多奥智能一卡(码、脸)通系统2 小时前
基于多奥(DAIC)品牌的IC卡电梯门禁系统(梯控)基础配置清单,整合核心硬件、软件及安全组件,确保系统可独立运行并支持未来扩展
网络
tuokuac3 小时前
nginx配置前端请求转发到指定的后端ip
前端·tcp/ip·nginx
googleccsdn3 小时前
ESNP LAB 笔记:配置MPLS(Part4)
网络·笔记·网络协议