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

Linux网络服务(二)——交换机、网络层与传输层原理详解

文章目录

  • 前言
  • 一、交换机原理
    • 1.1 数据链路层
      • 1.1.1 数据链路层的功能
      • 1.1.2 以太网的发展历程
    • 1.2 MAC地址与帧格式
      • 1.2.1 MAC地址
      • 1.2.2 以太网帧格式
    • 1.3 交换机的工作原理(重点)
      • 1.3.1 工作流程
      • 1.3.2 工作模式
  • 二、网络层(IP的世界)
    • 2.1 网络层的功能
    • 2.2 路由器的工作原理(重点)
    • 2.3 IP数据包格式
    • 2.4 ICMP协议
      • 2.4.1 ping命令的用法
    • 2.5 ARP协议(IP → MAC 的翻译官)
      • 2.5.1 ARP工作原理(重点)
      • 2.5.2 ARP相关命令
      • 2.5.3 ARP攻击与防御
  • 三、传输层(TCP vs UDP)
    • 3.1 TCP协议
      • 3.1.1 特点
      • 3.1.2 TCP报文段
      • 3.1.3 连接管理(重点)
        • 3.1.3.1 三次握手(建立连接):
        • 3.1.3.2 四次挥手(断开连接):
      • 3.1.4 TCP常见应用
    • 3.2 UDP协议
      • 3.2.1 特点
      • 3.2.2 UDP常见应用
    • 3.3 TCP与UDP对比
  • 总结

前言

本文档系统性地介绍了计算机网络中交换机、网络层和传输层的核心原理,通过生动的类比和实例解析,帮助读者深入理解数据通信的基本机制。内容涵盖数据链路层的帧传输、网络层的IP寻址与路由、传输层的TCP/UDP协议等关键技术,适合网络初学者和从业人员参考学习。


一、交换机原理

1.1 数据链路层

1.1.1 数据链路层的功能

数据链路层是网络通信的“打包和配送部门”,负责将网络层的数据封装成帧并通过物理介质传输。其核心功能包括:

  • 建立连接:通过物理链路实现设备间的通信。
  • 帧封装:为数据添加头部和尾部,形成帧结构。
  • 差错检测:确保数据传输的完整性。
  • 流量控制:协调发送与接收速率,避免数据溢出。

1.1.2 以太网的发展历程

以太网技术自1973年诞生以来经历了多次演进:

  1. 实验性以太网:2.94 Mbps(Xerox公司提出)。
  2. DIX与IEEE 802.3标准:
    • DIX:由DEC、Intel和Xerox三家公司合作,于1980年发布了10 Mbps以太网标准(DIX Ethernet V1)。
    • IEEE 802.3:1983年,IEEE基于DIX标准制定了正式的以太网标准(IEEE 802.3),标志着10兆以太网的广泛应用。
  3. 10 Mbps以太网:10 Mbps以太网成为早期局域网的主流技术,支持同轴电缆(如10BASE5、10BASE2)和双绞线(10BASE-T)等多种介质。
  4. 快速以太网:1995年IEEE 802.3u标准实现100 Mbps。
  5. 千兆以太网:1998年IEEE 802.3z/ab标准达到1 Gbps,支持光纤和铜缆介质。
  6. 后续发展:万兆(10 Gbps)、40 Gbps、100 Gbps等高速标准。

1.2 MAC地址与帧格式

1.2.1 MAC地址

计算机联网必须依赖网卡这一硬件设备。在通信过程中,用于标识主机身份的是一个固化在网卡上的硬件地址。每块网卡出厂时,除了具备基本功能外,都被赋予一个全球唯一的标识号,这个地址就是MAC地址,也就是网卡的物理地址。

  • 定义:48位硬件地址,全球唯一,通常分成六段,用十六进制表示,如 00-D0-09-A1-D7-B7,前24位为厂商编号,后24位为网卡序列号。
  • 类型
    • 单播地址(第8位为0):标识单个设备。
    • 组播地址(第8位为1):标识一组设备。
    • 广播地址(FF-FF-FF-FF-FF-FF):发送给所有设备。

