TCP/IP的三次握手和四次放手
- 一开始个人对于三次握手和四次挥手这个东西还是有时候会忘记,可能理解的不是非常深刻,所以今天就自己动手来记录一下这个知识点,方便以后查看。总结完之后发现总结的还是可以的哈哈。
- 三次握手建立连接
- 第一次:客户端和服务器端一开始都是关闭的。①:当想建立连接的时候,客户端首先主动打开,然后服务器端被动打开。
②:服务器首先得先创建好需要的pcb传输控制块(参照socket编程中的,先得建立一些服务器所需要的信息,包括套接字之类的,创建套接字,绑定套接字,),之后进入listen状态,等待客户端来连接自己。客户端也得建立好自己的PCB结构(创建套接字)。
③:第一次连接开始:客户端发出连接请求,发出请求报文(SYN:握手信号=1,ACK:确认机制=0,SEQ:连接序列=随机数X),
客户端状态:SYN-SENT(同步已发送) - 第二次:同意连接,发送同意报文(SYN:握手信号=1,ACK:确认机制=1,ack:确认信号=X+1,SEQ:连接序号=随机数Y),这里有重新产生一个序列号Y,服务器状态:SYN-RCVD(同步已收到)
- 第三次:客户端收到服务器的连接确认后,必须返回确认连接信号给服务器(ACK:确认机制=1, ack:确认信号=Y+1, SEQ:连接序号=随机数X+1(在上一条请求信号的基础上加1))
客户端状态:ESTAB-LISHED(连接已建立)。当服务器收到之后,服务器状态:ESTAB-LISHED(连接已建立)注意:第三次握手的意义:为了防止已经失效的连接请求报文段突然又传送到了B。

- 第一次:客户端和服务器端一开始都是关闭的。①:当想建立连接的时候,客户端首先主动打开,然后服务器端被动打开。
- 四次挥手释放连接
- 第一次:客户端首先发送连接释放报文段(FIN:终止连接标志=1,seq:序号=X),FIN=1向服务器提出分手。客户端状态:FIN-WAIT-1(终止连接等待状态1)
- 第二次:因TCP的连接是全双工的双向连接,关闭也是要从两边关闭;当服务器收到客户端发来的FIN=1的标志位后,服务器不会立刻向客户端发送FIND=1的请求关闭信息,而是先向客户端发送一个ACK=1的应答信息,表示:你请求关闭的请求我已经收到,但我可能还有数据没有完成传送,你再等下,等我数据传输完成了我就告诉你;确认报文(ACK:确认机制=1,ack:确认信号=X+1,seq:序号=Y)
服务器状态:CLOSE-WAIT(关闭等待),这样客户端到服务器端的连接就释放了
客户端状态:FIN-WAIT-2(终止连接等待状态2) - 第三次:服务器端数据传输完成,没有动洗传输了,服务器这边提出释放连接要求(FIN:终止连接标志=1,ACK:确认机制=1,seq:序号=Z,ack:确认信号=X+1)
服务器状态:LAST-ACK(最后确认) - 第四次:host1收到FIN=1后,host1还是怕由于网络不稳定的原因,怕host2不知道他要断开连接,于是向host2发送ACK=1确认信息进行确认,把自己设置成TIME_WAIT状态并启动定时器,如果host2没有收到ACK,host2端TCP的定时器到达后,会要求host1重新发送ACK,当host2收到ACK后,host2就断开连接;当host1等待2MLS(2倍报文最大生存时间)后,没有收到host2的重传请求后,他就知道host2已收到了ACK,所以host1此时才关闭自己的连接。这一点我觉得设计得非常巧妙
TCP/IP的三次握手和四次放手的更多相关文章
- TCP/IP协议三次握手与四次握手流程解析
原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...
- TCP/IP协议三次握手与四次握手流程解析(转载及总结)
原文地址:http://www.2cto.com/net/201310/251896.html,转载请注明出处: TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式 TCP/IP协议的详 ...
- TCP/IP协议三次握手与四次握手
TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式 上图中有几个 ...
- TCP/IP协议三次握手和四次挥手大白话解说
前言 昨天晚上被一位师傅问到了TCP/IP的工作机制,心里很清楚三次握手,然而对于四次挥手却忘了,这是大学习里学过的,奋而翻阅书籍和网络对之前所学的做一个温顾,算是夯实自我吧. TCP(Transmi ...
- 白话解说TCP/IP协议三次握手和四次挥手
白话解说TCP/IP协议三次握手和四次挥手 1.背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 1.1.问题 有时候聊天的过程中,我的 ...
- TCP/IP协议 三次握手与四次挥手
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...
- TCP/IP协议 三次握手与四次挥手【转】
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号 ...
- TCP/IP协议三次握手与四次握手流程解析(转)
一.TCP报文格式 下面是TCP报文格式图: 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标 ...
- 【协议】2、TCP/IP协议三次握手与四次握手流程解析
一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序 ...
随机推荐
- Magic Index 寻找数组中A[i]=i的位置(原题转自微信号待字闺中)
有一个有意思的题目叫做Magic Index:给定一个数组A,其中有一个位置被称为Magic Index,含义是:如果i是Magic Index,则A[i] = i.假设A中的元素递增有序.且不重复, ...
- 如果两个人,两台电脑同时登录同一个帐号,同时对同一个账单提交,账单同时被服务器处理,那服务器应该先处理谁的,或者怎么规避这个问题。 非单点登录,重定向,stoken拦截器的问题
方法一:给用户设置个状态 服务器端坐标记,比如数据库中增加一列,标识是否登陆,登录时先判断这个就行了,不过要考虑非正常退出的情况 http 方法二:在用户表里面 多加一个状态字段,登录成功 改变状态 ...
- C的随想
c用的是操作系统函数,这个一下子就限制了APi的数量,通过组合这些系统api即可实现功能. c开发的人一般都会熟记系统函数,然后需要确定函数参数的时候,通过man指令进行查看 对于32位64位将会导致 ...
- BZOJ4303:数列
浅谈\(K-D\) \(Tree\):https://www.cnblogs.com/AKMer/p/10387266.html 题目传送门:https://lydsy.com/JudgeOnline ...
- bzoj 3505 [Cqoi2014]数三角形——排列组合
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3505 好题!一定要经常回顾! 那个 一条斜线上的点的个数是其两端点横坐标之差和纵坐标之差的g ...
- CF gym 101933 K King's Colors —— 二项式反演
题目:http://codeforces.com/gym/101933/problem/K 其实每个点的颜色只要和父亲不一样即可: 所以至多 i 种颜色就是 \( i * (i-1)^{n-1} \) ...
- [IIS] 不能加载类型System.ServiceModel.Activation.HttpModule
Could not load type ‘System.ServiceModel.Activation.HttpModule’ from assembly ‘System.ServiceModel, ...
- QString 乱谈(1)
一个月前尝试写了一篇关于QStringLiteral,存盘时MoinMoin罢工了.吸取一点经验,还是写成短篇吧 可是,可是,QString不就是简简单单一个字符串么?能有什么可谈的.真的么... ( ...
- Disconf web管理端安装
1.环境配置配置java.maven环境,并安装mysql,reids,zookeeeper,Nginx2.下载disconf下载https://codeload.github.com/knightl ...
- L2-014. 列车调度(set的使用,最长递增子序列)
L2-014. 列车调度 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 火车站的列车调度铁轨的结构如下图所示. Figure ...
