计算机网络知识点(三)

news2024/10/6 14:28:01

目录

一、简述TCP连接和关闭的状态转移

二、简述TCP慢启动

三、简述TCP如何保证有序

四、简述TCP常见的拥塞控制算法

五、简述TCP超时重传


一、简述TCP连接和关闭的状态转移

状态转移图

        图中上半部分是TCP的三次握手过程的状态变迁,下半部分是TCP四次挥手过程的状态变迁。

        1、CLOSED。起始点,在超时或者连接关闭时进入此状态,这并不是一个真正的状态,而是这个状态图的假想起点和终点。

        2、LISTEN。服务器端等待连接的状态。服务器经过socket,bind,listen函数之后进入此状态,开始监听客户端发过来的连接请求。这称为应用程序被动打开(等待客户端连接请求)。

        3、SYN_SENT。第一次握手发生阶段,客户端发起连接。客户端调用connect,发送SYN给服务器端,然后进入SYN_SENT状态,等待服务器端确认(三次握手中的第二个报文)。如果服务器端不能连接,则直接进入CLOSED状态。

        4、SYN_RCVD。第二次握手发生阶段,与3相对应,这里是服务器端接收到了客户端的SYN,此时服务器由LISTEN进入SYN_RCVD状态,同时服务器端回应一个ACK,然后再发送一个SYN即SYN+ACK给客户端。状态图中还描述了这样一种情况,当客户端在发送SYN的同时也收到服务器端的SYN请求,即同时发起连接请求,那么客户端就会从SYN_SENT转换到SYN_RCVD状态。

        5、ESTABLISHED。第三次握手发生阶段,客户端接收到服务器端的ACK包(ACK,SYN)之后,也会发送一个ACK确认包,客户端进入ESTABLISHED状态,表明客户端这边已经准备好,但TCP需要两端都准备好才可以进行数据传输。服务器端收到客户端的ACK之后会从SYN_RCVD状态转换到ESTABLISHED状态,表明服务器端也准备好进行数据传输了。这样客户端和服务器端都是ESTABLISHED状态,就可以进行后面的数据传输了。所以ESTABLISHED也可以说是一个数据传送状态。

        下面介绍TCP四次挥手过程的状态变迁:

        1、FIN_WAIT_1。第一次挥手,主动关闭的一方(执行主动关闭的一方既可以是客户端,也可以是服务器端。这里以客户端执行主动关闭为例),终止连接时,发送FIN给对方,然后等待对方返回ACK。调用close()第一次挥手就进入此状态。

        2、CLOSE_WAIT。接收到FIN之后,被动关闭的一方进入此状态。具体动作是接收到FIN,同时发送ACK。之所以叫CLOSE_WAIT,可以理解为被动关闭的一方此时正在等待上层应用程序发出关闭连接指令。TCP关闭是全双工过程,这里客户端执行了主动关闭,被动方服务器端接收到FIN后也需要调用close关闭,这个CLOSE_WAIT就是处于这个状态,等待发送FIN,发送了FIN则进入LAST_ACK状态。

        3、FIN_WAIT_2。主动端(这里是客户端)先执行主动关闭发送FIN,然后接收到被动方返回的ACK后进入此状态。

        4、LAST_ACK。被动方(服务器端)发起关闭请求,由状态2进入此状态,具体动作是发送FIN给对方,同时在接收到ACK时进入CLOSED状态。

        5、CLOSING。两边同时发起关闭请求时(即主动方发送FIN,等待被动方返回ACK,同时被动方也发送了FIN,主动方接收到FIN之后,发送ACK给被动房),主动方会由FIN_WAIT_1进入此状态,等待被动方返回ACK。

        6、TIME_WAIT。从状态变迁图中看到,四次挥手操作最后都会经过这样一个状态然后进入CLOSED状态。

表1 状态解析
*状态*描述
CLOSED阻塞或关闭状态,表示主机当前没有正在传输或者建立的链接
LISTEN监听状态,表示服务器做好准备,等待建立传输链接
SYN_RECV收到第一次传输请求,还未进行确认
SYN_SENT发送完第一个SYN报文,等待收到确认
ESTABLISHED链接正常建立之后进入数据传输阶段
FIN_WAIT_1主动发送第一个FIN报文之后进入该状态
FIN_WAIT_2已经收到第一个FIN的确认信号,等待对方发送关闭请求
TIMED_WAIT完成双向链接关闭,等待分组消失
CLOSING双方同时关闭请求,等待对方确认
CLOSING_WAIT收到对方的关闭请求并进行确认进入该状态
LAST_ACK等待最后一次确认关闭的报文

二、简述TCP慢启动

        慢启动(Slow Start),是传输控制协议(TCP)使用的一种阻塞控制机制。慢启动也叫做指数增长期。慢启动是指每次TCP接收窗口收到确认时都会增长。增加的大小就是已确认段的数目。这种情况一直保持到要么没有收到一些段,要么窗口大小到达预先定义的阈值。如果发生丢失事件,TCP就认为这是网络阻塞,就会采取措施减轻网络拥挤。一旦发生丢失事件或者到达阈值,TCP就会进入线性增长阶段。这时,每经过一个RTT窗口增长一个段。

三、简述TCP如何保证有序

        1、主机每次发送数据时,TCP就给每个数据包分配一个序列号并且在一个特定的时间内等待接收主机对分配的这个序列号进行确认,如果发送主机在一个特定时间内没有收到接收主机的确认,则发送主机会重传此数据包。接收主机利用序列号对接收数据进行确认,以便检测对方发送的数据是否有丢失或者乱序等。接收主机一旦收到已经顺序化的数据,它就将这些数据按正确的顺序重组成数据流并传递给高层进行处理。

        2、具体的步骤为:

        (1)为了保证数据包的可靠传递,发送方必须把已经发送的数据包保留在缓冲区;

        (2)并为每个已发送的数据包启动一个超时定时器;

        (3)如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可能是对本包后续包的应答),则释放该数据包占用的缓冲区;

        (4)否则,重传数据包,直到收到应答或重传次数超过规定的最大次数为止;

        (5)接收方收到数据包后,先进行CRC校验,如果正确则把数据交给上层协议,然后发送方发送一个累计应答包,表明该数据已经收到,如果接收方正好也有数据要发给发送方,应答包也可以在数据包中捎带过去。

四、简述TCP常见的拥塞控制算法

        1、TCP Tahoe/Reno

        最初的实现,包括慢启动拥塞避免两个部分。基于重传超时(retransmission timeout/RTO)和重复确认为条件判断是否发生了丢包。两者的区别在于:Tahoe算法下如果收到三次重复确认,就进入快重传立即重发丢失的数据包,同时将慢启动阈值设置为当前拥塞窗口的一半,将拥塞窗口设置为1MSS,进入慢启动状态;而Reno算法如果收到三次重复确认,就进入快重传,但不进入慢启动状态,而是直接将拥塞窗口减半,进入拥塞控制阶段,这称为“快恢复”。

        2、TCP BBR(Bottleneck Bandwidth and Round-trip propagation time)

        BBR是由Google设计,于2016年发布的拥塞算法。以往大部分拥塞算法是基于丢包来作为降低传输速率的信号,而BBR则基于模型主动探测。该算法使用网络最近出站数据分组当时的最大带宽和往返时间来建立网络的显式模型。数据包传输的每个累积或选择性确认用于生成记录在数据包传输过程和确认返回期间的时间内所传送数据量的采样率。该算法认为随着网络接口控制器逐渐进入千兆速度时,分组丢失不应该被认为是识别拥塞的主要决定因素,所以基于模型的拥塞控制算法能有更高的吞吐量和更低的延迟,可以用BBR来替代其它流行的拥塞算法,例如CUBIC。

五、简述TCP超时重传

        TCP可靠性中最重要的一个机制是处理数据超时重传

        TCP协议要求在发送端每发送一个报文段,就启动一个定时器并等待确认信息。接收端成功接收到新数据后返回确认信息。若在定时器超时前数据未能被确认,TCP就认为报文段中的数据已丢失或损坏,需要对报文段中的数据重新组织和重传。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ASCII码表介绍

一、ASCII码是什么 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它可分为基于7位二进制数的标准版本和基于8位二进制数的扩展版本,标准版本主要用于显示现…

响应式企业网站建站系统源码 模版丰富+一站式建站 全开源可二次开发 带源码包+搭建部署教程

系统概述 在数字化转型的浪潮中,企业官网作为品牌展示、产品推广及客户服务的重要窗口,其建设质量直接影响着企业的线上形象与市场竞争力。响应式企业网站建站系统源码的出现,为企业提供了一种高效、灵活且成本可控的建站解决方案。 代码示…

如何解除内存卡的写保护并格式化为exFAT文件系统

最近有客户提问内存卡提示写保护,且无法格式化为exFAT格式的问题,可能是由于多种原因引起的。以下是一些可能的解决方法: 1. 检查物理写保护开关 一些SD卡和MicroSD卡适配器上有一个小的物理开关,可以启用或禁用写保护。确保这个…

在线的、完全免费的、提供回放的技术传播方面的大会:Adobe DITA World 2024

▲ 搜索“大龙谈智能内容”关注公众号▲ 最近美国苹果公司召开了WWDC24,国内不少人熬夜观看。 对于我来说,我更关注在美国召开的另外一个会,它就是Adobe DITA world。 一年一度的Adobe DITA world号称是全球最大的DITA营销和技术传播专业人…

云消息队列 ApsaraMQ 成本治理实践(文末附好礼)

作者:家泽、稚柳 前言: 在 AI 原生应用架构浪潮中,消息队列需支持大规模数据和复杂 AI 模型训练与推理场景下的高效异步通信,其成本效益优化也日益受到重视。面对大模型或大数据量,消息量显著增加,云消息…

爱要常觉亏欠,客要一味款待?

