深入理解网络模型:OSI与TCP/IP

一、网络模型概述

网络模型是为了降低数据在网络中传输的复杂度而提出的分层结构。它使得网络通信过程变得模块化,每一层都有明确的功能定义,这极大地便利了网络协议的设计、故障排查和分析。

目前主要存在两种模型:

  • OSI七层参考模型:理论上的标准模型,定义了网络功能的完美框架。
  • TCP/IP五层模型:事实上的工业标准,是互联网真正运行的协议栈。

二、OSI七层模型与TCP/IP五层模型

OSI七层模型

Open System Interconnect(开放式系统互连参考模型),共分为七层:

  1. 应用层 (Application Layer)
  2. 表示层 (Presentation Layer)
  3. 会话层 (Session Layer)
  4. 传输层 (Transport Layer)
  5. 网络层 (Network Layer)
  6. 数据链路层 (Data Link Layer)
  7. 物理层 (Physical Layer)

TCP/IP五层模型

在实际应用中,通常将OSI的上三层(应用层、表示层、会话层)合并为一层,形成更实用的五层模型

  1. 应用层 (Application Layer)
  2. 传输层 (Transport Layer)
  3. 网络层 (Network Layer)
  4. 数据链路层 (Data Link Layer)
  5. 物理层 (Physical Layer)

三、各层功能详解

1. 应用层 (Application Layer)

  • 功能:提供人与网络间的接口,各种软件(如浏览器、微信、邮件客户端)就在这一层运作。
  • 作用产生需要传输的数据
  • 典型协议:HTTP, HTTPS, FTP, DNS, DHCP, NTP等。

2. 表示层 (Presentation Layer)

  • 功能:负责数据格式的转换,确保一个系统应用层发出的信息能被另一个系统的应用层读取。
  • 具体工作加/解密压缩/解压缩编码/解码(如将图片转换为二进制数据)。

3. 会话层 (Session Layer)

  • 功能:负责建立、维持和断开一次通信会话。
  • 例子:当你登录一个网站时,会话层负责管理你从登录到退出的整个连接过程。

4. 传输层 (Transport Layer)

  • 核心功能:负责实现数据端到端的传输。所谓“端”就是主机上的应用程序。
  • 关键概念端口号 (Port)。端口号用于识别主机上不同的应用程序,范围是 1—65535
    • 例如:Web服务默认使用80端口,FTP服务默认使用21端口。
  • 查看命令:使用 netstat -an 命令可以查看本机正在监听和建立的网络连接及其端口号。

5. 网络层 (Network Layer)

  • 功能:负责数据网络到网络(或网段到网段)的通信,即选路
  • 典型设备路由器 (Router)
  • 依赖的地址IP地址
  • 典型协议:IP协议、ICMP协议(ping命令就用它)、ARP协议。

6. 数据链路层 (Data Link Layer)

  • 功能:负责数据点到点的通信(例如,同一局域网内从一台交换机到另一台交换机)。
  • 典型设备交换机 (Switch)
  • 依赖的地址MAC地址(物理地址、硬件地址),理论上全球唯一。
  • 查看命令:使用 ipconfig /all 命令中的“物理地址”就是本机网卡的MAC地址。

7. 物理层 (Physical Layer)

  • 功能:定义物理设备的标准,负责在物理介质上传输原始的比特流(0和1)。
  • 关心的问题:电压、线缆规格、接口类型、信号传输距离等。

四、数据的封装与解封装

数据在网络中传输时,就像寄送一个包裹,需要经过层层打包和拆包的过程。

封装过程 (发送端)

数据从应用层产生,自上而下传输,每经过一层都会被添加一个该层的“头部”信息(就像给包裹加一层包装和快递单),这个过程称为封装

  1. 应用层:产生原始数据。
  2. 传输层:将数据分段,并添加TCP或UDP头部,头部中包含源端口号目的端口号。封装后的数据称为段 (Segment)
  3. 网络层:添加IP头部,头部中包含源IP地址目的IP地址。封装后的数据称为包 (Packet)
  4. 数据链路层:添加以太网头部和尾部,头部中包含源MAC地址目的MAC地址。封装后的数据称为帧 (Frame)
  5. 物理层:将帧转换成比特流,通过网线、光纤等物理介质发送出去。

解封装过程 (接收端)

接收端自下而上接收数据,逐层剥离头部,读取信息,最终将原始数据送达目标应用程序,这个过程称为解封装

  1. 物理层:接收比特流,将其重组为数据帧。
  2. 数据链路层:查看帧头中的MAC地址,如果目标是本机,则剥离帧头和帧尾,将数据包向上传递给网络层。
  3. 网络层:查看IP包头中的IP地址,确认无误后,剥离IP头,将数据段向上传递给传输层。
  4. 传输层:查看TCP/UDP头中的端口号,确定是哪个应用程序的数据,剥离传输层头,将原始数据向上传递给应用层。
  5. 应用层:将数据呈现给用户。

五、典型协议详解

1. 应用层协议

  • HTTP/HTTPS:超文本传输协议,用于访问网站。HTTP是明文的,HTTPS是加密的。
  • FTP:文件传输协议,用于文件共享和传输。
  • NTP:网络时间协议,用于设备间的时间同步。
  • DHCP:动态主机配置协议,自动为网络中的设备分配IP地址。

2. 传输层协议

TCP (传输控制协议)

  • 特点面向连接可靠传输
  • 可靠性机制:通过确认应答超时重传滑动窗口等机制保证数据不丢失、不重复、按序到达。
  • TCP连接管理
    • 三次握手 (Three-way Handshake):建立连接
      1. 客户端发送SYN报文(同步报文),请求建立连接。
      2. 服务端收到后,回复SYN+ACK报文(同步+确认报文)。
      3. 客户端再回复ACK报文(确认报文)。连接建立成功,双方可以开始传输数据。
    • 四次挥手 (Four-way Handshake):断开连接
      1. 主动方发送FIN报文(结束报文),请求断开连接。
      2. 被动方回复ACK报文,确认收到断开请求。
      3. 被动方处理完剩余数据后,发送自己的FIN报文。
      4. 主动方回复ACK报文。等待一段时间后,连接彻底断开。

UDP (用户数据报协议)

  • 特点无连接不可靠传输
  • 优点:开销小、速度快。
  • 适用场景:视频通话、直播、DNS查询等对实时性要求高、可容忍少量丢失的场景。

3. 网络层协议

ARP (地址解析协议)

  • 作用:根据已知的IP地址,查询其对应的MAC地址
  • 工作过程:设备会在本局域网内广播一个ARP请求:“谁的IP是X.X.X.X?请告诉你的MAC”。目标设备收到后,会单播回复自己的MAC地址。
  • 查看ARP缓存arp -a 命令可以查看本机缓存的IP地址与MAC地址的对应关系。
  • 清空ARP缓存arp -d 命令可以清空缓存表(需要管理员权限)。

总结

网络模型是理解所有网络通信技术的基石。OSI七层模型提供了一个理想的理论框架,而TCP/IP五层模型则是我们每天都在使用的实践标准。数据通过封装解封装在不同层之间流动,每一层都使用特定的协议和地址来完成自己的使命。理解这个过程,对于进行网络配置、故障排除和安全分析都至关重要。

暂无评论

发送评论 编辑评论


				
上一篇
下一篇