ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

计算机网络第一课通关笔记:分层模型、核心概念与408备考指南

计算机网络第一课通关笔记:分层模型、核心概念与408备考指南 计算机网络第一课学习笔记从认知框架到应试实操的完整通关路径如果你刚上完计算机网络的第一节课大概率是这样一个状态老师花了一个半小时在黑板上画了几层方框讲了“协议”“服务”“分层”“OSI七层模型”这些词。你也努力听了也抄了笔记但走出教室脑子里的东西还没进门课之前多——你只知道了一件事这课不好学而且好像什么都记不住。别慌这是正常的几乎所有人第一节课都这样。计算机网络不是你写第一行Hello World时那种“照着做就能出结果”的东西也不是高数那种“懂了公式就能推题”的学科。它的特点是两个第一抽象层极多每个概念都有前置概念第二它实际上是一堆约定的集合体而不是一条可以推演到底的逻辑链。这篇文章会把第一课里你最该搞清楚的那些东西用我这个过来人的视角重新拆一遍包括教材怎么选、分层模型怎么理解、核心概念怎么记、实验怎么做、期末和考研408怎么应对希望能帮你把这门课的第一块地基打扎实。1. 学计算机网络前的三个认知准备1.1 这门课到底在解决什么问题很多人学计算机网络的第一反应是我以后要当程序员写的是业务代码网络这东西不就是连个WiFi、发个请求吗这个看法不算错但它会直接导致你后面学得痛苦。你想想如果一个后端工程师看不明白TCP三次握手跟HTTP请求到底什么关系出了问题连是服务端没回还是网络丢包都分不清那排查一个线上问题可能要通宵。所以这门课真正解决的是两台隔着千万公里的设备之间怎么可靠、高效地传递信息这件事。发送方要把数据变成比特流塞进网线接收方要从收到的比特流里反推出原始数据中间还要考虑速度、冲突、丢包、顺序、拥塞、安全这比两个人面对面讲话难太多了。第一节课讲的那些分层实际上就是把这些巨大而复杂的问题切成一块块相对独立的小问题再分别处理。你带着这个视角去上课就不会觉得老师在画毫无意义的框图。举个例子你给朋友寄一个礼物你先要用盒子把礼物装好贴上地址标签放进快递柜快递公司再把盒子运到另一个城市最后快递员按地址送到朋友手里。这个场景里包装盒、地址标签、快递运输、签收确认其实就分别对应了网络里的不同层次。你要跟朋友说的是“礼物本身”这件事但你完全不需要关心快递到底走的是公路还是航空——这就是分层给你带来的好处。1.2 教材怎么选谢希仁、自顶向下、王道怎么搭配才不浪费市面上的计算机网络教材核心就三套谢希仁的《计算机网络》、库罗斯和罗斯的《计算机网络自顶向下方法》、以及王道考研系列针对408的辅导书。很多人会问哪个好我的答案是三个都要用但不同阶段用不同用途。如果你是在校生学校大概率用的是谢希仁。这书的特点是体系完整、语言平实、知识点编排跟国内课程大纲基本对得上期末考试以它的体系为准基本不会翻车。它唯一的“缺点”是读起来有点干容易犯困。而《自顶向下》恰好可以补齐这个问题这本书从应用层讲起先让你看到HTTP、电子邮件、DNS这些你熟悉的东西再往下挖它们是怎么跑起来的故事性强入门理解非常好。至于王道那是冲刺期用的它的好处是帮你把考点密度大幅压缩配合选择题套题刷起来效率极高但它的定位是备考而不是初学直接上手容易劝退。我的建议是第一遍跟学校课堂走谢希仁建立知识骨架遇到某块理解不了的去翻《自顶向下》对应的章节看它怎么用例子讲清同一个概念到了期末或者做408真题前再拿王道做体系梳理和题海轰炸。三个教材按这个顺序配合不要指望一本走到底。2. 第一课的核心骨架网络体系结构2.1 为什么非要说清楚分层这件事分层是计算机网络里最基础、也最容易被当成“死记硬背”的知识点。但我可以负责任地说如果你真的理解了分层出现的原因后面学TCP、IP、HTTP这些具体协议的时候会顺很多。回到快递那个例子分层这件事本质上是为了把一件事拆成可以独立设计、独立修改、互不干扰的几个环节。快递公司改了自己的运输路线你不需要重新改包装方式你换了更结实的包装盒快递公司也不需要重写运输流程。每一层只需要向上一层提供固定的服务用什么样的方式实现这个服务是这一层自己的事。网络体系里最常提到的两个模型一个是国际标准化组织提出的OSI参考模型七层理论很圆满另一个是实际运行的TCP/IP模型四层所有现实协议都是它的实现。你第一节课听到的“分层”大概率就是这两个模型。OSI七层从上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP则是把上面三层合成了应用层下面两层合成了网络接口层只保留传输层和网络层独立。考试经常考两者的对应关系这个背是躲不掉的但背的时候你要知道背后的逻辑OSI更偏“学术理想”把每个职能都分得极细而TCP/IP是“工程现实”能合并的绝不保留多余层级。2.2 TCP/IP四层模型每一层到底干什么我用一种特别容易记的方式来描述TCP/IP的四层职责你可以把它想成一个公司里的四个部门应用层负责“说什么”。HTTP、FTP、DNS、SMTP都在这一层解决的问题是应用程序之间如何解读数据比如你的浏览器告诉服务器“我要看这个页面”。传输层负责“说到什么程度”。这一层提供端到端的通信能力TCP保证可靠性丢了会重传UDP追求效率丢了不管。它只关心两端进程不关心中间经过了什么节点。网络层负责“找路”。IP协议在这一层它的核心任务是为数据包选择路径并且用IP地址来标识每一台主机。相当于快递公司决定包裹走哪条线到另一个城市。网络接口层负责“实际搬运”。把比特流放到实际介质网线、光纤、无线电上解决同一段链路内怎么把数据从A机器的网卡送到B机器的网卡。如果你第一节课就把这四层记牢并且每学一个新协议时都先问一句“这个协议属于哪一层”你后面学什么都不会乱。这个习惯是我目前能给你的最有价值的建议之一。画一张小表格贴在笔记本扉页上每次上课前扫一眼比反复抄OSI七层管用得多。3. 反复出现的核心概念速记3.1 以太网到底是什么和“局域网”是什么关系“以太网”这个词几乎所有人都会遇到但很多人学完一学期都没彻底搞懂它。简单说以太网是数据链路层最主流的实现技术目前绝大多数有线局域网用的就是以太网。你宿舍墙上的网口、机房的交换机、公司办公室的网线那套“电信号过来网卡识别交换机转发”的体系就是以太网。说它是局域网这话对但不严谨准确说以太网是局域网的主流实现方式它定义了数据帧的格式、MAC地址的规则以及设备之间怎么争取共享介质的访问权。早期的以太网是一个总线型结构所有人共享一根线大家一起说话就会撞车所以有了CSMA/CD这种“先听再说、撞了就退、退完重来”的规矩。现在用交换机做全双工联结后冲突的问题基本被解决但CSMA/CD作为经典考点期末考试和408都绕不过去该理解还是得理解。我当年把CSMA/CD记成“多个人的群聊场景”你要发言先听群里有没有人说话没有就开口万一两个人同时开口撞了都闭嘴等一个随机时间再尝试。这样一想退避算法的随机性就好理解了——如果不随机撞车的两个人还是会同时重说继续撞。3.2 协议、服务、接口这三个词必须分清楚学第一课的时候还会遇到三个很容易混的词协议、服务、接口。我当时也晕了很久后来找到一个很顺的理解方式。协议是对等实体之间通信规则的约定比如甲和乙两个人打电话都遵守“先拨号、再通话、结束说再见”的流程这个流程就是协议服务是下层向上层提供的功能比如运输层向应用层提供“可靠传输数据”的能力至于怎么可靠应用层不关心接口则是相邻两层交互的地方是服务被调用的入口相当于连接电话和电话线之间的那个插座。一句话总结协议是“水平的”服务是“垂直的”接口是“切换的”。这个问题不仅是考试选择题常客也是理解后续所有分层功能的基础。你会发现TCP协议本身是个水平概念两台机器的TCP实体之间需要遵守状态转换规则而TCP向HTTP提供的可靠字节流服务则是个垂直概念HTTP根本不管TCP怎么实现重传。把这三者的差异刻在脑子里后面学任何一层都会有通透感。3.3 分组交换、时延、带宽、吞吐量底层指标一次懂第一节课还难免涉及一些网络性能指标。这里我不建议死背定义而是直接想成一个“高速公路系统”分组交换就像路上的车流你把一个大文件切分成一个个小分组分别发出去各自走各自的路最终汇合到终点再拼起来。为什么不分一个大包一口气运完因为管道容量有限、中途的节点存储能力有限大包会堵塞通路小分组可以利用各种空闲路径并行转发这就是“存储转发”的核心思想。关于时延一共分四部分发送时延、传播时延、处理时延、排队时延。前两个最常考。发送时延是节点把数据“放上链路”所花的时间等于数据长度除以发送速率传播时延是比特在链路上“跑”的时间等于链路长度除以信号传播速率一般取2×10^8米/秒。考试常考的一个坑就是让你比较二者谁更大答案取决于数据量和链路长度。发送方把100字节放到1Gbps的链路上发送时延只有0.8微秒但信号跑过1000公里光纤还要5毫秒两者完全不是一个数量级。很多初学的人特别容易在这里翻车因为下意识觉得“数据发得快”就等于“到达得快”实际上传播速度是物理上限带宽再高也改变不了光速。带宽和吞吐量也是类似道理带宽是理论极限吞吐量是实际情况中间差的就是各种时延和丢包。4. 学习资源搭配与避坑指南4.1 B站上最适合刷第一遍的视频课视频课的选择对入门影响非常大。我的体验是湖科大教书匠的计算机网络视频课是目前第一遍复习最舒服的选择。他的课用动画把数据在各层之间怎么流动、TCP三次握手怎么一来一回、路由协议怎么交换信息都非常直观地展示出来了。你看视频的时候会感觉那些抽象的东西第一次有了画面感。这门课还有一个很实在的优点每个视频时长控制合理适合碎片时间看而且课堂氛围是在“讲给你听”而不是“照着PPT念”。为什么不用王道的视频做第一遍不是说不好而是王道的课程是针对考研设计的节奏快、信息密度高默认你看过教材。你如果第一遍就直接上王道碰到没有基础的知识点会很吃力而且王道老师的讲课风格偏精简更适合你在有一定基础之后用来巩固梳理。所以我推荐的搭配是第一遍跟着湖科大教书匠搭框架第二遍用王道串考点。4.2 自顶向下这本书的正确使用方法我见过太多人买了一本《计算机网络自顶向下方法》翻了几章就扔在一边理由是“太厚了”或者“跟老师讲的对不上”。确实这本书的章节顺序跟国内大多数学校的教学顺序不一样国内习惯从底层往上层讲自顶向下则从浏览器打开网页开始倒着往下挖。但如果你换个用法就会发现它简直是“理解力的救星”。当你在谢希仁的某个章节卡住了比如TCP的流量控制没看懂你直接去翻自顶向下对应的那一章它通常会用WireShark抓包实例、图解、实际场景来重新解释同一个概念你会发现原来不是自己笨是前面那本书的表达方式跟你不对味。所以自顶向下对你来说是词典 详解工具书而不是教材平替。哪个知识点卡住了就把它当字典用的那一章查效果特别好。4.3 做笔记的密度什么该抄什么不该抄第一课的笔记特别容易走两个极端。一个极端是照抄PPT把整页整页的文字誊一遍一节课下来手很累但脑子里是空的因为你只是在动笔没在动脑另一个极端是只记标题用红笔画几个大箭头方便是方便第二天复习就不知道箭头里是什么了。我给你一个实用的标准凡是例题中出现过的数值推导必须完整记下过程凡是老师两三句话带过的背景知识不用记。笔记本上要留出大量空白方便后来补充自己的想法和错题。我当年还会把每次做错的题涉及的知识点用红笔写在相关章节的页边空白处期末复习的时候就相当于一本自带重点标记的错题集比重新看书效率高一倍。另外一个个人习惯每一章学完后在最后一页用自己大白话复述一遍这一章讲了什么写三五行就行如果写不出来说明这章还没懂。5. 动手实操把抽象概念落到抓包和模拟器里5.1 用Wireshark抓一次包比背十遍原理都有用这一节几乎可以算是我最想让你看到的部分。很多人学完TCP的建立连接、挥手断开还是不知道“三次握手”在实际流量里长什么样。我第一次打开Wireshark看到自己电脑访问网页时那一屏花花绿绿的包的时候才真正明白原来老师的PPT上所有箭头、所有序列号、所有标志位都是现实世界中真真实实存在的东西。抓包的入口非常简单下载Wireshark选择正在上网的网卡然后在浏览器访问一个网站回到Wireshark输入过滤条件tcp就能看到一次TCP连接的全过程。你会看到三个包先是客户端发出SYN标志位为1的包然后服务器回SYNACK最后客户端再回ACK——这就是三次握手。再看HTTP层你会发现它是嵌套在TCP里面的所谓“应用层的协议要跑在传输层之上”就是这么直观。动手抓包给你的第二个感受是“数据真的是一层层包上去的”。展开一个包你会看到从上到下依次是Frame物理帧、Ethernet II数据链路层、IP网络层、TCP传输层、HTTP应用层每一层都把自己的头部信息加在最前面。所谓“封装”这个概念你见过的实物头之后一辈子都不会忘。5.2 课后实验怎么做才有价值从Packet Tracer到实操学校如果安排了实验课一般会用Cisco Packet Tracer思科模拟器来做路由器、交换机的配置实验。这东西的作用是让你在不用真实设备的情况下体验网络设备怎么配置IP地址、怎么配置路由协议。我的建议是把实验当成理解“网络层行为”的工具而不仅仅是为了交作业。比如配置完两台路由器的静态路由后你ping一下对端然后开着仿真模式看数据包是怎么一步一跳地从R1送到R2的——这一步比背十遍“下一跳”这个名词都有用。Packet Tracer操作起来也不难拖设备、连线、敲几条命令就能看到效果。等你之后有条件用真实设备或者虚拟机里的GNS3/EVPNG这类环境会发现你在模拟器里养成的网络拓扑思维直接迁移过去几乎零成本。万一分不到实验课或者学校实验平台不好用也完全可以在家用Wireshark做替代性实验。我认识不少同学就是靠在自己电脑上抓包、看TCP状态变化、ping不同网站跟踪路由跳数把一个学期的计算网络实验都补完的。实践这件事形式不重要做了才是真的。6. 期末复习与408备考还有那些必须绕开的坑6.1 期末复习路线三天也能走完的流程期末复习最大的误区是从头看到尾。计算机网络这课内容多从头看是来不及的得按层次分优先级过。我自己期末复习的节奏供你参考先花半天把各层的主要协议罗列一遍画一张思维导图重点标记每个协议解决什么问题再花一天半集中看传输层和网络层因为这两章是期末大题的高发地带TCP连接的建立与释放、可靠传输、拥塞控制、IP地址分类与子网划分这几块必须达到能默写的程度最后留一天刷套题把学校往年试卷选择题过一遍找到自己反复出错的知识点。如果你平时的笔记有留白、错题有标注这一天的扫盲会很高效否则就得翻书到处找了。高效复习有一个硬指标合上书能把每一层从上到下、每一层的主要协议和英文缩写、每个协议的主要功能说出来。说不出来的部分就是你的盲区立刻翻书补齐不要骗自己。6.2 408里的计算机网络分值和备考节奏怎么把握如果你准备考研目标院校考408那计算机网络虽然只占25分左右但性价比相当高。为什么说它性价比高因为计算机网络在408四门课里知识点相对少题目风格相对固定选择题偏向概念辨析大题通常围绕网络层的IP编址与路由转发来出复习起来比数据结构、组成原理更可控。备考节奏上是这样的第一轮用王道单科书配视频课过知识点同步刷课后选择题第二轮做历年408真题中的网络部分把错题对应的知识点全部回溯到教材对应章节第三轮考前一个月开始背诵记忆型考点比如常见的端口号、协议默认使用的传输层类型、CSMA/CD相关参数这些靠短期记忆效果最好。408网络题的一个特点是喜欢考察“能不能区分清楚相近概念”比如TCP和UDP的应用场景、三种ARQ协议的区别、子网划分和路由聚合的计算、拥塞控制里慢启动和拥塞避免的状态转换。平时复习时多整理这种成对概念的对比表格考场上遇到辨析题会特别有底气。6.3 常见问题排查与避坑速查表最后整理一份我在学习过程中亲身踩过、以及陪学弟学妹时见到的典型问题速查表大家直接在复习时对照自查典型困惑背后原因解决办法三次握手顺序总是记反没理解“客户端主动开连接服务端被动响应”的语义用打电话模拟甲说“你听得见吗”乙回“听得见你听得见我吗”甲回“听得见”发送时延和传播时延混淆把“数据上链路的时间”和“比特在链路上跑的时间”当成一回事每次做题先圈出题目问的是哪一段涉及链路长度选传播涉及数据量大小时偏向发送子网划分算不明白对IP地址“网络号主机号”的结构没有图像化理解把IP地址写成二进制按掩码划线划出来的前缀就是网络部分OSI七层和TCP/IP四层对应出错死背名称不理解“会话层、表示层去哪了”记住一句话TCP/IP认为会话管理和数据格式解析都是应用的事所以合并进应用层抓包看不到三次握手浏览器访问已经有持久连接不再重新握手每抓一次包前关掉浏览器所有页面重新打开或者用curl命令访问一个新域名另外有一个特别普遍且容易被忽视的坑学第一遍时不要试图在一晚上把一章全“啃下来”。计算机网络的知识点之间耦合度极高贪快的结果往往是几天后全部忘光。每天固定时间刷一两节、配合动手实操哪怕进度慢这种“接触-理解-验证”的循环才是真正掌握这门课的最短路径。这几年的学习体验让我最深刻地意识到一件事计算机网络这门课和写代码不一样它没有那种“运行一下就看到结果”的即时反馈所以会有一种“学了但又好像没学”的虚无感。最好的破解方式就是主动给自己制造反馈——抓包、配置模拟器、亲手画数据包结构、把每个协议是怎么协作的用大白话讲给别人听。当你第一次不看任何资料能完整地跟别人讲清楚“在浏览器输入网址到页面出现这一路上数据经历了什么”的时候这门课的第一课就算真正过关了。
返回列表