TCP/IP详解学习笔记--TCP连接的建立与终止_如何确定终止tcp连接的第一个fin段的包跟踪号?-程序员宅基地

技术标签: TCP/IP详解  数据  syn  请求  tcp连接    

1.基本概念

由于TCP是一个面向连接的协议,无论在哪一方发送数据之前,都必须先在双方之间建立连接,接下来我们就讨论建立连接的具体过程

2.建立TCP连接

如下图所示:
1.首先请求端发送一个序列号为1(表明该方的起始序列号为1)的SYN段,此时由于连接还未建立成功,所以携带的数据为0,并前发送端还告诉接收端它所能接收的最大报文段mss
2.接收端收到SYN段后,也给对方回一个SYN端,告知对方它的其实序列号为5并携带给对方回的ack,同时也告诉对方它所能接收的最大报文段mss
3.请求端在收到对方携带ack的SYN之后也给对方发一个ack,此时请求方以确定了与对方建立好了联系,所以此时是数据段是可以携带数据的,至此TCP的三次握手以完成,由TCP连接的俩端就可以进行通讯了

注意点:当一端建立连接时,所发送的SYN,也包含了此端的一个初始序号,下图的俩端的初始序号分别为1和5,此初始序号是由复杂算法随机产生的

2.TCP连接的终止

如上图所示
1.首先终止端发出一个FIN端,该段的序号为2.接收端收到后,给其发送一个ack还有一个携带ack的FIN段,当发送端收到此段之后,接收端最后发个确认,连接即终止

注意点:为啥终止连接要4次挥手,主要原因是,建立连接后数据是双向传递的,所以必须得把俩端的数据流动都给关掉,则每一端都得发一个自己的FIN以及一个确认收到对方FIN的ack,所以终止连接得4次挥手

3.TCP连接建立超时

有时候接收方主机发生故障,当发送方给其发送TCP连接请求时,在对方收不到的情况下,发送端并不会无限的给其发请求,而是根据超时时间来不定时的发送请求,当然超时时间也是有最长时间限制的,一般为75S超过这个时间,发送端将放弃连接

4.最大报文长度

最大报文长度又称MSS表示表示TCP可以给对方传的最大数据段长度,前面的那张途中,在建立连接时,所发的SYN中就包含了MSS,一般大小为1024

5.TCP的半关闭

TCP提供了连接在一端在结束它的发送后,依然可以接收对面的数据,只是不能在发送数据了,我们可以通过应用程序来控制完全关闭与半关闭,调用close(),实现的是完全关闭,调用shutdown()实现的就是我们所说的半关闭,半关闭在大多数情况下不常用

6.TIME_WAIT状态

TIME_WAIT状态也称为2MSL等待状态,MSL为一个TCP报文段的最大生存时间,之所以有这个状态主要是为了防止迟来的报文段没有被收到

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Shreck66/article/details/47341797

智能推荐

正则表达式 匹配常用手机号 (13、15\17\18开头的十一位手机号)-程序员宅基地

