TCP 连接的“ 三次握手 ”与“ 四次断开 ”

1、了解相关名词

序列号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。

常见的标志位:
ACK:确认序号有效。
SYN:发起一个新连接。
FIN:释放一个连接。

2、了解netstat中的网络状态

CLOSED -初始(无连接)状态。
LISTEN -侦听状态,等待远程机器的连接请求。 
SYN-SENT -在发送连接请求后等待匹配的连接请求。
SYN-RECEIVED - 在收到和发送一个连接请求后等待对连接请求的确认。
ESTABLISHED- 代表一个打开的连接,数据可以传送给用户。 
FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认。
FIN-WAIT-2 - 从远程TCP等待连接中断请求。
CLOSE-WAIT - 等待从本地用户发来的连接中断请求。 
CLOSING -等待远程TCP对连接中断的确认。
LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认。
TIME-WAIT -等待足够的时间以确保远程TCP接收到连接中断请求的确认。

3、TCP/IP三次握手

在这里插入图片描述
建立TCP连接时,需要客户端和服务器共发送3个包。

• 第一次:客户端发送初始序号x和SYN=1请求标志

• 第二次:服务器发送请求标志SYN,发送确认标志ACK,发送自己的序号seq=y,发送客户端的确认序号ack=x+1

• 第三次:客户端发送ACK确认号,发送自己的序号seq=x+1,发送对方的确认号ack=y+1

4、TCP/IP四次断开

在这里插入图片描述
四次断开过程

• 第一次断开:客户端发出释放FIN=1,自己序列号seq=u,进入FIN-WAIT-1状态

• 第二次断开:服务器收到客户端的后,发出ACK=1确认标志和客户端的确认号ack=u+1,自己的序列号seq=v,进入CLOSE-WAIT状态

• 第三次断开:客户端收到服务器确认结果后,进入FIN-WAIT-2状态。此时服务器发送释放FIN=1信号,确认标志ACK=1,确认序号ack=u+1,自己序号seq=w,服务器进入LAST-ACK(最后确认态)

• 第四次断开:客户端收到回复后,发送确认ACK=1,ack=w+1,自己的seq=u+1,客户端进入TIME-WAIT(时间等待)。客户端经过2个最长报文段寿命后,客户端CLOSE;服务器收到确认后,立刻进入CLOSE状态。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值