本文介绍: 文章目录1. 单工通信、半双工通信和全双工通信1. 单工通信、半双工通信和全双工通信主要区别在于信息传输的方向和时间安排。单工通信是指信息只能在一个方向上传输的通信方式。半双工通信允许信息在两个方向上传输,但在任何给定的时间,只有一个方向上的设备可以发送信息。全双工通信是指在任何给定的时间,通信的双方都可以同时发送和接收信息。
1. 单工通信、半双工通信和全双工通信
- 主要区别在于信息传输的方向和时间安排。
- 单工通信是指信息只能在一个方向上传输的通信方式。
- 半双工通信允许信息在两个方向上传输,但在任何给定的时间,只有一个方向上的设备可以发送信息。
- 全双工通信是指在任何给定的时间,通信的双方都可以同时发送和接收信息。
2. TCP的三次握手和四次挥手
- 三次握手是为了建立TCP连接,其具体过程如下:
- 第一次握手(发送连接请求):客户端发送SYN包(SYN=1,seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认。
- 第二次握手(确认收到请求):服务器收到SYN包,必须确认客户端的SYN(ACK=1,ack=x+1),同时自己也发送一个SYN包(SYN=1,seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。
- 第三次握手(确认收到请求的确认):客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=1,ack=y+1,seq=x+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
- 四次挥手是为了终止TCP连接,具体过程如下:
- 第一次挥手(客户端发送终止请求,主动关闭TCP连接):客户端发送一个FIN报文,报文中会指定一个序列号,并停止再发送数据,主动关闭TCP连接,进入FIN-WAIT-1(终止等待1)状态,等待服务端的确认。
- 第二次挥手(服务端确认收到请求):服务端收到FIN之后,会发送ACK报文,且把客户端的序列号值+1作为ACK报文的序列号值,表明已经收到客户端的报文了,此时服务端处于CLOSE_WAIT(关闭等待)状态。客户端收到服务端的确认后,进入FIN-WAIT-2(终止等待2)状态,等待服务端发出的连接释放报文段。
- 第三次挥手(服务端发送终止请求,等待最后确认):如果服务端也想断开连接了,和客户端的第一次挥手一样,发给FIN报文,且指定一个序列号。此时服务端处于LAST_ACK(最后确认)的状态。即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。
- 第四次挥手(客户端确认收到请求,服务端关闭连接):客户端收到FIN之后,一样发送一个ACK报文作为应答,且把服务端的序列号值+1作为自己ACK报文的序列号值,此时客户端处于TIME_WAIT(时间等待)状态。需要过一阵子以确保服务端收到自己的ACK报文之后才会进入CLOSED(关闭)状态。服务端收到ACK报文之后,就处于关闭连接了,处于CLOSED状态。即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。
原文地址:https://blog.csdn.net/weixin_45725295/article/details/135666975
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_60536.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。