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年诞生以来经历了多次演进:
- 实验性以太网:2.94 Mbps(Xerox公司提出)。
- DIX与IEEE 802.3标准:
- DIX:由DEC、Intel和Xerox三家公司合作,于1980年发布了10 Mbps以太网标准(DIX Ethernet V1)。
- IEEE 802.3:1983年,IEEE基于DIX标准制定了正式的以太网标准(IEEE 802.3),标志着10兆以太网的广泛应用。
- 10 Mbps以太网:10 Mbps以太网成为早期局域网的主流技术,支持同轴电缆(如10BASE5、10BASE2)和双绞线(10BASE-T)等多种介质。
- 快速以太网:1995年IEEE 802.3u标准实现100 Mbps。
- 千兆以太网:1998年IEEE 802.3z/ab标准达到1 Gbps,支持光纤和铜缆介质。
- 后续发展:万兆(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 工作流程
- 学习MAC地址:记录源MAC地址与接口的映射关系。
- 查表转发:
- 已知目标MAC:直接转发到对应接口。
- 未知目标MAC:广播泛洪。
- 单播通信:目标设备响应后,更新MAC地址表。交换机会记录它的MAC地址,下次直接送,不再广播。
1.3.2 工作模式
- 单工:单向通信(如对讲机)。
- 半双工:交替收发(如步话机)。
- 全双工:同时收发(如电话通话)。
二、网络层(IP的世界)
2.1 网络层的功能
网络层是互联网的“路线规划员”,核心功能包括:
- IP地址编址:网络层通过IP协议为全网设备分配唯一的逻辑地址(IPv4/IPv6),实现跨网络的主机标识。例如,将域名(如 www.example.com )解析为IP地址(如 192.0.2.1 ),类似邮政系统中“国家-城市-街道-门牌”的层级化寻址机制。
- 异构网络互联:实现不同网络类型(如以太网、Wi-Fi)的互通。
- 路由选择和分组转发:基于路由算法(如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是网络的“错误报告员”,主要有三个核心特点:
- 网络故障报警员
- 当你的数据包在路上出问题时(比如目标服务器宕机、网络断连),ICMP会立刻返回错误报告,
就像快递员打电话告诉你"地址写错了送不了"。
- 当你的数据包在路上出问题时(比如目标服务器宕机、网络断连),ICMP会立刻返回错误报告,
- 套着IP外壳传输
- ICMP消息是通过IP数据包运送的(IP协议号=1),但属于网络层协议。相当于把报警信装在标准
快递袋(IP包)里寄出。
- ICMP消息是通过IP数据包运送的(IP协议号=1),但属于网络层协议。相当于把报警信装在标准
- 两大核心任务
- 发错误通知(比如"目标不可达"、“网络超时”)
- 传控制消息(比如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工作原理(重点)
- PC1想发送数据给PC2, 会先检查自己的ARP缓存表。
- 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)。
- 交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。
- 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 三次握手(建立连接):
- 客户端→服务器:发送SYN报文(Seq序列号=x(x为随机),SYN=1(表示发送连接请求))。
- 服务器→客户端:发送SYN+ACK报文(Seq序列号=y,Ack确认号=x+1,SYN=1,,ACK=1)。
- 客户端→服务器:发送ACK报文(Seq序列号=x+1,Ack确认号=y+1,ACK=1)。
3.1.3.2 四次挥手(断开连接):
- 主动方→被动方:发送FIN/ACK报文(FIN=1,ACK=1)。
- 被动方→主动方:发送ACK报文(ACK=1)。
- 被动方→主动方:发送FIN/ACK报文(FIN=1,ACK=1)。
- 主动方→被动方:发送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对比
特性 | TCP | UDP |
---|---|---|
连接方式 | 面向连接(三次握手) | 无连接 |
可靠性 | 可靠(丢包重传) | 不可靠 |
速度 | 较慢 | 较快 |
适用场景 | 网页、文件传输 | 视频通话、在线游戏 |
总结
本文档系统梳理了计算机网络中交换机、网络层和传输层的核心原理:
- 数据链路层:通过MAC地址和交换机实现本地数据帧的精准投递。
- 网络层:依托IP协议和路由算法,实现跨网络的点到点通信。
- 传输层:TCP提供可靠传输,UDP追求高效实时,两者互补满足不同需求。
实际应用示例:访问百度时,DNS(UDP)解析域名,TCP建立连接传输网页数据,最终完成通信。理解这些原理,有助于优化网络设计和故障排查。