01-网络模型与基础架构
学习目标
- [ ] 理解网络分层模型的 OSI 七层与 TCP/IP 四层模型。
- [ ] 能说出物理层和数据链路层的核心职责。
- [ ] 掌握制作网线的操作流程。
- [ ] 掌握传输层协议 TCP 的三次握手和四次挥手。
- [ ] 会使用 Wireshark 抓包并分析。
- [ ] 会使用 Cisco Packet Tracer 完成基本的网络搭建。
网络历史与分层模型
互联网并非一蹴而就,而是经历了 “军事需求→学术共享→商业普及→全民互联” 四个关键阶段。
发展简史
☆ 军事需求
冷战期间,美国出于对 “核打击后通信中断” 的担忧,美国国防部高级研究计划局(DARPA)启动 ARPANET 项目,核心目标是构建 “去中心化、抗故障” 的通信网络。
1972年10月,ARPANET公开亮相。在华盛顿举行的第一届国际计算机与通信会议上,ARPA的科学家们演示了这个系统:ARPANET将来自40个不同地点的计算机连接在了一起。

1972年,是计算机发展史上的一个重要年份。 1972 年 4 月,英特尔推出了世界上第一款商用 8 位微处理器 —— 8008 芯片,标志着计算机进入到微型处理器商用时代。 1972年,贝尔实验室的布莱恩・柯尼汉和丹尼斯・里奇开发了 C 编程语言,C 语言后来成为最流行的专业软件开发语言之一。 后来,1978年,44岁的谭浩强半路出家,看到美国提出要向12岁的小孩普及计算机,边讲边学,讲解《BASIC语言》和《C语言》,被《人民日报》评为中国计算机普及的奠基人。
☆ 学术共享和商业普及
1983年,随着节点增多,不同设备的 “通信语言不统一” 成为瓶颈。
Vint Cerf 和 Robert Kahn 提出 TCP/IP 协议,解决了 “数据如何在不同网络间路由”“保证数据完整” 的核心问题。
TCP/IP协议的使用,标志着互联网的 “出生”。 1984年,斯坦福大学的计算机中心主任伦纳德・波萨克(Leonard Bosack)和商学院计算机中心主任桑德拉・勒纳(Sandy Lerner),为解决斯坦福大学校园内不同院系 “网络不互通” 的问题,开发了一款支持多协议的路由器,并创办了思科公司。 1987年,任正非在深圳创办华为公司,代理销售香港一家公司的程控交换机。

历史故事 思科:1987年,斯坦福大学的一对教师夫妇创办的一家商业公司。Cisco的名字取自San Francisco (旧金山,圣弗朗西斯科)的后五个字母。logo设计灵感来自旧金山的标志性建筑金门大桥,寓意构建网络世界的”桥梁“。 华为:1987年8月,任正非将21000元人民币筹措到位后,在深圳一个旧厂房开始成立 公司,起名字的时候,苦思冥想争执不下,后来它恰巧看到办公室对面的墙上有一幅“心系中华,有所作为”的标语,于是,灵机一动就将公司起名“华为”,意为“中华有为”,为中华崛起而为之。
1990s 后,商业资本进入,ISP(互联网服务提供商)出现。
☆ 全民互联
早期互联网仅能传输文字和简单文件,使用门槛极高。
1989 年英国科学家 Tim Berners-Lee 发明万维网(WWW),提出
URL(统一资源定位符)、HTTP(超文本传输协议)、HTML(超文本标记语言)
三大核心技术,让 “图文结合的网页” 成为可能。

1994年 - 2004年互联网发展 1993 年,第一个网页浏览器 Mosaic(俗称马赛克,代码只有9000行,网景的前身)浏览器问世,这是第一个能够在不同操作系统上运行、支持图形界面和图片显示的 Web 浏览器,极大降低了互联网的门槛。 1994年,网景公司成立,发布了一款更强大的浏览器Netscape Navigator,迅速占领了80%以上的市场。 1995年网景公司IPO上市创造的神话引爆了互联网时代。我们现在所熟知的SSL、JavaScript、Cookie等技术都是网景公司对这一时代的贡献。 1994年到1998年,雅虎公司、eBay公司、亚马逊公司、谷歌公司陆续创立。。。 1998年到2000年,受美国互联网时代的启发,张朝阳回国创立搜狐,李彦宏回国创立百度,马云创办阿里巴巴,马化腾在通信软件领域创办腾讯,丁磊在邮箱软件领域创办网易。
分层思想
网络通信涉及 “数据如何打包”、“走哪条路传输”、“如何识别接收方”、“如何展示内容” 等多个环节。
若将所有功能混在一起,会导致 “牵一发而动全身”(比如改传输路径,就要重写数据打包逻辑)。
分层思想正是为解决这个问题而生。

