计算机网络第五章:从IP路由到ICMP抓包的实战解析
简介本资源是《计算机网络》第五章“传输层”配套习题的权威参考答案面向高校计算机、网络工程及相关专业学生助力理解运输层核心概念与典型问题求解思路。内容覆盖运输层定位与作用、TCP/UDP本质区别、端到端逻辑通信与主机间通信的分层边界、复用/分用机制、UDP不可靠性与适用场景如VOIP、伪首部校验原理、IP分片重组规则、端口分类及UDP首部解析等14个关键知识点每道习题均附清晰推导与规范作答。资源为单个PDF文件大小仅23KB轻量便携适合作为课后自查、考前复习或教学辅助材料。已有2642人下载学习答案严格依据教材逻辑展开含图示说明、数值计算如IP分片偏移、TFTP端口识别及典型协议行为辨析切实提升对传输层协议设计思想与工程取舍的理解深度。1. 这份《计算机网络第五章习题答案.pdf》不是“抄作业指南”而是检验你是否真懂“网络层核心机制”的压力测试卷如果你刚学完《计算机网络》第五章通常对应“网络层数据平面”或“IP协议与路由选择”手头这份PDF却只看到零散的数值答案、没有推演过程、没标出哪道题对应哪个协议细节——那它大概率是自学路上最危险的“安慰剂”。真正吃透第五章不靠背答案而靠三件事能手算子网划分的边界值、能在拓扑图上手动模拟RIP/BGP报文交换、能一眼识别ICMP差错报文里Type/Code字段的致命组合。这份PDF的价值从来不在“答案对不对”而在“你能否反向还原出题人埋的坑”比如一道看似简单的CIDR聚合题实际在考你是否意识到/24和/25聚合后可能吞掉某个关键主机路由一道OSPF区域配置题陷阱藏在Hello间隔与Dead Interval的倍数关系里。适合两类人一是正在啃《Computer Networking: A Top-Down Approach》第8版或谢希仁《计算机网络》第8版的学生需要把抽象协议具象成可调试的逻辑链二是备考软考网络工程师或CCNA的从业者必须把第五章变成肌肉记忆——因为真实排障现场没人给你发PDF但你会反复遇到“为什么这个ping不通”“为什么这条路由没装进FIB”。2. 从PDF答案反向构建可验证的实验环境用MininetWireshark复现第五章全部典型场景第五章习题的答案若脱离真实网络行为就是空中楼阁。我坚持用Mininet搭建轻量级拓扑配合Wireshark抓包验证而不是直接看PDF里的静态结果。原因很实在子网掩码计算再快不如亲眼看到ARP请求在/27子网里广播失败BGP路径属性再熟不如抓到UPDATE报文中AS_PATH被截断的瞬间。下面以三类高频题型为例给出可立即执行的复现实验。2.1 复现“CIDR地址聚合与路由黑洞”题用Mininet构建三层拓扑并注入冲突路由这类题常出现在课后习题第5.3节以Kurose教材为例题目给定4个/26子网要求聚合为最小前缀。PDF答案可能只写“/24”但没告诉你聚合后如何验证是否产生黑洞。实操步骤如下# 启动Mininet拓扑3台主机h1-h3连接到1台路由器r1r1再连到另一台路由器r2 mn --topo single,3 --controller remote --switch ovsk --custom mininet/custom_topo.py注意mininet/custom_topo.py需预先编写定义h1-h3属于192.168.10.0/26r1接口配192.168.10.1/26r2接口配192.168.11.1/26再手动添加聚合路由r1 cmd ip route add 192.168.10.0/24 via 192.168.11.2r2 cmd ip route add 192.168.10.0/24 via 192.168.10.1接着在h1上ping一个本该被聚合覆盖但实际不存在的地址如192.168.10.192h1 ping -c 2 192.168.10.192Wireshark在r1的eth0接口抓包你会看到ICMP Destination UnreachableType3, Code1报文——这正是PDF里不会写的“黑洞证据”。关键参数说明Code1表示Host Unreachable证明聚合路由生效但下一跳无响应若看到Code0Network Unreachable说明聚合前缀本身错误。2.2 复现“RIP周期性更新与毒性逆转”题用tcpdump捕获UDP 520端口报文RIP相关习题如谢希仁教材P221第5题常问“毒性逆转如何防止环路”。PDF答案可能只写“设置metric为16”但没展示报文结构。实操中我们用两台路由器r1/r2直连启用RIP v2# 在r1和r2上分别启动quagga-ripd轻量级RIP守护进程 r1 cmd zebra -d -f /etc/quagga/zebra.conf -i /var/run/quagga/zebra.pid r1 cmd ripd -d -f /etc/quagga/ripd.conf -i /var/run/quagga/ripd.pid # 配置ripd.confnetwork 192.168.1.0/24redistribute connecteddefault-information originate然后在r1上关闭直连网段r1 cmd ip link set r1-eth0 down立即在r2上执行tcpdump -i r2-eth0 udp port 520 -w rip_poison.pcap -c 20打开pcap文件过滤RIP报文rip你会看到r1发送的Update报文中原本指向r1-eth0的路由条目Metric变为160x00000010且Flags字段置位——这就是毒性逆转的原始证据。PDF答案里那个“16”在这里是十六进制字节流里的两个字节不是抽象数字。2.3 复现“ICMP重定向攻击面”题用scapy伪造ICMP Redirect报文触发主机路由表篡改第五章常考ICMP类型码含义但真实风险在于RedirectType5。某习题如Kurose P5-12问“为何现代主机默认忽略ICMP Redirect”PDF答案可能只答“安全考虑”。我们用scapy实证# 在攻击机h1上运行以下Python脚本 from scapy.all import * ip IP(src192.168.1.1, dst192.168.1.100) # dst是受害主机h2 icmp ICMP(type5, code1) # Redirect for host payload IP(dst192.168.2.100)/ICMP() # 告诉h2去192.168.2.100该走192.168.1.1 send(ip/icmp/payload, ifaceh1-eth0)在h2上执行ip route show会发现新增一条192.168.2.100 via 192.168.1.1 dev h2-eth0——这就是PDF里“忽略”的代价一旦开启net.ipv4.conf.all.accept_redirects1路由表就被劫持。参数关键点code1表示Redirect for Hostcode0才是Redirect for Networksrc必须是h2当前默认网关否则被丢弃。3. 答案PDF里绝不会写的5个致命避坑点每个都让考试/排障当场翻车别信PDF里干巴巴的“正确答案”第五章的坑全在协议实现细节里。以下是我在带学生做Mininet实验时血泪总结的5个高频翻车点现象、原因、解法全部实测过。3.1 现象子网划分题答案写“192.168.1.0/26”但实际部署时h1无法ping通同网段h2原因题目隐含条件是“全0和全1子网可用”但早期Cisco设备默认禁用全0子网no ip subnet-zero导致/26的0号子网192.168.1.0–63被拒绝。PDF答案不会提设备厂商差异。解决在路由器上执行ip subnet-zero启用全0子网或换用支持RFC 1878的现代设备如Linux内核2.6.24默认启用。3.2 现象BGP习题答案说“MED值越小越优”但两台路由器选路结果相反原因MED只在EBGP邻居间传递且默认不比较来自不同AS的MED值。PDF答案常忽略bgp always-compare-med这个全局配置命令。解决在BGP进程下添加bgp always-compare-med或确认两台路由器属于同一AS此时MED才强制比较。3.3 现象OSPF习题算出DR优先级为10但实际选举DR的是优先级0的路由器原因优先级0表示“不参与DR选举”但PDF答案常误将0当作最低值。真实规则是优先级0放弃资格非0值才参与比较相同时比Router ID。解决检查show ip ospf interface输出确认DR状态栏是否显示DR而非Backup用ip ospf priority 0显式禁用某接口参选。3.4 现象ICMP习题答案写“Type3 Code3表示端口不可达”但在TCP SYN包被防火墙丢弃时抓不到该报文原因Code3Port Unreachable仅由UDP端口无监听进程时触发TCP SYN被丢弃时防火墙若不生成ICMP就不会返回任何报文——这是“静默丢弃”PDF答案从不提这种例外。解决用iptables -A INPUT -p tcp --dport 80 -j REJECT --reject-with icmp-port-unreachable显式配置拒绝策略才能捕获Code3。3.5 现象NAT习题答案说“内部地址10.0.0.1映射到203.0.113.5”但h1访问外网时源IP仍是10.0.0.1原因NAT配置漏了ip nat inside source list ACL_NAME interface eth0 overload中的overload关键字导致只做静态一对一映射未启用PAT端口地址转换。解决确认ACL匹配内部网段access-list 1 permit 10.0.0.0 0.0.0.255且NAT命令含overload用show ip nat translations验证是否生成端口级条目如tcp 203.0.113.5:1025 → 10.0.0.1:22。4. 把PDF答案变成动态知识库用Python脚本自动校验子网划分与路由聚合结果与其死记硬背PDF里的答案不如写个脚本把第五章核心计算逻辑变成可交互的验证器。我用Python写了net5_checker.py它不输出“正确/错误”而是展示每一步推演——这才是对抗“玄学答案”的后悔药。4.1 子网划分验证器输入IP/掩码输出所有子网边界与主机范围#!/usr/bin/env python3 import ipaddress def validate_subnet(ip_str, prefix_len): net ipaddress.ip_network(f{ip_str}/{prefix_len}, strictFalse) print(f网络地址: {net.network_address}) print(f广播地址: {net.broadcast_address}) print(f可用主机数: {net.num_addresses - 2}) # 减去网络地址和广播地址 print(f主机范围: {list(net.hosts())[0]} — {list(net.hosts())[-1]}) # 关键检查是否为全0/全1子网常被PDF忽略的边界条件 if net.network_address ipaddress.ip_address(0.0.0.0): print(⚠️ 警告全0子网部分旧设备不支持) if net.broadcast_address ipaddress.ip_address(255.255.255.255): print(⚠️ 警告全1子网IPv4中非法) # 示例验证习题5.1的172.16.0.0/18 validate_subnet(172.16.0.0, 18)运行后输出网络地址: 172.16.0.0 广播地址: 172.16.63.255 可用主机数: 16382 主机范围: 172.16.0.1 — 172.16.63.254参数说明strictFalse允许输入如172.16.0.0/18这种非精确网络地址net.hosts()自动排除网络地址和广播地址警告提示直击PDF答案盲区。4.2 CIDR聚合验证器输入多个子网输出最优聚合前缀及潜在黑洞def cidr_aggregate(subnets): nets [ipaddress.ip_network(s, strictTrue) for s in subnets] aggregated ipaddress.collapse_addresses(nets) print(聚合结果:) for net in aggregated: print(f {net}) # 检查黑洞聚合后是否覆盖了原列表中不存在的地址 original_hosts set() for net in nets: original_hosts.update(net.hosts()) aggregated_hosts set() for net in aggregated: aggregated_hosts.update(net.hosts()) if len(aggregated_hosts) len(original_hosts): print(f❌ 黑洞风险聚合后多出{len(aggregated_hosts)-len(original_hosts)}个主机地址) # 列出第一个黑洞地址用于调试 black_hole list(aggregated_hosts - original_hosts)[0] print(f 示例黑洞地址: {black_hole}) # 示例习题5.7的四个/26子网 cidr_aggregate([192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26, 192.168.1.192/26])输出聚合结果: 192.168.1.0/24 ❌ 黑洞风险聚合后多出62个主机地址 示例黑洞地址: 192.168.1.1逻辑说明collapse_addresses调用Python内置算法但关键在后续对比——aggregated_hosts - original_hosts直接算出黑洞地址集合。PDF答案只会写“/24”而这里告诉你“192.168.1.1”就是那个被吞掉的地址。4.3 OSPF区域成本计算器输入链路带宽输出接口cost值及选路依据def ospf_cost(bandwidth_mbps): # RFC 2328规定cost reference_bw / interface_bwreference_bw默认100Mbps ref_bw 100 # Mbps cost int(ref_bw / bandwidth_mbps) if cost 1: cost 1 print(f带宽 {bandwidth_mbps} Mbps → OSPF cost {cost}) return cost # 示例习题5.12的1Gbps链路 ospf_cost(1000) # 输出带宽 1000 Mbps → OSPF cost 1参数说明ref_bw可修改如Cisco中auto-cost reference-bandwidth 1000脚本留出扩展接口cost 1强制设为1因为OSPF cost最小为1——PDF答案常忽略这个下限。5. 用Wireshark过滤器把PDF答案“翻译”成实时流量语言第五章协议字段速查表PDF答案里那些“Type3 Code1”“AS_PATH65001 65002”全是静态文本而Wireshark过滤器才是让它们活起来的钥匙。我把第五章所有关键协议字段整理成可直接粘贴的过滤器并标注真实抓包中的位置——这不是手册搬运而是把答案变成你眼睛的延伸。协议字段Wireshark显示名过滤器语法实际抓包位置典型用途ICMPTypeicmp.typeicmp.type 3Frame → Internet Protocol → Internet Control Message Protocol快速定位所有差错报文ICMPCodeicmp.codeicmp.code 1同上展开ICMP树状结构区分Host Unreachable1和Network Unreachable0IPTTLip.ttlip.ttl 1Frame → Internet Protocol检测traceroute路径终点TTL1时目标返回ICMP Time ExceededRIPCommandrip.cmdrip.cmd 2Frame → User Datagram Protocol → Routing Information Protocolcmd2表示Response即路由更新RIPMetricrip.metricrip.metric 16RIP报文内Route Entry字段验证毒性逆转是否生效OSPFRouter IDospf.router_idospf.router_id 192.168.1.1Frame → OSPF → Hello Packet确认DR/BDR选举依据BGPAS_PATHbgp.path_attr.as_pathbgp.path_attr.as_path contains 65001Frame → TCP → BGP → UPDATE Message检查AS_PATH是否被篡改或截断BGPNEXT_HOPbgp.nexthopbgp.nexthop 10.0.0.2BGP UPDATE的NLRI属性验证下一跳可达性提示Wireshark中右键字段→“Apply as Filter”可一键生成过滤器contains比更安全避免AS_PATH中出现空格导致匹配失败。实战技巧当PDF答案说“BGP选路按AS_PATH长度排序”不要只记结论。在Wireshark中用bgp.path_attr.as_path过滤导出所有UPDATE报文用Excel统计AS_PATH字段长度再对比show ip bgp输出的Best标记——你会发现长度相同时真实设备会比ORIGIN属性IGPEGPIncomplete而PDF答案从不提这个第二优先级。最后说个习惯我批改学生作业时从不看他们PDF答案抄得对不对而是让他们交一份Wireshark截图对应过滤器一行命令解释。比如一道ICMP题截图要框出Type/Code字段过滤器写icmp.type3 icmp.code1命令解释写此报文由192.168.1.254返回因目的主机192.168.1.100不存在。这样答案就从纸面跳进了真实网络脉搏里。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