文章浏览阅读1.8k次。正则表达式 匹配常用手机号 (13、15\17\18开头的十一位手机号) 原文:正则表达式 匹配常用手机号 (13、15\17\18开头的十一位手机号) ^1[3578]\d{9}$^1表示以1开头,[3578]表示第二位的数字为3578中的任意一个,\d{9..._手机号13,15,18开头11位数字正则表达式怎么书写

华为OD机试(Java)真题目录汇总(2022&2023)_华为od 任务混部 java-程序员宅基地

文章浏览阅读5.7k次,点赞13次,收藏32次。华为OD机试(Javascript)真题目录汇总。华为OD机试(Python)真题目录汇总。华为OD机试(C++)真题目录汇总。_华为od 任务混部 java

神经网络初探-程序员宅基地

文章浏览阅读117次。神经网络初探——读《深度学习的数学》总结​ 学习是一个系统通过某种过程或者方式提升自身的某个或某些性能的过程,它本身包含的是一种自动化和可控化的含义。那么如何能让不具备智能的机器去学习呢?在模拟大脑神经元的工作原理后,看来我们已经找到了通往机器学习的一种方法,它叫做神经网络。神经网络是一种看似不可理解的复杂学习方法,这里包含着许多数学的知识。在阅读《深度学习的数学》一书之后,我想,我对神经网..._神经网络初探

音频分离Spleeter的安装_2stems.tar.gz-程序员宅基地

文章浏览阅读3.5k次,点赞5次,收藏13次。音频分离Spleeter的安装1.环境依赖及建立(需要已安装anaconda)1.0 项目源地址(github地址)1.1 创建虚拟环境1.2 激活虚拟环境1.3 conda 安装spleeter1.4 下载一个示例音乐1.5 将该音乐分离为两部分1.5.1 报错:No module named numba.decorators1.5.2 解决方案:1.6 下载分类模型1.6.1报错ValueError:Can't load save_path when it is None.1.6.2 解决方案:1.6._2stems.tar.gz

让你的软件飞起来:RGB转为YUV-程序员宅基地

文章浏览阅读64次。朋友曾经给我推荐了一个有关代码优化的pdf文档《让你的软件飞起来》,看完之后,感受颇深。为了推广其,同时也为了自己加深印象,故将其总结为word文档。下面就是其的详细内容总结,希望能于己于人都有所帮助。速度取决于算法同样的事情,方法不一样,效果也不一样。比如,汽车引擎,可以让你的速度超越马车,却无法超越音速;涡轮引擎,可以轻松超越音障,却无法飞出地球;如果有火箭发动机,就可以到达火..._bao.yuv

PX4装机教程(五)无人船(车)_在px4固体中如何设置差速船-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏33次。文章目录前言一、载具设置二、电机接线三、PWM输出设置四、航点设置前言一个人可以走的更快,一群人才能走的更远,交流学习加qq:2096723956更多保姆级PX4+ROS学习视频:https://b23.tv/ZeUDKqy分享知识,传递正能量,如有疏漏或不当之处,恳请指出.PX4固件版本:1.10.0硬件:淘宝竞速船或者打窝船实验录屏https://www.bilibili.com/video/BV1wA411c7p3?spm_id_from=333.999.0.0一、载具设置单电机_在px4固体中如何设置差速船

随便推点

EM算法 - 2 - EM算法在高斯混合模型学习中的应用_em算法在高斯混合模型中的应用-程序员宅基地

文章浏览阅读8k次,点赞5次,收藏15次。声明: 1,本篇为个人对《2012.李航.统计学习方法.pdf》的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址)。 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面。 3,如果有内容错误或不_em算法在高斯混合模型中的应用

【玩转华为云】手把手教你用Modelarts基于YOLO V3算法实现物体检测-程序员宅基地

文章浏览阅读2k次。本篇推文共计2000个字,阅读时间约3分钟。华为云—华为公司倾力打造的云战略品牌,2011年成立,致力于为全球客户提供领先的公有云服务,包含弹性云服务器、云数据库、云安全等云计算服务,软..._modelarts yolo weights 文件 bbs 华为云

WiFi介绍_wifi dfs-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏13次。802.11 Wi-Fi_wifi dfs

RK3568-sata接口_rk3568 sata-程序员宅基地

文章浏览阅读249次。pcie接口sata接口pcie总线pcie总线pcie控制器sata控制器nvme设备sata设备nvme协议ahci协议m-key接口b-key接口_rk3568 sata

java实现循环队列,解决普通队列假溢出问题_但是要利用循环队列的时候,处理假溢出,要使q.front=0的时候,为什么q.rear要加-程序员宅基地

文章浏览阅读1.3k次。循环队列可以很好的解决假溢出问题,不同于普通队列,在循环队列中,需将rear与front初始值都设置为0,rear指针指向队列中最后一个元素的下一个位置,也正因如此,数组是否存满的判定条件也应做出改变,在普通队列中,front==maxSize-1,即可认为数组已满,但是在循环队列中,由于在存放完数组最后一个有效位置后可以继续像数组中的0号位置进行存储,所以判断满的条件也会发生改变,—(rear+1)%maxSize = front.可以举个例子方便理解,假设一maxSize=5的数组,那么其有0 1_但是要利用循环队列的时候,处理假溢出,要使q.front=0的时候,为什么q.rear要加

linux CentOS 7下载步骤_centos7下载-程序员宅基地

文章浏览阅读4.8k次。linux CentOS 7下载步骤_centos7下载

推荐文章

热门文章

相关标签