一连病了多日,多数时间躺床上静养。今晨上网浏览,见到罗翔先生在其《圆圈正义》一文中,写有以下这样一句话,读后深受启迪,也让笔者更加懂得应当怎样去处理家庭和社会的人际关际。特实录如下,与网友分享。 网…

重生奇迹mu魔法师介绍

魔法师擅长:远距作战、攻击&辅助魔法使用 转职:魔导师(2转),神导师(3转) 魔法师可以通过多样的魔法,展现华丽的效果和强大的实力。成长初期因为体力少,经常受到死亡…

基于空间对抗的多智能体编队控制方法

源自:系统工程与电子技术 作者:张杰 刘开蓉 陈金宝 张迎雪 陈传志 余虹志 张云啸 注:若出现无法显示完全的情况,可 V 搜索“人工智能技术与咨询”查看完整文章 摘 要 针对3维空间对抗环境下, 具有非线性二阶积分器动力…

负载均衡集群

目录 负载均衡集群 1、集群是什么? 2、负载均衡集群技术 3、负载均衡集群技术的实现 4、实现效果如图 5、负载均衡分类 6、四层负载均衡(基于IP端口的负载均衡) 7、七层的负载均衡(基于虚拟的URL或主机IP的负载均衡) 8、…

【全开源无加密】迅狐代购商城源码,海关报关对接,语言包支持十几种语言

迅狐代购商城源码:开源、无加密的高级电商平台解决方案 随着互联网的快速发展,电子商务已成为现代商业的重要组成部分。迅狐代购商城源码是一款全开源无加密的高级电商平台解决方案,提供了丰富多样的功能和灵活的定制化选项,可以…

安卓照片找回不再困扰,掌握5个步骤让回忆永不褪色

手机照片记录了过去,承载着我们的回忆,让我们能够在繁忙的生活中找到那份温暖和宁静。然而,随着时间的推移和技术的进步,照片的存储和备份方式也在不断变化。当我们不小心删除了手机里的照片时,那份失落和焦虑便油然而…

苹果11怎么录屏?简单几步,轻松搞定!

随着科技的发展,智能手机的功能日益丰富,录屏功能便是其中之一。录屏功能不仅可以帮助我们记录手机操作过程,还可以捕捉屏幕上的精彩瞬间。在众多智能手机品牌中,苹果11凭借其出色的性能与用户体验,受到了广大用户的喜…

牧原发布年度低碳报告,看行业“一哥”如何数字化减碳!

此前,牧原信息化负责人何秋梅在接受绿研院的专题访谈时提到:“在销售、采购等业务上,都涉及到大量的合同和文件,传统的纸质合同保存和管理繁琐,需要档案柜存储,且成本高昂。使用电子签不仅节省了打印、盖章…

ChatGPT-4o引领医学革命:临床科研创新与效率的新纪元

2024年5月12日,更强版本的ChatGPT-4o上线,文本、语音、图像等多模态交互方式使其在各行各业的应用呈现了更多的可能性。因此,帮助广大临床医学相关的医院管理人员、医生、学生、科研人员更加熟练地掌握ChatGPT-4o在临床医学日常生活、工作与学…

SQL中distinct去重关键字的使用和count统计组合的使用

文章目录 SQL中distinct的使用1、distinct作用于单列2、distinct作用于多列3、 count()、distinct组合使用conut扩展知识 SQL中distinct的使用 1、distinct作用于单列 语法: select distinct 列名 from 表; distinct必须在列的前面,否则直…

多源最短路径算法 -- 弗洛伊德(Floyd)算法

1. 简介 Floyd算法,全名为Floyd-Warshall算法,亦称弗洛伊德算法或佛洛依德算法,是一种用于寻找给定加权图中所有顶点对之间的最短路径的算法。这种算法以1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特弗洛伊德的名字命名。 2. 核心思…

Navicate操作某一张表后,卡主,无法加载,也无法编辑,更无法读取

说明 Navicate操作某一张表后,卡主,无法加载,也无法编辑,更无法读取,遇到这种情况,一般是因为表被锁住了 解决方案 右击数据库,打开命令号界面 查看进程列表 SHOW PROCESSLIST;mysql> …

大肆扩产下负债“后遗症”凸显,分拆能帮助恒力石化脱困吗?

撰稿|行星 来源|贝多财经 近日,民营大炼化龙头企业恒力石化(SH:600346)交出了2024年的第一份业绩答卷。财报显示,该公司2024年第一季度实现收入583.90亿元,同比增长4%;归母净利润21.39亿元,同…

旅游网站(携程旅行网页学习 vue3+element)

旅游网站 1. 创建项目 在你要创建项目的路径下打开vscode,新建终端,然后输入vue ui,进入Vue项目管理器。选择“创建”,确定项目路径,并点击“在此创建新项目”。在项目文件夹中输入项目名称,点击下一步;选…

SpringBoot调用WebService的实践

作者所在公司的系统间的信息交互是通过webservice完成。如:MES与SAP的交互,MES与WMS的交换,MES与SRM的交互,MES与IOT的交互等。 MES是用.NET VS2008 C#写的,调用webservice很简单,这里不再赘述。如有想了解…