资讯详情

资讯详情

计算机网络学习指南:分层模型、TCP/IP核心机制与抓包实操

后台天天有人催我更新《计算机网络-2》今天终于把坑填上了。上一篇聊了怎么入门这一篇直接上硬货教材怎么选、分层模型怎么理解、TCP/IP的核心机制、实训平台怎么做题、期末怎么复习还有那些你在浏览器里经常看到的异常流量请求失败报错到底是怎么冒出来的。不管你是正在备考408的考研党还是被期末考折磨的本科生又或者只是想把网络基础补扎实的转行者这篇内容都能让你少走不少弯路。我会尽量用人话把复杂概念讲清楚同时保留足够的专业细节。有的地方我会直接给出速查表和学习顺序你可以当成一份随时翻的笔记来用。1. 先想清楚这门课到底在学什么1.1 别再死记硬背先建立整体框架很多人学计算机网络最大的问题是一上来就背定义TCP是传输控制协议IP是网际协议ARP是地址解析协议……背了一堆缩写结果题目稍微变个花样就懵了。我当年也这样后来才发现这门课的核心不是背协议名而是理解数据从一台设备到另一台设备中间到底经历了什么。我们要建立的第一张全局图就是分层模型。不管是OSI七层还是TCP/IP四层本质上都是在回答一个问题网络通信这么复杂怎么拆成一个个可以独立设计、独立排错的小模块就像快递寄包裹你不能把从北京寄到上海当成一件事而是要拆成打包、写地址、装车、运输、派送、签收。每一层只管自己那一段出了问题也只在对应层找原因。这个概念想通了后面所有的协议都能对号入座。应用层的HTTP、DNS传输层的TCP、UDP网络层的IP、ICMP数据链路层的以太网协议、ARP每一层都只和相邻层打交道。考试也好、实操也好你只要先判断这个问题发生在哪一层思路就清晰了一半。1.2 把网络当成寄快递来理解我用寄快递的类比带过很多学生这里再详细拆一遍。你打开一个网页输入网址回车实际上就是发了一个快递包裹出去。应用层负责写包裹内容和收件人信息它不管包裹怎么运只关心快递单上的语义这就是HTTP请求。传输层负责给这个包裹加编号和校验码顺便决定是选择快但是容易丢的UDP还是慢但可以重传的TCP这就出现了端口号和序列号。网络层负责写最终目的地的门牌号也就是IP地址同时规划路径决定包裹从哪条高速走这就涉及到路由和IP寻址。数据链路层则负责从一个路口送到下一个路口它只关心这一段路上的MAC地址和帧格式就像快递员只关心当前站点和下个站点的交接。物理层就更简单了就是那条实实在在的公路、光纤、无线信道。这个类比不只是为了好懂它会直接影响你的排查思路。比如网页打不开如果显示连接被重置那问题大概率在传输层如果显示无法解析服务器的DNS地址那问题在应用层如果连ping都ping不通那问题可能出在网络层或者更下面。2. 两大经典教材怎么选谢希仁 vs 自顶向下2.1 谢希仁《计算机网络》国内教材的地气与考点如果你在国内读计算机相关专业大概率用的就是谢希仁这本《计算机网络》。这本书的特点是分层讲每章结构清晰考点覆盖全面而且很多学校的期末考试题就是直接从书里例题改编的。尤其是TCP/IP体系结构、CSMA/CD、子网划分、拥塞控制这几个章节谢老写得非常详细非常适合应对国内考试。但它的缺点也明显有些地方读起来像知识清单原理讲得偏简洁尤其对零基础的读者不太友好。比如流量控制和拥塞控制的区别书里可能几段话带过但考试又特别爱考。我的建议是如果你为了期末考谢希仁是首选但一定要配合网课和习题来理解别只看书。2.2 《计算机网络自顶向下方法》从应用层往下看世界库罗斯和罗斯的《计算机网络自顶向下方法》是另一本神书也是很多考研党的辅助教材。它最大的特点是从应用层开始讲先告诉你HTTP、FTP、DNS这些看得见摸得着的东西是怎么工作的再慢慢深入到TCP、IP和物理层。这种讲法非常符合人类认知先用过、再理解底层实现。这本书的课后题质量很高尤其是Wireshark实验部分简直是实操宝典。很多人问计算机网络第八版自顶向下答案去哪找其实书里很多题目是开放性的重点不是抄答案而是跟着题目去抓包、看序列号、分析往返时间。如果你准备408这本书可以作为谢希仁的补充帮你把概念真正揉碎了理解但也别贪多两本书选一本当主线就好。2.3 王道考研系列与408适配度分析湖科大教书匠和王道这两个名字在计算机网络考研圈里几乎无人不知。我自己的体会是湖科大教书匠的系列视频更适合基础阶段尤其是他那套用动画讲TCP三次握手、拥塞控制的视频能把很多抽象概念可视化理解效率直接翻倍。而王道考研的《计算机网络》教材和课程更偏应试每章末尾的知识框架、真题分类很明确适合你已经有了一定基础、开始刷题总结的时候再上。如果你目标是408我建议的学习路径是第一轮用湖科大教书匠的视频谢希仁教材打底第二轮用王道强化选择题和大题的解题套路第三轮刷408真题。湖科大教书匠适合考408吗完全适合而且他本人也提到过很多内容就是对照408考纲讲的但记住看视频不等于学懂了一定要自己动手画状态图、算子网。3. 核心知识点拆解从物理层到应用层3.1 分层模型的本质与记法OSI七层模型是必考的但真正要你默写记忆口诀只是最低要求。你得明白每一层要解决什么问题典型的协议和设备分别是什么。我整理了一张速查表这张表我建议你贴在电脑前层级核心问题代表协议/技术典型设备应用层数据语义与用户接口HTTP、DNS、FTP、SMTP计算机、手机表示层数据格式、加密、压缩SSL/TLS实际常并入应用层网关会话层会话管理与同步NetBIOS现代网络中较少单独实现网关传输层端到端可靠传输、流量控制TCP、UDP四层交换机、防火墙网络层寻址与路由选择IP、ICMP、ARPARP常归链路层路由器数据链路层相邻节点可靠传输、帧同步Ethernet、PPP、VLAN交换机、网卡物理层比特流传输、接口标准双绞线、光纤、Wi-Fi物理层集线器、中继器注意现代TCP/IP协议栈已经把OSI的高三层合并成了应用层但这不影响考试。记口诀可以自己编比如物、数、网、传、会、表、应对应物联网传会表应我当年就这么记虽然不押韵但很有效。3.2 以太网与MAC地址实训中最常见的内容很多人在头歌上刷实训题第一个遇到的模块大概率是以太网帧结构。以太网帧由前导码、目的MAC、源MAC、类型/长度、数据、FCS组成。实训题最喜欢考你最小帧长怎么算以及为什么要限制最小帧长。答案是CSMA/CD。以太网在半双工模式下需要边发送边监听如果发送的帧太短发送完之前可能还没来得及检测到冲突就无法退避重发。所以就有了最小帧长 2 × 端到端传播时延 × 数据传输速率这个公式。经典以太网速率10 Mbps最远距离2500米算出来最小帧长就是64字节——这个数字考试频率极高务必记死。MAC地址是48位6字节前24位是厂商OUI后24位由厂商分配。我见过很多实训题让你改写MAC地址、判断单播/多播/广播地址。记住MAC地址第一个字节的最低位是1代表组播全1才是广播FF-FF-FF-FF-FF-FF。这个细节特别容易踩坑考试喜欢挖这种小点。3.3 TCP/UDP可靠性靠什么撑起来TCP和UDP的对比是期末和408的重头戏。先说UDP它就是一个尽力而为的发送器不管顺序、不管丢包、不管重复所以首部只有8字节速度快适合视频直播、DNS查询这种允许丢一点但绝不允许延迟大的场景。TCP则靠三把斧撑起可靠性序列号、确认应答、重传机制。三次握手建立连接四次挥手释放连接这几乎是每年必考的大题。你可以把三次握手理解成你听得到我吗——我听得到你你听得到我吗——我听得到你三次握手本质上是验证双方的收发能力都正常。考试还爱考拥塞控制也就是慢开始、拥塞避免、快重传、快恢复。记住慢开始的拥塞窗口从1开始指数增长达到阈值ssthresh后进入拥塞避免线性增长发生超时则阈值减半并重新从1开始收到3个重复ACK则执行快重传并进入快恢复。这几个动词的状态变化最好自己画一张流程图比背书强十倍。3.4 IP地址与子网划分必须手算到肌肉记忆子网划分是另一座大山。很多人说我理解了子网掩码但做题就错原因在于没有把二进制的转换练熟。我给你一个我的练习方法每天晚上睡前随机写一个IP地址比如192.168.34.72/26要求自己10秒内说出网络号、广播地址、可用IP范围、子网掩码。连续练一周你就发现这类题变成送分题。关键点在于理解子网掩码的作用——它用来区分IP地址里的网络部分和主机部分。比如/26表示前26位是网络位那么最后一个字节的二进制前两位固定后6位是主机位。2的6次方减2就是可用主机数去掉全0网络地址和全1广播地址。这个减2的操作是新手最容易忘的。另外记住几个特殊地址127.0.0.1是环回地址169.254.x.x是APIPA自动私有地址0.0.0.0代表本机任意地址/默认路由。路由器转发数据时遵循最长前缀匹配原则这一点在做路由表题目时务必注意。4. 实操部分抓包、配置与实训题怎么破4.1 用Wireshark把看不见的流量变肉眼可见很多同学觉得Wireshark就是网速监控工具打开后看到一堆乱码立刻关闭。其实它是最牛的协议学习工具没有之一。我建议的学习姿势是先打开一个干净的抓包环境然后在浏览器访问一个HTTP网站注意不是HTTPS因为HTTPS加密了看不到内容抓取完整的TCP三次握手过程。具体操作打开Wireshark选择正在上网的网卡在过滤栏输入tcp.port 80或者访问某个HTTP站点也可以用http过滤只看HTTP报文然后刷新页面。你会看到三个包SYN、SYNACK、ACK。点开任何一个包左侧树状结构从Ethernet II到IP到TCP一层一层展开正好对应你在书上学到的分层模型。你会直观看到MAC地址、IP地址、端口号、序列号这些概念的实体存在。这里有个小技巧抓包时如果发现帧太多可以先在浏览器地址栏输入about:blank停止外部流量或者使用过滤表达式ip.addr 192.168.1.1只看某一台主机的流量。我以前做实训作业只要涉及TCP状态变化全靠Wireshark来截图验证比死背书靠谱多了。4.2 头歌平台计算机网络实训的常见套路提到头歌计算机网络实训答案我得先说一句直接抄答案对你没有任何好处因为实训题往往是自动判题变换参数重测一下就露馅了。但实训题本身是有套路的掌握了套路做起来很快。头歌的以太网部分一般会要求你配置静态ARP表、填写以太网帧字段、计算CRC校验。CRC的计算可以用二进制除法但笔算容易出错建议用Python写一个小函数来验证比如def crc(data, poly): data poly - 1 data list(map(int, data)) poly list(map(int, poly)) # 模拟模2除法 for i in range(len(data) - len(poly) 1): if data[i] 1: for j in range(len(poly)): data[ij] ^ poly[j] return .join(map(str, data[-(len(poly)-1):]))当然实训系统不一定允许你外部运行脚本但你可以先用脚本算好再填进去效率倍增。重点是理解CRC的本质是模2除法求余数不是数值除法。还有一个常见套路是子网划分实训题目给你一个地址块和需求让你规划子网。这种情况用借位法最快先看需要几个子网算需要借多少主机位再看每个子网需要多少主机算最少要留多少位。从需求反推掩码比正向算稳妥得多。4.3 小型组网实验从交换机配置到路由协议如果你需要做课程设计或者综合实验往往会用到Cisco Packet Tracer这种模拟器。我建议你不要跳过实验题因为真正动手配一遍胜过刷十套卷子。实验第一步通常是配置交换机VLAN。我踩过的坑是把VLAN 10的接口划给VLAN 20结果两台连在同一台交换机上的PC互相ping不通纠结了很久才发现是access口忘改。配置时要记住命令视图enable进入特权模式configure terminal进入全局配置然后vlan 10创建VLANinterface f0/1进入接口switchport access vlan 10划入VLAN。有时候模拟器版本不一样命令略有区别但思路一致。路由器方面静态路由是基础RIP、OSPF也常考。你需要理解路由表是路由器转发数据的唯一依据。配置完别忘了show ip route查看路由表——很多同学配完了就直接ping结果不通也不知道去查路由表这是实操中最大的思维误区。5. 期末复习与考试从刷题到建立解题肌肉5.1 期末试卷的题型分布与高频考点我搜集过不少学校的期末试卷包括北理工、湖大等高校的题目发现题型分布基本稳定选择题20-30分判断题10分计算题30分综合题含协议分析、抓包截图30-40分。选择题考概念辨析判断题喜欢挖和或这种字眼计算题必考CRC、子网划分、CSMA/CD最大吞吐量、TCP拥塞窗口变化综合题则是给你一个网络拓扑让你配置路由或分析报文。复习时不要均匀用力。把90%的时间分配给重点章节数据链路层的封装、网络层的IP编址、传输层的可靠传输原理。至于物理层的编码方式偶尔会考个名次解释不用深抠。5.2 计算题加练CRC、子网、RTT这些送分题不能丢期末计算题中最常见的是RTT往返时延相关。比如某TCP连接初始化拥塞窗口为1慢开始阈值是16发送30个MSS分组往返时间RTT恒定问第几轮次拥塞窗口到16这类问题核心是画拥塞窗口随时间变化的阶梯图。慢开始阶段每轮翻倍所以窗口从1到2到4到8到16需要4个RTT。到了16以后进入拥塞避免每轮加1。题目如果问发送完30个MSS需要多少个RTT你就要把每轮能发送的段数累加12481631所以第5轮发送完就能涵盖30个MSS但要注意如果第5轮窗口已经变成17你要按实际拥塞窗口算。这种题目在复习后期我一天至少练5道练到看到数字就能条件反射地画出窗口变化图。5.3 复习时间表与自测方法如果你离考试只有两周我给你一个可落地的计划表时间段任务输出物第1-3天过一遍谢希仁教材重点章节配合湖科大教书匠视频手写分层模型与各层协议清单第4-6天集中刷子网划分、CRC、拥塞控制计算题至少30道计算题错题本第7-9天做3套往年期末真题限时2小时找出薄弱章节第10-12天针对薄弱章节专项复习并重做错题错题清零第13-14天默写关键流程三次握手、四次挥手、CSMA/CD流程一张A4纸知识图谱自测时我有个方法叫讲题法拿出一张白纸假装给别人讲为什么TCP要三次握手如果能流畅写出步骤、画出状态图说明掌握了如果卡壳那就是这个点还没真正内化回头再看。6. 常见问题与坑异常流量、连接失败这些提示到底在说什么6.1 您的网络中存在异常流量是怎么回事很多人在用浏览器访问网站时偶尔会看到我们的系统检测到您的计算机网络中存在异常流量请稍后重新发送请求这样的提示。第一次见到时别慌这不代表你的电脑被入侵了。从网络层面解释这个提示是网站防护系统根据访问频率、请求特征、IP信誉等因素做出的自动判断。常见触发原因有三个一是你开了自动刷新比如某个扩展脚本频繁请求页面单位时间内请求数超过了阈值二是你所在的网络是学校、公司或小区的共享出口众多用户共用同一个公网IP其中某个用户行为异常导致整个IP被暂时限流三是Cookie被清理后有些网站的安全机制误判你是机器访问。解决办法也很简单关闭所有后台自动刷新页面换一个浏览器访问等待5到10分钟再重试。如果用的是校园网/办公网换个网络比如手机热点基本能立刻解决。顺便说一句如果你真的在写爬虫或者频繁调用接口被弹这个提示是一种防护机制和数据结构里的令牌桶限流原理很像。想学网络的话这反而是一个活生生的流量控制案例。6.2 网络请求失败先自查这四层网页打不开或者App连不上服务器不要一气之下重装系统。按分层模型从下往上排查效率最高。第一步看链路层网线是否松动Wi-Fi是否连接但无Internet访问请求用ipconfigWindows或ifconfigLinux看网卡是否拿到了IP地址。如果IP是169.254开头说明DHCP没获取到地址问题在本段链路。第二步看网络层直接ping网关地址比如ping 192.168.1.1。能通说明局域网没问题然后ping外网地址比如ping 223.5.5.5阿里DNS或ping 114.114.114.114。如果内网通外网不通检查路由器的WAN口配置或运营商线路。第三步看传输层用telnet 主机IP 端口或者nc -vz 主机IP 端口测试目标端口是否开放。超时说明可能被防火墙拦截或服务器没监听端口。第四步看应用层用nslookup检查域名解析再用curl访问目标地址观察HTTP状态码。403和404含义完全不同前者是没权限后者是资源不存在。这个顺序我用了十年几乎能解决90%的连不上网络问题。记住网络排查最忌讳跳层乱试——那叫玄学调试。6.3 那些年我们都踩过的网络坑再分享几个实操中遇到过的坑。第一个是DNS缓存导致的假断网改了域名解析但浏览器一直访问旧IP清缓存的方法是在命令行执行ipconfig /flushdns以及浏览器的chrome://net-internals/#dns刷新。第二个是防火墙入站规则没放行导致服务器端口外部访问不了排查时先看系统防火墙和云安全组。第三个是误把交换机当路由器用导致两个VLAN之间不能互通——交换机的默认网关和路由器的配置完全不是一回事。还有一个小坑是关于CRC校验的计算时千万别把前导码和FCS带入数据部分很多实训题故意在这里设陷阱。另外计算子网可用地址时记得先把全0网络号和全1广播地址排除否则你用公式算出的可用数会多2个。我在实际学习中还有一个很深的体会计算机网络必须眼手并用。只看书不抓包等于学游泳不下水只刷题不思考遇到实验题还是发懵。每一个协议最好都问问自己如果我去设计这个机制我会怎么做然后跟教材里的方案对比一下这样学到的不是死知识而是解决问题的思路。如果你正准备期末考建议把本文提到的计算题类型各练熟十道再按照第5章的复习计划执行及格甚至高分都不难。如果你是为了考研那请一定在基础阶段就把分层模型和各层机制内化因为后续的计网大题基本都是几个机制组合出题基础不牢后面会很痛苦。这篇《计算机网络-2》先写到这儿。下一篇我计划专门拆解TCP拥塞控制的8个考研常见变形题顺便分享几套我用过的抓包分析模板。有问题欢迎在评论区带上你的截图我看到会尽量帮你定位是哪一层的问题。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →