尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

网络基础与应用数据通信基础:22张PPT里真正该讲透的五个硬骨头

网络基础与应用数据通信基础:22张PPT里真正该讲透的五个硬骨头 简介这份PPT面向计算机与通信相关专业的学生及网络入门学习者系统梳理网络基础与应用数据通信的核心知识帮助读者建立从信号、传输方式到交换技术的完整认知框架。内容围绕数据、信息与信号的区别展开涵盖模拟与数字信号、并行与串行传输、异步与同步传输、单工半双工全双工通信、点到点与多点连接以及基带、频带、宽带传输等要点并延伸至电路交换与包交换、差错控制与校验等实用主题。资源包共1个pptx文件约393KB以图文并茂的幻灯片形式呈现便于课堂讲解与自学翻阅。目前已有100人学习适合作为课程复习、知识梳理或教学演示的轻量参考资料。1. 网络基础与应用数据通信基础22 张 PPT 里真正该讲透的五个硬骨头很多人拿到一份叫“网络基础与应用数据通信基础”的 PPT第一反应是照着念OSI 七层、TCP/IP 四层、并行传输、串行传输、电路交换、分组交换……念完一遍台下该不懂的还是不懂。问题不在 PPT 本身而在于这些概念之间缺少一条“为什么需要它”的线索。数据通信基础这门东西本质上是回答一个问题两台设备之间凭什么能把一串比特从 A 搬到 B而且搬得对、搬得快、搬得省。网络基础则是回答当设备从两台变成两万台这套搬运规则要怎么分层、怎么复用、怎么容错。桌面运维网络基础之所以反复被提起就是因为日常排障里 80% 的“网断了”“网很慢”最后都落回这几个最原始的问题上。这份 22 张 PPT 精选如果只当科普念价值很低如果按“传输方式怎么选、交换方式怎么定、分层怎么排障”来拆它其实是一份不错的运维入门骨架。下面我按自己带新人和做内训的顺序把这几个硬骨头逐个拆开。2. 并行传输与串行传输先搞清比特是怎么排队的2.1 两种传输方式的本质差别不在快慢而在“线”和“时钟”并行传输指的是同一时刻多个比特同时上路比如 8 位数据走 8 根线一次时钟周期把 8 个比特一起送出去。串行传输则是比特排成一队一个接一个从同一根线或一对差分线上过去。新手最容易记成“并行快、串行慢”这是典型的翻车认知。早期并口比如打印机用的 IEEE 1284确实靠并行堆带宽但频率一高8 根线之间的到达时间就对不齐也就是 skew偏斜接收端采样时有的比特已经到了、有的还在路上误码率飙升。串行传输只有一条通道没有线间偏斜问题反而能把时钟频率拉得很高再配合差分信号和编码现代高速接口几乎全是串行PCIe、SATA、USB、以太网 SerDes 都是串行。从数据通信基础的角度看并行和串行的选择取决于三个量距离、速率、成本。板内几厘米、几十 MHz并行还能用一旦超过几十厘米或者上到 GHz串行加差分是唯一现实解。这也是为什么讲网络基础时物理层一定要先讲清楚“比特怎么变成电信号或光信号”否则后面讲帧、讲包都是空中楼阁。2.2 用一张对照表把选型参数钉死下面这张表是我在内训里必发的把并行和串行的关键参数摆在一起比空讲概念有用得多。维度并行传输串行传输数据线数量多根如 8/16/321 根或 1 对差分线时钟同步线间偏斜敏感需等长布线无偏斜问题靠编码恢复时钟典型速率几十 MHz 到百 MHz 级可达数十 Gbps 每通道传输距离短板内或机箱内长可到米级甚至公里级配合光成本线多、连接器大、成本高线少、连接器小、成本低典型场景老式并口、部分内存总线PCIe、SATA、USB、以太网看这张表要抓住一个结论串行不是“退而求其次”而是高速时代的主动选择。做桌面运维网络基础的人日常接触的网线、光模块、USB 设备底层全是串行。理解这一点再看“为什么网线是 8 根线但千兆只用了 4 对差分”就不会懵。2.3 一个最小验证用 Python 模拟串行比特流的发送与接收概念讲完最好动手看一眼比特是怎么排队的。下面这段代码模拟串行发送把一字节拆成 8 个比特按位依次“上路”接收端再拼回来。它不涉及真实硬件但能把“串行”这个动作可视化。# 模拟串行传输逐位发送逐位接收 def serialize(byte_val): 把 0-255 的整数拆成 8 个比特低位先发LSB first bits [] for i in range(8): bits.append((byte_val i) 1) # 取第 i 位 return bits def deserialize(bits): 把 8 个比特拼回一个整数 val 0 for i, b in enumerate(bits): val | (b i) # 还原到第 i 位 return val data 0b10110100 # 180 tx serialize(data) print(发送比特序列:, tx) # [0,0,1,0,1,1,0,1] rx deserialize(tx) print(接收还原值:, rx, 原始值:, data)逻辑说明serialize用右移和按位与把每个比特取出来顺序是低位先发这是很多串行协议如 UART的常见约定。deserialize做逆操作把比特按位置回去。参数上byte_val限定 0 到 255bits长度固定 8。真实串行传输还要加起始位、停止位、校验位这里只保留数据位目的是看清“排队”这件事。跑一遍你会发现只要比特顺序和位序约定一致数据就能无损还原——这正是串行可靠性的来源没有多线偏斜只有顺序问题而顺序是可以用协议严格定义的。3. 电路交换与分组交换为什么互联网最终选了“拆包”3.1 电路交换的“独占”在什么场景下反而是优点电路交换的核心动作是通信前先建立一条端到端的物理通路这条通路在整个通话期间被这对用户独占。传统电话网就是典型电路交换。它的优点是时延稳定、抖动小因为路径固定、没有排队竞争。对语音这种对时延抖动敏感的业务独占反而是好事。但缺点也致命资源利用率低。两个人通话时中间那条链路哪怕一句话不说别人也用不了。数据通信的特点是突发性强你刷网页、传文件大部分时间链路是空闲的用电路交换就是巨大浪费。这里有个常见误解以为电路交换“落后”。其实在需要恒定带宽、严格时延保证的场景电路交换的思想一直活着比如某些专线、TDM 通道。理解它的价值才能理解分组交换为什么在数据领域胜出。3.2 分组交换用“统计复用”换来了利用率分组交换把数据切成一个个包分组每个包自带目的地址网络中的节点根据地址独立转发。同一条链路可以被多个用户的包分时共享这就是统计复用。代价是包会在节点排队产生时延抖动极端情况下还会丢包。所以分组交换网络必须配套拥塞控制、重传、缓冲这些机制。互联网的整个 TCP/IP 体系本质上就是在“统计复用带来的高效率”和“时延抖动丢包带来的不确定性”之间做平衡。对桌面运维网络基础来说这个区别直接对应排障思路如果是电路交换式的问题你会看到“时延稳定但带宽上不去”如果是分组交换式的问题你会看到“时延忽高忽低、丢包、重传”。用 ping 看时延抖动、用抓包看重传就是在这个层面上定位。3.3 用一段抓包思路把两种交换的差异落到命令上真实环境里没法直接“看”交换方式但可以通过时延特征反推。下面是一段用 ping 和抓包观察时延抖动的操作思路命令以 Linux 为例。# 连续 ping 100 次观察时延抖动 ping -c 100 192.168.1.1 # 用 tcpdump 抓 ICMP 包看请求和应答的时间差 sudo tcpdump -i eth0 -n icmp -tttt # 统计丢包和时延分布需要安装 iputils 和 awk ping -c 100 192.168.1.1 | tail -n 2逻辑说明ping -c 100发 100 个 ICMP 请求最后两行会给出 min/avg/max/mdev其中 mdev 就是时延抖动。如果 mdev 很小比如小于 1ms说明路径稳定接近电路交换的特征如果 mdev 很大说明中间有排队是分组交换的典型表现。tcpdump的-tttt打印完整时间戳可以手动算请求和应答的间隔。参数上-i eth0指定网卡-n不做 DNS 反解避免干扰。这套方法不能直接告诉你“这是电路交换还是分组交换”但能让你用数据说话而不是背概念。4. 网络分层OSI 七层和 TCP/IP 四层到底怎么用来排障4.1 分层的价值是“每层只关心自己的事”OSI 七层物理、数据链路、网络、传输、会话、表示、应用和 TCP/IP 四层网络接口、网际、传输、应用讲的人很多但真正用起来的人少。分层的核心价值是解耦物理层只管比特怎么变成信号数据链路层只管相邻节点之间怎么成帧和差错检测网络层只管跨网段怎么寻址和路由传输层只管端到端怎么可靠或不可靠地传应用层只管业务逻辑。每一层出问题排障手段完全不同。桌面运维网络基础里最实用的分层排障顺序是自下而上先看物理层网线、光模块、网卡灯再看数据链路层MAC、VLAN、ARP再看网络层IP、路由、ping再看传输层端口、TCP 状态最后看应用层DNS、HTTP、服务进程。这个顺序能避免一上来就怀疑“是不是 DNS 坏了”这种玄学操作。4.2 把每层的排障命令和判断标准列成表下面这张表是我自己排障时贴在工位上的按层给出命令和“正常长什么样”。层关注对象常用命令正常表现物理层链路状态、光功率ethtool eth0、ip linkLink detected: yes无 CRC 错误数据链路层MAC、ARP、VLANip neigh、arp -a、bridge vlanARP 表有对应条目无冲突网络层IP、路由、ICMPip addr、ip route、ping有默认路由ping 通网关传输层端口、TCP 状态ss -tulnp、netstat监听端口存在无大量 TIME_WAIT应用层DNS、HTTP、服务dig、curl -v、systemctl status解析正常HTTP 返回 200用这张表的关键是“逐层确认不跳层”。比如用户说“上不了网”你先ip link看物理层再ip neigh看 ARP再ping网关再dig域名一层层排除。跳层排障就是碰运气今天对了明天又错。4.3 一个真实的分层排障脚本骨架把上面的顺序写成一个脚本能省很多重复劳动。下面这段 bash 脚本按层输出关键信息适合放在运维工具箱里。#!/bin/bash # 分层网络排障脚本按物理层到应用层依次检查 IFACE${1:-eth0} # 默认网卡 eth0可通过参数指定 echo 物理层 ip link show $IFACE | grep -E state|mtu ethtool $IFACE 2/dev/null | grep -E Speed|Duplex|Link detected echo 数据链路层 ip neigh show dev $IFACE echo 网络层 ip addr show $IFACE | grep inet ip route | head -n 5 ping -c 2 -W 1 $(ip route | awk /default/ {print $3}) 2/dev/null echo 传输层 ss -tulnp | head -n 10 echo 应用层 dig short www.example.com 2/dev/null || echo dig 不可用逻辑说明脚本用IFACE变量接收网卡名默认eth0方便在不同机器上复用。物理层看state和Link detected数据链路层看 ARP 表网络层看 IP、路由和网关连通性传输层看监听端口应用层用dig验证 DNS。参数上ping -c 2 -W 1表示发 2 个包、超时 1 秒避免卡住。这个脚本不解决所有问题但它强制你按层走不会漏掉物理层这种“低级但高频”的故障。5. 避坑与常见问题数据通信基础里最容易翻车的五个点5.1 把“带宽”和“吞吐量”混为一谈现象用户说“我办的是千兆宽带为什么下载只有 30MB/s”然后怀疑运营商偷工减料。原因带宽单位是 Mbps兆比特每秒下载软件显示的是 MB/s兆字节每秒1 字节等于 8 比特。千兆带宽理论峰值约 125MB/s实际受协议开销、服务器限速、磁盘速度影响30MB/s 完全可能。解决先换算单位再用iperf3在局域网内测真实吞吐排除外网因素。如果局域网内iperf3能跑到 900Mbps 以上说明网络没问题瓶颈在别处。5.2 串行接口速率上不去先查时钟和编码现象自己搭的串口通信波特率设到 115200 就丢包降到 9600 就正常。原因串行通信依赖收发双方时钟一致波特率越高时钟误差容忍度越小。如果用的是内部 RC 振荡器而不是晶振误差可能超过 2%高速下必然丢包。解决换晶振、降低波特率、或者改用带时钟恢复的差分接口。参数上UART 通常要求时钟误差小于 2% 到 3%超过这个范围就要查时钟源。5.3 电路交换思维用在分组网络上导致排障方向错现象网络时延偶尔飙高运维人员坚持认为是“链路质量问题”反复换线换模块问题依旧。原因分组交换网络里时延飙高更可能是某段链路拥塞导致排队而不是物理链路坏。换线解决不了拥塞。解决用mtr看每一跳的时延和丢包定位是哪一跳开始恶化。如果是中间路由器拥塞换线没用要调整路由或限速。这个坑的本质是没分清“电路交换的稳定时延”和“分组交换的统计复用时延”。5.4 分层排障跳层浪费大量时间现象用户报“网站打不开”运维直接curl域名发现解析失败就断定 DNS 问题改 DNS 后还是不行。原因跳过了物理层和网络层可能网线根本没插好或者 IP 没配上。解决严格按物理层到应用层顺序走。先ip link看网卡状态再ip addr看 IP再ping网关再dig。这个顺序看起来笨但能避免在错误的方向上反复折腾。5.5 忽略双工不匹配导致的“低速但通”现象网络能通但速度极慢抓包看到大量 CRC 错误和冲突。原因一端设了全双工另一端设了半双工导致冲突检测机制错乱。解决用ethtool查看双工模式确保两端一致。现代设备一般自动协商但老设备或强制设置时容易出这个问题。参数上ethtool eth0输出里的Duplex: Full或Half就是判断依据。6. 进阶技巧用 iperf3 和 mtr 把数据通信基础变成可量化的排障能力前面讲的都是概念和单点命令真正让数据通信基础变成硬功夫的是把它量化。我自己的习惯是任何网络问题先跑iperf3测吞吐再跑mtr看路径质量两个数据一摆方向基本就定了。iperf3是客户端服务端模式服务端iperf3 -s客户端iperf3 -c 服务端IP -t 30 -P 4其中-t 30表示测 30 秒-P 4表示 4 个并发流。并发流很重要单流可能受 TCP 窗口限制跑不满带宽多流能压出真实吞吐。mtr则是ping和traceroute的结合mtr -r -c 100 目标IP会输出每一跳的丢包率和时延分布-r是报告模式-c 100是发 100 个包。看mtr报告时重点看“从哪一跳开始丢包”如果某一跳开始丢包且后续跳也丢说明问题在那一跳如果只有某一跳丢而后续不丢可能是那一跳的设备限制了 ICMP 响应不一定是真故障。再进阶一点可以把iperf3的吞吐数据和mtr的时延抖动数据放在一起看吞吐低但时延抖动小可能是带宽限制或窗口问题吞吐低且时延抖动大多半是路径拥塞。这个判断逻辑比背“OSI 七层”有用得多。我带新人时最后一课就是让他们自己搭两台机器跑iperf3和mtr然后人为制造双工不匹配、限速、丢包观察数据变化。折腾过一遍数据通信基础就不再是 PPT 上的名词而是手里能用的工具。希望帮到你。本文还有配套的精品资源点击获取
返回列表