分层的本质
把网络通信的全流程拆成多个 “独立层级”,每个层级只负责一件事。
分层的价值
1. 降低复杂度(解耦):比如要优化 “数据传输速度”,只需改 “物理层”(如从网线换成光纤),不用动其他地方。 2. 便于标准化:全球厂商按同一分层模型开发设备(如华为的路由器按 “网络层” 标准做,苹果的手机按 “应用层” 标准做),确保不同品牌设备能互联互通。 3. 利于维护:故障排查时,能快速定位层级。
高内聚,低耦合
分层模型
☆ OSI七层
OSI 七层模型是国际标准化组织(ISO)提出的 “理论模型”,它将网络通信流程拆解得最细致,每一层都有明确的职责边界,主要用于教学和技术规范制定。

1- 物理层:
功能:在网络设备之间传输原始比特流(0 和 1),包括定义物理设备的硬件规格(如电缆类型、信号电压、传输速率等)
设备:网线、光纤、集线器
大白话:就是网线、光纤、无线信号这些东西,负责把 0 和 1 通过电流、光信号或者无线电波传输出去
2- 数据链路层:
功能:将比特组合成帧,并提供可靠的数据传输(访问控制和硬件地址(MAC 地址)管理),检测和纠正物理层的错误
设备:交换机
大白话:把 0 和 1 组合成“数据包”,并且加上地址标签(MAC 地址),还会检查有没有传错。
同一局域网内传输操作,无法进行跨网络传输
3- 网络层:
功能:负责路径选择(路由)和逻辑地址(IP 地址)的管理,实现数据包的传输,主要的协议为 TPv4、IPv6
设备:路由器
大白话: 负责导航,给数据找一条从A点到B点的最佳路径,用的是IP地址
基于路由器,实现跨网络的传输方式
4- 传输层:
功能:提供端到端的通信服务,数据从应用层分割成报文段,确保数据的可靠性、顺序性和完整性,主要的协议为 TCP、UDP
大白话:确保数据不丢、不乱,像快递的分拣中心,还会给大数据分成小包裹(分段),送达后再重新组装。
5- 会话层:
功能:管理会话(Session),包括建立、维护和终止应用程序之间的连接
例如:比如视频会议时确保两边能持续连通
大白话:就是维持聊天记录的管家,负责建立、管理和结束两个设备之间的连接。
6- 表示层:
功能:处理数据的表示形式,确保数据在不同系统之间的兼容性 负责数据的编码、加密、压缩等
例如:图片、视频、文字能正确显示都依靠表示层
大白话:数据翻译官,负责把数据变成对方能读懂的格式,还能帮忙加密或压缩。
7- 应用层:
功能:为用户和应用程序提供网络服务接口
例如:网页浏览(HTTP)、邮件(SMTP)、文件传输(FTP)
大白话:就是和你直接打交道的界面,负责提供网络服务
数据在各层的名字:
比特流 --> 帧 --> 包 -- 报文段 --> 报文(应用层、表示层、会话层)
从地址角度来看:
传输层:端到端传输 端口
网络层: IP
数据链路层: MAC
从传输的功能:
传输层: 从服务进程 到 服务进程
网络层: 从IP到IP 端到端
数据链路层: 从mac 到mac 跳注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ TCP/IP四层(重点)

<sheet sheet-id="0LhN18" token="VOM7spevkhm5sHtyVLwcV2KPngy"></sheet>
对比总结
<sheet sheet-id="k4OxnY" token="VOM7spevkhm5sHtyVLwcV2KPngy"></sheet>
数据的封装与传输
我们用TCP/IP 四层模型,以 “用浏览器打开百度网页” 为例,讲解一下数据的封装和解封过程。
☆ 数据封装
将数据按照协议栈,逐层向下传递数据,并添加报头和报尾的过程,称为封装。
原始数据→数据段→数据包→数据帧→比特流
我们以访问网页为例,
1. 应用层:访问页面,发送HTTP请求,原始数据被转换成二进制数据 2. 传输层:数据被打上传输层头部比如TCP头部,封装成Segment 数据段。关键信息是端口号。 3. 网络层:会给数据打上IP头部,封装成Packet数据包。关键信息是源目ip地址。 4. 网络接口层 :会给数据打上帧头部,封装成Frame数据帧,头部中关键信息是源目MAC地址。
在网线或者光纤上将二进制数据封装成高低电频信号或者光信号。
最终在物理层上(双绞线、光纤跳线)上以电信号或光信号进行传播转发。

什么是 FCS ?
FCS 的全称是 Frame Check Sequence,中文翻译为 帧检验序列。
简单来说,FCS 是添加到数据帧尾部的一段冗余校验码,用于检测数据在传输过程中是否出现错误。
对应的,逐层向上传递,并拆解报文的,称为解封。
对应的OSI七层模型,封装解封过程如下

