TCP(Transmission Control Protocol)传输控制协议

TCP(Transmission Control Protocol)传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

第一次挥手:
TCP发送一个结束请求报文(FIN=1),用来关闭客户端到服务器端的连接。客户端进程发出连接释放报文,并且停止发送数据,随机产生一个序列号(seq=x)。此时客户端进入终止等待状态。

第二次挥手:
服务器端收到(FIN=1)请求报文,并向客户端发送一个确认报文(ACK=1,ask=x+1),并且带上自己随机产生的序列号(seq=z)。此时服务器进入关闭等待状态。TCP通知高层应用进程,客户端向服务器端的方向就释放了。这时为半关闭状态,也就是说客户端已经没有数据要向服务器端发送了,但是如果服务器端还需向客户端发送数据,客户端还需要接收数据。这样的状态将会持续一段时间。客户端收到服务器端的确认请求后,此时客户端进入了终止等待-2状态,等待服务器端发送连接释放报文。

第三次挥手:
服务器端发送一个(FIN=1)结束请求到客户端,告诉客户端,我要与你断开连接啦!服务器关闭客户端的连接。服务器将最后的数据发送完毕后,就向客户端发送请求报文(FIN=1,ask=x+1,ACK=1),同时随机生成一个序列号为y。.由于处于半关闭状态,服务器还有最后的数据需要发送,此时服务器进入了最后的确认状态,等待客户端的确认。

第四次挥手:
客户端发送确认释放报文确认,并发送确认的序列号,这样关闭完成。客户端收到服务器端的连接释放报文后必须发出确认,(ACK=1,ask=y+1),此时客户端进入时间等待状态。这时TCP连接还没有释放,必须等到最长的报文段寿命结束。客户端撤销相应的TCB后进入closed状态。服务器收到客户端发出的确认信息,撤销相应的TCB,立即进入closed状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值