TCP/IP协议三次握手与四次挥手
一.标志位和序号
seq序号 :发送方随机生成的
ack确认序号:ack=seq+1 标志位ACK=1时确认序号有效
SYN标志位:发起一个新连接
ACK标志位:确认序号有效
FIN标志位:断开连接
二.三次握手
三次握手是客户端与服务端建立一个TCP连接时,需要客户端和服务端发送三个包建立连接的过程
(1)第一次握手
客户端将SYN置为1,随机产生一个seq序号=J,将该数据包发送给服务端,客户端此时状态为SYN_SEND
(2)第二次握手
服务端收到客户端发送的数据包由SYN=1知道客户端要建立连接,客户端将SYN和ACK都置为1,同时发送确认序号ack=J+1
随机产生一个服务端序号seq=K,将此数据包发送给客户端。服务端此时的状态为SYN_REVD
(3)第三次握手
客户端收到服务端的数据包,由ACK=1,ack=J+1无误,客户端将ACK置为1,ack=K+1发给服务端
服务端收到ACK=1,ack=K+1连接建立成功。客户端和服务端此时的状态为ESTABLISHED
三.四次挥手
四次挥手是断开TCP连接的时候,需要客户端和服务端发送四次包确认连接的断开,断开连接可由服务端或客户端任意一方触发
(1)第一次挥手
假设客户端主动关闭。客户端发送关闭连接标志位FIN=1,序号seq=m。客户端此时状态为FIN_WAIT_1
(2)第二次挥手
服务端收到标志位FIN=1,知道客户端要关闭连接,客户端发送标志位ACK=1,确认序号ack=m+1,seq=n。
服务端并没有发送FIN标志位,因为服务端可能还有数据要发送 。此时服务端处于CLOSE_WAIT状态,客户端处于FIN_WAIT_2状态
(3)第三次挥手
服务端发送标志位FIN=1,seq=u 。此时服务端处于LAST_ACK状态
(4)第四次挥手
客户端收到FIN,发送ACK=1,确认序号ack=u+1给服务端。客户端进入TIME_WAIT状态。释放连接完成
TCP/IP协议三次握手与四次挥手的更多相关文章
- 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/IP协议三次握手_四次挥手
TCP/IP协议 TCP是一种面向连接的端到端的可靠传输协议. TCP报头格式 三次握手的过程 一.客户端发送一个连接请求,发送一个随机数X,这时客户端的端口状态变为SYN_SENT状态. 二.服务端 ...
- 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报文格式 上图中有几个 ...
随机推荐
- Redis入门到高可用(八)——list
一.结构 key - value 结构,value是一个有序队列. 可进行左边的添加及弹出,右边的添加及弹出. 可获取列表的长度,删除列表中指定元素,获取列表的子列表,按照索引获取列表的指定元素. 特 ...
- vue中less的使用
1.安装:npm install less less-loader --save 2.修改webpack.config.js文件,配置loader加载依赖,让其支持外部的less,在原来的代码上添加 ...
- 后续使用dubbo的必要性的思考
要做微服务,要做分布式,就得先解决网络调用即rpc的问题
- 多线程:QueueUserWorkItem引发的闭包与变量共享
//1. public void SaveModel(testmodel msg) { ThreadPool.QueueUserWorkItem(new WaitCallback(SaveModelT ...
- iOS 开发常用链接总结
知识归纳 1.招聘一个靠谱的程序员 面试题答案 https://github.com/ChenYilong/iOSInterviewQuestions 2.中文 iOS/Mac 开发博客列表 http ...
- iOS UI进阶-1.1 Quartz2D 图片水印/裁剪/截图
图片水印 UIImage+MJ.h #import <UIKit/UIKit.h> @interface UIImage (MJ) /** * 打水印 * * @param bg 背景图片 ...
- iOS 开发笔记-NSURLConnection的使用
通过NSURLConnection发送一个HTTP GET请求 //send a GET request to server with some params -(void)httpGetWithPa ...
- @responsebody 返回json
添加jackson依赖 添加@ResponseBody 测试: 注意,如果输入中文,出现乱码现象,则需要@RequestMapping(value="/appinterface" ...
- servlet的请求转发与重定向
重定向: Spring的重定向 spring的请求转发:
- 函数式编程语言(functional language)
内容根据百度词条整理! 转载请声明来源:https://baike.baidu.com/item/%E5%87%BD%E6%95%B0%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8 ...