SRE Docs

02 网络参考模型

OSI参考模型的层次结构、各层功能及数据封装过程

网络参考模型与标准协议

OSI参考模型

OSI层作用
7.应用层OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。
6.表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
5.会话层负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
4.传输层建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等。
3.网络层定义逻辑地址,供路由器等三层设备确定路径,负责将数据从源网络传输到目的网络。
2.数据链路层将比特组合成字节,再将字节组合成数据帧,在数据链路上实现数据的点到点或点到多点方式的直接通信,差错检测。
1.物理层在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性。

TCP/IP参考模型

层级功能
应用层定义了直接为用户提供服务的用户协议(如FTP、Telnet)和通用系统功能的支持协议(如DNS)。
传输层为应用层提供了端到端的通信服务,主要有两种传输层协议TCP和UDP。
网络层实现跨网络的主机到主机的数据转发,主要的互联网协议是IP。
网络接口层(数据链路层+物理层)负责在单一物理网络上,相邻网络节点之间的原始数据帧传输。

TCP/IP协议栈

TCP/IP协议栈是互联网的基础协议栈,它将网络通信分为四个层次:

应用层 :Telnet、FTP、TFTP、SNMP、HTTP、SMTP、DNS、DHCP等

  • Telnet(远程登录协议):远程登录应用于远程终端连接,通过它用户能像使用本地系统一样登录远程系统、使用资源。
  • FTP(File Transfer Protocol,文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。
  • TFTP(Trivial File Transfer Protocol,简单文件传输协议):文件传输协议FTP的另一种小型简单协议形式,用于客户端和服务器之间不需要复杂交互的应用上,它把业务限制在简单的文件传输上,不需要进行验证。
  • SNMP(Simple Network Management Protocol,简单网络管理协议):允许远程用户查看和修改网元的管理信息,其目的是保证管理信息在任意两点间传送。
  • HTTP(HyperText Transfer Protocol,超文本传输协议):用来访问在网页服务器上的各种页面。
  • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议):用于在计算机之间传输电子邮件的协议。
  • DNS(Domain Name Service,域名称解析服务):用于实现从主机域名到IP地址之间的转换。
  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议):DHCP服务器针对DHCP客户端的请求提供对应的配置参数,这些参数通常是客户端主机连接Internet时需要的信息。DHCP同时提供为主机分配IP地址的功能。

传输层:TCP、UDP

  • TCP (Transmission Control Protocol,传输控制协议) :为应用程序提供可靠 的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。
  • UDP(User Datagram Protocol,用户数据报协议):提供了无连接通信,且不 对传送数据包进行可靠性的保证。

网络层:ICMP、IGMP、IP

  • IP(Internet Protocol,互联网协议):将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。
  • ICMP(Internet Control Message Protocol,网际报文控制协议):基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的解决措施。
  • IGMP(Internet Group Management Protocol,因特网组管理协议):负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

数据链路层:PPPoE、Ethernet、PPP

  • Ethernet(以太网协议):一种多路访问广播型数据链路层协议,是当前应用最 为广泛的局域网技术。
  • PPP(Point-to-Point Protocol,点对点协议):一种点对点模式的数据链路层 协议,多用于广域网。
  • PPPoE(Point-to-Point Protocol over Ethernet,以太网承载PPP协议):PPPoE提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能。常见的应用有家庭宽带拨号上网。

数据通信过程

  1. 浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装(图中Data还应包括HTTP头部,此处省略)。
  2. HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块。
  3. TCP模块给应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口等)。此时的PDU被称作Segment(段)。在IPv4网络中,TCP模块会将封装好的Segment传递给网络层的IPv4模块(若在IPv6环境,会交给IPv6模块进行处理)。
  4. IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时的PDU被称为Packet(包)。由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将Packet交由数据链路层的Ethernet模块(例如以太网卡)处理。
  5. Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应的Ethernet头部信息和FCS(Frame Check Sequence,帧检验序列)帧尾,此时的PDU被称为Frame(帧)。在Ethernet模块封装完毕之后,会将数据传递到物理层。
  6. 根据物理介质的不同,物理层负责将数字信号转换成电信号、光信号、电磁波(无线)信号等,转换完成的信号通过传输介质在网络中开始传递。

