Open wsxk opened 1 month ago
https://wsxk.github.io/web_basic_3/
前言
物理层 Physical Layer
MAC 层 Link Layer
2.1 MAC层通信示例图
IPv4协议
TCP协议
http协议
完整协议栈示意图
插曲: SCTP协议
插曲:ARP协议
插曲:https协议
前言 复习一下web通信需要经过的各个协议以及层级划分
物理层 Physical Layer 物理层,顾名思义,表示实际的物理链接。 物理层利用物理传输介质为通信的两端建立链接,实现比特流的传输,如铜线、光缆或无线通道,保证比特流正确的传输到对端。 常见设备包括中继器、集线器等。其中集线器 Hub,完全在物理层工作,会将自己收到的每一个字节,都复制到其他端口上去,即广播模式。
MAC 层 Link Layer 链路层,又称 MAC 层。MAC 的全称为 Medium Access Control,即媒体访问控制,主要有两个功能,寻址和控制。 当然,mac层寻址和控制的实际原理是啥也需要了解一下,但不是本文重点,(pass),本文主要讨论在MAC层传输的报文格式 以太网帧 Ethernet frame 是 MAC 层传输数据的基本单位。 其结构如下图所示
这张图引用自https://zhuanlan.zhihu.com/p/632182501 总之mac的头是比较简洁的,只有14个字节,字段有3个,其中 目标mac地址, 6字节,广播时标记为ff ff ff ff ff ff 源mac地址,6字节,即发送方的mac地址 类型,2字节,表示上层传输类型是什么,举个例子,0x0800就代表IPv4协议
MAC层通常用于物理相邻的设备的通信 2.1 MAC层通信示例图
其中
bridge0是一个网络桥接设备(Network Bridge Device)。它的主要作用是连接多个网络接口,使这些接口像在同一个网络交换机上一样工作,从而实现不同网络接口之间的通信。 eth0是主机上的实际物理网卡 vethA/vethB/vethC表示虚拟以太网设备(Virtual Ethernet Devices),这三个虚拟以太网的一端连着bridge0,另一端连着各自对于主机的eth0
以主机A和主机B通信为例,在这种架构下,A往B发送报文,报文传递方向为 A:eth0 -> vethA -> bridge0 -> vethB -> B:eth0 这样设计的好处在于可以在虚拟环境中(如Docker容器、虚拟机等)轻松创建和管理复杂的网络拓扑结构,同时保证主机之间的隔离和独立性。
Internet Header Length: 4bits,指示IP报头的长度,以32位字(4字节)为单位。最小值为5(表示20字节的基本报头)。
Differentiated Services Field:1byte,一般是0x00,指示服务的优先级和特定的服务要求(如低延迟、高吞吐量等),白话的说就是有的报文很急,要先把它传出去的服务
Total Length: 2bytes,指示整个IP数据报的长度(包括报头和数据),以字节为单位。
Identification: 2bytes,唯一标识数据报的ID,用于数据报分片重组
Flags: 3bits,用于控制和识别数据报的分片
Fragment Offset: 13bits,指示分片在原始数据报中的相对位置,以8字节为单位
Time To Live: 1byte,指示数据报在网络中存活的时间(跳数),每经过一个路由器减1,当TTL减为0时,数据报被丢弃。
Protocol: 1byte,指示上层协议类型(如TCP、UDP、ICMP等)。例如,TCP的协议号为6,UDP的协议号为17。
Header Checksum: 2bytes,用于校验报头的完整性。
Source IP Address: 4bytes,发送方的IP地址
Destination IP Address: 4bytes,接收方IP地址
Options: random bytes,可变长度,用于支持控制和调试等特定功能。选项字段不常用,当存在选项时,报头长度会相应增加。
https://wsxk.github.io/web_basic_3/
前言
物理层 Physical Layer
MAC 层 Link Layer
2.1 MAC层通信示例图
IPv4协议
TCP协议
http协议
完整协议栈示意图
插曲: SCTP协议
插曲:ARP协议
插曲:https协议
前言 复习一下web通信需要经过的各个协议以及层级划分
物理层 Physical Layer 物理层,顾名思义,表示实际的物理链接。 物理层利用物理传输介质为通信的两端建立链接,实现比特流的传输,如铜线、光缆或无线通道,保证比特流正确的传输到对端。 常见设备包括中继器、集线器等。其中集线器 Hub,完全在物理层工作,会将自己收到的每一个字节,都复制到其他端口上去,即广播模式。
MAC 层 Link Layer 链路层,又称 MAC 层。MAC 的全称为 Medium Access Control,即媒体访问控制,主要有两个功能,寻址和控制。 当然,mac层寻址和控制的实际原理是啥也需要了解一下,但不是本文重点,(pass),本文主要讨论在MAC层传输的报文格式 以太网帧 Ethernet frame 是 MAC 层传输数据的基本单位。 其结构如下图所示
这张图引用自https://zhuanlan.zhihu.com/p/632182501 总之mac的头是比较简洁的,只有14个字节,字段有3个,其中 目标mac地址, 6字节,广播时标记为ff ff ff ff ff ff 源mac地址,6字节,即发送方的mac地址 类型,2字节,表示上层传输类型是什么,举个例子,0x0800就代表IPv4协议
MAC层通常用于物理相邻的设备的通信 2.1 MAC层通信示例图
其中
bridge0是一个网络桥接设备(Network Bridge Device)。它的主要作用是连接多个网络接口,使这些接口像在同一个网络交换机上一样工作,从而实现不同网络接口之间的通信。 eth0是主机上的实际物理网卡 vethA/vethB/vethC表示虚拟以太网设备(Virtual Ethernet Devices),这三个虚拟以太网的一端连着bridge0,另一端连着各自对于主机的eth0
以主机A和主机B通信为例,在这种架构下,A往B发送报文,报文传递方向为 A:eth0 -> vethA -> bridge0 -> vethB -> B:eth0 这样设计的好处在于可以在虚拟环境中(如Docker容器、虚拟机等)轻松创建和管理复杂的网络拓扑结构,同时保证主机之间的隔离和独立性。
Internet Header Length: 4bits,指示IP报头的长度,以32位字(4字节)为单位。最小值为5(表示20字节的基本报头)。
Differentiated Services Field:1byte,一般是0x00,指示服务的优先级和特定的服务要求(如低延迟、高吞吐量等),白话的说就是有的报文很急,要先把它传出去的服务
Total Length: 2bytes,指示整个IP数据报的长度(包括报头和数据),以字节为单位。
Identification: 2bytes,唯一标识数据报的ID,用于数据报分片重组
Flags: 3bits,用于控制和识别数据报的分片
Fragment Offset: 13bits,指示分片在原始数据报中的相对位置,以8字节为单位
Time To Live: 1byte,指示数据报在网络中存活的时间(跳数),每经过一个路由器减1,当TTL减为0时,数据报被丢弃。
Protocol: 1byte,指示上层协议类型(如TCP、UDP、ICMP等)。例如,TCP的协议号为6,UDP的协议号为17。
Header Checksum: 2bytes,用于校验报头的完整性。
Source IP Address: 4bytes,发送方的IP地址
Destination IP Address: 4bytes,接收方IP地址
Options: random bytes,可变长度,用于支持控制和调试等特定功能。选项字段不常用,当存在选项时,报头长度会相应增加。
TCP协议
http协议
完整协议栈示意图
插曲: SCTP协议
插曲:ARP协议
插曲:https协议