1.2.2 以太网帧格式

以太网帧包含以下字段:

  • 前导码(7字节):同步时钟。
  • 帧起始定界符(1字节):标记帧的开始。
  • 目标/源MAC地址(各6字节):标识收发双方。
  • 类型(2字节):上层协议类型(如IP或ARP)。
  • 数据(46~1500字节):有效载荷。
  • FCS(4字节):校验和,确保数据完整性。

1.3 交换机的工作原理(重点)

1.3.1 工作流程

  1. 学习MAC地址:记录源MAC地址与接口的映射关系。
  2. 查表转发
    • 已知目标MAC:直接转发到对应接口。
    • 未知目标MAC:广播泛洪。
  3. 单播通信:目标设备响应后,更新MAC地址表。交换机会记录它的MAC地址,下次直接送,不再广播。

1.3.2 工作模式

  • 单工:单向通信(如对讲机)。
  • 半双工:交替收发(如步话机)。
  • 全双工:同时收发(如电话通话)。

二、网络层(IP的世界)

2.1 网络层的功能

网络层是互联网的“路线规划员”,核心功能包括:

  1. IP地址编址:网络层通过IP协议为全网设备分配唯一的逻辑地址(IPv4/IPv6),实现跨网络的主机标识。例如,将域名(如 www.example.com )解析为IP地址(如 192.0.2.1 ),类似邮政系统中“国家-城市-街道-门牌”的层级化寻址机制。
  2. 异构网络互联:实现不同网络类型(如以太网、Wi-Fi)的互通。
  3. 路由选择和分组转发:基于路由算法(如OSPF、BGP)动态计算最优路径,并依据IP包头中的目的地址进行分组转发。此过程类似导航系统:路由器通过“路由表”查询下一跳节点,同时根据网络拥塞、链路成本等因素实
    时优化路径。

技术意义:
网络层是实现“端到端”通信的关键,其核心协议(如IP、ICMP)确保了全球互联网的可扩展性和连通性。若缺少此层,数据将无法跨越不同子网传输,仅能局限于本地链路通信。

2.2 路由器的工作原理(重点)

一句话总结:路由器根据路由表选择最佳路径到达对端。

2.3 IP数据包格式

IP数据包类似于快递包裹,承载着需要传输的信息(如网页内容或视频数据)。其结构由两部分组成:头部(Header)包含路由和传输指令,指导网络设备如何传送;数据(Data)部分则存储实际传输的内容。

  • 版本(4比特)
    • 比如 IPv4 (写的是 4 )或 IPv6 (写的是 6 ),这里显然是IPv4。
  • 首部长度(4比特)
    • 表示IP头有多长(单位是4字节),一般最小是 5 (即20字节,没有可选字段时)。
  • 优先级与服务类型(8比特)
    • 用来区分包裹的“紧急程度”,比如视频通话的包优先级比普通网页高。
  • 总长度(16比特)
    • 整个IP包的长度(头部+数据),最大能到 65535 字节。
  • 标识符、标志、段偏移量(共32比特)
    • 标识符:给数据包编号,方便分片后重组(比如大文件拆成多个小包)。
    • 标志:比如 不要分片(DF) 或还有更多分片(MF) 。
    • 段偏移量:告诉接收方“这个分片在原数据中的位置”。
    • 如果数据太大(比如超大文件),IP层会把它切成多个小包(分片),接收方再拼回去。
      • 通过标识符 、 标志 、 段偏移量 这三个字段控制分片和重组。
  • TTL(8比特)
    • “存活时间”,每经过一个路由器就减1,到0就丢弃(防止包在网络上无限转圈)。
  • 协议号(8比特)
    • 说明数据部分是什么“快递公司”的货(比如 6=TCP 、 17=UDP )。
  • 首部校验和(16比特)
    • 检查头部是否在传输中出错(如果错了就丢掉)。
  • 源地址 & 目标地址(各32比特)
    • 就是发件人(你的IP)和收件人(服务器IP)的地址。
  • 可选项(可选)
    • 额外功能,比如安全标签,一般不用。
  • 数据
    • 上层(比如TCP/UDP)传下来的内容,IP层只负责搬运,不关心里面具体是啥。

