问答题172/1053讲一讲7层网络模型,tcp的为什么要三次握手

难度:
2022-04-09 创建

参考答案:

7 层网络模型(OSI 模型)

OSI 模型是一个抽象的网络通信框架,将通信任务分为七个层次,每一层都提供特定功能。


OSI 7 层结构

  1. 物理层(Physical Layer)

    • 功能:负责数据的物理传输,处理电平、光信号、接口等硬件相关问题。
    • 设备:网线、光纤、集线器、网络接口卡。
    • 传输单位:比特(Bit)。
  2. 数据链路层(Data Link Layer)

    • 功能:将比特组装成帧,提供可靠的点对点传输,处理差错检测和纠正。
    • 协议:Ethernet、PPP、HDLC。
    • 设备:交换机。
    • 传输单位:帧(Frame)。
  3. 网络层(Network Layer)

    • 功能:负责数据的路由和转发,实现不同网络间的通信。
    • 协议:IP、ICMP、IGMP。
    • 设备:路由器。
    • 传输单位:分组/数据包(Packet)。
  4. 传输层(Transport Layer)

    • 功能:提供端到端的通信,负责数据分段、重组,确保可靠性(如 TCP)或快速性(如 UDP)。
    • 协议:TCP、UDP。
    • 传输单位:段(Segment)。
  5. 会话层(Session Layer)

    • 功能:建立、管理、终止会话,处理会话的同步与恢复。
    • 协议:NetBIOS、RPC。
  6. 表示层(Presentation Layer)

    • 功能:处理数据的表示、加密、解密、压缩,保证数据格式的正确性。
    • 协议:SSL/TLS、JPEG、MPEG。
  7. 应用层(Application Layer)

    • 功能:提供用户与网络之间的接口,直接面向用户。
    • 协议:HTTP、FTP、SMTP、DNS。

TCP 为什么要三次握手?

三次握手的目的

TCP 是面向连接的协议,三次握手用于在客户端与服务器之间建立可靠的通信通道,确保双方的收发能力正常,并防止旧连接的干扰。


三次握手过程

  1. 第一次握手:客户端发送 SYN

    • 客户端向服务器发送一个 SYN(同步)包,表示希望建立连接,并请求序列号(如 seq=x)。
    • 目的:告诉服务器,客户端希望建立连接。
  2. 第二次握手:服务器回复 SYN-ACK

    • 服务器收到 SYN 包后,确认客户端的请求,回复 SYN-ACK 包,包含服务器的序列号(如 seq=y)和确认号(如 ack=x+1)。
    • 目的:告诉客户端,服务器收到连接请求,并可以进行通信。
  3. 第三次握手:客户端发送 ACK

    • 客户端收到 SYN-ACK 包后,发送 ACK 包,包含确认号(如 ack=y+1)。
    • 连接建立,双方可以开始通信。
    • 目的:确认服务器的回复,建立可靠连接。

为什么不能是两次握手?

  1. 两次握手可能导致旧连接误导
    如果网络中有延迟的旧 SYN 包,服务器收到后建立连接,而客户端早已关闭,服务器资源可能被浪费。

  2. 三次握手确保双方状态正常

    • 第一次:客户端确认自己可以发送数据。
    • 第二次:服务器确认自己可以接收并发送数据。
    • 第三次:客户端确认自己可以接收数据。

最近更新时间:2024-12-08