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

news/2024/9/18 14:48:42/ 标签: 网络协议, 网络

文章目录

    • OSI七层网络协议>网络协议栈
      • 示意图
      • 1. 应用层(Application Layer)
      • 2. 表示层(Presentation Layer)
      • 3. 会话层(Session Layer)
      • 4. 传输层(Transport Layer)
      • 5. 网络层(Network Layer)
      • 6. 数据链路层(Data Link Layer)
      • 7. 物理层(Physical Layer)
      • OSI 七层模型的作用
      • OSI 模型与 TCP/IP 模型的对比
    • TCP/IP网络协议>网络协议栈
      • 1. 应用层(Application Layer)
      • 2. 传输层(Transport Layer)
      • 3. 网络层(Internet Layer)
      • 4. 网络接口层(Network Access Layer)
      • 物理层(Physical Layer)
      • TCP/IP 模型的作用
      • 总结
    • 两种网络协议>网络协议的对比图
    • 典型协议及其报文格式
      • 1. ARP 报文格式
      • 2. IP 报文格式(IPv4)
      • 3. TCP 报文格式
      • 4. UDP 报文格式
      • 5. SSH 报文格式
      • 6. FTP 报文格式
      • 7. SMTP 报文格式
      • 8. HTTP 报文格式
    • IPv6报文格式
      • IPv6 报文格式
      • IPv6 扩展首部格式
        • 1. 逐跳选项首部(Hop-by-Hop Options Header)
        • 2. 目的选项首部(Destination Options Header)
        • 3. 路由首部(Routing Header)
        • 4. 分段首部(Fragment Header)
      • 总结

OSI七层网络协议>网络协议栈

OSI(Open Systems Interconnection)七层模型是由国际标准化组织(ISO)提出的一个概念性框架,旨在定义网络通信的标准。这个模型将网络通信划分为七个层次,每一层都有其特定的功能和职责。下面是 OSI 七层模型的详细介绍:

示意图

七层<a class=网络协议>网络协议图" />

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 模型对于网络工程师和技术人员来说至关重要,有助于解决网络问题和优化网络性能。

两种网络协议>网络协议的对比图

两种<a class=网络协议>网络协议比较" />

典型协议及其报文格式

好的,下面是 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 的工作机制。


http://www.ppmy.cn/news/1525150.html

相关文章

深入理解全连接层:从线性代数到 PyTorch 中的 nn.Linear 和 nn.Parameter

文章目录 数学概念&#xff08;全连接层&#xff0c;线性层&#xff09;nn.Linear()nn.Parameter()Q1. 为什么 self.weight 的权重矩阵 shape 使用 ( out_features , in_features ) (\text{out\_features}, \text{in\_features}) (out_features,in_features)而不是 ( in_featur…

5款免费版文章生成器,自动生成文章更省创作精力

在自媒体创作中&#xff0c;随着不断的内容输出&#xff0c;让许多创作者都面临着时间和精力的双重压力。而免费版文章生成器的出现&#xff0c;犹如黑暗中的一束光&#xff0c;为创作者们带来了新的希望。免费版文章生成器能够以高效便捷的方式&#xff0c;帮助创作者节省大量…

DevExpress WinForms v24.1新版亮点:功能区、数据编辑器全新升级

DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜…

Redis面对数据量庞大处理方法

当Redis面对数据量庞大时&#xff0c;其应对策略需要从多个维度出发&#xff0c;包括数据分片、内存优化、持久化策略、使用集群、硬件升级、数据淘汰策略、合理设计数据结构以及监控系统性能等。以下是对这些策略的详细阐述&#xff0c;以期提供不少于2000字的深入解答。 一、…

2024伊语IM即时通讯源码/im商城系统/纯源码IM通讯系统安卓+IOS前端纯原生源码

一、端口说明、域名解析及服务器配置要求 1.1端口说明 使用二级域名映射的情况下 使用端口说明3306数据导入是可以开放 后期关闭 或者直接在服务器上面导入6379不用对外开放9903需要开放80需要开放 1.2 子域名说明&#xff1a; api.xxx.com接口 im.xxx.com通讯 web.xxx.…

[Day 72] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈在跨境支付中的應用 跨境支付一直是全球經濟中極具挑戰的領域。傳統的跨境支付系統通常需要數天時間來處理交易&#xff0c;涉及的中間機構多且手續費昂貴。然而&#xff0c;區塊鏈技術的出現為解決這些問題提供了一條嶄新的途徑。本文將探討區塊鏈在跨境支付中的應用&a…

linux中vim常用命令大全

在Linux系统中&#xff0c;Vim是一款功能强大的文本编辑器&#xff0c;广泛用于代码编写、文档编辑等多种场景。Vim以其高效的编辑能力和丰富的命令集著称。以下是Vim编辑器中常用命令的详细大全&#xff0c;旨在帮助用户更高效地利用Vim进行文本编辑。 一、启动与退出Vim 启动…