一般情况下:

  • 网络中的二层设备(如交换机)只会解封装到数据的二层头部,根据二层头部的信息进行相应的“交换”操作。
  • 网络中的三层设备(如路由器)只会解封装到数据的三层头部,根据三层头部的信息进行相应的“路由”操作。

简答

(简答题)分层模型的概念有什么好处?

降低复杂度:把复杂网络通信拆成若干层,每层只关注自己的职责,便于理解与实现。

模块化与可维护性:各层相对独立,某一层的实现可以替换/升级而尽量不影响其他层(如更换链路层介质、改进传输层算法)。

标准化与互操作:为接口与协议定义边界,不同厂商/系统只要遵循标准就能互通。

促进复用与扩展:上层应用可复用下层能力;新增协议或功能通常只需在某一层扩展。

便于排错与性能分析:问题可以按层定位(物理/链路/网络/传输/应用),抓包与诊断更有条理。

应用层

应用层概述:

  • TCP/IP 模型的最高层
  • 直接为用户的应用程序提供网络服务

常用的应用层协议:

  • DNS(Domain Name System)
  • HTTP/HTTPS(HyperText Transfer Protocol/Secure)
  • FTP(File Transfer Protocol)
  • SMTP(Simple Mail Transfer Protocol)
  • SSH(Secure Shell)
  • Telnet(Teletype Network)

DNS

Domain Name System(域名解析系统)

  • 建立 IP 地址与域名之间的映射关系
  • 将域名转换为IP地址
  • 将IP地址转换为域名

相关命令:

  • nslookup (查询域名对应的IP地址)
  • ipconfig / displaydns (显示DNS缓存)
  • ipconfig / flushdns (清除DNS缓存)

HTTP/HTTPS

HyperText Transfer Protocol(超文本传输协议)

  • 用于Web浏览器和服务器之间的通信
  • HTTP是无状态的协议
  • HTTPS是HTTP的安全版本,使用SSL/TLS加密

邮件服务

协议备注
SMTPSimple Mail Transfer Protocol(简单邮件传输协议),用于邮件的发送
POP3Post Office Protocol version 3(邮局协议版本3),用于邮件的接收
IMAPInternet Message Access Protocol(互联网邮件访问协议),类似POP3,功能更丰富
项目POP3IMAP
邮件存储下载到本地(通常服务器会删)一直保存在服务器
多设备同步❌ 不支持(各设备各自一份)✅ 完全同步(手机/电脑一致)
是否支持文件夹❌ 基本不支持✅ 支持(收件箱、标签等)
是否支持已读/未读同步❌ 不同步✅ 同步
使用场景单设备、离线优先多设备、实时同步

Telnet

Telnet(Terminal Network)

  • 用于远程管理的主要协议(网络设备、服务器、数据库等)
  • 默认端口:23
  • 不安全,建议使用SSH替代

FTP/TFTP

FTP(File Transfer Protocol)

  • 提供可靠的文件传输协议
  • 默认端口:21
  • 具有认证 权限功能(传输过程中明文传输用户名和密码)
  • 不安全,建议使用SFTP替代

TFTP(Trivial File Transfer Protocol)

  • 提供不可靠的文件传输服务
  • 默认端口:69
  • 不安全,常用于网络设备的配置文件和固件升级

传输层

传输层定义了主机应用程序之间端到端的连通性。传输层中最常见的两个协议分别是传输控制协议 TCP (Transmission Control Protocol)和用户数据报协议 UDP (User Datagram Protocol)。

传输层端口:Port

端口范围端口号类比别
0-1023公认端口
1024-49151注册端口
49152-65535私有或动态端口

