TCP传输协议的“三次握手与四次挥手”学习总结

TCP传输过程大致可分为三个阶段:建立连接、传输数据、断开连接

一:建立连接(即三次握手)

浅谈:

第一次握手:客户端向服务器发送连接请求(在吗?)

第二次握手:服务器对客户端想建立连接应答,服务器向客户端发送连接请求(在的。在吗?)

第三次握手:客户端对服务器想建立连接应答(在的。)

深谈:

 先了解在标志位中的三个位:同步位(SYN)、确认位(ACK)、结束位(FIN)

SYN:=1时,表示建立一次连接

ACK:=1时,表示一次应答

FIN:=1时,表示结束连接

再了解序列号(seq)确认号(ack)的含义:

seq:追踪该端成功发送的数据量(数据位数)

ack:通知发送端数据接收成功,为该端成功接收的数据量。

第一次握手:SYN=1,seq=x(客户端随机产生的x),ack=0.

第二次握手:ACK=1、SYN=1,seq=y(服务器端随机产生的y),ack=x+1

(SYN与FIN占一位,上面的x+1表示ACK占一位,此时无有效数据传送)

第三次握手:ACK=1,seq=x+1,ack=y+1。

(该数据包中序列号为上一个同步请求数据包中的确认号,确认号为上一个同步请求数据包中的序列号+SYN的1<数据传输时这里加的是传输的数据位数>)

二:传输数据(举例传了3次)

第一次传输:这是流中第一个携带有效数据的数据包,序列号与确认号与第三次握手保持一致

假设客户端给服务器传了500个字节,(seq=x+1,ack=y+1,)

服务器给客户端应答ACK=1,seq=y+1,ack=x+501,

第二次传输:

假设服务器给客户端传了600个字节(seq=y+1,ack=x+501)

客户端给服务器应答ACK=1,seq=x+501,ack=y+601,

第三次传输:

假设服务器给客户端传了1000个字节(seq=y+601,ack=x+501)

客户端给服务器应答ACK=1,seq=x+501,ack=y+1601;

三:断开连接(即四次挥手)

浅谈:

第一次挥手:客户端发送断开连接请求(我不发了)

第二次挥手:服务器对客户端发送的断开连接请求应答(我不收了)

第三次挥手:服务器对客户端发送断开连接请求(我也不发了)

第四次挥手:客户端对服务器发送的断开连接请求应答(我也不收了)

深谈:

第一次挥手:FIN=1,seq=x+501,ack=y+1601

第二次挥手:ACK=1,seq=y+1601,ack=x+502(FIN占一位)

第三次挥手:FIN=1,ACK=1,seq=y+1601,ack=x+502

第四次挥手:ACK=1,seq=x+502,ack=y+1602(FIN占一位)     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值