☆ 数据传输
封装后的数据,在物理层和链路层进行传输。
最终,达到主机后,逐层解封,得到原始数据。
下面的图形中,需要注意数据不仅在物理层传输,也会涉及到交换机和路由器的数据转发和传递。

总结
1、面试中,主要问 TCP/IP 四层模型是哪四个?
2、网络工程的学生,主要关注七层模型的“下三路” —— 网络层、链路层、物理层;
3、随着无线通信的发展,物理层主要由通信工程专业来处理。

物理层与数据链路层
物理层和数据链路层是网络通信的 “底层基石”,二者共同构成了网络的 “物理连接基础”。
物理层解决 “信号如何传输”。
数据链路层解决 “相邻设备如何准确通信”。
物理层
物理层是网络分层的最底层,直接对接物理设备和传输介质.
核心任务是将二进制数据(0/1)转化为物理信号并传输,不关心数据的含义。

物理层常见的设备如下
<sheet sheet-id="aFL6e1" token="VOM7spevkhm5sHtyVLwcV2KPngy"></sheet>
☆ 双绞线
双绞线的名字直接来源于它的物理结构 —— 由两根绝缘导线 “相互绞合” 组成。
这种绞合设计是它区别于其他传输介质(如平行线、同轴电缆)的核心特征,也是名字的唯一来源。

双绞线通常以 “线对” 为基本单位(比如常见的网线含 4 对线,共 8 根导线)。 每一对中的两根绝缘铜导线会按照一定密度 “螺旋状相互缠绕”,就像拧麻花一样。
双绞线抗干扰原理
当外部有电磁干扰(如旁边电机产生的磁场、其他线缆的信号)时,由于两根导线紧密绞合,会同时、均匀地接收到相同的干扰信号。
双绞线的 “绞合” 让两根线在空间中不断交换位置,无论外部干扰来自哪个方向,每根线都会 “平均接触” 到干扰信号,最终两根线上的干扰电流 “大小相等、方向相反”(对称);

课上思考题 1、为什么平行线无法抵消电磁干扰? 平行线是两根线平行排列,距离固定且位置不变。比如旁边有一根强信号线缆,靠近强信号的那根平行线会接收到更强的干扰,另一根则较弱 —— 两根线上的干扰电流 “大小不等、方向也可能不一致”(不对称) 2、为什么同轴电缆不用做成平行线? 同轴电缆并非 “不用抗干扰”,而是用 “物理隔绝” 的思路替代了绞合结构,所以成本高一些。
☆ 光纤
光纤是物理层中以光信号为传输载体的介质,核心优势是 “超远传输距离 + 超高带宽 + 强抗干扰”,是当前全球通信骨干网的核心传输介质。

“光纤之父” 高锟 高锟 1933 年出生于江苏省金山县(今上海市金山区),1948 年移居台湾,之后随父亲迁往香港。 1966 年,高锟在国际电话电报公司任职期间,发表了题为《光频率介质纤维表面波导》的论文,开创性地提出光导纤维在通信上应用的基本原理,为光纤通信奠定了理论基础。 2009 年,高锟因 “在纤维中传送光以达成光学通讯” 的开拓成就,获得诺贝尔物理学奖。

应用场景
- 通信骨干网:全球互联网的 “主干道”(如海底光缆、跨省市通信线路),几乎全依赖单模光纤。
- 数据中心:大型数据中心内服务器间的高速连接(如多模光纤用于机柜间 100Gbps 以上数据传输)。
- 企业 / 园区网:对带宽和距离要求高的企业(如科技公司、高校),用光纤连接不同楼宇的网络设备。
☆ 无线(WiFi)
WiFi 是物理层中基于电磁波的无线传输技术,核心优势是 “无需布线 + 移动性强”,是当前家庭、办公室等场景最主流的无线接入方式。
WiFi 通过 “无线网卡” 收发信号,本质是将二进制数据(0/1)转化为2.4GHz 或 5GHz 频段的电磁波,通过空气传输。
总结
<sheet sheet-id="rwmwi2" token="VOM7spevkhm5sHtyVLwcV2KPngy"></sheet>
课上作业 大家搜索一下,光纤和双绞线的传输距离大概能达到多少?
数据链路层
数据链路层位于物理层之上,负责相邻设备(如电脑与路由器、路由器与交换机)之间的帧传输,解决 “物理层信号传输可能出错” 的问题。
核心功能
1. 封装成帧:将网络层的 IP 数据包包装成 “数据帧”,添加帧头(含源 / 目的 MAC 地址)和帧尾(含校验位)。 2. 差错控制:通过帧尾的校验位(如 CRC 循环冗余校验)检测数据在传输中是否损坏,若出错则要求重传。 3. 流量控制:当接收方处理速度慢于发送方时,通过 “暂停信号” 控制发送速率,避免数据溢出。
MAC 地址 设备的物理地址,48 位 MAC 地址分为两段,每段 6 位十六进制数,分工明确。全球唯一,由厂商烧录在网卡中,用于标识相邻设备。 6 字节,如 00-1A-2B-3C-4D-5E,前 3 字节 “厂商码”+ 后 3 字节 “设备码”
| 目的MAC地址 | 源MAC地址 | 类型字段(标识上层协议) | 数据(IP数据包) | 校验位(CRC) |
|---|---|---|---|---|
| 6字节 | 6字节 | 2字节 | 46-1500字节 | 4字节 | 注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
☆ 网卡
网卡(Network Interface Card,NIC)是计算机或终端设备接入网络的 “接口”,是数据链路层最基础的设备。
- 核心功能:将设备产生的数字信号转换为网络可传输的帧格式,并添加 / 识别 MAC 地址,确保数据发送到正确的目标设备。
- 关键特点:每块网卡都有唯一的MAC 地址(物理地址),长度为 48 位,是设备在局域网中的 “身份证”。
- 常见形态:如今多为主板集成,也有独立的 PCI-E 网卡(如千兆、万兆网卡)或 USB 外接网卡。

