本文主要是介绍渐显解析 tcp 三次握手四次挥手 socket,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
客户端点击发送请求。 先进入内核,传输控制层阻塞,网络层查找ip ,链路层先看有无mark地址,有地址则往下进行,无地址将在内核中进行广播查找mark地址(先进行arp请i求, 抓包显示的过程会先显示arp)
TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)
抓包显示三次握手 四次挥手 以及传输过程
三次握手
1. 第一次握手:客户端 -> 服务端 (表明客户端有发送信息的能力)
客户端向服务端发送请求报文,请求建立连接,等待服务端确认。发送字段:
SYN=1(synchronization 同步。请求建立连接)
Seq=x(sequence 客户端序列号)
2. 第二次握手: 服务端 -> 客户端 (表明服务端有接收信息和发送信息的能力)
服务端表明收到请求报文并同意建立连接,发送确认报文,询问客户端是否准备好。返回字段:
SYN=1(同意建立连接)
ACK=x+1(acknowledgement 答复。客户端序列号+1)
Seq=y(服务端序列号)
3. 第三次握手:客户端 -> 服务端 (表明客户端有接收信息的能力)
客户端表明收到确认报文,再返回服务端一个确认报文,表示准备开始发送信息。发送字段:
SYN=0(开始发送信息)
ACK=y+1(服务端序列号+1)
Seq=x+1(序列号设置为服务端ACK)
都是0字节,因为都是内核在运行。
传输过程中
无论是服务端还是客户端,只要有一方向另一方发送了数据,另一方必须返回ack确认
四次挥手
这篇关于渐显解析 tcp 三次握手四次挥手 socket的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!