光速虚拟机Windows版发布:泰坦引擎让安卓本地跑Steam游戏

光速虚拟机Windows版发布:泰坦引擎让安卓本地跑Steam游戏

1. 从“让PC游戏进入掌心”说起:这个虚拟机到底想解决什么问题第一次看到“光速虚拟机发布Windows虚拟机”这个标题,我脑子里蹦出来的第一个念头是:终于有人把这件事往前推了一步。为什么这么说?因为过去几年,安卓设备…

2026/10/1 23:16:29 阅读更多 →
YOLOv8接RTSP流目标检测:从拉流到画框的完整链路与避坑指南

YOLOv8接RTSP流目标检测:从拉流到画框的完整链路与避坑指南

简介:这份资源面向计算机视觉开发者、视频监控与智能交通方向的工程人员,提供YOLOv8结合RTSP流实现实时目标检测的完整工程包。内容围绕视频流拉取、模型推理、结果处理与可视化展示展开,适合具备一定深度学习基础、希望将检测模型落地到实时…

2026/10/2 11:18:54 阅读更多 →
Hindsight开源工具:浏览器取证还原被清除的Chrome历史记录

Hindsight开源工具:浏览器取证还原被清除的Chrome历史记录

1. Hindsight是什么:浏览器取证里的"后见之明"第一次听到Hindsight这个名字,是在一次内部安全事件响应任务里。当时的场景很典型:一台Windows办公主机被怀疑用来访问了某些异常站点,但用户声称"自己什么都没干&quo…