TCP 和 UDP 数据包结构对比:

TCP

TCP 的三次握手:

TCP 会话的确认:

TCP 会话的拥塞和流量控制:

窗口大小(win) 决定了收到确认前可发送的字节数

TCP 会话的终止-四次挥手:

UDP

  • UDP 不提供重传机制,占用资源小,处理效率高
  • 一些时延敏感的流量,比如视频、语音等,通常使用UDP作为传输层协议

数据链路层

以太网的分类

以太网的帧结构

字段解析
协议类型代表上层的协议
帧大小范围64-1518字节
MTU最大传输单元,默认1500字节,每次发送的数据的最大值
帧校验通过一定的计算公式对数据包进行计算
MAC地址代表一个网络接口的物理地址,唯一

MAC 地址

全1MAC地址 FF-FF-FF-FF-FF-FF 为广播地址,所有节点都会处理目的地址为广播地址的数据帧,该数据帧所能到达的整个访问范围称为二层广播域,简称广播域。

MAC 地址的分类

MAC地址可以分为3种类型:

  • 单播MAC地址:也称物理MAC地址,这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址。
    • 单播MAC地址用于标识链路上的一个单一节点。
    • 目的MAC地址为单播MAC地址的帧发往一个单一的节点。
    • 单播MAC地址可以作为源或目的地址。
    • 注意:单播MAC地址具有全球唯一性,当一个二层网络中接入了两台具有相同MAC地址的终端时(例如误操作等),将会引发通信故障(例如这两台终端无法相互通信),且其他设备与它们之间的通信也会存在问题。
  • 广播MAC地址:全1的MAC地址(FF-FF-FF-FF-FF-FF),用来表示局域网上的所有终端设备。
    • 广播MAC地址可以理解为一种特殊的组播MAC地址。
    • 其具体格式为:FFFF-FFFF-FFFF。
    • 目的MAC地址为广播MAC地址的帧发往链路上的所有节点。
  • 组播MAC地址:除广播地址外,第7 bit为1的MAC地址为组播MAC地址(例如01-00-00-00-00-00),用来代表局域网上的一组终端。
    • 组播MAC地址用于标识链路上的一组节点。
    • 目的MAC地址为组播MAC地址的帧发往一组节点。
    • 组播MAC地址不能作为源地址,只能作为目的地址。

网络层

ARP

Address Resolution Protocol,地址解析协议

当设备需要和其他设备通信时,需要知道对方的MAC地址,ARP协议就是用来将IP地址转换为MAC地址的协议。

ARP 请求和相应:

ARP 请求和相应

当主机需要根据 IP 地址获取目标主机的 MAC 地址时,会使用 ARP 协议,过程如下:

  1. 主机首先在本地 ARP 缓存表中查找目标 IP 对应的 MAC 地址。
  2. 若未找到,则构造 ARP 请求报文。
  3. ARP 请求以广播方式发送(目的 MAC 为 FF-FF-FF-FF-FF-FF)。
  4. 同一网段内所有主机接收该请求,并检查目标 IP:
    • 若不是自身 IP,则丢弃;
    • 若是自身 IP,则生成 ARP 应答。
  5. 目标主机以单播方式发送 ARP 应答报文,告知自己的 MAC 地址。
  6. 源主机接收应答后,将 IP 与 MAC 的对应关系写入 ARP 缓存表。
  7. 此后通信即可使用该 MAC 地址进行数据传输。

免费 ARP(Gratuitous ARP)

免费 ARP 是指设备主动发送 ARP 请求,但目的 IP 地址是自己的 IP 地址。这种行为通常用于:

  • 检测网络中是否存在 IP 地址冲突
  • 更新其他设备的 ARP 缓存表
  • 在设备重启或网络拓扑变化后重新同步 ARP 表项

当设备发送免费 ARP 时,其他设备会更新自己的 ARP 缓存表,确保其维护的 IP 到 MAC 的映射是最新的。

