【计算机网络】难点、易遗忘点总结

文章目录

  • 1. 单工通信、半双工通信和全双工通信
  • 2. TCP的三次握手和四次挥手

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状态。

你可能感兴趣的:(疑难解答,计算机网络)