☆ 交换机
交换机(Switch)是局域网内的 “数据中转站”,是目前数据链路层最常用的设备,用于连接多台设备通信。
核心功能:通过MAC 地址表学习设备的 MAC 地址,仅将数据帧转发到目标设备对应的端口,而非像集线器那样 “广播” 给所有端口,减少网络冲突。

☆ 网桥(Bridge)
网桥是早期用于连接两个或多个局域网的设备,功能类似简化版的交换机。
核心功能:根据 MAC 地址过滤和转发数据帧,将一个大的局域网分割成多个小的 “冲突域”,减少网络内的数据冲突。

网桥主要就是用来隔离网络域的,目前仅在一些老旧网络或简单的局域网扩展场景中偶尔使用。
[实验1] 动手制作网线
实验原理
双绞线通过“绞合结构”抵消电磁干扰,而线序标准是保证信号同步传输的关键。常用标准有两种,核心差异在于橙绿线对的排列顺序:
- T568B标准(主流):线序为“橙白→橙→绿白→蓝→蓝白→绿→棕白→棕”,用于直连网线制作(不同设备间连接,如PC与交换机、路由器与交换机)。
- T568A标准:线序为“绿白→绿→橙白→蓝→蓝白→橙→棕白→棕”,用于交叉网线制作(同类设备间连接,如PC与PC、交换机与交换机,早期设备需用,现多支持自动翻转)。

硬件准备
| 器材名称 | 数量 | 用途说明 |
|---|---|---|
| 超五类双绞线(CAT5e) | 1根(长度1-2米) | 传输电信号,超五类支持千兆速率,满足实验需求 |
| RJ45水晶头 | 2个 | 连接终端设备或交换机的RJ45接口,需与双绞线匹配 |
| 网线钳 | 1把 | 兼具剥线、剪线、压接水晶头功能,需选择带RJ45压接位的型号 |
| 网络测线仪 | 1套(含主机和副机) | 检测网线8芯通断及线序是否正确,判断制作质量 |
| 美工刀(可选) | 1把 | 辅助剥线,新手建议用网线钳自带剥线位更安全 |
什么是超5类? 网线类别(Category)最早是从1开始编号的,分别为1类、2类、3类。进入21世纪,人们在5类网线 的基础上,发展出了增强版(Enhanced)的5类网线,也称为5类加强版,支持1000Mbps传输,简称超5类。 5类网线的百兆速率已能够满足大部分使用场景,但是网线布设一般要10年使用寿命,所以需要适当展望未来。 目前家庭网络、中小型办公室95%以上是千兆接入,也就是业界说的超5类。

操作步骤
双绞线内有4对彩色线对(橙白-橙、绿白-绿、蓝白-蓝、棕白-棕),制作时需保持线对绞合状态至水晶头根部,减少串扰。
1. 剥线:用网线钳的“剥线位”夹住双绞线一端(距端部约1.5cm处),轻轻旋转一圈,割开外皮后向外拉,露出8根线对。注意不要割伤内部线芯(绝缘层破损会导致短路)。

1. 理线与剪齐:
1. 解开线对,按T568B标准依次排列:橙白→橙→绿白→蓝→蓝白→绿→棕白→棕。 2. 用手指将线捋直,确保线序无错且排列紧密,然后用网线钳“剪线位”将线端剪齐(长度约1cm,确保8根线芯平齐,无长短差)。


1. 插水晶头:手持水晶头(金属弹片朝下,开口朝自己),将剪齐的线端插入水晶头内部,确保8根线芯完全顶到水晶头底部(可从水晶头顶部观察线芯是否到位),且橙白线对应水晶头的第1针脚。

