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

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

相关推荐

  1. 计算机网络难点遗忘总结

    2024-01-19 11:34:04       52 阅读
  2. 计算机网络英文总结

    2024-01-19 11:34:04       52 阅读
  3. 计算机网络总结

    2024-01-19 11:34:04       45 阅读
  4. 计算机网络---知识

    2024-01-19 11:34:04       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-19 11:34:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-19 11:34:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-19 11:34:04       87 阅读
  4. Python语言-面向对象

    2024-01-19 11:34:04       96 阅读

热门阅读

  1. XR虚拟拍摄技术:开启短剧与微剧的全新篇章

    2024-01-19 11:34:04       56 阅读
  2. XR虚拍技术:微剧与短剧的未来之路

    2024-01-19 11:34:04       51 阅读
  3. rsync 用法

    2024-01-19 11:34:04       45 阅读
  4. 3.无重复字符的最长子串

    2024-01-19 11:34:04       53 阅读
  5. iOS 如何使用protocol Buffers

    2024-01-19 11:34:04       64 阅读
  6. Oracle BIEE 示例(一)数据透视表

    2024-01-19 11:34:04       54 阅读
  7. 多数据源配置H2 Mysql

    2024-01-19 11:34:04       57 阅读
  8. 通用导出模板

    2024-01-19 11:34:04       48 阅读