| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 网络协议 -> (王道考研计算机网络)第五章传输层-第三节1-3:TCP可靠传输 -> 正文阅读 |
|
|
[网络协议](王道考研计算机网络)第五章传输层-第三节1-3:TCP可靠传输 |
|
IP层是不可靠的,所以TCP的任务就是在IP层上提供一种可靠的数据传输服务。TCP提供的可靠数据传输服务保证接收方进程从缓存区读出的字节流与发送方发出的字节流完全一样,使用以下四种机制来达到此目的
一:序号序号:用于保证数据能有序提交给应用层。TCP会将数据视为一个无结构但有序的字节流,序号建立在传送的字节流之上,而不建立在报文段之上。TCP连接传送的数据流中的每个字节都编上一个序号。序号字段的值是指本报文段所发送的数据的第一个字节的序号 如下图,假设 A A A和 B B B之间建立了一条TCP连接, A A A的发送缓存区中共有10B,序号从0开始标号,第一个报文包含第0~2个字节,则该TCP报文段的序号是0,第二个报文段的序号是3
二:确认确认:TCP首部的确认号是期望收到对方的下一个报文段的数据的第一个字节的序号 如下图,发送方先发送【123】给接收方
接收方在收到【123】后返回确认给发送方,由于收到序号为3,下一个要收到的应该是4,所以该确认报文确认号字段为4
发送方在收到确认报文4后,获悉接收方已经正确接收,所以在其缓存中删除【123】
发送继续发送【456】和【78】,【78】正确接收,但【456】报文由于种种原因未能及时送达
此时TCP会采用累计确认机制,虽然【78】已经接收,但这里确认号字段仍然为4
接着发送方就会继续重传【456】,【456】正确到达后,下一个确认号字段将会填9 三:重传重传:有两种事件会触发TCP重传机制
(1)超时重传超时重传:TCP每发送一个报文段,就对这个报文段设置一次计时器。计时器设置的重传时间到期但还未收到确认时,就重传这一报文段
TCP会采用以下公式计算RTO
(2)冗余ACK(快速重传)
冗余ACK:冗余ACK就是再次确认某个报文段的ACK,而发送方先前已经收到过该报文段的确认 如下图所示
|
|
|
| 网络协议 最新文章 |
| 使用Easyswoole 搭建简单的Websoket服务 |
| 常见的数据通信方式有哪些? |
| Openssl 1024bit RSA算法---公私钥获取和处 |
| HTTPS协议的密钥交换流程 |
| 《小白WEB安全入门》03. 漏洞篇 |
| HttpRunner4.x 安装与使用 |
| 2021-07-04 |
| 手写RPC学习笔记 |
| K8S高可用版本部署 |
| mySQL计算IP地址范围 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/30 0:20:12- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |