66-TCP浅析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33781658/article/details/84539960



TCP通信包括3次握手和4次挥手
我们分别来说一下


第一阶段.三次握手
1.首先client给server发送一个随机的SYN号
2.s收到这个SYN后,会发送一个SYN+1的ACK确认号,并且同时发送另一个随机的SYN号
3.c收到s发送的ACK和SYN,就发送一个s的SYN+1的ACK确认号

这样就是三次握手了
很简单吧


第二阶段.数据传输
1.c开始发送数据,会在刚刚s发送过来的ACK上给一个数据的计数,
比如刚刚s发过来的是1001,现在我的数据是20个长度,那么就是1001(20)
再加上自己的ACK确认号8001
2.s收到后,也是一样,发送来自c的确认号,8001,然后加上长度8001(10)
然后再加上刚刚c发过来的1001(20),加起来就是1021,所以这次ACK是1021
3.c收到之后,再发送一下来自s的8001(10),加起来就是8010


第三阶段.四次挥手
1.c发送一个FIN号,表示自己要关闭了,再发一个ACK确认号
2.s收到之后,回复一个ACK确认号
3.处理好s自己的事情后,再发送一个FIN号,表示s也要关闭了,一个ACK确认号
4.c收到后,发送一个ACK确认号


SYN---同步序列编号,表示建立连接
ACK---确认字符,表示发来的数据已经确认接收了
FIN---表示关闭连接

ACK=SYN+1
ACK=FIN+1

客户端和服务器端分别有三个对应的状态变化

客户端
	1.Closed
	2.SYN-send
	3.established

服务器端
	1.listen
	2.SYN-received
	3.established



猜你喜欢

转载自blog.csdn.net/qq_33781658/article/details/84539960
66