2.4 ICMP协议

ICMP是网络的“错误报告员”,主要有三个核心特点:

  1. 网络故障报警员
    • 当你的数据包在路上出问题时(比如目标服务器宕机、网络断连),ICMP会立刻返回错误报告,
      就像快递员打电话告诉你"地址写错了送不了"。
  2. 套着IP外壳传输
    • ICMP消息是通过IP数据包运送的(IP协议号=1),但属于网络层协议。相当于把报警信装在标准
      快递袋(IP包)里寄出。
  3. 两大核心任务
    • 发错误通知(比如"目标不可达"、“网络超时”)
    • 传控制消息(比如ping检测是否在线、traceroute查快递路线)

2.4.1 ping命令的用法

常见 Ping 参数:

  • -t 在 Windows 操作系统中,默认情况下发送 4 个 ping 包,如果在 ping 命令后面加上参数“-t”,系统将会一直不停地 ping 下去
  • -a 显示主机名
  • -l 一般情况下,ping 包的大小为 32 字节,有时为了检测大数据包的通过情况,可以使用参数改变ping 包的大小
    • 在linux 系统下为 -s
  • -n 指定发送包的个数
    • 在linux 系统下为 -c
  • -S 指定源IP去ping
    • 在linux 系统下为 -l

在这里插入图片描述

WIN:
tracert命令:
在命令行中输入“tracert ”并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由
器及其IP地址
Linux:traceroute IP/域名

2.5 ARP协议(IP → MAC 的翻译官)

ARP(Address Resolution Protocol)是地址解析协议,它的作用是将一个已知的IP地址解析成MAC地址。

2.5.1 ARP工作原理(重点)

  1. PC1想发送数据给PC2, 会先检查自己的ARP缓存表。
  2. 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)。
  3. 交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。
  4. PC1在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系,以单播方式与PC2通信。

2.5.2 ARP相关命令

windows当中查看arp缓存表(静态arp和动态arp)

arp -a ###查看arp缓存表
arp -d [IP] ###删除arp缓存表
arp -s IP MAC ###删除arp静态绑定

在这里插入图片描述
动态ARP表项老化:在一段时间内(默认180s)如果表项中的ARP映射关系始终没有使用,则会被删除。通过及时删除不活跃表项,从而提升ARP响应效率

2.5.3 ARP攻击与防御

  • 攻击原理:伪造ARP响应,劫持流量(中间人攻击)。
  • 防御措施
    • 静态ARP绑定:手动配置IP-MAC映射。
    • 加密通信:使用HTTPS/SSH避免数据泄露。

三、传输层(TCP vs UDP)

3.1 TCP协议

3.1.1 特点

  • 面向连接:通过三次握手建立可靠连接。
  • 可靠传输:丢包重传、数据排序。
  • 流量控制:动态调整窗口大小。

3.1.2 TCP报文段

  • 端口号:标识收发进程(如HTTP默认80端口)。
  • 序号/确认号:确保数据有序传输。
  • 控制标志:如SYN(连接请求)、FIN(断开连接)。
  • 窗口大小:通告接收缓冲区剩余空间。
  • 校验和:检查包裹是否损坏(计算数据完整性,发现错误就丢弃)。

控制标志位:

  • URG:紧急数据(比如快递包裹上贴“加急”标签)。
  • ACK:确认有效(相当于“我已收到你的消息”)。
  • PSH:催促对方立刻处理(类似“尽快拆包”)。
  • RST:强制断开连接(突然拒收包裹,终止交易)。
  • SYN:发起连接请求(“你好,我要寄快递”)。
  • FIN:礼貌结束连接(“我的包裹发完了,再见”)。

记忆口诀:URGENT加急,ACK要确认,PSH快处理,RST断连接,SYN打招呼,FIN说再见 。

3.1.3 连接管理(重点)

