2.TCP/IP的三次握手与四次挥手
参考文章:http://357742954.blog.51cto.com/368705/1317226
TCP(Transmission Control Protocol) 传输控制协议,是一个面向连接的协议。
在运用此协议进行数据传输前都会进行连接的建立工作(三次握手)
当数据传输完毕,连接的双方都会通知对方要释放此连接(四次挥手)
TCP标志位
tcp标志位有6种标识
1.SYN(synchronous )建立联机
2.ACK(acknowledgement)确认
3.PSH(push)传送
4.FIN(finsh)结束
5.RST(reset)重置
6.URG(urgent)紧急
图解TCP与UDP的三次握手与四次挥手过程

三次握手过程:
第一次握手:host1发送一个TCP标志位 SYN=1、ACK=0的数据包给host2,并随机会产生一个Sequence number=1110,当host2接受到这个数据后,host2由SYN=1可知客户端是想要建立连接
第二次握手:host2要对客户端的联机请求进行确认,向host1发送应答号ACK=1、SYN=1、确认号Acknowledge number =1111,此值是host1的序列号+1,还会产生一个随机的序列号Sequence number = 22222,这样就告诉host1可以进行连接;
第三次握手:host1收到数据后检查Acknowledge number 是否是1110 + 1的值,以及ACK的值是否为1,若为1,host1会发送ACK = 1、确认号码Acknowledge number = 22222,告诉host2,你的请求连接被确认,连接可以建立
四次挥手过程:
第一次挥手:当传输的数据到达尾部时,host1向host2发送FIN = 1标志位;可理解成,host1向host2说,我这边数据传送完成了,我准备断开连接了
第二次挥手,因TCP的连接是全双工的双向连接,关闭也是要从两边关闭;当host2收到host1发来的FIN=1的标志位后,host2不会立刻向host1发送FIND=1的请求关闭信息,而是先向host1发送一个ACK=1的应答信息,表示:你请求关闭的请求我已经收到,但我可能还有数据没有完成传送,你再等下,等我数据传输完成了我就告诉你
第三次挥手:host2数据传输完成,向host1发送FIN=1,host1收到请求关闭 连接的请求后,host1就明白host2的数据已经传输完成,现在可以断开连接了
第四次挥手:host1收到FIN = 1后,host1还是怕由于网络不稳定的原因,怕host2不知道他要断开连接,于是向host2发送ACK = 1确认信息进行确认,把自己(host1)设置成TIME_WAIT的状态并启动2MSL定时器,如果host2没有收到ACK,host2端重传定时器触发,会重发FIN = 1,要求host1重新发送ACK,当host2收到ACK后,host2就断开连接;;当host1等待2MSL(2倍报文最大生存时间)后,仍然没有收到host2的重传请求,他就知道 host2已经收到了ACK,所以 host1此时才关闭连接,否则会重复上述过程,如果被动一方始终没能收到ACK,最终会超过最大重传次数,连接被关闭 这一点设计地很巧妙

深入理解TCP连接的释放:
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意外着这一方向上没有数据流动,一个TCP连接在收到一个FIN仍然能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
TCP协议的连接是全双工连接,一个TCP连接存在双向的读写通道
简单来说是 “先关读,后关写”,一共需要四个阶段。以客户机发送关闭连接为例
1.服务器读通道关闭
2.客户机写通道关闭
3.客户机读通道关闭
4.服务器写通道关闭
2.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((Transmission Control Protocol)传输控制协议,是一个面向连接的协议.在运用此协议进行数据传输前都会进行连接的建立工作(三次握手):当数据传输完毕,连接的双方都会通 ...
- TCP/IP的三次握手与四次挥手详解
TCP((Transmission Control Protocol)传输控制协议,是一个面向连接的协议.在运用此协议进行数据传输前都会进行连接的建立工作(三次握手):当数据传输完毕,连接的双方都会通 ...
- TCP/IP协议三次握手_四次挥手
TCP/IP协议 TCP是一种面向连接的端到端的可靠传输协议. TCP报头格式 三次握手的过程 一.客户端发送一个连接请求,发送一个随机数X,这时客户端的端口状态变为SYN_SENT状态. 二.服务端 ...
- 关于TCP/IP的三次握手和四次挥手解释
TCP协议三次握手过程分析 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: ...
随机推荐
- Q_PROPERTY
1.在自定义控件中看到这个用法 2.Q_PROPERTY(double Min READ getMin WRITE setMin) 代表当前类有一个double属性叫Min,有一个读函数getMin, ...
- 【转】Selenium-WebDriverApi接口详解
浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() 获取标签元素 # 通过ID定位目标元素 driver.find ...
- (九)会话跟踪技术之Cookie
--部分摘自孤傲苍狼博客~ 一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再 ...
- spark报错:invalid token
启动spark报错,启动container失败,去看yarn的日志,显示invalid token, 经过排查是hadoop子节点的配置和主节点的配置不一致导致的,同步之后,问题解决.
- ES6-类(Class)
ES6躬行记(20)——类 ES6正式将类(Class)的概念在语法层面标准化,今后不必再用构造函数模拟类的行为.而ES6引入的类本质上只是个语法糖(即代码更为简洁.语义更为清晰),其大部分功能(例如 ...
- c#关于Dictionary中自定义Key
Dictionary 描述 字典 Dictionary 通过 Hash 桶算法进行O(1)查找数据,在 Hash 碰撞达到一定次数后会自动进行 Resize,也会在数组大小不足的时候会自动进行Resi ...
- MySQL“Another MySQL daemon already running with the same unix socket”的处理
方法一: rm var/lib/mysql/mysql.sock service mysqld start 方法二: mv /var/lib/mysql/mysql.sock /var/lib/mys ...
- Flarum 安装问题 编译安装 fileinfo.so
大部分人上传 会遇到文件没有权限这一问题 ,这个好解决 下边是服务器 php.ini 扩展 fileinfo 由于php 版本是7.1.8 最新的 又是用的一键环境安装 所以 没有安装这个扩展 1.去 ...
- 给引入页面的js和css资源加上版本号,防止浏览器缓存资源
最近因为在做前端开发的相关工作,每次发布新版本以后,不到5分钟,测试童鞋一个接一个的抱怨说BUG根本就没有修改,这个时候你说的最多的话就是“清缓存!!清页面缓存!!你没有清缓存!!你清理了页面缓存就对 ...
- C#基础知识学习 三