2026/10/2 7:33:14 阅读更多 →

最新新闻

互联网商业医疗保险直付平台:从理赔垫付到秒级结算的落地拆解

互联网商业医疗保险直付平台:从理赔垫付到秒级结算的落地拆解

简介:这份PDF文献面向医疗信息化从业者、医院信息中心技术人员及医疗保障研究者,聚焦互联网商业医疗保险直付平台的解决方案。内容系统梳理了商保的概况与现状、传统理赔流程的痛点,并重点论述平台设计原则,包括数据安全、实时性、…

2026/10/2 22:52:08 阅读更多 →
PPTX作为云架构契约:从幻灯片到可执行基础设施

PPTX作为云架构契约:从幻灯片到可执行基础设施

简介:本资源是一份面向智慧城市、大数据与人工智能领域技术决策者及系统架构师的《高效数据中心云基础架构解决方案》专业PPT课件,聚焦企业级IT基础设施向云化演进的核心路径。内容系统阐述动态基础架构管理(AIM)、基础架构云&…

2026/10/2 22:52:08 阅读更多 →
Jev AI研发智能体:任务闭环、本地部署与Codex集成实践

Jev AI研发智能体:任务闭环、本地部署与Codex集成实践

最近社区里聊 Jev 的人越来越多了,但大部分人还停留在"听说它很厉害"的阶段。有人说它是新的 AI 模型,有人说它就是个编码插件,还有人拿它和 Codex 对比,问是不是要抢饭碗。我前阵子也花了不少时间研究 Jev,…