1. 压接固定:将插好线的水晶头放入网线钳的“RJ45压接位”,用力按压网线钳手柄至听到“咔嗒”声,确保金属弹片完全刺穿线芯绝缘层并与线芯接触良好。

1. 制作另一端:重复步骤1-4,制作网线另一端,确保两端线序均为T568B标准(直连网线要求)。

1. 通断测试:将网线两端分别插入测线仪的“主机”和“副机”RJ45接口,打开测线仪电源。

验证测试
正常情况:主机和副机的1-8号指示灯依次同步亮起(对应T568B线序);
若某灯不亮,说明对应线芯接触不良或断裂;
若灯亮顺序错乱,说明线序错误,需重新制作。
总结
口诀 白橙橙、白绿蓝、白蓝绿、白棕棕
传输层
在TCP/IP协议栈中,传输层位于网络层(如IP层)之上、应用层(如HTTP、FTP)之下。主要实现以下功能:
- 进程寻址:通过“端口号”标识主机内的不同应用进程(如80端口对应HTTP),确保数据能准确交付到应用。
- 可靠性保障:针对IP层的“无连接、不可靠”特性(IP数据包可能丢失、乱序、重复),提供重传、排序、校验等机制(以TCP为代表)。
- 流量控制与拥塞控制:避免发送方速率过快导致接收方缓冲区溢出(流量控制),或过多数据注入网络导致链路拥堵(拥塞控制)。
端口 Port
网络层通过IP地址能找到目标主机,但一台主机上有很多应用进程(比如同时开着浏览器、微信、音乐软件)。
数据到了主机后,怎么知道该交给哪个进程?这就需要“端口号”。
场景类比 你要去黑马程序员上课,老师告诉你了校区地址,但是上课在哪里上呢? 这就需要告诉你具体的教室编号,不同教室的学生,上课时互不影响。
端口号 Port Number
端口号是一个16位的数字(范围0-65535),分为以下两种:
- 知名端口号(0-1023):固定分配给常用应用,比如HTTP用80端口,HTTPS用443端口,FTP用21端口;
- 动态端口号(1024-65535):普通应用进程临时使用,用完释放。

套接字 Socket
传输层通过“IP+端口”的组合(称为“套接字”),就能精准定位到两台主机上的通信进程,实现“端到端”通信。
Socket “Socket” 的英文本意是 “插口、插座” 的含义。 网络通信场景,借用了这个词语,表示只要连上这个“插口”,就能获取电力(传输数据),而不需要关注对方到底是怎么运行的。 插口更符合 Socket 的本意,但后来被翻译成了“套接字”,让初学者会有点儿迷茫。

传输控制协议 TCP(面试)
传输层的两大核心协议为TCP(传输控制协议)和UDP(用户数据报协议),我们主要聚焦 TCP 进行学习。
TCP术语全双工的协议(两端都可以发送数据也都可以接收数据, 两端可以同时发,也可以同时接)。
了解相关名词:
序列号:seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
确认序号:ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
常见的标志位:
ACK:确认序号有效。
SYN:发起一个新连接。
FIN:释放一个连接。注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
CLOSED 初始(无连接)状态。
LISTEN 侦听状态,等待远程机器的连接请求。
SYN_SEND
在TCP三次握手中,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。
SYN_RECV
在TCP三次握手中,主动连接端收到ACK包后,进入SYN_RECV状态。
ESTABLISHED
完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。
FIN_WAIT_1 在TCP四次断开时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态
FIN_WAIT_2 在TCP四次断开时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态
TIME_WAIT 在TCP四次断开时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态
CLOSE_WAIT 在TCP四次断开时,被动关闭端收到FIN包后,进入CLOSE_WAIT状态
LAST_ACK 在TCP四次断开时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
三次握手

- SYN(Synchronize):同步序列号,用于发起连接。 Chronic
- ACK(Acknowledgment):确认标志,表示确认号字段有效。
- SEQ(Sequence Number):数据包的序列号,确保数据有序传输。
- ACK Number:期望收到的下一个字节的序列号(即已收到的序列号+1)。
TCP三次握手的过程如下:
1. 客户机A端(主动连接端)发送一个SYN包给服务器B端(被动连接端);
2. 服务器B端(被动连接端)收到SYN包后,发送一个带ACK和SYN标志的包给客户机A端(主动连接端);
3. 客户机A端(主动连接端)发送一个带ACK标志的包给服务器B端(被动连接端),握手动作完成。
三次握手
1. 客户端:我想发送请求
2. 服务端:好的,我知道你要发送请求了,同意发送
3. 客户端:好的,我知道你同意了,那我开始发送了
三次握手:
第一次握手: 客户端发送请求到服务器端, 要求建立TCP连接
第二次握手: 服务器端接收到客户建立TCP连接的请求, 并做出响应告知已经收到连接请求, 确认客户端是否可以收到服务器的响应信息
第三次握手: 客户端收到服务器的响应信息后,做出响应,告知服务器端已经收到响应信息
这个时候, 不管是客户端还是服务端,都确认对应可以发送消息也可以接受消息, 此时建立好TCP连接通道
后续就可以正常发送消息,但是要注意, 后续每一次发送消息其实都在存在再次确认方案
TCP是全双工模式:两端都可以发 也都可以同时接收注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
四次挥手

