TCP 连接三次握手与四次挥手
来源:互联网 发布:八分钟解读大数据 编辑:程序博客网 时间:2024/05/16 15:04
1. 三次握手
TCP提供的是面向连接服务, 在一个主机(客户端)上的进程想与另一台主机(服务端)上的一个进程建立连接时会进行 “三次握手”:
1. 客户端TCP向服务端TCP发送一个特殊TCP报文, 该报文不含实际数据。 在报文段的首部将SYN(同步序列号)置为1, 并随机选择一个 ISN (初始序列号) client_isn。然后将该报文段封装在一个IP数据报中, 发送给服务器。
2. 服务端在收到数据报后, 从中提取出TCP SYN报文段, 然后为该连接分配TCP缓存和变量, 然后向客户端发送代表允许连接的报文:SYN比特置为1,选择自己的初始序列号server_isn, 设置确认号ACK = client_isn + 1 .
3. 客户端收到服务端的回复消息后也给该连接分配缓存和变量,最后向服务器回复:SYN = 0, seq = client_isn + 1, 确认号ACK = server_isn + 1
至此, 一个TCP连接建立完成。
2. 四次挥手
对一个TCP连接双方, 任何一方都能在必要的时候中断连接,假定此时客户端需要中断连接, 要做的工作如下:
1. 要关闭连接的一方(假如是客户端)首先发送FIN位被置为1的特殊报文,进入FIN_WAIT1状态。
2. 服务端收到此报文后, 得知对方想要终止连接, 于是向上层传送一个EOF, 然后回复 ACK
3. 客户端收到ACK ,进入FIN_WAIT2, 等待服务端的FIN 报文到达。
4. 客户端收到服务端的FIN后回复一个ACK进入TIME_WAIT 状态等待2MSL,确保服务端收到,然后关闭连接。
3. 一个典型TCP客户端生存周期
4. 一个典型TCP服务端生存周期
阅读全文
0 0
- TCP 连接三次握手与四次挥手
- TCP连接与断开(三次握手和四次挥手)
- TCP连接/撤离中的三次握手与四次挥手过程
- TCP连接的“三次握手”与“四次挥手”
- 浅谈TCP连接的三次握手与四次挥手
- TCP连接的三次握手与四次挥手
- TCP 连接管理与释放(三次握手,四次挥手)
- 【TCP连接】三次握手和四次挥手
- TCP连接的三次握手,四次挥手
- TCP连接三次握手,四次挥手告别
- 【TCP连接】三次握手和四次挥手
- tcp连接 三次握手+四次挥手
- TCP连接:“三次握手,四次挥手”
- TCP连接中的三次握手四次挥手
- TCP连接三次握手和四次挥手
- Tcp三次握手与四次挥手
- Tcp三次握手与四次挥手
- TCP/IP三次握手与四次挥手
- 基于JZ2440移植Linux3.4.2内核版本完整搭建笔记
- 字符集和字符编码
- java中正则匹配结果到一个String数组中
- input输入框从右边开始输入
- jQuery节点创建与属性的处理
- TCP 连接三次握手与四次挥手
- Android图像滤镜框架GPUImage使用(一)
- Linux之MakeFile小记
- Unity3d学习笔记 var 关键字
- VC网络编程笔记--进程间通信-邮槽
- DOM内部插入append()与appendTo()
- 深入理解javascript原型和闭包(12)——简介【作用域】
- UVA 1635 Irrelevant Elements 唯一分解定律
- 遇到的一些问题梳理