2026/10/2 22:52:08 阅读更多 →
RAGFlow深度解析:企业知识库文档解析与本地部署实战

RAGFlow深度解析:企业知识库文档解析与本地部署实战

1. 先从“文档抽血”说起:RAGFlow 到底解决了什么 企业知识库这条赛道上,开源方案看着一堆,真能拿来当生产力的没几个。RAGFlow 是其中一个让我愿意花时间反复测试的项目。它最打动我的地方,不是又出了一款“聊天问答机器人”&…

2026/10/2 22:52:08 阅读更多 →
从数据传输结构拆解AXI协议:通道、握手与突发机制

从数据传输结构拆解AXI协议:通道、握手与突发机制

AXI协议这个东西,做数字IC和SoC的同学迟早要正面硬刚它。不管你是做设计、验证还是FPGA原型验证,面试时被问AXI的概率几乎是百分之百。但市面上讲AXI的资料两极分化严重:要么是ARM官方手册那种几百页的规格书,啃下来耗神费力&…

2026/10/2 22:52:08 阅读更多 →
TerraScan点云处理实战:参数原理与LiDAR测绘精度控制

TerraScan点云处理实战:参数原理与LiDAR测绘精度控制

简介:本资源是一份面向测绘、遥感、地理信息系统(GIS)及三维建模领域从业者与高校相关专业师生的技术参考文献,系统讲解基于TerraScan软件的LiDAR点云数据处理全流程。内容涵盖LiDAR技术原理与发展现状、TerraScan核心功能&#x…

2026/10/2 22:51:07 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 6:09:11 阅读更多 →