关于三次握手,四次挥手

TCP建立连接的过程-----------三次握手

建立一个双向链接的过程(建立一个A----->B的会话,再建立一个B----->A的会话)

A先给B发信息,请求建立连接(SYN--请求标记位  置1) ----B收到A的“请求建立连接”包,给A回消息,ACK确认标记位  置1。---------A----->B的会话建立。

B先给A发消息,请求建立连接(SYN---请求标记位  置1)----A收到B的“请求建立连接”包,给B回消息,ACK确认标记位  置1.----------B----->A的会话建立。

三次握手---B给A回消息的同时(ACK置1)SYN置1

完成TCP建立连接的过程 

加序号

 A先给B发信息,初始序号是随机值----Seq=x

B收到A的“请求建立连接”包,1.给A回消息(ACK=1)--------ACK No.=x+1

                                              2.请求建立连接(SYN=1)------Seq =y

A收到B的“请求建立连接”包,1.给B回消息(ACK=1)----------ACK No. =y+1       

B希望A将x+1的数据包发回去-----------Seq=x+1

TCP断开连接的过程--------四次挥手(考虑到两边是否扔完数据)

A想跟B结束会话,FIN(结束标记位)置1

B收到A的请求,ACK置1

B想跟A结束会话,FIN=1

A收到B的请求,ACK=1

(该过程需要4个数据包--------四次挥手)

至此,TCP连接过程断开

PS:三次握手中,ACK和SYN合并到一个包中--------没有牵扯到任何数据(连接未建立之前)

                        但是连接一旦建立,会牵扯到收发数据

                        A和B的数据不同,假设A少B多,A先将数据传完-------可断开连接

                        A断开连接后,B的数据没传完------B不能断开与A的连接

                        B确认自己的数据发完后才会发FIN包

                        A回一个ACK包--------彻底断开连接

特例(真实情况下):1.若AB数据相同,那么四次挥手可能看到三次挥手,将ACK与FIN合到一  起发包

                                    2.两次挥手-------A给B发消息并断开,看不到B给A发消息并断开------B的数据一直没发完

                                        3.一次挥手------A给B发消息,B不回消息--------超时,自动断开

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值