计算机网络-传输层 TCP协议(上)

目录

报头结构

TCP的可靠传输机制

核心机制一:确认应答

TCP的序号和确认序号

核心机制二:丢包重传

核心机制三:连接管理

建立连接-三次握手

断开连接-四次挥手

核心机制四:滑动窗口

数据包已经抵达, ACK被丢了

数据包就直接丢了​编辑


报头结构

4位TCP报头⻓度: 表⽰该TCP头部有多少个32位bit(有多少个4字节); 所以TCP头部最⼤⻓度是15 *4 = 60
UDP协议报头固定就是8个字节.
对于TCP来说,报头长度是可变长的,4个比特位,表示的数据范围是多少?
0000->1111
0x0->0xF(0->15)
此处的长度单位是4字节,不是字节.

保留(6位):

其他属性都要根据下面所有的机制来理解......

TCP的可靠传输机制

TCP基本特点:有连接、可靠传输、面向字节流、全双工

核心机制一:确认应答

TCP的序号和确认序号



核心机制二:丢包重传


主机A发送数据给B之后, 可能因为⽹络拥堵等原因, 数据⽆法到达主机B;

如果主机A在⼀个特定时间间隔内没有收到B发来的确认应答, 就会进⾏重发;但是, 主机A未收到B发来的确认应答, 也可能是因为ACK丢失了;

主机B会收到很多重复数据. 那么TCP协议需要能够识别出那些包是重复的包, 并且把重复的丢弃掉.


那么, 如果超时的时间如何确定?

确认应答和超时重传,相互补充,共同构建了TCP"可靠传输机制”网上很多资料,包括很多程序员的理解都是错误的,网上有人说:TCP的可靠传输,是通过"三次握手,和四次挥手保证的"(连接管理)。对于可靠传输,是有一点点作用的,但不是核心作用,核心作用,还是确认应答+超时重传。

核心机制三:连接管理

次数指的就是网络通信的次数。

三次握手/四次挥手,就是网络这个模块中,最高频的面试题,没有之一。

建立连接-三次握手

建⽴连接的意义:

1. 投⽯问路, 确认当前通信路径是否畅通.

2.确认通信双方各自的发送能力和接收能力是否都正常

3. 协商参数, 通信双⽅共同确认⼀些通信中的必备参数数值,比如TCP连接中的起始序号

断开连接-四次挥手

上述四个状态是比较重要的,尤其是后两个,是面试考过并难以应对的。

如果你面试中,被问到这个,你给面试官画图,你画哪个图?一定是画简图,不要画详细的图,水太深,你容易把握不住。画详图,画对了,不算加分项;画错了,可就没分了!试回答问题,一定是求稳,不要炫技。

核心机制四:滑动窗口

那么如果出现了丢包, 如何进⾏重传? 这⾥分两种情况讨论

数据包已经抵达, ACK被丢了

数据包就直接丢了

上篇关于UDP协议可以查看计算机网络-传输层 UDP协议-CSDN博客

TCP协议还有六个核心机制的详解请关注下篇文章⭐⭐⭐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/936455.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【经验分享】容器云运维的知识点

最近忙于备考没关注,有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源,但我以交流、交换为主,笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟,为了避免更多人花没必要的钱,所以决定公…

纯血鸿蒙崛起,原生Android挑战?两大操作系统巅峰对决,智能设备未来谁主沉浮?

鸿蒙HarmonyOS和原生Android系统虽然在一些方面相似,但在架构、设计理念、API、开发工具等方面存在一些差异。鸿蒙系统的目标是跨设备、分布式的操作系统,强调多设备协同和资源共享,而Android则主要集中在智能手机和移动设备领域。 下面将从…

新手快速入门!低功耗4G模组Air780E——使用文件系统存储温湿度数据来啦~

小伙伴们,今天我们来学习低功耗4G模组Air780E快速入门之使用文件系统存储温湿度数据。一起接着看下去吧! 一、编写脚本 1.1 准备资料 780E开发板 780E开发板设计资料 LuatOS-Air780E-文件系统的使用-程序源码demo TCP/UDP测试服务器 API使用介绍 …

vscode中插件ofExtensions的debug模式也无法查看U、p等openfoam中foam类型的变量

插件介绍: 主要内容如下: 以自编译的$HOME/OpenFOAM-7例,如果OFdebugopt设置为WM_COMPILE_OPTIONDebug,那最终的激活环境的命令为source $HOME/OpenFOAM/OpenFOAM-8/etc/bashrc WM_COMPILE_OPTIONDebug,这时候$FOAM_…

【收藏】Cesium 限制相机倾斜角(pitch)滑动范围

1.效果 2.思路 在项目开发的时候,有一个需求是限制相机倾斜角,也就是鼠标中键调整视图俯角时,不能过大,一般 pitch 角度范围在 0 至 -90之间,-90刚好为正俯视。 在网上查阅了很多资料,发现并没有一个合适的…