3.1.3.1 三次握手(建立连接):
  1. 客户端→服务器:发送SYN报文(Seq序列号=x(x为随机),SYN=1(表示发送连接请求))。
  2. 服务器→客户端:发送SYN+ACK报文(Seq序列号=y,Ack确认号=x+1,SYN=1,,ACK=1)。
  3. 客户端→服务器:发送ACK报文(Seq序列号=x+1,Ack确认号=y+1,ACK=1)。
3.1.3.2 四次挥手(断开连接):
  1. 主动方→被动方:发送FIN/ACK报文(FIN=1,ACK=1)。
  2. 被动方→主动方:发送ACK报文(ACK=1)。
  3. 被动方→主动方:发送FIN/ACK报文(FIN=1,ACK=1)。
  4. 主动方→被动方:发送ACK报文(ACK=1)。

3.1.4 TCP常见应用

  • 网页(HTTP/HTTPS,端口 80/443)
  • 文件传输(FTP,端口 21 )
  • 邮件(SMTP,端口 25)
  • 远程登录(TELNET,23)
  • 邮件的接收(POP3 110)
  • dns–域名服务 (53)
  • mysql数据库 (3306)

3.2 UDP协议

3.2.1 特点

  • 无连接:直接发送数据,无需握手。
  • 不可靠:不保证数据到达或有序。
  • 高效:适合实时应用(如视频通话、在线游戏)。

3.2.2 UDP常见应用

  • NTP–网络时间协议 123
  • DHCP–动态主机配置协议 67
  • SNMP–简单网络管理协议161
  • TFTP–简单文件传输协议 69
  • RPC–远程调用协议 111

3.3 TCP与UDP对比

特性TCPUDP
连接方式面向连接(三次握手)无连接
可靠性可靠(丢包重传)不可靠
速度较慢较快
适用场景网页、文件传输视频通话、在线游戏

总结

本文档系统梳理了计算机网络中交换机、网络层和传输层的核心原理:

  1. 数据链路层:通过MAC地址和交换机实现本地数据帧的精准投递。
  2. 网络层:依托IP协议和路由算法,实现跨网络的点到点通信。
  3. 传输层:TCP提供可靠传输,UDP追求高效实时,两者互补满足不同需求。

实际应用示例:访问百度时,DNS(UDP)解析域名,TCP建立连接传输网页数据,最终完成通信。理解这些原理,有助于优化网络设计和故障排查。

http://www.dtcms.com/a/340143.html

相关文章:

  • L2TP虚拟局域网
  • Qt 插件开发全解析:从接口定义,插件封装,插件调用到插件间的通信
  • 从0到1掌握 Spring Security(第四篇):密码加密原理、默认行为与配置选型
  • 电子电气架构 --- 软件项目风险管理
  • ONVIF 设备debug: 设置onvif视频流配置的办法
  • 趣谈设计模式之策略模式-比特咖啡给你一杯满满的情绪价值,让您在数字世界里”畅饮“
  • 数据结构 -- 链表--单向链表的特点、操作函数
  • 【Git 子模块与动态路由映射技术分析文档】
  • 视觉测试:确保应用界面一致性
  • 数据结构 -- 单向链表的特点、操作函数
  • 使用segment-anything将目标检测label转换为语义分割label
  • 数据结构:二叉树oj练习
  • 实现进度条
  • 【大模型早期融合的非标记化架构】
  • 学习strandsagents的http_request tool
  • 【上升跟庄买入】副图/选股指标,动态黄色线由下向上穿越绿色基准线时,发出买入信号
  • Ubuntu 20 各种网卡配置IP的方法
  • 【PyTorch】多对象分割项目
  • 别再手动处理字符串!Python 正则表达式实战手册(入门到精通)
  • 【深度学习新浪潮】Meta 开源最新视觉大模型 DINOv3,该模型有哪些技术亮点?
  • 【数据结构】使用队列解决二叉树问题
  • CentOS安装SNMPWalk
  • C++高频知识点(二十二)
  • 算法题Day3
  • 理解MCP:开发者的新利器
  • 从零开始理解一个复杂的 C++/CUDA 项目 Makefile
  • React学习(六)
  • 梅森公式计算传递函数及结构图转换为信号流图过程
  • STM32-FreeRTOS快速入门指南(中)
  • HJ3 明明的随机数