文章目录
-
- OSI七层网络协议栈
-
- 示意图
- [1. 应用层(Application Layer)](#1. 应用层(Application Layer))
- [2. 表示层(Presentation Layer)](#2. 表示层(Presentation Layer))
- [3. 会话层(Session Layer)](#3. 会话层(Session Layer))
- [4. 传输层(Transport Layer)](#4. 传输层(Transport Layer))
- [5. 网络层(Network Layer)](#5. 网络层(Network Layer))
- [6. 数据链路层(Data Link Layer)](#6. 数据链路层(Data Link Layer))
- [7. 物理层(Physical Layer)](#7. 物理层(Physical Layer))
- [OSI 七层模型的作用](#OSI 七层模型的作用)
- [OSI 模型与 TCP/IP 模型的对比](#OSI 模型与 TCP/IP 模型的对比)
- TCP/IP网络协议栈
-
- [1. 应用层(Application Layer)](#1. 应用层(Application Layer))
- [2. 传输层(Transport Layer)](#2. 传输层(Transport Layer))
- [3. 网络层(Internet Layer)](#3. 网络层(Internet Layer))
- [4. 网络接口层(Network Access Layer)](#4. 网络接口层(Network Access Layer))
- [物理层(Physical Layer)](#物理层(Physical Layer))
- [TCP/IP 模型的作用](#TCP/IP 模型的作用)
- 总结
- 两种网络协议的对比图
- 典型协议及其报文格式
-
- [1. ARP 报文格式](#1. ARP 报文格式)
- [2. IP 报文格式(IPv4)](#2. IP 报文格式(IPv4))
- [3. TCP 报文格式](#3. TCP 报文格式)
- [4. UDP 报文格式](#4. UDP 报文格式)
- [5. SSH 报文格式](#5. SSH 报文格式)
- [6. FTP 报文格式](#6. FTP 报文格式)
- [7. SMTP 报文格式](#7. SMTP 报文格式)
- [8. HTTP 报文格式](#8. HTTP 报文格式)
- IPv6报文格式
-
- [IPv6 报文格式](#IPv6 报文格式)
- [IPv6 扩展首部格式](#IPv6 扩展首部格式)
-
- [1. 逐跳选项首部(Hop-by-Hop Options Header)](#1. 逐跳选项首部(Hop-by-Hop Options Header))
- [2. 目的选项首部(Destination Options Header)](#2. 目的选项首部(Destination Options Header))
- [3. 路由首部(Routing Header)](#3. 路由首部(Routing Header))
- [4. 分段首部(Fragment Header)](#4. 分段首部(Fragment Header))
- 总结
OSI七层网络协议栈
OSI(Open Systems Interconnection)七层模型是由国际标准化组织(ISO)提出的一个概念性框架,旨在定义网络通信的标准。这个模型将网络通信划分为七个层次,每一层都有其特定的功能和职责。下面是 OSI 七层模型的详细介绍:
示意图
1. 应用层(Application Layer)
应用层是最顶层,直接面向用户,提供应用程序所需的接口和服务。这一层的主要功能包括:
- 数据格式化和编码
- 用户认证
- 文件传输、访问和管理
- 打印服务
常见的应用层协议包括:HTTP、HTTPS、FTP、SMTP、POP3、IMAP 等。
2. 表示层(Presentation Layer)
表示层负责数据的表示形式,包括数据的编码、压缩、解密等,确保数据在发送端和接收端的一致性。这一层的主要功能包括:
- 数据加密和解密
- 数据压缩和解压缩
- 数据格式转换
3. 会话层(Session Layer)
会话层管理会话的建立、维护和终止,确保数据传输的顺序性和可靠性。这一层的主要功能包括:
- 会话的建立和拆除
- 数据流的同步控制
- 检查点和恢复
4. 传输层(Transport Layer)
传输层负责端到端的数据传输,并保证数据的完整性和可靠性。这一层的主要功能包括:
- 数据分割和重组
- 流量控制
- 错误检测和纠正
- 序列控制
常见的传输层协议包括:TCP(传输控制协议)和 UDP(用户数据报协议)。
5. 网络层(Network Layer)
网络层负责将数据包从源地址传输到目的地址,处理逻辑地址(如 IP 地址),并选择最佳的传输路径。这一层的主要功能包括:
- 路由选择
- 数据包的转发
- 逻辑寻址
常见的网络层协议包括:IP(互联网协议)、ICMP(互联网控制消息协议)、ARP(地址解析协议)、RIP(路由信息协议)等。
6. 数据链路层(Data Link Layer)
数据链路层负责在物理层之上提供可靠的节点间数据传输,并检测和纠正物理层传输过程中产生的错误。这一层的主要功能包括:
- 帧的封装和解封装
- 错误检测
- 流量控制
- MAC 地址寻址
常见的数据链路层协议包括:Ethernet(以太网)、PPP(点对点协议)、Frame Relay(帧中继)等。
7. 物理层(Physical Layer)
物理层是最底层,负责定义电信号、机械、电气和功能规范,以实现比特流的透明传输。这一层的主要功能包括:
- 定义物理接口标准
- 数据传输速率
- 信号类型
- 传输介质
常见的物理层传输介质包括:同轴电缆、双绞线、光纤、无线信号等。
OSI 七层模型的作用
OSI 模型通过将网络通信分解为七个独立的层,使得每一层都可以专注于特定的任务,从而简化了网络设计和实现。尽管在实际应用中,许多现代网络协议(如 TCP/IP 协议栈)并不严格遵循 OSI 模型,但 OSI 模型仍然作为理解和分析网络通信的重要参考框架。
OSI 模型与 TCP/IP 模型的对比
- OSI 模型:七层结构,更详细地划分了网络通信的功能。
- TCP/IP 模型:四层结构,合并了一些功能,更侧重于互联网的实际应用。
尽管两者之间存在差异,但它们都是理解网络通信的基础,对于网络工程师和技术人员来说都是非常有用的工具。
TCP/IP网络协议栈
TCP/IP(Transmission Control Protocol/Internet Protocol)协议族是目前互联网通信的基础,它定义了一系列协议和标准,使得不同的计算机系统能够相互通信。TCP/IP 模型通常分为四个层次,每一层都有其特定的功能和职责。下面是 TCP/IP 四层模型的详细介绍:
1. 应用层(Application Layer)
应用层是最上层,它直接面向用户程序,提供各种常用的应用程序和服务。这一层的主要功能包括:
- 提供应用程序之间的接口
- 数据格式化和编码
- 用户认证
- 文件传输、访问和管理
- 打印服务
常见的应用层协议包括:
- HTTP:用于 Web 浏览器与 Web 服务器之间的通信。
- HTTPS:HTTP 的安全版本,使用 SSL/TLS 加密。
- FTP:文件传输协议,用于上传和下载文件。
- SMTP:简单邮件传输协议,用于发送电子邮件。
- POP3/IMAP:邮件协议,用于从邮件服务器接收电子邮件。
- DNS:域名系统,用于将域名转换为 IP 地址。
2. 传输层(Transport Layer)
传输层负责端到端的数据传输,并保证数据的完整性和可靠性。这一层的主要功能包括:
- 数据分割和重组
- 流量控制
- 错误检测和纠正
- 序列控制
常见的传输层协议包括:
- TCP(Transmission Control Protocol):提供面向连接的、可靠的字节流服务。
- UDP(User Datagram Protocol):提供无连接的服务,不保证数据的可靠性,但速度快。
3. 网络层(Internet Layer)
网络层负责将数据包从源地址传输到目的地址,处理逻辑地址(如 IP 地址),并选择最佳的传输路径。这一层的主要功能包括:
- 路由选择
- 数据包的转发
- 逻辑寻址
常见的网络层协议包括:
- IP(Internet Protocol):提供无连接的数据报服务。
- ICMP(Internet Control Message Protocol):用于发送错误消息和其他控制信息。
- ARP(Address Resolution Protocol):用于将 IP 地址映射为物理地址(MAC 地址)。
- RIP(Routing Information Protocol):一种内部网关协议,用于在路由器之间交换路由信息。
4. 网络接口层(Network Access Layer)
网络接口层(也称为链路层或数据链路层)负责在物理层之上提供可靠的节点间数据传输,并检测和纠正物理层传输过程中产生的错误。这一层的主要功能包括:
- 帧的封装和解封装
- 错误检测
- 流量控制
- MAC 地址寻址
常见的网络接口层技术包括:
- Ethernet(以太网):最常用的局域网技术。
- PPP(Point-to-Point Protocol):用于通过串行或点对点链路连接 Internet。
- Frame Relay(帧中继):一种用于广域网的技术。
- ATM(Asynchronous Transfer Mode):异步传输模式,用于高速网络传输。
物理层(Physical Layer)
虽然物理层不是 TCP/IP 模型的一部分,但它在 OSI 七层模型中是最低一层,负责定义电信号、机械、电气和功能规范,以实现比特流的透明传输。物理层的主要功能包括:
- 定义物理接口标准
- 数据传输速率
- 信号类型
- 传输介质
常见的物理层传输介质包括:
- 同轴电缆
- 双绞线
- 光纤
- 无线信号
TCP/IP 模型的作用
TCP/IP 模型通过将网络通信分解为四个独立的层,使得每一层都可以专注于特定的任务,从而简化了网络设计和实现。TCP/IP 模型在实际应用中比 OSI 模型更为实用,尤其是在互联网的广泛应用中,TCP/IP 成为了事实上的标准。
总结
TCP/IP 模型是当今互联网通信的基础,它通过分层的方式定义了数据在网络中的传输过程。每一层都有其特定的功能和协议,确保数据能够准确、高效地从源地址传输到目的地址。理解 TCP/IP 模型对于网络工程师和技术人员来说至关重要,有助于解决网络问题和优化网络性能。
两种网络协议的对比图
典型协议及其报文格式
好的,下面是 ARP、IP、TCP、UDP、SSH、FTP、SMTP 和 HTTP 报文格式的表格形式展示:
1. ARP 报文格式
字段名称 | 长度(位) | 描述 |
---|---|---|
硬件类型(Hardware Type) | 16 | 指定硬件地址类型,如以太网(1)。 |
协议类型(Protocol Type) | 16 | 指定协议类型,如 IP(0x0800)。 |
硬件地址长度(Hardware Address Length) | 8 | 指定硬件地址的长度,如以太网地址为 6 字节。 |
协议地址长度(Protocol Address Length) | 8 | 指定协议地址的长度,如 IP 地址为 4 字节(IPv4)。 |
操作类型(Operation Type) | 16 | 指定 ARP 请求(1)或 ARP 应答(2)。 |
发送方硬件地址(Sender Hardware Address) | 可变 | 发送方的硬件地址(如 MAC 地址)。 |
发送方协议地址(Sender Protocol Address) | 可变 | 发送方的协议地址(如 IP 地址)。 |
目标硬件地址(Target Hardware Address) | 可变 | 目标硬件地址(如 MAC 地址),请求时为全零。 |
目标协议地址(Target Protocol Address) | 可变 | 目标协议地址(如 IP 地址)。 |
2. IP 报文格式(IPv4)
字段名称 | 长度(位) | 描述 |
---|---|---|
版本(Version) | 4 | 指定 IP 协议版本(IPv4)。 |
服务类型(TOS) | 8 | 表示服务类型,用于优先级和控制服务质量。 |
总长度(Total Length) | 16 | 包括首部和数据在内的整个报文长度。 |
标识符(Identification) | 16 | 用于标识数据包,区分不同的数据包。 |
标志(Flags) | 3 | 用于标记数据包是否分片,以及分片的类型。 |
片偏移(Fragment Offset) | 13 | 指示分片的位置。 |
生存时间(TTL) | 8 | 数据包在网络中可以生存的时间,每经过一个路由器减 1,为 0 时丢弃。 |
协议(Protocol) | 8 | 指定上层协议类型。 |
首部校验和(Header Checksum) | 16 | 用于检测 IP 首部中的错误。 |
源 IP 地址(Source IP Address) | 32 | 发送方的 IP 地址。 |
目的 IP 地址(Destination IP Address) | 32 | 接收方的 IP 地址。 |
3. TCP 报文格式
字段名称 | 长度(位) | 描述 |
---|---|---|
源端口号(Source Port) | 16 | 发送方的端口号。 |
目的端口号(Destination Port) | 16 | 接收方的端口号。 |
序列号(Sequence Number) | 32 | 用于确认数据包的顺序。 |
确认号(Acknowledgment Number) | 32 | 用于确认已收到的数据。 |
偏移量(Data Offset) | 4 | 指示 TCP 首部长度。 |
控制标志(Control Flags) | 6 | 包括 SYN、ACK、PSH、RST、FIN 等标志位。 |
窗口大小(Window Size) | 16 | 指示接收方可接收的数据量。 |
校验和(Checksum) | 16 | 用于检测 TCP 首部和数据中的错误。 |
紧急指针(Urgent Pointer) | 16 | 指示紧急数据的结束位置。 |
选项字段(Options) | 可变 | 可包含多个选项字段,如窗口扩大因子、时间戳等。 |
4. UDP 报文格式
字段名称 | 长度(位) | 描述 |
---|---|---|
源端口号(Source Port) | 16 | 发送方的端口号。 |
目的端口号(Destination Port) | 16 | 接收方的端口号。 |
长度(Length) | 16 | 包括首部和数据在内的整个报文长度。 |
校验和(Checksum) | 16 | 用于检测 UDP 首部和数据中的错误。 |
5. SSH 报文格式
SSH 报文格式相对灵活,通常包括以下几个部分:
字段名称 | 描述 |
---|---|
包头(Packet Header) | 包含长度信息。 |
会话标识符(Session ID) | 用于标识 SSH 会话。 |
命令(Command) | 包含 SSH 操作指令。 |
数据(Data) | 包含加密后的数据。 |
校验和(Checksum) | 用于检测数据完整性。 |
6. FTP 报文格式
FTP 报文格式主要体现在命令和响应中:
字段名称 | 描述 |
---|---|
命令(Command) | 包含 FTP 操作指令,如 USER , PASS , LIST , RETR 等。 |
响应(Response) | 包含服务器对命令的响应,如 220 Service ready for new user. |
数据(Data) | 包含实际传输的数据。 |
7. SMTP 报文格式
SMTP 报文格式如下:
字段名称 | 描述 |
---|---|
命令(Command) | 包含 SMTP 操作指令,如 HELO , MAIL FROM , RCPT TO , DATA 等。 |
响应(Response) | 包含服务器对命令的响应,如 220 Service ready 。 |
邮件内容(Mail Content) | 包含实际邮件内容。 |
8. HTTP 报文格式
HTTP 报文格式如下:
字段名称 | 描述 |
---|---|
请求行(Request Line) | 包含方法(如 GET , POST )、请求 URL 和 HTTP 版本。 |
请求头(Request Headers) | 包含客户端信息、认证信息等。 |
请求体(Request Body) | 包含 POST 数据或其他数据。 |
响应行(Status Line) | 包含 HTTP 版本、状态码和状态信息。 |
响应头(Response Headers) | 包含服务器信息、内容类型等。 |
响应体(Response Body) | 包含响应数据。 |
这些表格展示了不同协议报文的基本字段和用途,帮助理解网络通信中的数据传输格式。
IPv6报文格式
好的,下面是 IPv6 报文格式的表格形式展示:
IPv6 报文格式
字段名称 | 长度(位) | 描述 |
---|---|---|
版本(Version) | 4 | 指定 IP 协议版本(IPv6)。 |
优先级(Traffic Class) | 8 | 表示服务类型,用于优先级和控制服务质量。 |
流标签(Flow Label) | 20 | 用于标识具有相似特性的数据流,用于 QoS 优先处理。 |
载荷长度(Payload Length) | 16 | 包含有效载荷的长度,不包括 IPv6 首部长度。 |
下一头部(Next Header) | 8 | 指定下一个首部的类型,用于识别 IPv6 扩展首部或上层协议。 |
跳数限制(Hop Limit) | 8 | 数据包在网络中可以生存的时间,每经过一个路由器减 1,为 0 时丢弃。 |
源 IPv6 地址(Source IPv6 Address) | 128 | 发送方的 IPv6 地址。 |
目标 IPv6 地址(Destination IPv6 Address) | 128 | 接收方的 IPv6 地址。 |
IPv6 扩展首部格式
IPv6 报文可以包含一个或多个扩展首部,这些扩展首部提供了额外的功能。以下是常见的 IPv6 扩展首部:
1. 逐跳选项首部(Hop-by-Hop Options Header)
字段名称 | 长度(位) | 描述 |
---|---|---|
下一头部(Next Header) | 8 | 指定下一个首部的类型。 |
跳数限制(Hop Limit) | 8 | 数据包在网络中可以生存的时间,每经过一个路由器减 1,为 0 时丢弃。 |
选项数据(Option Data) | 可变 | 包含逐跳选项数据,每个选项可以有不同的长度和内容。 |
2. 目的选项首部(Destination Options Header)
字段名称 | 长度(位) | 描述 |
---|---|---|
下一头部(Next Header) | 8 | 指定下一个首部的类型。 |
跳数限制(Hop Limit) | 8 | 数据包在网络中可以生存的时间,每经过一个路由器减 1,为 0 时丢弃。 |
选项数据(Option Data) | 可变 | 包含目的地选项数据,每个选项可以有不同的长度和内容。 |
3. 路由首部(Routing Header)
字段名称 | 长度(位) | 描述 |
---|---|---|
下一头部(Next Header) | 8 | 指定下一个首部的类型。 |
跳数限制(Hop Limit) | 8 | 数据包在网络中可以生存的时间,每经过一个路由器减 1,为 0 时丢弃。 |
路由类型(Routing Type) | 8 | 指定路由类型。 |
路由段数(Segments Left) | 8 | 指示剩余的路由段数。 |
路由数据(Route Data) | 可变 | 包含中间路由器的 IPv6 地址。 |
4. 分段首部(Fragment Header)
字段名称 | 长度(位) | 描述 |
---|---|---|
下一头部(Next Header) | 8 | 指定下一个首部的类型。 |
跳数限制(Hop Limit) | 8 | 数据包在网络中可以生存的时间,每经过一个路由器减 1,为 0 时丢弃。 |
偏移(Offset) | 13 | 指示分片的位置。 |
标志(Flags) | 3 | 用于标记数据包是否分片,以及分片的类型。 |
保留(Reserved) | 2 | 保留字段。 |
总结
IPv6 报文格式相比 IPv4 更加简洁,并且引入了新的字段以支持更多的功能。IPv6 报文可以包含多个扩展首部,这些首部提供了额外的功能,如逐跳选项、目的地选项、路由选项和分段选项等。理解这些报文格式有助于更好地掌握 IPv6 的工作机制。