tcp协议三次握手与四次挥手过程

1.分析三次握手之前,了解几个概念
    tcp:传输层的传输控制协议,采用三次握手建立一个连接。
    位码:即tcp标志位,有6种提示:
        SYN:synchronus,建立联机
        ACK:acknowledgement,确认
        PUSH:push,传送
        FIN:finish,结束
        RST:reset,重置
        URG:urgent,紧急
    Sequence number:顺序号码
    Acknowledge number:确认号码
2.握手过程
    第一次握手:
        主机A发送SYN=1,seq number=123456的数据包到服务器B,主机B由SYN=1知道,主机A要求建立联机。
    第二次握手:
        主机B收到请求后需要确认联机信息,需要向A发送ACK=1,ack number=(主机A的seq+1),syn=1,随机数 seq number=7654321的包。
    第三次握手:    
        主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack=1是否正确,若正确,主机A会在发送ack=1,
        ack number=(主机B的seq+1)到B,主机B收到后确认ack=1和ack number,建立连接
3.数据传输
    三次握手成功后,开始数据的传输

################四次挥手过程###############
4.四次挥手的原因
    由于TCP的半关闭特性,TCP连接时全双工(即数据在两个方向上能够同时传递),因此,每个方向上必须单独进行关闭。这个原则就是:
    当一方完成它的数据发送任务后就能够发送一个FIN来终止这个方向上的连接。当一端收到一个FIN后,它必须通知应用层另一端已经终止了
    那个方向的数据传送。即收到一个FIN意味着这一方向上没有数据流动了。
5.目的:保证服务器和客户端都能够完全的接收对方发送的数据。
6.挥手过程
    第一次挥手:主机A向主机B发送FIN包;A告诉B,我(A)发送给你(B)的数据大小是N,我发送完毕,请求断开A->B的连接
    第二次挥手:主机B收到了A发送的FIN包,并向主机A发送ACK包;B回答A,是的,我总共收到了你发给我N大小的数据,A->B连接关闭。
    第三次挥手:主机B向主机A发送FIN包;B告诉A,我(B)发送给你(A)的数据大小是M,我发送完毕,请求断开B->A的连接。
    第四次挥手:主机A收到了B发送的FIN包,并向主机B发送ACK包;A回答B,是的,我总共收到了你发给我M大小的数据,B-A连接关闭。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值