当前位置: 首页 > news >正文

【计算机网络】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请求,网络拓扑示例

主机A192.168.1.2) → 路由器R1(接口1192.168.1.1,接口2203.0.113.1) → 主机B203.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头部示例:
    |IP192.168.1.2| 目的IP203.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(路由器) |MACA| 类型(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-AR1 | IP|TCP|HTTP]  
剥离MAC头部 → [IP|TCP|HTTP]  
路由决策 → 重新封装: [MAC-R1B | 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&#xff0c…...

[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.二叉树的最近公共祖先

题目&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节…...

react 中,使用antd layout布局中的sider 做sider的展开和收起功能

一 话不多说&#xff0c;先展示效果&#xff1a; 展开时&#xff1a; 收起时&#xff1a; 二、实现代码如下 react 文件 import React, {useState} from react; import {Layout} from antd; import styles from "./index.module.less"; // 这个是样式文件&#…...

2025-02-26 学习记录--C/C++-C语言 整数格式说明符

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; C语言 整数格式说明符 【例如 】&#x1f380; &#xff1a;在 C 语言中&#xff0c;%ld 是 printf 或 scanf 等格式化输入输出函…...

绕过过滤order by

一、常见绕过技术 1、注释符截断 利用注释符&#xff08;如 --、#&#xff09;截断后续查询&#xff0c;消除过滤逻辑的影响。 ORDER BY 1-- 若原查询为 SELECT * FROM table ORDER BY 用户输入&#xff0c;注入后可能忽略后续过滤逻辑。 2、大小写混淆/编码绕过 若过滤是大…...

NLP09-加强1-对比SVM

支持向量机&#xff08;SVM&#xff09; &#xff08;一&#xff09;导入 SVM 相关库 &#xff08;二&#xff09; 修改模型初始化 &#xff08;三&#xff09; 比较 朴素贝叶斯分类器 SVM分类器 支持向量机&#xff08;SVM&#xff09; 代码修改基于NLP09-朴素贝叶斯问句…...

STM32——HAL库开发笔记22(定时器3—呼吸灯实验)(参考来源:b站铁头山羊)

本文利用前几节所学知识来实现一个呼吸灯实验&#xff1a;两颗led灯交替呼吸。 一、STM32CubeMX配置 step1&#xff1a;配置调试接口 step2&#xff1a;配置定时器 定时器1位于APB2总线上&#xff0c;如上图所示。 step3&#xff1a;配置时基单元 按照下图配置 时钟来源配置…...

Vue3+TypeScript 封装一个好用的防抖节流自定义指令

一、前言&#xff1a;为什么需要防抖节流&#xff1f; 在前端开发中&#xff0c;高频触发的事件&#xff08;如滚动、输入、点击等&#xff09;容易导致性能问题。防抖&#xff08;debounce&#xff09; 和 节流&#xff08;throttle&#xff09; 是两种常用的优化手段&#x…...

2025年中国最新安防行业数字安全现状与未来趋势:内生安全成核心共识,从零基础到精通,收藏这篇就够了!

本次&#xff0c;我将为大家剖析由**安奇信发布的《中国安防行业数字安全建设与发展情况白皮书**》。该报告共_37_页&#xff0c;涵盖了众多重要信息和核心论点。若您希望深入了解&#xff0c;请参阅原报告&#xff0c;获取方法已在文档的最后部分提供。 报告核心内容 随着数字…...

项目管理的新理念主要有哪些

随着时代的发展和市场需求的变化&#xff0c;项目管理的理念也在不断地创新和演变。项目管理的新理念包括敏捷管理、精益管理、知识管理、变革管理、协作式管理和项目生命周期管理等。这些新理念不仅能够提高项目的管理效率&#xff0c;还能帮助团队在复杂的环境中更好地应对挑…...

Spring如何解决循环依赖?

一、Spring的三级缓存 关键就是提前暴露未完全创建完毕的Bean。 三级缓存来解决循环依赖&#xff1a; 一级缓存&#xff1a;用于存储完全初始化完成的单例Bean。 二级缓存&#xff1a;用于存储尚未完全初始化&#xff0c;但已实例化的Bean&#xff0c;用于提前暴露对象&#x…...

vscode java环境中文乱码的问题

先说我的结论&#xff1a; 由于我的系统是windows的&#xff0c;所以vscode使用的是默认gbk的编码进行的。 但是我的目的是全部都使用utf-8&#xff0c;因为我的程序始终是要去linux上去运行的&#xff0c;总不能在本地是好的&#xff0c;然后到服务器上就不行了吧&#xff0c;…...

十、大数据资源平台功能架构

一、大数据资源平台的功能架构图总体结构 大数据资源平台功能架构图 关键组件&#xff1a; 1.用户&#xff08;顶行&#xff09; 此部分标识与平台交互的各种利益相关者。 其中包括&#xff1a; 市领导 各部门分析师 区政府 外部组织 公民 开发人员 运营经理 2.功能模…...

OpenEuler学习笔记(三十五):搭建代码托管服务器

以下是主流的代码托管软件分类及推荐&#xff0c;涵盖自托管和云端方案&#xff0c;您可根据团队规模、功能需求及资源情况选择&#xff1a; 一、自托管代码托管平台&#xff08;可私有部署&#xff09; 1. GitLab 简介: 功能全面的 DevOps 平台&#xff0c;支持代码托管、C…...

使用Spring AI调用Ollama的DeepSeek模型实现结构化输出

在 Docker 环境中部署 Ollama 并使用 Spring AI 框架实现结构化输出&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 部署 Ollama 模型 首先&#xff0c;需要在 Docker 中部署 Ollama 并下载 deepseek-r1:1.5b 模型。 1.1 准备部署文件 version: 3.8services:ollam…...

微信小程序调用火山方舟(字节跳动火山引擎)中的DeepSeek大模型

微信小程序的轻量化特性与DeepSeek大模型的AI能力结合&#xff0c;可快速构建智能问答、内容生成等场景化服务。通过火山方舟平台提供的标准化接口&#xff0c;开发者无需深入算法细节即可调用模型能力。 一、注册火山引擎账号&#xff0c;创建API Key和model&#xff08;接入…...

threejs:射线拾取封装

射线拾取封装代码&#xff1a; import * as THREE from three; // 点击事件// 1.坐标转化(鼠标单击的屏幕坐标转标准设备坐标)// 2.射线计算(通过鼠标单击位置相机参数计算射线值)// 3.射线交叉计算// ObjectsArr是用来做射线拾取的对象数组&#xff0c;一个二维数组 export f…...

2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序

2024年国赛高教杯数学建模 D题 反潜航空深弹命中概率问题 原题再现 应用深水炸弹&#xff08;简称深弹&#xff09;反潜&#xff0c;曾是二战时期反潜的重要手段&#xff0c;而随着现代军事技术的发展&#xff0c;鱼雷已成为现代反潜作战的主要武器。但是&#xff0c;在海峡或…...

爬虫框架与库

爬虫框架与库是用于网络数据抓取的核心工具&#xff0c;帮助开发者高效地从网页中提取结构化数据。 Requests&#xff1a;用于发送HTTP请求。 BeautifulSoup&#xff1a;用于解析HTML和XML。 Scrapy&#xff1a;强大的爬虫框架&#xff0c;适合大规模爬取。 Selenium&#…...

从电子管到量子计算:计算机技术的未来趋势

计算机发展的历史 自古以来人类就在不断地发明和改进计算工具,从结绳计数到算盘,计算尺,手摇计算机,直到1946年第一台电子计算机诞生,虽然电子计算机至今虽然只有短短的半个多世纪,但取得了惊人的发展吗,已经经历了五代的变革。计算机的发展和电子技术的发展密切相关,…...

LeetCode 15.三数之和

15.三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组…...

c#笔记-基础知识

目录 整数 浮点 decimal bool 引用 object string 值 枚举 关键字 enum 类型转换 隐式转换 ​编辑 显式转换 装箱&#xff0c;拆箱 常量 表达式 ​编辑 字符串的使用 比较字符串 字符格式化 ​编辑 截取字符串 字符串的分割 插入字符串 删除字符串 …...

el-table fixed滚动条被遮挡导致滚动条无法拖动

/* 设置默认高度-滚动条高度 */ .el-table__fixed { height: calc(100% - 16px) !important; } .el-table__fixed:before { height: 0px; }...

如何在个人电脑本地部署Deepseek大模型?Windows10 + Ollama+Deepseek+ChatBox

第一阶段&#xff1a;下载并安装Ollama 1&#xff0c;打开浏览器&#xff0c;进入 Ollama 官方网站 2&#xff0c;点击“Download”&#xff0c;在新页面选择“Windows”&#xff0c;再点击“Download for Windows”。 3&#xff0c;下载完成后&#xff0c;在文件名&#xff0…...

链表题()

1、环形列表 141 方法一、 卡节点数量&#xff0c;或者值范围的bug 方法二、 快慢指针&#xff08;最实用&#xff09;寻找环 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NUL…...

ZIP64扩展和普通ZIP文件有什么区别?

ZIP64扩展是ZIP文件格式的一个扩展&#xff0c;旨在解决传统ZIP格式的限制&#xff0c;尤其是文件大小和数量的限制。以下是ZIP64扩展与普通ZIP文件的主要区别&#xff1a; 1. 文件大小限制 普通ZIP文件&#xff1a; 单个文件大小限制为 4GB&#xff08;2^32字节&#xff09;。…...

smolagents学习笔记系列(五)Tools-in-depth-guide

这篇文章锁定官网教程中的 Tools-in-depth-guide 章节&#xff0c;主要介绍了如何详细构造自己的Tools&#xff0c;在之前的博文 smolagents学习笔记系列&#xff08;二&#xff09;Agents - Guided tour 中我初步介绍了下如何将一个函数或一个类声明成 smolagents 的工具&…...

使用 Apache Dubbo 释放 DeepSeek R1 的全部潜力

作者&#xff1a;陈子康&#xff0c;Apache Dubbo Contributor 2025年1月20日&#xff0c;国产大模型公司深度求索&#xff08;DeepSeek&#xff09;正式发布了大语言模型 DeepSeek-R1&#xff0c;并同步开源其模型权重。通过大规模强化学习技术&#xff0c;DeepSeek-R1 显著提…...

【星云 Orbit-F4 开发板】03b. 按键玩法二:独立按键双击双击触发

【星云 Orbit-F4 开发板】03b. 按键玩法二&#xff1a;独立按键双击触发 引言 在嵌入式系统中&#xff0c;按键是常用的输入设备。通过检测按键的状态变化&#xff0c;可以实现多种功能&#xff0c;例如单击、双击、长按等。本文将详细介绍如何使用STM32F103的GPIO引脚检测独…...

ave-form.vue 组件中 如何将产品名称发送给后端 ?

如何将产品名称发送给后端。 在这段代码中&#xff0c;产品名称&#xff08;productName&#xff09;的处理和发送主要发生在 save() 方法中。让我逐步分析&#xff1a; 产品ID的选择&#xff1a; <w-form-selectv-model"form.productId"label"涉及产品&q…...

2025年电气工程与智能系统国际学术会议(IC2EIS 2025)

重要信息 官网&#xff1a;www.ic2eis.org(点击了解参会投稿等) 时间&#xff1a;2025年3月14-16日 地点&#xff1a;中国河南省郑州市 简介 2025年电气工程与智能系统国际学术会议&#xff08;IC2EIS 2025&#xff09;将于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

主要翻译外网&#xff1a; 解剖Deep Seek 系列&#xff0c;详细见参考部分。 目录&#xff1a; Multi-Head Attention &#xff08;MHA) KV-Cache KV-Cache 公式 Multi-Query Attention&#xff08;MQA) Grouped-Query Attention(GQA) Multi-Head Latent Attention …...

MS SQL 2008 技术内幕:T-SQL 语言基础

《MS SQL 2008 技术内幕&#xff1a;T-SQL 语言基础》是一部全面介绍 Microsoft SQL Server 2008 中 T-SQL&#xff08;Transact-SQL&#xff09;语言的书籍。T-SQL 是 SQL Server 的扩展版本&#xff0c;增加了编程功能和数据库管理功能&#xff0c;使得开发者和数据库管理员能…...

seacmsv9注入管理员账号密码+orderby+limit

seacmsv9注入管理员账号密码 安装海洋CMS&#xff08;seacms&#xff09; 将upload文件夹里的文件全部上传至网页服务器后&#xff0c;执行以下操作: 请运行http://域名/install/index.php进行程序安装 SQL语句尝试注入 http://127.0.0.1/upload/comment/api/index.php?g…...

智能生活综合平台需求规格说明书

一、引言 1.1 编写目的 本需求规格说明书旨在明确智能生活综合平台的功能、性能、用户界面等方面的需求&#xff0c;为平台的开发、测试和部署提供详细的指导&#xff0c;确保平台能够满足用户在社交、购物、教育、医疗、政务等多个领域的智能生活需求&#xff0c;提升用户的…...

应用的负载均衡

概述 负载均衡&#xff08;Load Balancing&#xff09; 调度后方的多台机器&#xff0c;以统一的接口对外提供服务&#xff0c;承担此职责的技术组件被称为“负载均衡”。 负载均衡器将传入的请求分发到应用服务器和数据库等计算资源。负载均衡是计算机网络中一种用于优化资源利…...

TDengine 中的数据类型

简介 数据类型是数据库产品中一个非常重要的概念&#xff0c;它决定着能处理不同类型数据的范围。 TDengine 支持了所有通用的数据类型&#xff0c;同时还支持了一些特色数据类型&#xff0c;如地理坐标&#xff0c;未来准备支持 decimal 数据类型&#xff0c;方便银行等场景中…...

网络运维学习笔记(DeepSeek优化版)005网工初级(HCIA-Datacom与CCNA-EI)链路层发现协议与VLAN技术

文章目录 一、链路层发现协议1.1 思科CDP协议1.2 华为LLDP协议 二、VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;技术详解2.1 基本概念2.2 技术特性2.3 接口工作原理2.3.1 Access模式2.3.2 Trunk模式 2.4 厂商配置对比思科配置华为配置 2.5 …...

51 哈希表的实现

目录 一、哈希介绍 &#xff08;一&#xff09;直接定值法 &#xff08;二&#xff09;哈希冲突 &#xff08;三&#xff09;负载因子 &#xff08;四&#xff09;将关键字转为整数 &#xff08;五&#xff09;哈希函数 1、除法散列法 / 除留余数法 2、乘法散列法&#…...

使用Python实现机器学习小案例:构建房价预测模型

背景 在日常生活中,很多人都希望了解某个区域的房价,特别是在购房时。如果我们能够根据一些已知的房屋特征(如面积、卧室数量、距离市中心的距离等)来预测房价,那将大大提高购房决策的效率。在本文中,我们将通过Python实现一个简单的房价预测模型,并帮助你理解机器学习…...

Layui页面粘贴的方法

一: 在Controller层 注解的注意点 : 1.先写一个大的 RequestMapping () () 里面的的是 : (这些你写的那个实体类的方法,在这取名是什么 比如 用户类 user) 2. 在Controller层 需要写一个 Controller的注解 3. Autowired 就相当与 之前new的 全局的serviceImpl 的方法 4.在…...

js:根据后端返回的数组取出每一个数组的keyword字段然后拼接成一个逗号分隔的字符串

问&#xff1a; 现在有一个el-select&#xff0c; 后端接口返回数据为keyword:xxx,referenceNum:1,tagId:132sf32fasdfaf组成的数组&#xff0c; 现在select是多选&#xff0c; 但是但我选择多个下拉框选项后&#xff0c;后端需要前端返回的数据tagIds字段需要时一个字符串…...

ES 客户端 API 二次封装思想

ES 客户端 API 二次封装思想 网页端 &#xff1a; ip5601 索引创建 数据新增 数据查询 数据删除 因为json串会出现在代码中&#xff0c;为了让用户更容易去添加数据所以去封装它。 思想&#xff1a;为了让json串变得更加容易添加&#xff0c;封装最主要是为了简化正文的…...