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包

相关推荐
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
wuyk5552 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
-梅2 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog2 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
琥珀色糖2 天前
SimlpeHttp
linux·服务器
第十人i2 天前
Linux 日志管理系统:journald 配置与优化
linux·服务器
QYRdata2 天前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
CHENKONG_CK2 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
chshang19922 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
萧瑟余晖2 天前
Netty 核心组件与 Reactor 模型详解
网络·架构