【经验分享】私有云运维的知识点

最近忙于备考没关注,有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源,但我以交流、交换为主,笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟,为了避免更多人花没必要的钱,所以决定公…

Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF

Latex代码中使用pdf图片,无法预览,提示: Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF 解决办法: 点击左边这个刷新下即可

QT:Widgets中的事件

事件的处理 (1)重新实现部件的paintEvent()、mousePressEvent()等事件处理函数。这是最常用的一种方法,不过它只能用来处理特定部件的特定事件。 (2)重新实现notify()函数。这个函数功能强大,提供了完全的控制,可以在事件过滤器得到事件之前…

Windows如何安装go环境,离线安装beego

一、安装go 1、下载go All releases - The Go Programming Language 通过网盘分享的文件:分享的文件 链接: https://pan.baidu.com/s/1MCbo3k3otSoVdmIR4mpPiQ 提取码: hxgf 下载amd64.zip文件,然后解压到指定的路径 2、配置环境变量 需要新建两个环境…

AI Agent:重塑业务流程自动化的未来力量(2/30)

《AI Agent:重塑业务流程自动化的未来力量》 摘要:整体思路是先介绍 AI Agent 的基本情况,再深入阐述其实现业务流程自动化的方法和在不同领域的应用,接着分析其价值和面临的挑战,最后得出结论,为读者全面…

R语言的数据结构-矩阵

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言医学数据分析实践-R语言的数据结构-CSDN博客 矩阵是一个二维数组,矩阵中的元素都具有相…

springboot+javafx使用aop切面导致的fx:id不能被注入问题

记录一个我遇到得问题 问题描述 我本来使用AOP切面来进行全局异常管理,但是使用AOP之后fxml中通过fx:id绑定得参数无法被注入 Slf4j Component Aspect public class GlobalExceptionAspect {AfterThrowing(pointcut "execution(* com.shkj.videoclassifica…

STM32 HAL库 + LM2904运算放大器 + ADC + 4-20ma液位传感器:电路设计及代码实现

4-20ma液位传感器在工业自动化和日常应用中非常常见,例如水位监测、液体储罐管理等。本文将结合STM32 HAL库,带你实现一个简单的液位监测demo,从电路设计到代码实现,实现通过单通道ADC采集4-20ma液位传感器的信号,并通…

MongoDB-固定集合(Capped Collection)

在 MongoDB 中,固定集合(Capped Collection)是一种具有特殊属性的集合。固定集合具有一个固定的最大大小,并且一旦达到该大小时,最早插入的文档将会被自动删除,以便为新的文档腾出空间。固定集合的这种特性…

Vue2 基础

Vue 2 是 Vue.js 的第二个主要版本,于 2016 年发布。它是一个渐进式的 JavaScript 框架,以其简单、灵活、易用性高而广受欢迎。Vue 2 主要专注于构建用户界面(UI),并且非常适合用于构建单页应用(SPA&#x…

2450.学习周刊-2024年50周

封面 人生五个球 ✍优秀博文 面对老板安排的工作,事事有回应,有必要吗? 职场精英进阶手册:工作推进五原则,让你合理高效地利用时间 上个班而已,千万别畏手畏脚 理解了雷军说的SU7要守正出奇&#xff0…

基于Llamaindex的网页内容爬取实战

目的 本文不关注如何解析网页 html 元素和各种 python 爬虫技术,仅作为一种网页数据的预处理手段进行研究。Llamaindex 也并不是爬虫技术的集大成者,使用它是为了后续的存查一体化。 安装依赖 pip install llama-index-readers-web # pip install llam…

Excel拆分脚本

Excel拆分 工作表按行拆分为工作薄 工作表按行拆分为工作薄 打开要拆分的Excel文件,使用快捷键(AltF11)打开脚本界面,选择要拆分的sheet,打开Module,在Module中输入脚本代码,然后运行脚本 Su…

go语言zero项目通过Supervisor启动与停用的管理

为了让Go项目通过 Supervisor 启动与重启,您需要确保已经正确安装和配置了 Supervisor。接下来是详细的步骤来配置您的 Go 项目,使其可以通过 Supervisor 管理。 ### 配置 Go 项目 首先,确保您的 Go 项目可以编译成一个可执行文件&#xff…

【ABAP SAP】开发-BUG修补记录_采购申请打印时品名规格品牌为空

项目场景: TCODE:自开发程序ZMMF004 采购申请打印 问题描述 ZMMF004打印的时候,有的采购申请的品名、规格、品牌为空 原因分析: 1、首先我通过写SQL语句查底表来看这几条采购申请本身有无品名、规格、品牌 SQL语句如下,只需修…