【计算机网络】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,…...
[Web 安全] 反序列化漏洞 - 学习笔记
关注这个专栏的其他相关笔记:[Web 安全] Web 安全攻防 - 学习手册-CSDN博客 0x01:反序列化漏洞 — 漏洞介绍 反序列化漏洞是一种常见的安全漏洞,主要出现在应用程序将 序列化数据 重新转换为对象(即反序列化)的过程中…...
每日一题——字母异位词分组
字母异位词分组 1. 问题描述示例提示 2. 解题思路具体步骤 3. 代码实现4. 代码解析(1)排序法(2)哈希表存储(3)动态内存分配(4)释放内存1. HASH_FIND_STR 的作用2. 宏的定义4. 详细解…...
力扣 807. 保持城市天际线(Java实现)
题目分析 给定一个二维数组,行列长度相等,要保持四个方向仍一观察高度不变的情况下,适当添加建筑高度,问最大高度增量和。所谓四个方向高度不变的增量,其实就是arr[i][j]与同i行最大值同j列最大值之间的最小值的差&…...
【视频2 - 4】初识操作系统,Linux,虚拟机
📝前言说明: ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,主要跟随B站博主灵茶山的视频进行学习,专栏中的每一篇文章对应B站博主灵茶山的一个视频 ●题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。…...
重启securecmd失败
重启securecmd失败 问题描述:KES集群部署工具中,节点管理里新增节点下一步报错无法检查securecmd端口进程情况,安装依赖包后再次下一步提示如下报错: 解决办法: [rootlocalhost cluster]# cd /home/kingbase/cluster…...
python学习四
python运算符与表达式 表达式: Python中的表达式是一种计算结果的代码片段。它可以包 含变量、运算符、常数和函数调用,用于执行各种数学、逻辑 和功能操作 算术运算符: 比较(关系)运算符: 赋值运算符: 逻辑运算符: 位运算符: 成员运算符: 身份运算符 <...
LeetCode 236.二叉树的最近公共祖先
题目: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节…...
react 中,使用antd layout布局中的sider 做sider的展开和收起功能
一 话不多说,先展示效果: 展开时: 收起时: 二、实现代码如下 react 文件 import React, {useState} from react; import {Layout} from antd; import styles from "./index.module.less"; // 这个是样式文件&#…...
2025-02-26 学习记录--C/C++-C语言 整数格式说明符
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 C语言 整数格式说明符 【例如 】🎀 :在 C 语言中,%ld 是 printf 或 scanf 等格式化输入输出函…...
绕过过滤order by
一、常见绕过技术 1、注释符截断 利用注释符(如 --、#)截断后续查询,消除过滤逻辑的影响。 ORDER BY 1-- 若原查询为 SELECT * FROM table ORDER BY 用户输入,注入后可能忽略后续过滤逻辑。 2、大小写混淆/编码绕过 若过滤是大…...
NLP09-加强1-对比SVM
支持向量机(SVM) (一)导入 SVM 相关库 (二) 修改模型初始化 (三) 比较 朴素贝叶斯分类器 SVM分类器 支持向量机(SVM) 代码修改基于NLP09-朴素贝叶斯问句…...
STM32——HAL库开发笔记22(定时器3—呼吸灯实验)(参考来源:b站铁头山羊)
本文利用前几节所学知识来实现一个呼吸灯实验:两颗led灯交替呼吸。 一、STM32CubeMX配置 step1:配置调试接口 step2:配置定时器 定时器1位于APB2总线上,如上图所示。 step3:配置时基单元 按照下图配置 时钟来源配置…...
Vue3+TypeScript 封装一个好用的防抖节流自定义指令
一、前言:为什么需要防抖节流? 在前端开发中,高频触发的事件(如滚动、输入、点击等)容易导致性能问题。防抖(debounce) 和 节流(throttle) 是两种常用的优化手段&#x…...
2025年中国最新安防行业数字安全现状与未来趋势:内生安全成核心共识,从零基础到精通,收藏这篇就够了!
本次,我将为大家剖析由**安奇信发布的《中国安防行业数字安全建设与发展情况白皮书**》。该报告共_37_页,涵盖了众多重要信息和核心论点。若您希望深入了解,请参阅原报告,获取方法已在文档的最后部分提供。 报告核心内容 随着数字…...
项目管理的新理念主要有哪些
随着时代的发展和市场需求的变化,项目管理的理念也在不断地创新和演变。项目管理的新理念包括敏捷管理、精益管理、知识管理、变革管理、协作式管理和项目生命周期管理等。这些新理念不仅能够提高项目的管理效率,还能帮助团队在复杂的环境中更好地应对挑…...
Spring如何解决循环依赖?
一、Spring的三级缓存 关键就是提前暴露未完全创建完毕的Bean。 三级缓存来解决循环依赖: 一级缓存:用于存储完全初始化完成的单例Bean。 二级缓存:用于存储尚未完全初始化,但已实例化的Bean,用于提前暴露对象&#x…...
vscode java环境中文乱码的问题
先说我的结论: 由于我的系统是windows的,所以vscode使用的是默认gbk的编码进行的。 但是我的目的是全部都使用utf-8,因为我的程序始终是要去linux上去运行的,总不能在本地是好的,然后到服务器上就不行了吧,…...
十、大数据资源平台功能架构
一、大数据资源平台的功能架构图总体结构 大数据资源平台功能架构图 关键组件: 1.用户(顶行) 此部分标识与平台交互的各种利益相关者。 其中包括: 市领导 各部门分析师 区政府 外部组织 公民 开发人员 运营经理 2.功能模…...
OpenEuler学习笔记(三十五):搭建代码托管服务器
以下是主流的代码托管软件分类及推荐,涵盖自托管和云端方案,您可根据团队规模、功能需求及资源情况选择: 一、自托管代码托管平台(可私有部署) 1. GitLab 简介: 功能全面的 DevOps 平台,支持代码托管、C…...
使用Spring AI调用Ollama的DeepSeek模型实现结构化输出
在 Docker 环境中部署 Ollama 并使用 Spring AI 框架实现结构化输出,你可以按照以下步骤进行操作: 1. 部署 Ollama 模型 首先,需要在 Docker 中部署 Ollama 并下载 deepseek-r1:1.5b 模型。 1.1 准备部署文件 version: 3.8services:ollam…...
微信小程序调用火山方舟(字节跳动火山引擎)中的DeepSeek大模型
微信小程序的轻量化特性与DeepSeek大模型的AI能力结合,可快速构建智能问答、内容生成等场景化服务。通过火山方舟平台提供的标准化接口,开发者无需深入算法细节即可调用模型能力。 一、注册火山引擎账号,创建API Key和model(接入…...
threejs:射线拾取封装
射线拾取封装代码: import * as THREE from three; // 点击事件// 1.坐标转化(鼠标单击的屏幕坐标转标准设备坐标)// 2.射线计算(通过鼠标单击位置相机参数计算射线值)// 3.射线交叉计算// ObjectsArr是用来做射线拾取的对象数组,一个二维数组 export f…...
2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序
2024年国赛高教杯数学建模 D题 反潜航空深弹命中概率问题 原题再现 应用深水炸弹(简称深弹)反潜,曾是二战时期反潜的重要手段,而随着现代军事技术的发展,鱼雷已成为现代反潜作战的主要武器。但是,在海峡或…...
爬虫框架与库
爬虫框架与库是用于网络数据抓取的核心工具,帮助开发者高效地从网页中提取结构化数据。 Requests:用于发送HTTP请求。 BeautifulSoup:用于解析HTML和XML。 Scrapy:强大的爬虫框架,适合大规模爬取。 Selenium&#…...
从电子管到量子计算:计算机技术的未来趋势
计算机发展的历史 自古以来人类就在不断地发明和改进计算工具,从结绳计数到算盘,计算尺,手摇计算机,直到1946年第一台电子计算机诞生,虽然电子计算机至今虽然只有短短的半个多世纪,但取得了惊人的发展吗,已经经历了五代的变革。计算机的发展和电子技术的发展密切相关,…...
LeetCode 15.三数之和
15.三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组…...
c#笔记-基础知识
目录 整数 浮点 decimal bool 引用 object string 值 枚举 关键字 enum 类型转换 隐式转换 编辑 显式转换 装箱,拆箱 常量 表达式 编辑 字符串的使用 比较字符串 字符格式化 编辑 截取字符串 字符串的分割 插入字符串 删除字符串 …...
el-table fixed滚动条被遮挡导致滚动条无法拖动
/* 设置默认高度-滚动条高度 */ .el-table__fixed { height: calc(100% - 16px) !important; } .el-table__fixed:before { height: 0px; }...
如何在个人电脑本地部署Deepseek大模型?Windows10 + Ollama+Deepseek+ChatBox
第一阶段:下载并安装Ollama 1,打开浏览器,进入 Ollama 官方网站 2,点击“Download”,在新页面选择“Windows”,再点击“Download for Windows”。 3,下载完成后,在文件名࿰…...
链表题()
1、环形列表 141 方法一、 卡节点数量,或者值范围的bug 方法二、 快慢指针(最实用)寻找环 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NUL…...
ZIP64扩展和普通ZIP文件有什么区别?
ZIP64扩展是ZIP文件格式的一个扩展,旨在解决传统ZIP格式的限制,尤其是文件大小和数量的限制。以下是ZIP64扩展与普通ZIP文件的主要区别: 1. 文件大小限制 普通ZIP文件: 单个文件大小限制为 4GB(2^32字节)。…...
smolagents学习笔记系列(五)Tools-in-depth-guide
这篇文章锁定官网教程中的 Tools-in-depth-guide 章节,主要介绍了如何详细构造自己的Tools,在之前的博文 smolagents学习笔记系列(二)Agents - Guided tour 中我初步介绍了下如何将一个函数或一个类声明成 smolagents 的工具&…...
使用 Apache Dubbo 释放 DeepSeek R1 的全部潜力
作者:陈子康,Apache Dubbo Contributor 2025年1月20日,国产大模型公司深度求索(DeepSeek)正式发布了大语言模型 DeepSeek-R1,并同步开源其模型权重。通过大规模强化学习技术,DeepSeek-R1 显著提…...
【星云 Orbit-F4 开发板】03b. 按键玩法二:独立按键双击双击触发
【星云 Orbit-F4 开发板】03b. 按键玩法二:独立按键双击触发 引言 在嵌入式系统中,按键是常用的输入设备。通过检测按键的状态变化,可以实现多种功能,例如单击、双击、长按等。本文将详细介绍如何使用STM32F103的GPIO引脚检测独…...
ave-form.vue 组件中 如何将产品名称发送给后端 ?
如何将产品名称发送给后端。 在这段代码中,产品名称(productName)的处理和发送主要发生在 save() 方法中。让我逐步分析: 产品ID的选择: <w-form-selectv-model"form.productId"label"涉及产品&q…...
2025年电气工程与智能系统国际学术会议(IC2EIS 2025)
重要信息 官网:www.ic2eis.org(点击了解参会投稿等) 时间:2025年3月14-16日 地点:中国河南省郑州市 简介 2025年电气工程与智能系统国际学术会议(IC2EIS 2025)将于2025年3月14-16日在中国郑州举行。会议旨在为电气…...
Android TextView 使用.9图片文字不展示
参考文章 Android的TextView设置padding无效。 实现如上图效果的时候,选择框使用了.9,代码如下: LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(0,...
【PyTorch][chapter-33][transformer-5] MHA MQA GQA, KV-Cache
主要翻译外网: 解剖Deep Seek 系列,详细见参考部分。 目录: Multi-Head Attention (MHA) KV-Cache KV-Cache 公式 Multi-Query Attention(MQA) Grouped-Query Attention(GQA) Multi-Head Latent Attention …...
MS SQL 2008 技术内幕:T-SQL 语言基础
《MS SQL 2008 技术内幕:T-SQL 语言基础》是一部全面介绍 Microsoft SQL Server 2008 中 T-SQL(Transact-SQL)语言的书籍。T-SQL 是 SQL Server 的扩展版本,增加了编程功能和数据库管理功能,使得开发者和数据库管理员能…...
seacmsv9注入管理员账号密码+orderby+limit
seacmsv9注入管理员账号密码 安装海洋CMS(seacms) 将upload文件夹里的文件全部上传至网页服务器后,执行以下操作: 请运行http://域名/install/index.php进行程序安装 SQL语句尝试注入 http://127.0.0.1/upload/comment/api/index.php?g…...
智能生活综合平台需求规格说明书
一、引言 1.1 编写目的 本需求规格说明书旨在明确智能生活综合平台的功能、性能、用户界面等方面的需求,为平台的开发、测试和部署提供详细的指导,确保平台能够满足用户在社交、购物、教育、医疗、政务等多个领域的智能生活需求,提升用户的…...
应用的负载均衡
概述 负载均衡(Load Balancing) 调度后方的多台机器,以统一的接口对外提供服务,承担此职责的技术组件被称为“负载均衡”。 负载均衡器将传入的请求分发到应用服务器和数据库等计算资源。负载均衡是计算机网络中一种用于优化资源利…...
TDengine 中的数据类型
简介 数据类型是数据库产品中一个非常重要的概念,它决定着能处理不同类型数据的范围。 TDengine 支持了所有通用的数据类型,同时还支持了一些特色数据类型,如地理坐标,未来准备支持 decimal 数据类型,方便银行等场景中…...
网络运维学习笔记(DeepSeek优化版)005网工初级(HCIA-Datacom与CCNA-EI)链路层发现协议与VLAN技术
文章目录 一、链路层发现协议1.1 思科CDP协议1.2 华为LLDP协议 二、VLAN(Virtual Local Area Network,虚拟局域网)技术详解2.1 基本概念2.2 技术特性2.3 接口工作原理2.3.1 Access模式2.3.2 Trunk模式 2.4 厂商配置对比思科配置华为配置 2.5 …...
51 哈希表的实现
目录 一、哈希介绍 (一)直接定值法 (二)哈希冲突 (三)负载因子 (四)将关键字转为整数 (五)哈希函数 1、除法散列法 / 除留余数法 2、乘法散列法&#…...
使用Python实现机器学习小案例:构建房价预测模型
背景 在日常生活中,很多人都希望了解某个区域的房价,特别是在购房时。如果我们能够根据一些已知的房屋特征(如面积、卧室数量、距离市中心的距离等)来预测房价,那将大大提高购房决策的效率。在本文中,我们将通过Python实现一个简单的房价预测模型,并帮助你理解机器学习…...
Layui页面粘贴的方法
一: 在Controller层 注解的注意点 : 1.先写一个大的 RequestMapping () () 里面的的是 : (这些你写的那个实体类的方法,在这取名是什么 比如 用户类 user) 2. 在Controller层 需要写一个 Controller的注解 3. Autowired 就相当与 之前new的 全局的serviceImpl 的方法 4.在…...
js:根据后端返回的数组取出每一个数组的keyword字段然后拼接成一个逗号分隔的字符串
问: 现在有一个el-select, 后端接口返回数据为keyword:xxx,referenceNum:1,tagId:132sf32fasdfaf组成的数组, 现在select是多选, 但是但我选择多个下拉框选项后,后端需要前端返回的数据tagIds字段需要时一个字符串…...
ES 客户端 API 二次封装思想
ES 客户端 API 二次封装思想 网页端 : ip5601 索引创建 数据新增 数据查询 数据删除 因为json串会出现在代码中,为了让用户更容易去添加数据所以去封装它。 思想:为了让json串变得更加容易添加,封装最主要是为了简化正文的…...