ARP 数据包格式

ARP 报文不能穿越路由器,不能被转发到其他广播域

ICMP

Internet Control Message Protocol,互联网控制报文协议,用来在网络设备间各种差错和控制信息,它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。

ICMP 数据包格式

Type 表示 ICMP 消息类型,Code 表示同一消息类型中的不同信息。

类型编码描述
00Echo Reply
30Destination Network Unreachable
31Destination Host Unreachable
32Destination Protocol Unreachable
33Destination Port Unreachable
50Redirect Datagram for the Network
80Echo Request

IP

IP报文结构

分片

当数据包比链路 MTU(默认1500字节) 大时,就可以被分解为很多的足够小的数据包的过程叫做分片。

  1. 什么是 IP 分片

当数据报长度超过链路的最大传输单元(MTU)时, 网络层会对数据报进行分割,这个过程称为 IP 分片(Fragmentation)

分片可以在发送端或中间路由器完成, 最终由接收端进行重组。

  1. 分片相关字段(IPv4 首部)

在 IPv4 首部中,与分片有关的字段有:

1️⃣ Identification(标识)

  • 用于标识同一个原始数据报的所有分片
  • 所有分片该字段值相同

2️⃣ Flags(标志位)

共 3 位:

名称含义
第1位Reserved(保留位)必须为 0,否则报文无效(或被丢弃)
第2位DF(Don't Fragment)1=不允许分片,0=允许分片
第3位MF(More Fragments)1=后面还有分片,0=最后一片

3️⃣ Fragment Offset(片偏移)

  • 表示该分片在原始数据中的位置
  • 单位:8 字节(8 Byte)
  1. 一句话总结

👉 IP 分片通过 Identification、Flags、Fragment Offset 来实现分片与重组。

示例: Wireshark 抓的分片包是最后一个分片:

TTL

Time To Live,生存时间,用于限制数据包在网络中的存活时间或跳数,防止数据包在网络中无限循环。每经过一个路由器,TTL值减1,当TTL值为0时,数据包被丢弃。

利用 TTL 的特性,可以实现路由跟踪(traceroute)技术,排错的重要方式之一.

相关命令:

  • Linux: traceroute
  • Windows: tracert
  • Cisco: tracerouteping 命令配合 TTL 设置

协议号

Protocol Number,用于标识IP数据包中承载的上层协议类型,常见的协议号如下:

协议号协议名称说明
1ICMPInternet Control Message Protocol,互联网控制报文协议
6TCPTransmission Control Protocol,传输控制协议
17UDPUser Datagram Protocol,用户数据报协议

IP 地址

在 IP 网络中,通信节点需要通过 IP 地址来标识自己和对方。

点分十进制表示,由32位二进制组成。

分为网络位和主机位两部分:

  • 网络位,代表 IP 地址所属网段
  • 主机位,代表网段上的某个节点
  • 子网掩码用于划分网络位和主机位
IP 地址的分类

根据第一组八位二进制的取值范围,IP 地址可以分为 A、B、C、D、E 五类:

IP 地址分类
私有地址
私有 IP 地址空间地址范围
10.0.0.0/810.0.0.0 - 10.255.255.255
172.16.0.0/12172.16.0.0 - 172.31.255.255
192.168.0.0/16192.168.0.0 - 192.168.255.255

子网掩码

  • 用于区分网络部分和主机部分
  • 1 表示网络部分,0 表示主机部分(连续的1 和 0)
子网掩码
网络地址和广播地址
  • 网络地址:主机位全为0(二进制)的IP地址,比如 192.168.1.0
  • 广播地址:主机位全为1(二进制)的IP地址,比如 192.168.1.255
子网划分
  • 满足不同网络对 IP 地址的需求
  • 实现网络的层次性
  • 节省 IP 地址资源
  • 默认子网掩码可以进一步划分,成为变长子网掩码(VLSM)
  • 即网络位向主机位“借位”

On this page