TCP四次断开的过程如下:
1. 客户机A端(主动连接端)发送一个FIN包给服务器B端(被动连接端)请求断开连接;
2. 服务器B端(被动连接端)收到FIN包后,发送一个ACK包给客户机A端(主动连接端);
3. 服务器B端(被动连接端)发送了ACK包后,再发送一个FIN包给客户机A端(主动连接端)确认断开;
4. 客户机A端(主动连接端)收到FIN包后,发送一个ACK包,当服务器B端(被动连接端)收到ACK包后,四次断开动作完成,连接断开。
四次挥手
1. 客户端:我不需要请求了,可以关闭连接了
2. 服务端:好的,我知道你要关闭了
3. 服务端:我发送完成了,可以关闭了
4. 客户端:好的,我知道你发送完成了,确认关闭
四次挥手:
第一次挥手: 客户端发起断开请求(客户端已经发送完数据了, 想要断开连接)
第二次挥手: 服务端收到要断开请求的连接, 响应客户端, 告知已经收到断开请求, 但需要等待我这边发送完成
第三次挥手: 服务端在完成数据发生后, 再次响应给客户端, 告知已经发送完成, 可以进行关闭操作
第四次挥手: 客户端一直在等待接收服务器端告知已经发送完成的请求, 一旦收到后, 就理解响应服务器告知已经关闭完成,服务端也会正常关闭
通过这四次挥手,可以确保客户端 和 服务器都能够保证双方都发送完了消息也接收完了消息, 从而正常断开连接注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
要求一: 能够说出OSI和 TCP/IP的 七层模型和四层模型
要求二: 能够说出OSI的七层模型每一层的作用
要求三:能够说出网络通信客户端是如何一步一步连接到服务器端
要求四:TCP三次握手 和 四次挥手能讲的出来
希望可以用自己的话来进行阐述, 千万不要感觉出来你在背诵一个内容
先按照这些问题, 一一整理好每个问题的答案, 然后后续使用多天 多次的查看即可注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
抓包利器 Wireshark
网络通信的“黑盒”可通过抓包工具打开,Wireshark作为业界主流的开源抓包软件,能实时捕获网络中的数据帧与数据包,直观呈现数据从应用层到物理层的封装过程及传输细节。
Wireshark的界面设计围绕“抓包-分析”核心逻辑,熟悉界面元素是高效操作的前提,基本抓包流程仅需3步,门槛极低。
官网地址:https://www.wireshark.org/

下载安装

下载下来,一路点击安装就可以。
安装完成后,可以调整字体,使得后面的操作更清晰。


核心技能
启动Wireshark后,界面分为4个核心区域。
1. 捕获接口区(顶部):显示当前设备的所有网络接口(如以太网、WiFi、虚拟机网卡),接口名称后括号内的“流量数值”表示该接口实时收发数据量。关键操作:双击目标接口即可开始抓包;若需过滤接口,右键接口选择“启用”/“禁用”。

1. 数据包列表区(左上):按捕获时间顺序展示所有数据包,每一行代表一个数据包,包含7列核心信息,鼠标悬停可查看字段说明:
1. No.:数据包序号(捕获顺序,非实际传输顺序); 2. Time:捕获时间(默认相对于抓包开始时间,可在“视图→时间格式”中修改为绝对时间); 3. Source:源IP地址(或MAC地址,依协议层级而定); 4. Destination:目的IP地址(或MAC地址); 5. Protocol:数据包所属协议(如ICMP、TCP、UDP); 6. Length:数据包总长度(单位:字节,含帧头、包头和数据); 7. Info:数据包关键信息(如Ping的“echo request”/“echo reply”,TCP的“SYN”/“ACK”)。

1. 数据包详情区(左下):选中数据包列表中的某一行,此处会以“树状结构”展示该数据包的协议层级(从物理层到应用层),点击层级前的“+”可展开查看具体字段(如以太网帧头的MAC地址、IP包头的TTL值)。这是协议分析的核心区域。

1. 数据包原始数据区(右下):展示数据包的二进制原始数据和对应的十六进制、ASCII码,与详情区的字段一一对应(点击详情区字段,原始数据区对应位置会高亮)。主要用于底层协议调试或数据校验。

操作流程
1. 选择捕获接口: 查看当前联网接口:若用网线连接,选择“以太网”接口;若用WiFi,选择“WLAN”接口(可通过接口后的实时流量判断,有数据传输的即为当前联网接口)。

