tcp三次握手和四次挥手的全过程_TCP/IP的三次握手与四次挥手

 是新朋友吗?记得先点“地铁超人的学习笔记”关注我哦~

跟着小编学习,计算机网络知识之TCP/IP的三次握手与四次挥手。

ce2564a5b3a9151406e1bc75d6c80468.png

一、三次握手

TCP三次握手,就是指建立1个TCP连接,需要客户端和服务器端总共发送3个数据包,其目的就是连接服务器端指定端口,建立TCP连接,并同步双方的序列号和确认号,交换TCP窗口大小信息。

TCP的传输连接分为3个阶段,连接建立(三次握手),数据传送和连接释放(四次挥手)。TCP传输连接的管理就是使传输连接建立和释放都能正常的进行。两个序号和三个标志位:

  • 序号:seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

  • 确认序号:ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,ack=seq+1。

  • 标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:

(A)URG:紧急指针(urgent pointer)有效。

(B)ACK:确认序号有效。

(C)PSH:接收方应该尽快将这个报文交给应用层。

(D)RST:重置连接。

(E)SYN:发起一个新连接。

(F)FIN:释放一个连接。

最开始的时候,客户端和服务器都是处于关闭(CLOSED)状态,主动打开连接的是客户端,被动打开连接的是服务器。

二、四次挥手

所谓的四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接断开,在socket编程中,这一过程由客户端或服务器端任一方执行close来触发。数据传输完毕,双方都可释放连接,最开始的时候,客户端和服务器端都是处于ESTABLISHED状态(ESTABLISHED表示建立连接,两台设备正在通信),然后客户端主动关闭,服务器端被动关闭。

由于TCP连接是全双工,因此,每个方向都必须要单独进行关闭,这一原则是当完成数据方任务后,发送一个FIN来终止这一方向的连接,收到一个FIN意味着这一方向上就没有数据流了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN,首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭。

8b1816c551eff59f24561ae19a06a476.png

通常情况下通信双方不会出现四次挥手中断数据传输。通过分析故障时刻的接口通信报文,率先发现哪方发起四次挥手的FIN包,可以初步判断是由发起方引起的通信中断。如发生退出问题,根据四次挥手协议可知,当一方发起中断时,必定会率先向另一方发送FIN包,用于告知对方要中断数据传输。

TCP协议规定,对于已经建立的连接,网络设备双方要进行四次挥手才能成功断开连接,如果缺少其中某个步骤,将会使得连接处于假死状态,连接本身占用的资源就不会被释放。网络服务器进程要同时管理大量连接,因此要确保无用连接完全断开,否则大量假死的连接会浪费可用资源。

三、单工、半双工、全双工【考点】

单工、半双工、全双工通信定义如下:

(1)单工:两个终端通信是单向的,同一时刻通信只在固定的1个方向。

(2)半双工:在单工的基础上,每个终端即可作为发送端,也可作为接收端,数据传输方向上是两个方向都可以传输,但不能同时收发数据。RS485属于半双工串口通信。

(3)全双工:在半双工基础上,通信双方的发送和接收可同时进行。RS232和RS422都属于全双工通信。

efc6e3710f9accc07cadcd14e7f6ba36.gif c6652686cc4b32bc51aec17e4d2f847b.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值