【计算机网络】OSI模型、TCP/IP模型、路由器、集线器、交换机
一、计算机网络分层结构
计算机网络分层结构 指将计算机网络的功能划分为多个层次,每个层次都有其特定的功能和协议,并且层次之间通过接口进行通信。
分层设计的优势:
- 模块化:各层独立发展(如IPv4→IPv6,不影响应用层)。
- 简化复杂度:开发者只需关注特定层的实现。
- 灵活性与兼容性:不同协议可替换(如Wi-Fi替换以太网)。
- 故障隔离:问题定位更高效(如网络层故障不影响传输层)。
分层模型:
- OSI
- TCP/IP
二、OSI
1、概述
OSI 由国际标准化组织ISO提出,属于理论模型,市场实践失败。
层级 | 名称 | 功能概要 | 典型协议/技术 |
---|---|---|---|
7 | 应用层 | 用户应用程序接口 | HTTP, FTP, DNS, DHCP,SMTP/POP3/IMAP |
6 | 表示层 | 数据格式转换与加密 | SSL/TLS, JPEG, ASCII |
5 | 会话层 | 会话管理与同步 | NetBIOS, RPC,SSH |
4 | 传输层 | 端到端可靠传输 | TCP, UDP |
3 | 网络层 | 逻辑寻址与路由 | IP, ICMP, OSPF |
2 | 数据链路层 | 物理寻址与帧传输 | Ethernet, PPP, Wi-Fi(MAC层) |
1 | 物理层 | 物理介质传输比特流 | 光纤, 双绞线, 无线电波 |
OSI 每一层都定义了特定的功能和协议,为上一层提供服务,并与下一层进行交互。
OSI 按资源与通信划分:
- 上三层(应用、表示、会话)属于 资源子网 , 负责数据处理 ;
- 中间层(传输)属于资源子网 与 数据子网的接口 ;
- 下三层(网络上、数据链路、物理)属于通信子网 , 负责数据通信 ;
通信双方的 主机 涉及到全部 七层 模型 ;
中间的 路由器 , 只涉及 网络层 , 数据链路层 , 物理层 , 三层 ;
3、分层说明
2.1 应用层(Application Layer)
“应用层” 概念 : 应用层是 用户 与 网络的界面,所有能与用户交互,并产生网络流量的程序,称为应用层 ;
“应用层” 服务协议 :
- FTP 文件传输协议
- SMTP 邮件传输协议
- HTTP 超文本传输协议
2.2 表示层(Presentation Layer)
“表示层” 概念 : 处理 两个通信系统 中交换信息的 表示方式 , 通常用于处理 语法 和 语义 ;
"通信系统 " 可以理解成一台 网络设备 ;
“表示层” 功能 :
- 数据格式转换 : 将二进制数据转为 图片 , 文本 , 音视频 ;
- 数据加密解密 : 用户登录 , 将密码加密传输 ;
- 数据压缩恢复 : 如 直播场景 , 推流时 先将图片压缩成 H.264 格式 , 观看时 将 H.264 格式转为 图像展示 ;
表示层 不是单独的层次 , 实际使用时 , 被 规划到了 应用层中 ; 表示层 没有单独的协议 ;
2.3 会话层(Session Layer)
“会话” 概念 : 向 表示层实体 或 用户进程 提供 建立连接的服务 , 并在该建立的连接上 , 有序地 传输数据 , 上述整个过程称为 “会话” , 又称为 “建立同步 ( SYN )” ;
会话层 功能 :
- 会话管理 : 建立 , 管理 , 终止 会话 ;
- 校验同步 : 在数据中插入 校验点 , 在通信失效时 , 从 校验点 继续恢复通信 , 使数据同步 ; 如 大文件的 断点续传 功能 ;
会话层 主要协议 :
- ADSP 协议
- ASP 协议
2.4 传输层(Transport Layer)
“传输层” 概念 : 负责 两个 主机进程 间通信 , 是 “端到端” 通信 , 传输单位是 报文段 , 用户数据报 ;
“传输层” 是 资源子网 ( 应用层 , 表示层 , 会话层 ) 与 通信子网 ( 网络层 , 数据链路层 , 物理层 ) 之间的接口层 ;
区分端到端与点对点:
- 端到端(End-to-End)
- 传输层关注的是通信的起点和终点(即两个终端设备上的应用进程之间的逻辑连接)。例如,当你的浏览器(客户端)与服务器(服务端)通过TCP通信时,传输层确保数据从客户端进程(如Chrome)完整、可靠地传递到服务器进程(如Nginx)。
- 核心任务:进程间通信(通过端口号区分)、可靠性(如TCP的确认重传机制)、流量控制、拥塞控制等。
- 中间节点无关性:传输层协议(如TCP/UDP)的头部信息仅在通信的两端(发送方和接收方)被解析和处理,中间的网络设备(如路由器)仅处理网络层(如IP)及以下的信息。
- 点对点(Point-to-Point):
- 点对点通信通常指相邻节点之间的直接连接,例如数据链路层(如以太网、Wi-Fi)或物理层的通信。
- 核心任务:确保数据在单条链路上正确传输(如MAC地址寻址、帧校验等)。
- 中间节点参与:每个中间节点(如路由器、交换机)需要处理数据链路层的帧信息,逐跳(Hop-by-Hop)转发数据。
“传输层” 功能 :
- 数据传输 : 可靠传输 ( TCP ) , 不可靠传输 ( UDP ),QUIC(快速UDP互联网连接)
- 差错控制 : 如果传输出错 , 重发 , 或纠错 ;
- 流量控制 : 发送方 与 接收方 同步 ;
- 复用 : 发送数据时 , 多个 应用进程 , 同时使用 下一层 运输层 的服务 ;
- 分用 : 接收数据时 , 运输层将接收到的信息 , 根据 端口号 , 分别交给 不同的 应用进程 使用 ;
2.5 网络层(Network Layer)
“网络层” 概念 : 将 分组 从 源端 传递到 目的端 , 为 分组交换网 上 不同主机 提供 通信服务 ;
“网络层” 数据传输单位 : 数据包;
“数据报” 与 “分组” : 当数据过长时 , 就会将 数据报 切割成小的 分组 , 增加传输的灵活性 ;
“网络层” 功能 :
- 路由选择 : 主机间通信时 , 选择网络上 路由器的 最佳路径 ;
- 流量控制 : 限制发送端速度 , 协调 发送端 接收端 的数据流量 ;
- 差错控制 : 分组数据校验 , 尽量纠错 , 确保数据的正确性 ;
- 拥塞控制 : 如果所有的节点 都 来不及接收分组 , 需要丢弃大量分组 , 此时 网络处于拥塞状态 , 此时 需要采取一定的措施 , 缓解这种拥塞状态 ; 与 流量控制不同的是 该机制是 整体地控制 , 不单单是限制发送端速度 ,
“网络层” 协议 :
- IP
- IPX
- ICMP
- IGMP
- ARP
- RARP
- OSPF
2.6 数据链路层(Data Link Layer)
“数据链路层” 概念 : 将 网络层 传递下来的 数据报 组装成 帧 ;
“数据链路层” 数据传出单位 : 帧 ;
“数据链路层” 功能 :
- 成帧 : 定义 帧 开始 和 结束 标识 ;
- 差错控制 : 针对 帧错误 ( 检错 ) , 位错误 ( 纠错 ) , 进行处理 ;
- 流量控制 : 发送方 和 接收方 速度协调 , 防止 接收方 缓存不足 , 导致数据丢弃 ;
- 访问控制 : 控制 主机 对于 信道 的 访问 控制 ; 如 广播网络 , 同时只有一个设备能发送信息 , 谁发送 , 由数据链路层控制 ;
“数据链路层” 协议 :
- SDLC
- HDLC
- PPP
- STP
2.7 物理层(Physical Layer)
“物理层” 概念 : 在 物理媒体 上实现 比特流 透明传输 ;
透明传输 : 不管数据的内容 , 直接在链路上传输 ;
“物理层” 数据传输单位 : 比特 ( bit ) ;
“物理层” 功能 :
- 定义接口特性 : 传输介质 , 网络接口引脚 等 ;
- 定义传输模式 : 单工 ( 单向传输 ) , 半双工 ( 不同时 双向传输 ) , 全双工 ( 同时双向传输 ) ;
- 定义传输速率 : 网络的带宽 , 百兆网 , 千兆网 ;
- 比特同步 : 使用同步时钟 , 保证发送接收比特同步 ;
- 比特编码 : 规定 电压 与 比特 的关系 , 曼彻斯特编码 , 差分曼彻斯特编码 等 ;
“物理层” 协议 :
- 802.3
- Rj45
3、OSI 通信
主机A通过路由器向B发送HTTP请求,网络拓扑示例
主机A(192.168.1.2) → 路由器R1(接口1:192.168.1.1,接口2:203.0.113.1) → 主机B(203.0.113.5)
3.1 主机A的封装过程(发送端)
(7) 应用层(Application Layer)
- 功能:用户触发HTTP请求(如点击网页按钮)。
- 数据处理:生成HTTP报文(例如:GET /index.html HTTP/1.1)。
- 协议:HTTP/HTTPS。
- 数据单位:应用数据(Message)。
(6) 表示层(Presentation Layer)
- 功能:格式化、加密数据。
- 数据处理:
- 将HTTP报文转换为二进制格式(如ASCII编码)。
- 若使用HTTPS,进行TLS加密。
- 协议:TLS/SSL(加密)、JPEG/MPEG(数据格式转换)。
- 数据单位:格式化后的数据。
(5) 会话层(Session Layer)
- 功能:建立会话连接。
- 数据处理:
- 在A和B之间建立会话(如TCP三次握手后维护会话状态)。
- 若使用RPC或SSH,管理会话的持续性和恢复能力。
- 协议:NetBIOS、RPC、SSH。
- 数据单位:会话数据。
(4) 传输层(Transport Layer)
- 功能:端到端可靠传输。
- 数据处理:
- 将数据分段(Segment),添加源端口和目的端口(如HTTP用80端口)。
- 若使用TCP,添加序列号、确认号、窗口大小等控制信息。
- 协议:TCP(可靠)或UDP(无连接)。
- 数据单位:数据段(Segment)。
- TCP头部示例:
| 源端口(A:50000) | 目的端口(B:80) | 序列号 | 确认号 | 窗口大小 | 校验和 |
(3) 网络层(Network Layer)
- 功能:逻辑寻址与路由。
- 数据处理:
- 添加源IP地址(A的IP)和目的IP地址(B的IP)。
- 若跨网络传输,路由器根据IP地址选择最佳路径。
- 协议:IP(IPv4/IPv6)、ICMP、OSPF。
- 数据单位:数据包(Packet)。
- IP头部示例:
| 源IP(192.168.1.2) | 目的IP(203.0.113.5) | TTL | 协议(TCP=6) | 校验和 |
(2) 数据链路层(Data Link Layer)
- 功能:物理寻址与帧传输。
- 数据处理:
- 将数据包封装成帧(Frame),添加源MAC地址(A的MAC)和目的MAC地址(下一跳设备的MAC,如路由器)。
- 通过ARP协议查询下一跳的MAC地址(若未知)。
- 协议:以太网(IEEE 802.3)、Wi-Fi(IEEE 802.11)。
- 数据单位:帧(Frame)。
- 以太网帧示例:
| 目的MAC(路由器) | 源MAC(A) | 类型(IPv4=0x0800) | 数据 | CRC校验 |
(1) 物理层(Physical Layer)
- 功能:比特流传输。
- 数据处理:
- 将帧转换为比特流(0和1),通过物理介质(如网线、Wi-Fi信号)传输。
- 协议:以太网PHY(如1000BASE-T)、Wi-Fi(IEEE 802.11ac)。
- 数据单位:比特(Bits)。
3.2 路由器R1的处理
路由器工作在网络层(Layer 3),处理逻辑如下:
(1) 物理层 → 数据链路层
- 接收比特流,还原为以太网帧。
- 校验CRC,若通过则剥离以太网帧头部,提取IP数据包。
(2) 网络层
- 检查IP数据包的目的IP地址(203.0.113.5)。
- 根据路由表判断下一跳:
- 若目的IP属于直连网络(如203.0.113.0/24),直接转发到主机B。
- 若需跨网络,选择下一跳路由器(此处假设B在直连网络中)。
- 更新TTL(Time to Live):TTL值减1(防止数据包无限循环)。
(3) 数据链路层重新封装
- 根据下一跳接口(接口2),重新封装数据包为新的以太网帧:
- 源MAC:路由器R1的接口2的MAC地址。
- 目的MAC:主机B的MAC地址(通过ARP查询203.0.113.5的MAC)。
- 若目的MAC未知,触发ARP请求。
(4) 物理层
将新帧转换为比特流,通过接口2发送到主机B所在网络。
3.3 主机B的解封装过程(接收端)
- 物理层:接收比特流,转换为帧。
- 数据链路层:
- 校验帧的完整性(CRC),若正确则剥离MAC头部,提取IP数据包。
- 若目的MAC与B的MAC不匹配,丢弃帧。
- 网络层:
- 检查目的IP地址是否为本机IP,若匹配则剥离IP头部,将数据段传递给传输层。
- 若目的IP不匹配且B是路由器,则重新路由。
- 传输层:
- 根据目的端口号(如80)确定目标应用程序(如Web服务器)。
- 若使用TCP,发送确认报文(ACK)给A。
- 会话层:维护会话状态(如TCP连接保持)。
- 表示层:解密数据(如TLS)或转换数据格式(如JSON解析)。
- 应用层:将HTTP请求传递给Web服务器处理,生成响应(如返回网页内容)。
数据封装与解封装示意图:
主机A发送方向(封装):
应用层(HTTP) → 表示层(TLS加密) → 会话层(会话ID) → 传输层(TCP头部) → 网络层(IP头部) → 数据链路层(MAC头部) → 物理层(比特流)路由器R1处理:
接收:比特流 → [MAC-A→R1 | IP|TCP|HTTP]
剥离MAC头部 → [IP|TCP|HTTP]
路由决策 → 重新封装: [MAC-R1→B | IP|TCP|HTTP] → 比特流主机B接收方向(解封装):
物理层(比特流) → 数据链路层(剥离MAC头部) → 网络层(剥离IP头部) → 传输层(剥离TCP头部) → 会话层(验证会话) → 表示层(解密) → 应用层(处理HTTP请求)
三、TCP / IP
1、TCP/IP分层模型概述
TCP/IP模型最初由美国国防部设计,用于实现不同网络设备的互联。它分为四层(经典模型)或五层(教学常用扩展版),核心思想是分层抽象和协议独立:
- 经典四层模型:应用层(Application) → 传输层(Transport) → 网络层(Internet) → 链路层(Link)
- 扩展五层模型(更贴近实际实现):应用层 → 传输层 → 网络层 → 数据链路层 → 物理层
2、各层功能与协议
2.1 应用层(Application Layer)
- 功能:
- 直接面向用户或应用程序,提供端到端的数据交互服务(如文件传输、网页访问)。
- 定义数据格式(如HTTP的请求/响应报文)。
- 通过进程间通信(端口号)区分不同服务。
- 典型协议:
- HTTP:网页浏览(80/443端口)。
- FTP:文件传输(20/21端口)。
- SMTP/POP3:电子邮件发送与接收。
- DNS:域名解析(53端口)。
- SSH:加密远程登录(22端口)。
2.2 传输层(Transport Layer)
功能:
- 实现端到端的可靠或不可靠传输,确保数据在源主机和目标主机的应用进程之间正确交付。
- 多路复用/解复用:通过端口号区分同一主机上的多个应用进程。
- 流量控制(如TCP的滑动窗口)。
- 拥塞控制(如TCP的慢启动、拥塞避免)。
- 可靠性(仅TCP):通过确认应答(ACK)、超时重传、数据排序实现。
核心协议:
- TCP(Transmission Control Protocol):面向连接、可靠传输,适用于文件下载、网页访问等场景。
- UDP(User Datagram Protocol):无连接、尽力交付,适用于实时视频、语音通话等低延迟场景。
2.3 网络层(Internet Layer)
功能:
- 负责主机到主机的逻辑寻址与路由选择,将数据包从源主机跨网络传递到目标主机。
- IP地址分配:唯一标识网络中的设备(如IPv4的192.168.1.1)。
- 路由选择:通过路由器决定数据包的转发路径。
- 分片与重组:根据链路最大传输单元(MTU)拆分/合并数据包。
核心协议:
- IP(Internet Protocol):无连接、不可靠的数据包传输。
- ICMP(Internet Control Message Protocol):网络诊断(如ping命令)。
- ARP(Address Resolution Protocol):将IP地址解析为MAC地址。
2.4 数据链路层(Data Link Layer)
功能:
- 管理同一局域网(LAN)内相邻设备的直接通信,确保数据在物理链路上可靠传输。
- MAC地址寻址:通过硬件地址(如00:1A:2B:3C:4D:5E)标识设备。
- 帧封装:将网络层的数据包封装为帧,添加头部(源/目标MAC地址)和尾部(校验和)。
- 差错检测:通过CRC校验发现传输错误。
典型协议与技术:
- 以太网(Ethernet):有线局域网标准。
- Wi-Fi(IEEE 802.11):无线局域网标准。
- PPP(点对点协议):拨号上网、广域网连接。
2.5 物理层(Physical Layer)
功能:
- 定义物理介质的电气、机械特性,负责比特流(0/1)的传输。
- 信号编码(如曼彻斯特编码)。
- 传输介质管理(如光纤、双绞线、无线电波)。
- 物理接口规范(如RJ45网线接口、Wi-Fi天线)。
典型技术:
- 双绞线(Cat5/Cat6)、同轴电缆、光纤。
- 调制解调器(Modem)、集线器(Hub)。
3、数据封装与解封装
数据在传输过程中会逐层添加或移除协议头部,形成不同的数据单元:
- 应用层:生成原始数据(如HTTP请求)。
- 传输层:添加TCP/UDP头部 → 生成段(Segment) 或 数据报(Datagram)。
- 网络层:添加IP头部 → 生成数据包(Packet)。
- 数据链路层:添加帧头(MAC地址)和帧尾 → 生成帧(Frame)。
- 物理层:转换为比特流通过物理介质传输。
接收方则反向操作(解封装),逐层剥离头部并处理。
4、实际应用示例:访问网页
- 应用层:浏览器生成HTTP请求(GET /index.html)。
- 传输层:TCP封装请求,添加源端口(随机)和目标端口(80)。
- 网络层:IP封装,添加源IP(客户端)和目标IP(服务器)。
- 数据链路层:以太网封装,添加源MAC(客户端网卡)和目标MAC(下一跳路由器)。
- 物理层:通过网线/Wi-Fi传输比特流。
服务器反向解封装,返回网页数据。
四、TCP/IP vs. OSI模型
TCP/IP模型 | OSI模型 | 功能对应 |
---|---|---|
应用层 | 应用层、表示层、会话层 | 用户交互与数据格式处理(如加密、压缩) |
传输层 | 传输层 | 端到端通信(TCP/UDP) |
网络层 | 网络层 | IP寻址与路由(IPv4/IPv6) |
数据链路层 | 数据链路层 | MAC寻址与帧传输(以太网) |
物理层 | 物理层 | 比特流传输(电缆、光纤) |
五、网络通信
场景:主机A想与主机B通信
1、通信步骤
主机A与主机B跨网络通信的底层过程涉及多个网络层级和设备协作,以下是详细步骤:
(1)确定目标地址
- IP地址获取:主机A首先需要知道主机B的IP地址(通过DNS解析域名或直接输入)。
- 子网判断:主机A通过子网掩码计算,判断B是否与自己在同一局域网:
- 同一局域网:直接通信(无需网关);
- 不同局域网:需通过路由器(默认网关)转发。
(2)数据封装(网络层与数据链路层)
- 构造IP数据包:
- 源IP:主机A的IP地址;
- 目标IP:主机B的IP地址。
- 构造数据帧(链路层):
- 目标MAC地址:若B在本地网络,直接使用B的MAC地址;否则使用默认网关的MAC地址(通过ARP协议获取)。
(3)跨网络通信的核心步骤
- 发送到默认网关
- 主机A将帧发送到本地网关(路由器),目标MAC地址为网关的MAC地址,但IP包的目标IP仍是B的地址。
- ARP协议:若网关MAC未知,主机A通过ARP广播查询网关的MAC。
- 路由器的逐跳转发
- 解封装与路由决策:
- 路由器剥离帧头,读取目标IP地址;
- 查询路由表确定下一跳路由器(基于最长前缀匹配)。
- 重新封装帧:
- 下一跳路由器的MAC地址(通过ARP或路由表缓存获取);
- 源MAC变为当前路由器的出口MAC,目标MAC变为下一跳的MAC。
- TTL减1:防止数据包无限循环,若TTL为0则丢弃并发送ICMP超时消息。
- 解封装与路由决策:
- 跨网络传输
- 数据包经过多个路由器,每经过一跳,MAC地址更新一次,但IP地址始终不变(除非经过NAT)。
- 路由协议(如OSPF、BGP):路由器间动态交换路由信息,优化路径选择。
- 到达目标网络
- 最终路由器发现目标IP属于其直连网络:
- 通过ARP获取主机B的MAC地址(若缓存中不存在,则广播ARP请求);
- 封装帧(源MAC为路由器接口MAC,目标MAC为B的MAC),发送到B的局域网。
(4)数据接收与响应
主机B处理:
- 检查帧目标MAC是否匹配,确认后解封装;
- 网络层检查目标IP是否匹配,传输层处理(如TCP/UDP端口)。
- 响应流程:主机B的回复按相同流程反向执行。
2、关键技术与协议
- ARP协议:解决IP到MAC的映射(局域网内)。
- 路由协议:动态决定最佳路径(如OSPF用于内部网络,BGP用于互联网)。
- NAT(网络地址转换):若主机A/B位于私有网络,路由器会将私有IP转换为公网IP。
- ICMP:处理错误(如目标不可达、TTL超时)。
3、示例流程(跨局域网)
主机A(IP: 192.168.1.2)发送数据给主机B(IP: 203.0.113.5)。
判断B不在本地网络,发送帧到默认网关(MAC: 00:11:22:33:44:55)。
网关路由器查询路由表,确定下一跳为ISP的路由器。
数据包经过多个自治系统(AS),由BGP协议引导至B所在的网络。
最终路由器将帧发送给B(MAC: AA:BB:CC:DD:EE:FF ),完成通信。
4、总结
- MAC地址:仅在当前链路有效,每跳更新;
- IP地址:端到端不变(NAT除外),用于全局寻址;
- 路由器:负责跨网络转发,依赖路由表和协议;
- NAT:解决IPv4短缺,实现私有网络与公网通信。
通过上述过程,即使主机A和B位于不同网络,数据仍能通过底层协议的协作可靠传输。
六、网络设备
1、路由器(Router)
- 工作层级:OSI 网络层(Layer 3)。
- 核心功能:
- 跨网络通信:连接不同网络(如局域网与互联网),基于 IP 地址 进行数据包路由。
- NAT(网络地址转换):将私有 IP 转换为公网 IP,实现多设备共享一个公网 IP。
- 防火墙与安全策略:提供访问控制(ACL)、VPN 支持等。
- 典型场景:
-0 家庭宽带路由器(连接内网和互联网)。- 企业边界路由器(连接分支机构或公网)。
2、集线器(Hub)
- 工作层级:OSI 物理层(Layer 1)。
- 核心功能:
- 信号广播:将接收到的数据信号广播到所有端口,不区分目标设备。
- 共享带宽:所有设备共享同一带宽,易引发冲突(需 CSMA/CD 机制协调)。
- 缺点:效率低、安全性差(所有设备都能收到数据),已被交换机取代。
- 典型场景:早期小型局域网(现基本淘汰)。
3、交换机(Switch)
(1) 二层交换机(Layer 2 Switch)
- 工作层级:OSI 数据链路层(Layer 2)。
- 核心功能:
- 基于 MAC 地址转发:通过 MAC 地址表 学习设备位置,将数据帧精准转发到目标端口。
- 冲突域隔离:每个端口为独立冲突域,支持全双工通信。
- 典型场景:现代局域网(如企业内网、家庭网络),用于连接终端设备(电脑、打印机等)。
(2) 三层交换机(Layer 3 Switch)
- 工作层级:OSI 网络层(Layer 3) + 数据链路层(Layer 2)。
- 核心功能:
- 二层交换功能:支持 MAC 地址表转发。
- IP 路由功能:可基于 IP 地址在不同 VLAN 或子网间路由数据,替代部分路由器功能。
- 高速转发:通过硬件加速实现接近交换速度的路由性能。
- 典型场景:
- 企业内网中需要高速 VLAN 间通信的场景(如不同部门子网互联)。
- 替代传统路由器实现内部网络分段。
4、设备对比总结
设备 | 工作层级 | 核心功能 | 适用场景 | 关键区别 |
---|---|---|---|---|
集线器 | Layer 1(物理层) | 广播信号到所有端口 | 淘汰设备,仅用于历史参考 | 无智能,共享带宽,冲突多 |
二层交换机 | Layer 2(数据链路层) | 基于 MAC 地址精准转发 | 现代局域网内设备互联 | 隔离冲突域,高效转发 |
三层交换机 | Layer 3(网络层) + Layer 2 | 支持 IP 路由 + 二层交换 | 需要高速 VLAN/子网互联的企业网络 | 结合交换和路由,性能优于传统路由器 |
路由器 | Layer 3(网络层) | 跨网络路由、NAT、防火墙 | 连接不同网络(如内网与互联网) | 支持广域网协议(如 BGP、PPPoE) |
总结:
- 集线器:已淘汰,仅需了解其广播特性。
- 二层交换机:局域网内高效传输的基石。
- 三层交换机:企业内网分段与高速路由的核心。
- 路由器:跨网络通信与安全的守门人。
关键区别:
- 交换机(二层/三层)专注局域网,路由器专注跨网络。
- 三层交换机 = 二层交换 + 简单路由(适合内部网络)。
- 路由器 = 复杂路由 + 广域网协议支持(适合连接外部网络)。
5、实际应用中的选择
- 小型家庭网络:使用 家用路由器(集成 NAT、Wi-Fi、简单交换功能)。
- 企业局域网:
- 接入层:二层交换机连接终端设备。
- 核心层:三层交换机实现 VLAN 间高速路由。
- 边界:路由器连接外网(互联网或其他分支机构)。
- 数据中心:高性能三层交换机处理大规模内部流量,路由器用于外部连接。
七、IPv6 & IPv4
1、IPv4(互联网协议第四版)
- 地址结构:
- 32位地址,约43亿个唯一地址(理论上)。
- 表示方式:点分十进制(如 192.168.1.1),每部分为0-255的十进制数。
- 关键特性:
- 地址分类:A、B、C类地址,支持私有地址(如 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)。
- NAT(网络地址转换):允许多个设备共享一个公网IP地址,缓解地址短缺。
- 报头结构:包含可选字段(如选项、填充),长度可变,处理开销较大。
- 问题与限制:
- 地址枯竭:设备激增导致地址不足。
- 复杂性:依赖NAT,影响端到端通信(如P2P应用)。
- 安全性:IPsec为可选扩展,非强制支持。
2、IPv6(互联网协议第六版)
- 地址结构:
- 128位地址,地址空间巨大(约3.4×10³⁸个地址)。
- 表示方式:八组四位十六进制数,冒号分隔(如 2001:0db8:85a3::8a2e:0370:7334),支持简写 (省略前导零和连续零组)。
- 关键特性:
- 地址类型:
- 全球单播地址:公网唯一地址(如 2000::/3)。
- 本地单播地址:类似IPv4私有地址(如 fc00::/7)。
- 链路本地地址:仅在同一链路有效(如 fe80::/10)。
- 多播与任播:取代IPv4广播,提升效率。
- 自动配置:
- SLAAC(无状态地址自动配置):通过路由器广播生成地址。
- DHCPv6:可选,用于有状态配置(如DNS信息)。
- 报头优化:
- 固定长度40字节,取消可选字段(通过扩展头实现)。
- 减少路由器处理开销,提升转发效率。
- 内置安全性:强制支持IPsec(认证与加密)。
- 移动性支持:设备切换网络时地址不变(移动IPv6)。
- 地址类型:
3、IPv6 相对于 IPv4 的主要改进
- 地址空间:彻底解决地址短缺问题,支持海量设备接入。
- 简化路由:固定报头结构、更高效的多级路由聚合。
- 端到端通信:无需NAT,保留端到端透明性。
- 安全性:IPsec成为协议栈核心部分。
- QoS支持:通过流标签字段实现更精细的流量控制。
- 即插即用:自动配置减少管理负担。
4、IPv4 与 IPv6 的共存与过渡技术
- 双栈(Dual Stack):设备同时支持IPv4和IPv6协议栈。
- 隧道技术:将IPv6数据包封装在IPv4中传输(如6to4、Teredo)。
- 协议转换:通过NAT64/DNS64实现IPv6与IPv4网络互通。
- 应用层代理:代理服务器处理协议差异。
十、资料
- 【计算机网络】计算机网络 OSI 参考模型
- B站蛋老师说计网
相关文章:
【计算机网络】OSI模型、TCP/IP模型、路由器、集线器、交换机
一、计算机网络分层结构 计算机网络分层结构 指将计算机网络的功能划分为多个层次,每个层次都有其特定的功能和协议,并且层次之间通过接口进行通信。 分层设计的优势: 模块化:各层独立发展(如IPv4→IPv6,…...

正点原子[第三期]Arm(iMX6U)Linux系统移植和根文件系统构建-5.3 xxx_defconfig过程
前言: 本文是根据哔哩哔哩网站上“arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用: …...

250223-Linux/MacOS如何跳过Miniconda的条款阅读,直接安装Miniconda
你可以通过将 -b 参数传递给 Miniconda 的安装脚本,来跳过条款阅读并自动同意许可条款。这样安装会自动进行到下一步的选择项。下面是具体的安装命令: bash Miniconda3-latest-Linux-x86_64.sh -b这里的 -b 代表“批量模式”(batch mode&…...

点云的几何特征
点云的几何特征是基于一个点周围的邻域对该点周围几何形状的描述。例如,位于墙面上的一个点将具有较高的平面度planarity。 基于局部点云的特征值 λ1、λ2 和 λ3 以及特征向量 e1、e2 和e3计算得到的一系列几何特征,这些特征用于描述点云中点的局部几…...

月之暗面新发布: MUON 在 LLM 训练中的可扩展性
MUON 在 LLM 训练中的可扩展性 摘要 最近,基于矩阵正交化的 Muon 优化器(K. Jordan 等人,2024 年)在训练小型语言模型方面表现出色,但其在更大规模模型上的可扩展性尚未得到验证。我们确定了 Muon 放大的两个关键技术…...
10.Docker 仓库管理
Docker 仓库管理 Docker 仓库管理 Docker 仓库管理 Docker 仓库,类似于 yum 仓库,是用来保存镜像的仓库。为了方便的管理和使用 docker 镜像,可以将镜像集中保存至 Docker 仓库中,将制作好的镜像 push 到仓库集中保存,在需要镜像…...

Deepseek存算分离安全部署手册
Deepseek大火后,很多文章教大家部署Dfiy和ollamadeepseek,但是大部分都忽略了数据安全问题,本文重点介绍Deepseek存算分裂安全架设,GPU云主机只负责计算、CPU本地主机负责数据存储,确保数据不上云,保证私有…...

【Redis原理】底层数据结构 五种数据类型
文章目录 动态字符串SDS(simple dynamic string )SDS结构定义SDS动态扩容 IntSetIntSet 结构定义IntSet的升级 DictDict结构定义Dict的扩容Dict的收缩Dict 的rehash ZipListZipListEntryencoding 编码字符串整数 ZipList的连锁更新问题 QuickListQuickList源码 SkipListRedisOb…...
Java——抽象类
在Java中,抽象类(Abstract Class) 是一种特殊的类,用于定义部分实现的类结构,同时允许子类提供具体的实现。抽象类通常用于定义通用的行为或属性,而将具体的实现细节留给子类。 1. 抽象类的定义 语法&…...
DeepSeek在初创企业、教育和数字营销领域应用思考
如今,像 DeepSeek 这样的人工智能工具正在改变企业的运营方式,优化流程并显著提高生产力。通过重复任务的自动化、大量数据的分析以及内容创建效率的提高,组织正在寻找新的竞争和卓越方式。本文介绍了 DeepSeek 如何用于提高三个关键领域的生…...
java开发——为什么要使用动态代理?
举个例子:假如有一个杀手专杀男的,不杀女的。代码如下: public interface Killer {void kill(String name, String sex);void watch(String name); }public class ManKiller implements Killer {Overridepublic void kill(String name, Stri…...
c++中,什么时候应该使用mutable关键字?
在 C 中,mutable 关键字用于修饰类的成员变量,允许在 const 成员函数中修改这些变量。它的核心作用是区分 物理常量性(对象内存不可修改)和 逻辑常量性(对象对外表现的状态不变)。以下是详细解析࿱…...

deepseek本地部署,ragflow,docker
先下载ollama 1.官网下载 deepseek-r1:14bhttps://ollama.com/library/deepseek-r1:14b 2.GitHub下载GitHub - ollama/ollama: Get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 2, and other large language models. 两种方式 安装完后,cmd-&g…...

智能优化算法:莲花算法(Lotus flower algorithm,LFA)介绍,提供MATLAB代码
一、 莲花算法 1.1 算法原理 莲花算法(Lotus flower algorithm,LFA)是一种受自然启发的优化算法,其灵感来源于莲花的自清洁特性和授粉过程。莲花的自清洁特性,即所谓的“莲花效应”,是由其叶片表面的微纳…...
通过AI辅助生成PPT (by quqi99)
作者:张华 发表于:2025-02-23 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99) 问题 媳妇需要将一个pdf文件中的某些部分做成PPT课件,我在想是…...
P9631 [ICPC 2020 Nanjing R] Just Another Game of Stones Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),有 m m m 个操作分两种: chmax ( l , r , k ) \operatorname{chmax}(l,r,k) chmax(l,r,k):对每个 i ∈ [ l , r ] i \in [l,r] i∈[l,…...

nodejs:vue 3 + vite 作为前端,将 html 填入<iframe>,在线查询英汉词典
向 doubao.com/chat/ 提问: node.js js-mdict 作为后端,vue 3 vite 作为前端,编写在线查询英汉词典 后端部分(express js-mdict ) 详见上一篇:nodejs:express js-mdict 作为后端ÿ…...
QEMU源码全解析 —— 内存虚拟化(18)
接前一篇文章:QEMU源码全解析 —— 内存虚拟化(17) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 QEMU内存管理模型...

Spring Boot 日志管理(官网文档解读)
摘要 本篇文章详细介绍了SpringBoot 日志管理相关的内容,文章主要参考官网文章的描述内容,并在其基础上进行一定的总结和拓展,以方便学习Spring Boot 的小伙伴能快速掌握Spring Boot 日志管理相关的内容。 日志实现方式 Sping Boot 的日志管…...
MATLAB进阶之路:数据导入与处理
在MATLAB的学习旅程中,我们已经初步了解了它的基础操作。如今,我们将沿着这条充满惊喜的道路,迈向下一个重要的站点——数据导入与处理。这部分内容就像是为MATLAB注入了强大的能量,使其能够从现实的数据世界中汲取信息,然后像一位智慧的魔法师一样,巧妙地处理这些数据,…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...