1. 高级设置(可选):右键目标接口,选择“选项”,可配置抓包过滤规则(抓包前过滤,减少冗余数据)、设置捕获文件大小(避免占满磁盘)、开启“混杂模式”(捕获接口收到的所有数据,包括非目标自身的数据包,默认开启)。

1. 开始/停止抓包: 点击工具栏“开始捕获”按钮(红色鲨鱼鳍图标),此时接口名称旁会显示“正在捕获”,数据包列表区开始实时刷新数据。
1. 执行目标操作:在抓包期间,完成需要分析的网络操作(如Ping网关、打开网页),操作完成后立即点击工具栏“停止捕获”按钮(灰色方形图标),避免捕获过多无关数据。


1. 保存与导出(可选): 抓包完成后,通过“文件→保存”将捕获的数据包保存为“.pcapng”格式(Wireshark默认格式,支持后续重新打开分析)。

1. 若需分享部分数据,可选中目标数据包,右键选择“导出选中的分组”,按需导出为单独文件。
| 对比维度 | 捕获过滤器(Capture Filter) | 显示过滤器(Display Filter) |
|---|---|---|
| 作用时机 | 抓包前配置,仅捕获符合规则的数据 | 抓包后配置,从已捕获数据中筛选 |
| 语法规则 | 基于Berkeley Packet Filter(BPF)语法,较简洁 | Wireshark自定义语法,支持更复杂的条件组合 |
| 配置位置 | 接口“选项”对话框中的“捕获过滤器”输入框 | 主界面顶部的“显示过滤器”输入框(带放大镜图标) |
| 核心优势 | 减少磁盘占用,提高抓包效率 | 灵活筛选,支持动态调整规则,不影响原始数据 |

