一文教你弄懂网络协议栈以及报文格式

文章目录

    • 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(路由信息协议)等。

数据链路层负责在物理层之上提供可靠的节点间数据传输,并检测和纠正物理层传输过程中产生的错误。这一层的主要功能包括:

  • 帧的封装和解封装
  • 错误检测
  • 流量控制
  • 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 的工作机制。

相关推荐
麻瓜也要学魔法2 小时前
链路状态路由协议-OSPF
网络
Estar.Lee2 小时前
查手机号归属地免费API接口教程
android·网络·后端·网络协议·tcp/ip·oneapi
傻啦嘿哟3 小时前
代理IP在后端开发中的应用与后端工程师的角色
网络·网络协议·tcp/ip
Red Red3 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
向阳12184 小时前
Dubbo HTTP接入之triple协议
网络协议·http·dubbo
亚远景aspice5 小时前
ISO 21434标准:汽车网络安全管理的利与弊
网络·web安全·汽车
Estar.Lee6 小时前
时间操作[计算时间差]免费API接口教程
android·网络·后端·网络协议·tcp/ip
友友马6 小时前
『 Linux 』网络层 - IP协议(一)
linux·网络·tcp/ip
码老白7 小时前
【老白学 Java】Warshipv2.0(二)
java·网络