首页 > 代码库 > TCP/IP三次握手详细过程
TCP/IP三次握手详细过程
TCP/IP三次握手详细过程
三次握手名词定义:
ACK :TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
SYN(SYNchronization) :在连接建立时用来同步序号,当SYN=1而ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。
Seq:序号,4字节,范围为0^32—1^32,共4284967296,达到时重新开始计算
三次握手过程:
1,客户端向服务器发送请求连接,报文中包含SYN=1,ACK=0,seq=x,ACK=0
2,服务器收到用户请求并同意建立连接,随后回复客户端SYN=1,ACK=1,seq=y,ack=x+1,ACK=1表示是响应报文,seq=y是产生服务器的包序号,ack=x+1是确认客户端序号有效
3,客户端收到服务器的确认信息,并回复服ACK=1,seq=x+1,ack=y+1,确认序列号为ack=y+1即在服务器序列号y基础上+1,seq=x是将服务器发送的确认号当做 自己的seq序号,以确认服务器的确认号有效,这样客户端的请求和验证即告完成,服务器收到客户端第三次的请求后验证没有问题,随建立连接,并开始打开端口为客户端发送数据。
SYN(synchronous建立联机) ACK(acknowledgement 确认)
PSH(push传送) FIN(finish结束)
RST(reset重置) URG(urgent紧急)
Sequence number(顺序号码) Acknowledge number(确认号码)
本文出自 “Linux 学习” 博客,请务必保留此出处http://zhangshijie.blog.51cto.com/806066/1568487
TCP/IP三次握手详细过程