TCP/IP协议概述

2.6k words

一、网络分层体系

1、OSI参考模型

OSI 参考模型(Open Systems Interconnection Reference Model)是由国际标准化组织(ISO)制定的网络通信框架标准,通过定义七层标准化通信体系,为不同厂商设备互联提供统一规范:

  1. 目的:解决早期网络设备兼容性问题,实现跨厂商、跨平台的互联互通;
  2. 核心思想:分层解耦,每层专注特定功能,下层为上层提供服务;
  3. 意义:虽实际网络中TCP/IP协议栈更常用,但OSI模型仍是网络协议设计的理论基础和教学工具。

2、TCP/IP的分层

网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。TCP/IP分层模型是互联网协议套件的基础,它简化了OSI模型,将网络通信过程划分为四个层次。TCP/IP模型的主要目的是提供一个实际可行的网络通信架构,它是互联网和许多其他网络的基础。TCP /IP,是一组不同层次上的多个协议的组合。 TCP/ IP通常被认为是一个四层协议系统,如下图所示。

  • 应用层:定义数据格式与交互规则,提供 HTTP、FTP、SMTP、DNS 等协议,通过端口与传输层衔接,实现多应用并发。
  • 传输层:通过端口复用实现端到端通信;TCP 提供可靠连接、重传与拥塞控制,UDP 仅增加端口与可选校验,高效但不可靠。
  • 网络层:以 IP 为核心,负责跨网寻址、路由与转发;配套 ICMP、IGMP、ARP 实现差错报告、组播管理和地址解析,支持分片重组,构建全球统一地址空间。
  • 链路层:处理比特流传输,将报文封装成帧,添加 MAC 地址与 CRC;通过 ARP 解析硬件地址,实现局域网互联,为 TCP/IP 提供无差别的帧级传输接口。

OSI七层模型是网络通信的理论标准,TCP/IP四层则是实际应用的简化版本,通过分层协作实现了高效的数据传输。

OSI分层 TCP/IP四层 典型协议/单元 功能简述
应用层 应用层 HTTP, FTP, SMTP, DNS 用户业务数据格式与交互规则
表示层 应用层 SSL/TLS, JPEG, ASCII 数据加密、压缩、格式转换
会话层 应用层 RPC, NetBIOS 会话建立、维持、终止
传输层 传输层 TCP, UDP 端到端可靠/不可靠传输、端口复用
网络层 网络层 IP, ICMP, IGMP, ARP 跨网寻址、路由、分片、差错报告
数据链路层 链路层 Ethernet, PPP, ARP 帧封装、MAC 寻址、差错检测
物理层 链路层 比特流, RJ-45, 光纤 电气/光学信号、比特传输

二、数据的封装和分用

当应用程序用 TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程叫做数据的封装。当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作数据的分用。过程如下所示。

三、以太网帧数据的传输

在讲述网络传输之前,了解以下网络中的名词是十分重要的。

名称 所在层级 作用域 核心职能
IP 地址 网络层 (L3) 全网逻辑 跨网络标识主机,决定“去哪”;与掩码配合判断本地/远程
MAC 地址 链路层 (L2) 本地物理段 固化标识网卡,同网段内“交给谁”
子网掩码 网络层 (L3) 主机本地 划分 IP 中的网络位与主机位,决定“是否同一网段”
网关 (默认路由) 网络层 (L3) 跨网段 提供下一跳 IP,把远程流量送出本段
交换机 链路层 (L2) 单广播域 自学习 MAC 地址,按表二层转发帧,隔离冲突域
路由器 网络层 (L3) 多广播域 查 IP 路由表,跨网转发包,隔离广播,实现网际互联
CAM表 链路层 (L2) 交换机内部 MAC-端口映射表,用于快速硬件查表,决定帧从哪个端口发出
路由表 网络层 (L3) 路由器内部 目的网络-下一跳-出接口映射,指导 IP 报文跨网转发

1、局域网间通讯

如(图)网络传输所示,若电脑A与电脑B通讯,数据传输步骤如下所示:

  1. 电脑A用子网掩码判断目标IP与自身同网段 → 走局域网直接交付。
  2. 电脑A查本地ARP缓存:
    • 命中 → 直接得到电脑B的MAC;
    • 未命中 → A发ARP请求(广播),B单播回应MAC,A缓存并填充帧头。
  3. 电脑A构造以太网帧:目的MAC=B,源MAC=A,类型=0x0800,载荷为IP报文。
  4. 帧进入交换机A:
    • 交换机A学习源MAC,更新CAM表;
    • 查目的MAC,若表项存在则单播转发到对应端口;若无表项则泛洪到同一VLAN内所有端口(除源端口)。
  5. 电脑B收到帧,FCS校验正确后解封→交IP层→确认目的IP为本机,完成通信。

2、跨网络通讯

如(图)网络传输所示,若电脑A与电脑E通讯,数据传输步骤如下所示:

  1. 电脑A用子网掩码判断目标IP与自身不同网段 → 需走默认网关。
  2. 电脑A查本地ARP缓存:
    • 命中 → 直接得到网关MAC;
    • 未命中 → A发ARP请求(广播),网关单播回应MAC,A缓存并填充帧头。
  3. 电脑A构造以太网帧:目的MAC=网关,源MAC=A,类型=0x0800,载荷为IP报文(目的IP=E)。
  4. 帧进入交换机A:
    • 学习源MAC,更新CAM表;
    • 查目的MAC命中网关端口,单播转发给路由器A。
  5. 路由器A收帧→解封至IP层→查路由表得下一跳(路由器B接口)→减TTL→重新封装新帧: 目的MAC=路由器B接口MAC,源MAC=本出接口MAC。
  6. 帧经交换机B(若存在)→送达路由器B。
  7. 路由器B解封→查路由表得目的网络直连本地接口→查ARP缓存:
    • 命中 → 直接得到电脑E的MAC;
    • 未命中 → B发ARP请求(广播),E单播回应MAC,B缓存并填充帧头。
  8. 路由器B构造末帧:目的MAC=E,源MAC=本接口MAC,类型=0x0800,发往交换机C。
  9. 交换机C学习源MAC,查目的MAC命中E端口,单播转发。
  10. 电脑E收到帧,FCS校验正确后解封→交IP层→确认目的IP为本机,完成跨网络通信。