JAVA开源项目 校园管理系统 计算机毕业设计

本文项目编号 T 026 &#xff0c;文末自助获取源码 \color{red}{T026&#xff0c;文末自助获取源码} T026&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 管…

Linux杂项知识

Linux的启动过程 Linux 的启动过程大致可以分为以下几个阶段&#xff1a; 1. BIOS/UEFI 加电自检 当计算机加电时&#xff0c;BIOS 或 UEFI 会首先执行一系列的硬件自检&#xff08;POST&#xff0c;Power-On Self Test&#xff09;&#xff0c;检查系统是否正常运行。接下来…

Ansible自动化部署kubernetes集群

机器环境介绍 1.1. 机器信息介绍 IP hostname application CPU Memory 192.168.204.129 k8s-master01 etcd&#xff0c;kube-apiserver&#xff0c;kube-controller-manager&#xff0c;kube-scheduler,kubelet,kube-proxy,containerd 2C 4G 192.168.204.130 k8s-w…

Java小白一文讲清Java中集合相关的知识点(五)

Set接口和常用方法 基本介绍 无序&#xff08;添加和取出的顺序不一样&#xff09;&#xff0c;没有索引不允许重复元素&#xff0c;所以最多包含一个nullJDK API 中Set接口的实现类有&#xff1a; public static void main(String[] args) {//1.以set接口的实现类HashSet来讲…

手机玩机常识-------诺基亚系列机型3/5/6/7/8详细的刷机教程步骤 手机参考救砖刷机教程

诺基亚手机 诺基亚&#xff08;Nokia Corporation&#xff09;&#xff0c;成立于1865年&#xff0c;是一家主要从事移动通信设备生产和相关服务的手机公司 &#xff0c;总部位于芬兰埃斯波 。从1996年开始&#xff0c;诺基亚手机连续15年占据手机市场份额第一位置&…

【测试】——自动化测试入门(Selenium环境搭建)

&#x1f4d6; 前言&#xff1a;本文介绍了自动化测试的基础知识&#xff0c;重点讲解了Selenium环境的搭建。内容包括自动化测试的定义、自动化测试金字塔模型、Selenium的特点和工作原理&#xff0c;以及如何在Java环境中配置和使用Selenium进行UI自动化测试。 目录 &#x1…

性能测试经典案例解析——政务查询系统

各位好&#xff0c;我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的主页 道普云 文章内容具有一定门槛&#xff0c;建议先赞再收藏慢慢学习&#xff0c;有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平的你有所帮…

go 语言常见问题(4)

31. go语言编程的好处是什么 编译和运行都很快。在语言层级支持并行操作。有垃圾处理器。内置字符串和 maps。函数是 go 语言的最基本编程单位。 32. 说说go语言的select机制 select 机制用来处理异步 IO 问题select 机制最大的一条限制就是每个 case 语句里必须是一个 IO 操…

【C语言】归并排序递归和非递归——动图演示

目录 一、归并排序思想1.1 基本思想1.2 大体思路 二、实现归并排序&#xff08;递归&#xff09;三、实现归并排序&#xff08;非递归&#xff09;3.1 实现思路&#xff1a;3.2 越界处理3.3 时间复杂度和空间复杂度 总结 一、归并排序思想 1.1 基本思想 归并排序&#xff08;M…

redis为什么快

春内存访问&#xff0c;相比数据库访问磁盘要快单线程&#xff0c;避免上下文切换带来的cpu开销渐进式Rehash。减少阻塞网络模型多路复用&#xff0c;reactor模型 常用基本数据类型 5个基本数据类型2个高级数据结构&#xff08;bitmaps、hyperlog&#xff09; redis高级功能…

Gitea Action注册runner

我的是gitea也可以和github 兼容&#xff0c;只是没有github 那么靓而已 安装一个gitea仓库 docker run -d --name gitea \-p3000:3000 -p2222:22 \-v /git/data:/data \ -v /etc/timezone:/etc/timezone:ro \-v /etc/localtime:/etc/localtime:ro \gitea/gitea:1.21.1setti…

【漏洞复现】某4国语言抖音点赞系统存在任意文件上传漏洞

漏洞描述 某4国语言 中文+英文+泰语+繁体 UI也非常不错 功能比较完善!【系统功能】1.任务后台添加/用户发布,后台审核 2.机器人、大转盘;已完善 3.支付可以对接第三方和线下银行卡收款;4.后台增加员工账号(推广员专属账号),可以查看员工推广报表;5.会员等级功能,会员级…

wireshark打开时空白|没有接口,卸载重装可以解决

解决方法&#xff1a;卸载wireshark,全选卸载干净&#xff0c;重新安装旧版的wireshark4.2.7, 甚至cmd下运行net start npf时显示服务名无效&#xff0c;但打开wireshark仍有多个接口 错误描述&#xff1a; 一开始下载的是wireshark的最新版&#xff0c;win11 x64 在安装wir…