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

计算机网络 谢希仁版核心考点精讲 期末冲刺指南

1. 网络时延计算与优化

网络时延是计算机网络中最基础也最常考的概念之一。记得我第一次学这部分时,被各种时延类型绕得头晕,直到自己动手画图才真正理解。网络时延主要分为四种类型:

  • 发送时延:就像快递员打包包裹的时间。计算公式是数据帧长度(bit)/发送速率(bit/s)。比如要发送一个8000bit的文件,网卡速率是1Mbps(1,000,000bit/s),那么发送时延就是8ms。

  • 传播时延:相当于包裹在高速公路上运输的时间。计算公式是信道长度(m)/电磁波传播速率(m/s)。电磁波在光纤中的传播速度约是2×10^8m/s,如果两地距离1000km,传播时延就是5ms。

  • 处理时延:路由器拆包检查的时间。这个值不固定,取决于路由器的性能。普通路由器可能在几十微秒到几毫秒不等。

  • 排队时延:就像快递在分拣中心排队等待的时间。网络越拥堵,这个时延越大。在高峰期可能达到几百毫秒。

提示:考试中最常考的是发送时延和传播时延的计算,一定要分清两者的区别。发送时延与数据大小和发送速率有关,而传播时延只与距离和介质有关。

实际做题时,经常会遇到组合计算。比如一个1MB的文件通过100Mbps带宽、1000km距离的网络传输,总时延≈发送时延(1×8×10^6bit / 100×10^6bps = 80ms) + 传播时延(1000×1000m / 2×10^8m/s = 5ms) = 85ms。处理时延和排队时延通常题目会给出或忽略不计。

2. 数据链路层核心机制

数据链路层是我觉得最"实在"的一层,它的三大任务直接影响着网络传输的可靠性:

2.1 封装成帧

就像给快递包裹加包装箱和胶带。帧的首尾部有特殊标识符:

  • 以太网使用7字节前导码+1字节帧开始定界符(10101011)
  • PPP协议用0x7E作为定界符

我做过一个实验:用Wireshark抓包观察,发现实际帧结构是这样的:

[前导码][帧起始][目的MAC][源MAC][类型/长度][数据][FCS]

2.2 透明传输

解决数据中恰好出现定界符的问题,常用方法:

  • 字节填充:PPP协议遇到0x7E就转义为0x7D 0x5E
  • 比特填充:HDLC协议连续5个1就插入1个0

2.3 差错控制

CRC校验是最常用的方法。考试常考生成多项式计算,比如给定G(x)=x^3+x+1(对应1011),要会计算冗余码。我总结的口诀是:"模2除,余数补"。

3. 网络层协议精要

3.1 IP地址与CIDR

传统分类地址已经淘汰,现在都用CIDR表示法。关键点:

  • 192.168.1.0/24表示前24位是网络号
  • 计算子网掩码:/26对应255.255.255.192
  • 确定地址范围:192.168.1.128/26的范围是192.168.1.128~191

我常用的快速判断方法:把最后一个字节转二进制,比如/26意味着前2位属于网络号。所以128(10000000)到191(10111111)属于同一个子网。

3.2 路由协议对比

协议类型更新方式度量标准适用场景
RIP距离向量30秒定期跳数小型网络
OSPF链路状态触发更新带宽大型企业网
BGP路径向量增量更新AS路径互联网骨干

考试最爱考RIP的"坏消息传得慢"问题。例如:A-B-C三个路由器,A到C原路径A-B-C(跳数2)。当B-C断开后,A会错误地认为可以通过B-A-C(实际不可达)到达C,形成路由环路。

4. 传输层可靠传输机制

4.1 TCP三次握手

我用打电话来类比:

  1. A打给B:"能听到吗?"(SYN=1, seq=x)
  2. B回答:"能听到,你听得到我吗?"(SYN=1, ACK=1, seq=y, ack=x+1)
  3. A确认:"听到了!"(ACK=1, seq=x+1, ack=y+1)