[实验2] Wireshark观察数据封装
网络分层的核心机制是“数据封装”——
发送端从应用层到物理层逐层添加头部信息(信封),
接收端从物理层到应用层逐层剥离头部信息(拆信封)。
本实验通过“PC访问HTTP网页”的场景,用Wireshark捕获完整数据包,直观观察
“应用层→传输层→网络层→数据链路层”
的封装过程,验证理论知识。
实验目标
1. 基础目标:掌握Wireshark捕获HTTP/TCP/IP/以太网多层数据包的方法,能通过过滤器筛选目标数据。 2. 核心目标:识别TCP段头(传输层)的核心字段,理解“应用层数据→TCP段→IP包→以太网帧”的逐层封装关系。 3. 拓展目标:对比请求包与响应包的封装差异,理解“三次握手”在数据封装前的作用。
实验原理
本实验选择HTTP协议(无加密,便于观察应用层数据),完整通信流程如下:
1. 应用层:浏览器产生HTTP请求数据(如“GET / HTTP/1.1”)。 2. 传输层:添加TCP头部(源端口、目的端口80、序列号等),形成TCP段(因HTTP基于TCP协议)。 3. 网络层:添加IP头部(源IP、目的IP、Protocol=6等),形成IP包。 4. 数据链路层:添加以太网帧头(源MAC、目的MAC、Type=0x0800等),形成以太网帧。 5. 物理层:将帧转化为电信号/光信号发送,接收端反向拆封。
实验器材与环境准备
- 硬件:联网PC1台(确保能访问互联网)。
- 软件:Wireshark、浏览器(Chrome/Edge,关闭HTTPS强制跳转)、命令提示符。
- 实验素材:HTTP测试网站(如“http://example.com”,国际标准HTTP网站,无加密)。
- 环境配置:清除浏览器缓存(避免重复请求无数据),关闭VPN和防火墙(防止拦截),以管理员权限启动Wireshark。

实验步骤(分阶段实施)
阶段1:捕获HTTP请求数据包
1. 步骤1:启动Wireshark并配置过滤启动Wireshark,选择当前联网接口(以太网/WLAN),点击“开始捕获”。


1. 在显示过滤器输入“http and host example.com”(仅显示与目标网站相关的HTTP数据),暂不应用。



1. 步骤2:执行网页访问操作打开浏览器,在地址栏输入“http://example.com”,按下回车,等待网页完全加载。

1. 网页加载完成后,立即返回Wireshark点击“停止捕获”,然后点击过滤器“应用”按钮。

1. 步骤3:筛选目标数据包在数据包列表区找到“Protocol”为“HTTP”、“Info”为“GET / HTTP/1.1”的请求包(如No.256),这是应用层HTTP请求的核心包。

1. 记录该包对应的“Source”(源IP:源端口)和“Destination”(目的IP:80),后续分析将围绕该包展开。

阶段2:逐层分析数据封装结构
选中“GET / HTTP/1.1”请求包,在详情区按“数据链路层→网络层→传输层→应用层”顺序展开,记录各层头部信息及数据内容,填写实验记录表(见阶段3)。
1. 层1:数据链路层(以太网帧)展开“Ethernet II”,记录源MAC、目的MAC、Type字段值。

# 在 windows 电脑上,打开 cmd,执行
ipconfig /all注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
网络仿真平台 Cisco Packet Tracer
常见仿真平台
☆ eNSP
eNSP(Enterprise Network Simulation Platform,企业网络模拟平台)是一款由华为自主开发的、免费的、可扩展的、图形化操作的网络仿真工具平台,主要对企业网络路由器、交换机及相关物理设备进行软件仿真,完美呈现真实设备部署实景。
适用场景:刚接触网络模拟的新手,或者重点学习华为设备配置、备考华为认证(如HCIA/HCIP)的学习者。
缺点:需要安装 eNSP、WinPcap、Virtual Box 等工具。

☆ EVE-NG
EVE-NG(Emulated Virtual Environment - NextGeneration,下一代仿真虚拟环境)是一款跨平台的模拟工具(支持Windows、Linux等),支持模拟多种品牌设备,比如华为、思科、 Juniper等,还能加载真实设备的系统镜像,模拟效果更贴近真实环境。

☆ GNS3
GNS3(Graphical Network Simulator-3,图形网络模拟器)是一款老牌且强大的网络模拟器,社区活跃。
能够直接连接云服务器或真实的服务器。

☆ Cisco Packet Tracer
Cisco Packet Tracer 是思科公司推出的一款网络模拟和可视化学习工具,主要用于网络工程师和学生的网络技术学习与实践。
是网络入门学习的绝佳起点,其易用性和教学针对性使其成为网络初学者的首选工具。

需要注册一个账号,然后就可以开始在线学习和下载软件。

Cisco Packet Tracer 安装
软件下载
官网地址:https://www.netacad.com/
需要注册一个账号,点击在线学习

接下来就可以下载软件

下载后,软件包如下

软件安装
点击开始安装,


一路点击,下一步,

安装完成

打开,可以不用选择”支持多用户登录“

登录账号

注意 如果你是在国际版本注册的账号,在cn区域是不能认证登录的。
加载汉化补丁


[实验3] 让两台电脑“对话”
核心技能
IP地址配置、子网掩码、ping命令
实验目标
理解主机通信的核心条件,通过直连通信验证IP与子网掩码的作用,熟悉Packet Tracer终端配置与测试操作。
操作步骤
步骤1:拓扑搭建
从“End Devices”拖拽2台PC(命名为PC-研发1、PC-研发2)

从“Connections”选择“Copper Cross-Over”(交叉线),点击PC0的FastEthernet0接口,再点击PC1的FastEthernet0接口完成连接,接口灯变绿表示物理连通

步骤2:IP配置
PC-研发1:点击设备→“Desktop”标签→“IP Configuration”→手动输入IP地址“192.168.1.2”,子网掩码“255.255.255.0”,默认网关留空(直连无需网关)


步骤3:PC-研发2
同步骤配置IP地址“192.168.1.3”,子网掩码与PC-研发1一致


验证测试
1. 连通性验证
PC-研发1:“Desktop”→“Command Prompt”,输入“ping -t 192.168.1.3 ”(-t参数持续ping,便于观察。或者 -n参数,表示观察指定次数。)

1. 结果判断:显示“Reply from 192.168.1.3: bytes=32 time=1ms TTL=128”为成功;若失败,检查IP是否同网段、网线是否插紧(接口灯是否常绿)

扩展操作
拓展操作:将PC-研发2的IP改为“192.168.2.3”,再次ping,观察失败结果,理解网段差异的影响。
1. 拓扑搭建:拖拽2台PC(PC0、PC1),用交叉线连接两者的FastEthernet0接口。

1. IP配置: PC0:桌面→IP配置→IP地址192.168.1.2,子网掩码255.255.255.0

1. PC1:IP 192.168.2.3,子网掩码一致

再次验证
1. 连通性验证: PC0桌面→命令提示符,输入“ping -n 4 192.168.1.3” 2. 显示“Reply from...”为成功,“Request timed out”为失败

总结
1. 核心原理:同一网段的IP地址+匹配的子网掩码是主机直连通信的核心条件,子网掩码用于判断目标主机是否在同一网段;
2. 排错要点:通信失败先查物理连接(接口灯),再查IP配置(网段、掩码),最后用ping命令定位;
3. 工具作用:ping命令通过ICMP协议测试连通性,是网络排错的“第一工具”
总结
1、TCP/IP并不是两个协议,而是一个协议族;
2、相比于OSI七层模型,在工作中,用的最多的是TCP/IP四层模型;
面试题:
1、说一下TCP的三次握手和四次挥手?为什么不能是两次握手?
2、你用过抓包工具Wireshark吗?能够说一下你是怎么用的吗?