常见考点:SYN洪泛攻击就是只做第一步不完成握手,导致服务器资源耗尽。

4.2 滑动窗口

就像快递柜的取件机制:

  • 发送窗口:已发送未确认的包裹
  • 接收窗口:还能放多少个包裹
  • 窗口滑动:确认一个包裹就空出一个位置

我用Python模拟过滑动窗口的工作过程:

# 简化版滑动窗口模拟 send_window = [pkt1, pkt2, pkt3] # 已发送未确认 receive_window_size = 5 # 接收方剩余容量 # 当收到ack2时 send_window.remove(pkt2) # 确认pkt2 send_window.append(pkt4) # 发送新数据

4.3 拥塞控制

TCP的智慧体现在这里:

  1. 慢启动:窗口从1开始指数增长
  2. 拥塞避免:达到阈值后线性增长
  3. 快重传:收到3个重复ACK立即重传
  4. 快恢复:窗口减半后直接进入拥塞避免

我抓包观察过这个过程:窗口大小像爬山一样先快速上升,遇到丢包(山顶)后下降,然后改为缓步上升。

http://www.jsqmd.com/news/1190945/

相关文章:

  • 芜湖防锈油漆厂家选购要点及高性能工业产品全解析 - 热点品牌推荐
  • Linux大实验 (从零构建图书管理系统:C语言实战与数据结构应用)
  • Python入门实战:从零到项目驱动的学习路径与调试思维
  • Google Sycamore量子霸权笔记:NISQ时代错误缓解与硬件实操全解析
  • Reasoning Model:面向开发者的可解释推理模块设计
  • 多模型协作AI系统:原理、优势与Fusion API实践指南
  • C++ STL prev()与next()函数:迭代器安全移动与边界控制实战指南
  • 图灵测试:从模仿游戏到AI智能的“黄金标准”
  • 软件工厂可信依赖库:守护软件供应链全链路安全
  • 电机驱动-无刷直流电机有感方波控制实战解析
  • 汽车级PMIC TPS6594-Q1:多相Buck、DVS/AVS与电源管理实战
  • 从三边到三角:一个不等式如何揭示三角形的全部秘密
  • (2026最新)威海防水补漏本地人必选的正规靠谱公司推荐-房屋漏水检测维修师傅上门-卫生间/厨房/阳台/房顶/外墙漏水检测精准测漏 - 即刻修防水
  • GBFR-Logs终极指南:如何用数据驱动优化你的碧蓝幻想Relink战斗表现
  • Flowable实战:自定义流程图生成器与高亮渲染进阶
  • AI镜像站实用测试指南:从功能验证到稳定落地
  • MPC轨迹跟踪算法:从双移线仿真到工程实践的关键调试与验证
  • AI求职系统:从简历生成到数据驱动的求职流程优化
  • 贪心算法实战:多机调度问题的核心策略与性能评估
  • C++物联网网关交互协议设计:从ctGateway看异步IO与插件化架构
  • 汇编语言实验进阶:从DOS功能调用到交互式密码验证程序的设计与实现
  • 从裸机到事件驱动:QP框架如何重塑单片机编程思维
  • 工业级遗传算法实战:解决局部最优与约束失效的工程方案
  • 开源组件攻击激增650%,Gitee CodePecker SCA如何用三道防线守住软件供应链
  • 多类别逻辑回归:OvR与Multinomial原理、选型与实操避坑指南
  • 2026年池州酒店推拉移门供应商实力盘点选购指南 - 热点品牌推荐
  • Medium文章精准转Markdown:DOM语义提取实战指南
  • # 串行输出与并行输出详解:原理、时序、优缺点及应用场景
  • OpenRefine数据清洗:从入门到精通,解锁高效数据预处理
  • 中国大模型API调用量超美国6倍:成本优势与开发实战指南