计算机网络复习重点
一、OSI七层模型
- 应用层:为最终用户提供网络服务接口,包含各种应用程序协议,如HTTP、FTP、SMTP、DNS等。
- 表示层:处理数据的表示、安全和压缩,负责数据格式转换、加密解密等。
- 会话层:管理用户间的会话,负责建立、维护和终止会话。
- 传输层:定义端口号,负责数据的分割、流控和差错校验,主要协议有TCP和UDP。
- 网络层:负责逻辑地址寻址和路径选择,主要协议包括IP、ICMP等。
- 数据链路层:建立逻辑连接,进行硬件地址寻址和差错校验,主要协议有ARP。
- 物理层:负责建立、维护和断开物理连接,处理通信信道上的原始比特流传输。
二、TCP/IP模型
TCP/IP模型分为四层,自下而上分别为
- 网络接口层
- 网络层
- 传输层(Transport)
- 应用层(Application)
但为了方便学习,教学中将网络接口层拆成数据链路层和物理层进行学习,以下是按这5层的学习重点描述:
(1)应用层
应用层是TCP/IP模型中的最高层,直接面向用户,为应用程序提供网络服务。常见的应用层协议如下所示:
DNS(域名系统–D**omain Name **System)
1. 基本概念
- 作用:将域名解析为IP地址,实现主机名到IP地址的映射。
- 传输层协议:使用UDP协议,DNS服务器在53端口(无论服务端还是本地都是,因为本地有个本地域名服务器)进行监听。
- 分层结构:根域名服务器 → 顶级域名服务器 → 权威域名服务器 → 本地域名服务器。
2.域名结构:
以www.ldy.com域名为例,是自下而上进行级别递增标记的
- www:三级域名
- ldy:二级域名
- com:顶级域名
域名结构图如下所示:

3.域名解析过程
域名解析方式分为两类,一类是递归查询、一类是迭代加递归查询。

1 | 以迭代加递归为例: |
FTP(文件传输协议)
1. 基本结构
传输层协议:TCP
控制连接:专门负责传输命令和响应信息。服务端使用21端口,客户端使用任意端口(>1024)
数据连接:用于实际传输文件。
主动模式(PORT):数据连接由服务器主动发起,前提是客户端告知服务端它的的数据连接端口号
连接方向 源地址 源端口 目标地址 目标端口 数据连接 服务器 20 客户端 随机端口(>1024) 工作流程:
- 客户端用随机端口N连接服务器的21端口(控制连接)
- 客户端通过PORT命令告诉服务器”请连接我的N+1端口”
- 服务器从20端口主动连接客户端指定的端口
- 通过这条连接传输文件数据
被动模式(PASV):数据连接由客户端主动发起,前提是服务端告知客户端它的数据连接端口
连接方向 源地址 源端口 目标地址 目标端口 数据连接 客户端 随机端口(>1024) 服务器 随机端口(>1024) 工作流程:
- 客户端用随机端口连接服务器的21端口(控制连接)
- 客户端发送PASV命令请求被动模式
- 服务器开启一个随机高位端口(如50000),并告诉客户端
- 客户端用新的随机端口连接服务器指定的高位端口
- 通过这条连接传输文件数据

电子邮件
1. 基本概念
电子邮件系统由三个主要部分组成:
- 用户代理:用户使用的邮件客户端(如 Outlook、Gmail 客户端等)。
- 邮件服务器:负责邮件的存储和转发。
- 协议:用于发送和接收邮件的标准协议,如 SMTP(发)、POP3(收)、IMAP(收) 等。

2.SMTP(简单邮件传输协议–Simple Mail Transfer Protocol):
- 作用:用于发送邮件(从客户端到服务器,或服务器之间)。
- 传输层协议:TCP,使用端口 25。
- 特点:
- 只能传输 7 位 ASCII 文本(即正文里每个字节的最高位必须为0),无法直接传输二进制文件。
- 使用 命令/响应 交互模式。
- 邮件正文以 “.” 单独一行结束。
3.MIME(通用因特网邮件扩充协议–Multipurpose Internet Mail Extensions):
- 作用:扩展 SMTP,使其能传输非 ASCII 文本(如图片、音频、视频等)。
- 实现方式:在邮件头部添加 Content-Type 字段,定义数据类型和编码方式。
- 常见类型:
text/plain、image/jpeg、application/pdf等。
4.POP3(邮局协议–Post Office Protocol -Version 3):
- 作用:用于从邮件服务器下载邮件到本地。
- 传输层协议:TCP,使用端口 110(默认)或 995(SSL加密)。
- 工作模式:
- 下载并删除:邮件下载后从服务器删除。
- 下载保留:邮件保留在服务器上。
- 特点:简单、轻量,但功能有限(如无法同步文件夹)。
5.IMAP(网际报文存取协议–Internet Mail Access Protocol):
- 作用:IMAP协议比POP3协议更加复杂,允许用户在服务器上直接管理邮件,支持同步和多文件夹操作。
- 传输层协议:TCP,使用端口 143(默认)或 993(SSL加密)。
- 特点:
- 邮件始终保存在服务器。
- 支持多设备同步。
- 可创建和管理远程文件夹。
6.基于万维网的电子邮件
- 特点:用户通过 Web 浏览器(如 Gmail、Outlook Web)发送和访问邮件。发送和接收邮件均是使用HTTP协议,只有在邮件服务器之间传递邮件才会使用SMTP协议。
- 优点:无需安装客户端,跨平台使用方便。

HTTP(超文本传输协议)
1. 基本概念
- 作用:用于客户端(如浏览器)与服务器之间请求和传输超文本(如网页、图片等)的应用层协议。
- 传输层协议:TCP,默认端口 80(HTTP)或 443(HTTPS)。
- 特点:
- 无状态协议:服务器不保存客户端状态信息。
- 无连接协议:每次请求响应后连接关闭(HTTP/1.0),但 HTTP/1.1 引入了持久连接(Keep-Alive)。
- 请求/响应模型:客户端发起请求,服务器返回响应。
2. HTTP 报文结构
请求报文:
1 | 方法(如GET、POST) URL 协议版本 |

响应报文:
1 | 协议版本 状态码 状态短语 |

3. HTTP 方法(请求方法)
| 方法 | 说明 |
|---|---|
| GET | 请求指定资源,无请求体 |
| POST | 提交数据,有请求体 |
| PUT | 上传/替换指定资源 |
| DELETE | 删除指定资源 |
| HEAD | 同GET,但只返回响应头 |
| OPTIONS | 获取服务器支持的HTTP方法 |
4. 常见状态码
| 状态码 | 类别 | 说明 |
|---|---|---|
| 1xx | 信息类 | 请求已接收,继续处理 |
| 2xx | 成功类 | 请求成功处理 |
| 200 | OK | 请求成功 |
| 201 | Created | 资源创建成功 |
| 3xx | 重定向类 | 需要进一步操作 |
| 301 | Moved Permanently | 永久重定向 |
| 302 | Found | 临时重定向 |
| 4xx | 客户端错误 | 客户端请求有误 |
| 400 | Bad Request | 请求语法错误 |
| 401 | Unauthorized | 未授权 |
| 403 | Forbidden | 服务器拒绝请求 |
| 404 | Not Found | 资源未找到 |
| 5xx | 服务器错误 | 服务器处理出错 |
| 500 | Internal Server Error | 服务器内部错误 |
| 502 | Bad Gateway | 网关错误 |
| 503 | Service Unavailable | 服务不可用 |
5. HTTP 版本演进
HTTP/1.0
- 每个请求/响应建立一个TCP连接,用完即关。
- 效率低,延迟高。
HTTP/1.1(主流版本)
- 持久连接:可在同一个连接上发送多个请求。
- 管道化:允许连续发送多个请求,但响应必须按顺序返回。
- 发送方式:
- 流水线:客户端必须先收到上一个请求的响应,才能发下一个请求;一条 TCP 连接上同一时间只有一趟「请求→响应」在跑。
- 非流水线:客户端不必等前一个响应回来,就可以把多个请求连续发出;服务器必须按请求顺序依次返回响应,从而把多条往返的等待时间重叠起来,提高吞吐量
HTTP/2
- 二进制分帧:不再用文本头,全部切成帧,解析更快、体积更小。
- 多路复用:一条 TCP 连接上可同时跑任意数量请求/响应,真正并行,消除“队头阻塞”。
- 头部压缩(HPACK):重复头字段只传索引,节省 50%+ 流量。
- 服务器推送:服务端可主动把“即将用到的”资源推给客户端,减少往返。
- 兼容 1.1 语义:方法、状态码、URI 不变,只是“换引擎不换壳”。
HTTP/3(基于 QUIC)
- 传输层换血:放弃 TCP,改用基于 UDP 的 QUIC 协议;内置 TLS 1.3,默认加密。
- 连接迁移:网络切换(4G → Wi-Fi)时,连接 ID 不变,瞬间迁移,不掉线。
- 0-RTT 恢复:首次握手后,再次访问服务器可 0 往返发请求,延迟极低。
- 消除 TCP 队头阻塞:单个丢包只影响对应流,其他流继续传输。
- 版本号放帧头:未来升级只需更新 QUIC 层,应用层无需改动。

(2)传输层
传输层是计算机网络体系结构中的关键一层,负责为运行在不同主机上的应用进程之间提供逻辑通信。它并不关心数据在物理链路上的具体传输方式,而是专注于端到端的通信服务。
传输层的通用功能
- 复用:发送方的多个应用进程可使用同一个传输层协议发送数据。
- 分用:接收方根据端口号将数据正确交付给对应的应用进程。
- 传输层提供的是进程到进程的通信,而非主机到主机。
- 通过端口号标识不同应用进程。
- 传输层会对数据进行检查,确保数据的完整性(TCP和UDP有校验和)。
- 但是否重传取决于协议(TCP会重传,UDP不会)。
TCP(传输控制协议)
1. 核心特点
- 面向连接:通信前需建立连接,通信后释放连接。
- 可靠传输:通过一系列机制确保数据正确、有序、不丢失。
- 面向字节流:将数据视为无结构的字节流(UDP是面向报文的),无论传输多少个报文,在TCP看来都是一连串字节流。
tip:MSS(最大段长–Maximun Segment Size):一个TCP数据报最多可以携带多少的有效数据(不包括TCP首部),用于告知接收方,以便让接收方准备足够大的数据缓冲区。
2. TCP特有机制
- 确认与重传机制:接收方发送ACK确认,发送方超时未收到ACK则重传。
- 流量控制:通过滑动窗口防止发送方发送过快导致接收方缓冲区溢出。
- 拥塞控制:防止网络过载,包括慢启动、拥塞避免、快速重传、快速恢复。
- 连接管理:三次握手建立连接,四次挥手释放连接。
3. TCP报文段结构
TCP报文 = TCP首部 + 数据
TCP首部:20B的固定首部 + 0-40B的可变大小
1 | | 源端口 | 目的端口 | |
字段解释:
序号(seq):标记数据部分的第一个字节在原始字节流中的位置。
确认号(ack 或 ack_seq):用于反馈,表示序号在该确认号之前的所有字节都已经正确收到
数据偏移:4bit,表示TCP首部的长度,以4B为单位。因为15 x 4B = 60B,所以TCP首部最大60B
控制位URG:1bit,紧急指针有效标志。=1时,表示该报文段中包含紧急数据,此时紧急指针字段有效。
控制位ACK:1bit,=0时,ack_seq无效;=1时,ack_seq有效。
控制位PSH:1bit,推送标志。=1时,表示接收方应尽快将数据交付给上层应用进程,而不是等待缓冲区填满再交付。
控制位RST:1bit,复位标志。=1时,表示连接出现严重错误,必须释放连接并重新建立。也可用于拒绝非法报文段或拒绝建立连接。
控制位SYN:1bit,同步标志。=1表示这是一个连接请求或连接接受报文。只有握手1和握手2的SYN=1,其他所有TCP报文端都是SYN=0
控制位FIN:1bit,结束标志。=1表示此报文段的发送方的数据已经全部发送完毕,要求释放传输连接。只有挥手1和挥手3的FIN=1
窗口(rwnd):16bit,表示接收窗口的大小,表示接收方还能接收多少数据(以字节为单位)。是流量控制的关键。
校验和:原理和下面的UDP雷同,不在赘述。区别:TCP伪首部的协议字段是6。
紧急指针:紧急数据专用序号,原理和序号字段相同
选项:可空。在握手1和握手2阶段,会在选项中协商双方的MSS(双方的MSS可以不同),

4.建立连接
注意图中的重点部分
连接过程

连接状态

小问题:
从发出握手①,到客户端进程可以发送数据,至少需要多久?——1 RTT
从发出握手①,到服务器进程可以发送数据,至少需要多久?——1.5 RTT
5.释放连接
连接过程

连接状态

收到挥手3报文并发送挥手4之后,之所以要等待2MSL,是为了防止挥手4数据报丢失,在等待期间如果重复收到了挥手3,则重置等待时间,如果没有再次收到挥手3,则连接关闭。
MSL(最长报文段寿命):是TCP协议规定的一个人为固定的时间长度。
6.可靠传输
一、序号机制
- 连接建立时双方各自生成初始序号(ISN)。
- 后续每个字节对应一个序号,段首部的 seq = 该段第一个字节的序号。
二、确认机制——“累积确认”
- 收到 ACK=n 表示序号 < n 的所有字节已正确接收。
- 返回 ACK 的时机(RFC 规定):
- 推迟确认:最多等 0.5 s,若期间有数据要发则“捎带”ACK;
- 连续收到两个满 MSS 段,立即 ACK;
- 收到失序段,立即重复 ACK(冗余 ACK)。
三、两种 ACK 段
- 专门确认:纯 ACK,无数据;
- 捎带确认:ACK 与数据同发,减少报文数量。
四、重传机制
- 超时重传
每发一个段启动重传计时器(RTO),到期未确认则重传并重置计时器。 - 快速重传
若连续收到 3 个相同的冗余 ACK,说明该 ACK 对应的段已丢失,立即重传此段,无需等超时。

7.流量控制
定义:控制端到端的数据发送量,即依赖于通信对方的接收窗口大小动态调整发送窗口的大小,是局部的。
8.拥塞控制
定义:控制整个网络中每台主机的数据发送量,降低路由负载,是全局的。
术语
- 拥塞窗口(cwnd) :单 TCP 连接允许注入网络的最大字节数(单位 MSS)。
- 慢启动阈值(ssthresh):cwnd 增长方式的分界线;cwnd<ssthresh 用指数增长,≥ssthresh 用线性增长。
慢开始
- 每收到 1 个 ACK,cwnd += 1 MSS(指数级翻倍);
- 到达「慢启动阈值」ssthresh 后进入下一阶段。
拥塞避免
- 每 RTT 只把 cwnd += 1 MSS(线性增);
- 直到「出现丢包」。
如何判断网络拥塞:
- 发出的每个报文段,都能顺利收到ACK – 不拥塞
- 发出的报文段未能按时收到ACK,引发超时重传 – 严重拥塞,拥塞窗口置1
- 收到冗余ACK,引发快速重传 – 有点拥塞,拥塞窗口大小减半
特别注意:发送方窗口的大小是拥塞控制和流量控制共同作用的结果:发送窗口 = min(cwnd拥塞窗口, rwnd接收方窗口)
UDP(用户数据报协议)
1. 核心特点
- 无连接:无需建立连接,直接发送数据。
- 不可靠传输:不保证数据到达、不保证顺序、不重传。
- 面向报文:保留应用层报文边界,一次发送一个完整报文(不支持报文自动拆分和重装)。
2. UDP适用场景
- 实时应用(视频会议、直播)
- DNS查询
- 广播/多播通信
- 简单请求/响应服务(如DHCP)
3. UDP报文段结构
UDP数据报 = UDP首部 + 报文
UDP首部只占8B
UDP数据报理论最大长度=65535B,实际最大长度=65515B,因为IP数据报首部也有IP数据报长度记录,而IPv4首部要占用20B,IPv6首部要40B
1 | 16位源端口 16位目的端口 |

4.UDP差错检验方法
发送方生成校验和
UDP的检验和是发送方通过在UDP数据报首部添加12B的伪首部(不发送)后,将伪首部、UDP首部和数据部分以16bit进行分组并进行二进制相加(最高位需回卷),最终结果进行逐位取反得到的。
详细描述:
- 添加伪首部:在计算检验和之前,先添加12B伪首部,伪首部包含源IP地址、目的IP地址、0、协议号(17)和UDP长度(和UDP首部的UDP长度的值是一样的)。
- 计算检验和:将伪首部、UDP首部和数据部分以16bit为一组进行二进制加法,最高位进位需回卷。
- 取反填入:将最终加法结果逐位取反,得到16位检验和,填入UDP首部的校验和字段。
- 移除伪首部:计算完成后去掉伪首部,将UDP数据报交给网络层封装成IP数据报。

接收方通过校验和检验
① 网络层向传输层递交 UDP 数据报
② 传输层在 UDP 数据报之前,添加伪首部(和发送方构造的伪首部一致)
③ 把伪首部、UDP 首部、数据部分以 16 bit 为一组,进行二进制加法(最高位产生的进位需要回卷)
④ 如果加法结果为全 1,说明没有比特错误,于是接收该 UDP 数据报,并根据目的端口号,向应用层递交报文。如果加法结果不是全 1,说明有差错,于是丢弃该 UDP 数据报

tip:UDP差错校验法和网络层的IP分组的校验法类似,但是IP数据报的校验和计算是仅对IP首部进行16bit一组的二进制加法运算得到的,且没有伪首部。

(3)网络层
定义:网络层为传输层提供服务,将传输层的数据封装成“IP数据报”。网络中的路由器根据IP数据报首部的源IP和目的IP地址进行“分组转发”。因此,网络层实现了“主机到主机”的传输。

1. 主要功能
- 路由选择:选择从源主机到目标主机的最佳路径。
- 逻辑寻址:使用IP地址标识网络中的主机。
- 分组转发:根据路由表将数据包转发到下一跳路由器。
- 分片与重组:当数据包大小超过网络MTU时,将其分片并在目的地重组。
- 拥塞控制(部分协议支持):避免网络过载。
tip:MTU(最大传送单元):一个链路层帧的数据部分能承载的最大数据量。如以太网的MTU=1500B,如果一个IP数据报的总长度超出了下一段链路的MTU,就需要分片。
2. IPv4(网际协议版本4)
2.1 IPv4地址结构
- 32位二进制数,通常表示为点分十进制(如
192.168.1.1)。 - 分为网络号和主机号,通过子网掩码划分。
2.2 IPv4数据报格式
IP首部大小 = 20B固定字节 + 0-40B可变长度 (和TCP一样);
1 | | 版本 | 首部长度 | 服务类型 | 总长度 | |

字段说明:
版本:4bit, IP 协议版本号(IPv4=4,IPv6=6)
首部长度:4bit,以 4B 为单位,指出 IP 首部的实际长度(含选项),最小值 5(即 20 B),最大值 15(即 60 B)。
区分服务:8bit,一般用不到,用于 QoS 区分服务(DSCP/ECN),日常场景通常置 0。
总长度:16bit,整个 IP 数据报的长度(首部+数据),以1B为单位,最大65535B。
标识:16bit,由IP数据报的“源主机”生成,同一个IP数据报的所有分片的标识相同。
标志位次低位DF(Dont’t Fragment):=1,不允许分片;=0,允许分片。
标志位最低为MF(More Fragment):=1,分片后面还有分片;=0,这是最后一个分片。
片偏移:13bit,表示数据部分在分片之前的位置,以8B为单位。
生存时间TTL:每经过一个路由器减1,防止数据包无限循环。
协议:标识上层协议(如6=TCP,17=UDP)。注意和版本字段进行区分。
首部校验和:只校验IP首部,不包含数据部分。校验和计算方法和UDP相同。
2.3 IP数据报分片的详细说明
网络层的IP数据报在传输过程中,如果其总长度(包括IP首部和数据部分)超过了数据链路层的 MTU(最大传输单元),则必须进行分片处理(一个IP数据报拆分成多个片段,分别在数据链路层封装成帧)。分片在路由器中完成,重组则在目的主机的网络层进行。
分片规则与过程:
判断是否需要分片
若 IP数据报总长度 > MTU,则需分片;否则直接发送。
分片方式
- 将IP数据报的数据部分按
(MTU - IP首部长度)的大小进行切割。 - 每个分片加上新的IP首部(部分字段与原IP首部相同,部分字段更新)。
- 所有分片独立传输,可能经过不同路径到达目的地。
分片相关字段更新:
- 标识:所有分片使用与原数据报相同的标识。
- 标志:
- DF位:若原数据报DF=1,则不允许分片,直接丢弃并返回ICMP错误报文。
- MF位:除最后一个分片MF=0外,其余分片MF=1。
- 片偏移:表示该分片数据在原数据报数据部分中的起始位置,以 8字节 为单位。
- 总长度:更新为当前分片的总长度(IP首部 + 分片数据长度)。
示例:
假设一个IP数据报总长度为4000字节(首部20字节,数据3980字节),MTU=1500字节。
- 第一片:数据长度1480字节,MF=1,片偏移=0
- 第二片:数据长度1480字节,MF=1,片偏移=185(1480÷8)
- 第三片:数据长度1020字节,MF=0,片偏移=370(2960÷8)

- 特别注意
- IP数据报的“分片”可能在源主机、或任何一个路由器中发生
- 只有目的主机才会对分片进行“重组”
- 各分片有可能乱序到达目的主机
- 由于首部的“片偏移”字段是以 8B 为单位,因此,除了最后一个分片外,其他每个分片的数据部分必须是 8B 的整数倍。
2.4 IP地址分类与子网划分
- A类:1.0.0.0 – 126.255.255.255。以0开头,首字节范围(1-126)。默认子网掩码:255.0.0.0 /8
- B类:128.0.0.0 ~ 191.255.255.255。以10开头,首字节范围(128-191)。默认子网掩码:255.255.0.0 /16
- C类:192.0.0.0 ~ 223.255.255.255。以110开头,首字节范围(192-239)。默认子网掩码:255.255.255.0 /24
- D类:组播地址。以1110开头,首字节范围(224-239)。
- E类:保留地址。以1111开头,首字节范围(240-255)。
A、B、C是单播地址,可以直接分配给单个主机,而D是多播地址可以被多个主机共享(类似QQ号和QQ群)

子网掩码:用于划分网络与主机部分,如255.255.255.0表示前24位为网络号。

2.5 特殊IP地址

重要结论:如果一个网络中,主机号占N位bit,那么最多支持2^N - 2 台主机和路由器。
2.6 Ipv6地址
IPv6是IPv4的下一代协议,主要解决IPv4地址耗尽问题。
主要特点:
- 地址空间巨大:128位地址,约3.4×10³⁸个地址
- 简化头部结构:固定40B头部,提高路由器处理效率
- 更好的安全性:IPSec成为IPv6的组成部分
- 自动配置:支持无状态地址自动配置(SLAAC)
- 更好的QoS支持:流量类别和流标签字段
写法:分8段,每段16bit,用十六进制表示。例如2001:0db8:85a3:0000:0000:8a2e:0370:7334
压缩表示法:
- 前导零可以省略(全为0就用一个0表示):
2001:db8:85a3:0:0:8a2e:370:7334 - 连续的零字段可以用双冒号::代替一次(每个地址只能出现一个双冒号):
2001:db8:85a3::8a2e:370:7334
3. 无分类编址CIDR
定义:不再使用传统的A、B、C类地址划分,而是灵活划分网络前缀和主机号。
例子:

CIDR地址块的子网划分技巧
- 原始CIDR地址块作为根节点(假设可以自由分配的主机号占h bit)
- 每个分支节点必须同时拥有左右孩子,左0,右1(反过来也行)
- 每个叶子结点对应一个子网,根据根节点到达叶子结点的路径来分析子网对应的IP地址块范围
- 整棵树的高度不能超过h-1,因为即便最小的子网也至少要保留2 bit主机号。
4.路由聚合
定义:将多个连续的小网络前缀合并为一个更大的网络前缀,减少路由表条目。
示例:192.168.0.0/24 和 192.168.1.0/24 可聚合为:192.168.0.0/23
5.NAT(网络地址转换)
定义:NAT 是路由器功能,用于将私有IP地址转换为公有IP地址,实现多个内网设备共享一个公网IP。
NAT路由器内部维护了一个NAT表,记录了 内网IP:端口号 到 外网IP:端口号 的映射。
一个IP数据报,在经过NAT路由器转发时:
- 从内网到外网,会更改源IP地址、源端口号
- 从外网到内网,会更改目的IP地址、目的端口号
此外,NAT路由器包含了传输层的功能,因为端口号是传输层的概念。并且普通路由器转发IP数据报时不会更改 源IP地址和源端口号 以及 目的IP地址和目的端口号。
类型
- 静态NAT:一对一映射。
- 动态NAT:从地址池中动态分配公网IP。
- PAT(端口地址转换)/NAT Overload:多个私有IP映射到一个公网IP的不同端口(最常用)。
6.ARP(地址解析协议–Address Resolution Protocol)
定义
ARP协议用于查询同一网络中的 IP地址,MAC地址 之间的映射关系。每台主机和路由器都有自己的ARP表。
ARP表的建立
当一台主机在请求同一网络中的其他主机时,如果目的主机的ip和mac地址没有记录在源主机的ARP表里,就会广播发送ARP请求分组,携带自己的mac地址,当目的主机收到该请求时,就会根据收到的mac地址,单播的方式返回ARP响应分组告诉源主机目的主机的mac地址是多少。
网络节点间的发送过程
假设主机A和主机B位于不同的子网,由R1路由器相连。则主机A的数据报中源mac地址是主机A的mac地址,目的mac地址是R1的mac地址,R1收到该数据报后,将源mac地址改为自己的mac地址,目的mac地址改为主机B的mac地址。

7.DHCP(动态主机配置协议–Dynamic Host Configuration Protocol)
定义
给刚接入网络的主机动态分配IP地址、配置默认网关、子网掩码。
DHCP是应用层协议!!!使用UDP协议进行传输。DHCP服务端使用端口67,客户端使用端口68
详细理解下面DHCP的4个步骤(discover;、offer、request、acknowledge)即可。特别注意DHCP的Request报文的目的IP和目的MAC全1,是因为在一个大型网络内可以有多个DHCP服务器,为了防止多个DHCP服务器都认为客户端使用自己分配的IP,就需要通过广播的方式告知所有DHCP服务器自己到底是使用哪个IP。

8.ICMP(网际控制报文协议 – Internet Control Message Protocol)
特别注意:ICMP是网络层协议,但它需要利用同为网络层协议的IP协议,因为ICMP的报文封装在IP数据报中。
ICMP可以让主机和 路由器互相报告网络中发生的差错和异常情况。

9.RIP(路由信息协议 – Routing Information Protocol)
RIP属于内部网关协议(IGP),是基于路由向量的路由协议。
如何定义路径长度:
- 使用跳数来衡量到达目的网络的距离。规定每经过一个路由器,距离就加一,路由器到直连网络的距离为1。
- RIP认为好的路由就是跳数最少的。
- RIP允许一条合法路径距离不能超过15,等于16表示网络不可达。
10.OSPF(开放路径最短优先协议 – Open Shortest Path First)
OSPF属于内部网关协议,是基于链路状态路由算法计算最佳转发路径的路由协议。
主要特点
- OSPF属于网络层
- 使用IP协议提供的服务,IP首部的协议字段=89
- OSPF的PDU常译为OSPF分组或者OSPF数据报

11.BGP(边界网关协议)
BGP属于外部网关协议(EGP)。是应用层协议,基于TCP,端口号为179。

(4)数据链路层
帧结构
以太网
IP分组前后新增共18B的内容。前导码和帧起始定界符属于物理层封装的内容。
mac地址:48bit
以太网的最小帧长64B,最大1518B


| 字段 | 长度 | 作用 |
|---|---|---|
| 前导码(Preamble) | 7字节 | - 同步接收方时钟:通过交替的 10101010… 信号实现。 - 用于时钟同步。 |
| 帧起始符(SOF) | 1字节 | 固定为 10101100,明确帧边界(前导码与数据的分隔符)。 |
| 目标MAC地址 | 6字节 | - 接收方的物理地址(如 00:1A:2B:3C:4D:5E)。 |
| 源MAC地址 | 6字节 - 发送方的物理地址。 | |
| EtherType/帧类型 | 2字节 - 标识上层协议类型(如 0x0800 表示IPv4,0x86DD 表示IPv6)。 | |
| 数据载荷(Payload) | 46~1500字节 | - 实际传输的数据(如TCP/IP报文、HTTP请求等)。 - 最小46字节:填充(PAD)保证冲突检测可靠性。 |
| 帧校验序列(FCS) | 4字节 - 基于CRC(循环冗余校验)的错误检测码,确保数据完整性。 |
PPP协议
定义:PPP(Point-to-Point Protocol)是为点对点链路设计的数据链路层协议,用于在只有两端设备的线路上传输网络层数据报。
核心特点:
- 一对一链路,无需寻址,帧格式中不含源/目的 MAC 地址。
- 帧结构:Flag(1) | Address(1, 固定 0xFF) | Control(1) | Protocol(2) | Information(变长) | FCS(2) | Flag(1)。
- 链路建立阶段通过 LCP 协商参数,身份验证可选;网络层协议阶段用 NCP 为不同协议(如 IP、IPv6)分配配置。
| 字段顺序 | 字段名 | 长度 | 常用值/说明 |
|---|---|---|---|
| 1 | Flag | 1 B | 0x7E(帧开始/结束标志) |
| 2 | Address | 1 B | 0xFF(形式广播,点对点无用) |
| 3 | Control | 1 B | 0x03(无编号帧) |
| 4 | Protocol | 2 B | 0x0021=IPv4,0x0057=IPv6,0xC021=LCP… |
| 5 | Information | 0–1500 B | 上层数据(IP 包或控制报文) |
| 6 | FCS | 2 B | CRC-16 校验码 |
| 7 | Flag | 1 B | 0x7E(帧结束标志,可兼下一帧起始) |

流量控制与可靠传输

停止-等待协议

后退N帧协议(GBN)

选择重传协议(SR)
特别注意,SR里,接收窗口 <= 发送窗口

CSMA(载波监听多路访问协议)
1-坚持CSMA协议

非坚持CSMA协议

p-坚持CSMA协议

CSMA/CD(冲突检测 – Collision Detection)
应用场景:主要用于有线以太网(如传统10BASE-T)
- 基于 1-坚持CSMA 的改进。
- 发送前监听(Carrier Sense)信道是否空闲:
- 若空闲:开始发送。
- 若忙碌:等待空闲。
- 发送中继续监听信道:
- 若检测到冲突(Collision Detected),立即停止发送,并发送干扰信号(Jam)通知其他设备。
- 然后等待一个随机退避时间(通常使用指数退避算法)后重试发送。
指数退避算法用于处理数据冲突后的重传策略:当设备检测到冲突后,它不会立即重发数据,而是等待一个随机时间再尝试。每次连续冲突后,等待时间的上限会按2的指数级增长(如第n次冲突,从0到2ⁿ−1个时隙中随机选择),最多增加到一个预设上限,以避免多台设备频繁同时重传,减小冲突概率。
特点:
- 实时冲突检测,提高可靠性;
- 仅适用于半双工通信(不能边收边发);
- 在高负载时冲突较多,但轻载下效率较高。

最小帧长
最小帧长 = 争用期 x 信道带宽。
最小帧长是为了保证数据帧发送的时间内可以检测到冲突信号。而冲突信号检测到的信号的最高时间 = 2 x 最远单向传播时延。这个最高时间是怎么考虑的:假设数据发送方位于信道边界,它最开始发送的数据到达最远端时,最远端节点恰好也发送了数据,那么发送端必须要可以在发送期间拿到这个最远端发送的数据。
在以太网(有线网络)中,最小帧长=64B,最长帧长=1518B
CSMA/CA(冲突避免 – Collision Avoidance)
工作机制:
- 监听信道是否空闲;
- 若空闲,等待一个随机退避时间后才发送,避免“大家同时看到空闲后一起发”的冲突;
- 通常还结合 RTS/CTS(请求发送/允许发送)机制来预告数据传输,进一步避免冲突;
- 若信道忙碌,继续等待。
特点:
- 适合无线网络中的广播环境;
- 不能检测冲突,只能尽量避免;
- 加入随机等待机制提高成功率;
- RTS/CTS (信号预约机制)有助于避免“隐藏节点”问题。

PPP协议(点对点协议)

数据链路层设备

(5)物理层
其他内容补充
计算机网络的交换方式
分为电路交换,报文交换,分组交换。
电路交换
电路交换的一般过程:在使用电路交换通话之前,必须先拨号请求建立连接。当被叫用户听到交换机送来的振铃并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路,这条链接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用,此后主机和被叫双方就能互相通话。通话完毕后,交换机释放刚才使用过的这条专用的物理通路(即把刚才占用的所有通信资源归还给电信网)。
主要特点
- 电路交换必须是面向对象的
- 交换就是按照某种方式动态的分配传输线路的资源。(含义:连接)
- 建立连接(占用通信资源)——通话(一直占用通信资源)——释放连接(归还通信资源),三个步骤的交换方式称为电路交换
- 在通话的全部时间内,通话的两个用户始终占用端到端的通信资源
优点
- 由于通信线路为通信双方用户专用,数据直达,所以传输数据的时延非常小。
- 通信双方之间的物理通路一旦建立,双方可以随时通信,实时性强。
- 双方通信时按发送顺序传送数据,不存在失序问题。
- 电路交换既适用于传输模拟信号,也适用于传输数字信号。
- 电路交换的交换设备(交换机等)及控制均较简单。
缺点
- 电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。
- 电路交换的平均连接建立时间对计算机通信来说嫌长。
- 电路交换连接建立后,物理通路被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用低。
- 交换数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的,传输数据的时间往往不到10%甚至1%
报文交换
报文交换介于电路交换和分组交换之间
相当于寄一封信出去,填好地址后,把内容全部放到信封里,一站一站的发送到目的地址。
报文交换的优缺点
优点
报文交换不需要为通信双方预先建立一条专用的通信线路,不存在连接建立时延,用户可随时发送报文。
由于采用存储转发的传输方式,使之具有下列优点:
- a.在报文交换中便于设置代码检验和数据重发设施,加之交换结点还具有路径选择,就可以做到某条传输路径发生故障时,重新选择另一条路径传输数据,提高了传输的可靠性;
- b.在存储转发中容易实现代码转换和速率匹配,甚至收发双方可以不同时处于可用状态。这样就便于类型、规格和速度不同的计算机之间进行通信;
- c.提供多目标服务,即一个报文可以同时发送到多个目的地址,这在电路交换中是很难实现的;
- d.允许建立数据传输的优先级,使优先级高的报文优先转换。通信双方不是固定占有一条通信线路,而是在不同的时间一段一段地部分占有这条物理通路,因而大大提高了通信线路的利用率。
缺点
由于数据进入交换结点后要经历存储、转发这一过程,从而引起转发时延(包括接收报文、检验正确性、排队、发送时间等),而且网络的通信量愈大,造成的时延就愈大,因此报文交换的实时性差,不适合传送实时或交互式业务的数据。
报文交换只适用于数字信号。
由于报文长度没有限制,而每个中间结点都要完整地接收传来的整个报文,当输出线路不空闲时,还可能要存储几个完整报文等待转发,要求网络中每个结点有较大的缓冲区。为了降低成本,减少结点的缓冲存储器的容量,有时要把等待转发的报文存在磁盘上,进一步增加了传送时延。
分组交换
分组交换采用的是存储转发技术
在发送报文之前,先把较长的报文划分成一个个更小的等长的数据段;然后在数据段的前面加上一些由必要的控制信息组成的首部后,就构成了一个分组。
分组又称为“包”,而分组的首部又称为“包头”
首部包含了:目的地址,源地址等重要控制信息
主机是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。
路由器则是用来转发分组的,即进行分组交换的。路由器收到一个分组,先暂时存储一下,检查其首部查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步步地以存储转发的方式把分组交付最终的目的主机。
分组传输数据图示:
从多条路传输数据到h4,路由器设备是共享的
优点:
- 高效。在分组传输的过程中动态分配传输宽带,对通信链路是逐段占用。
灵活。为每一个分组独立的选择最合适的转发路由。 - 迅速。以分组作为传送单位,可以不先建立连接,就能像其他主机发送分组。
- 可靠。保证可靠性的网络协议;分布式多路由的分组交换网,使网络有很好的生存性
缺点:
- 尽管分组交换比报文交换的传输时延少,但仍存在存储转发时延,而且其结点交换机必须具有更强的处理能力。
- 分组交换与报文交换一样,每个分组都要加上源、目的地址和分组编号等信息,使传送的信息量大约增大5%~10%,一定程度上降低了通信效率,增加了处理的时间,使控制复杂,时延增加。
- 当分组交换采用数据报服务时,可能出现失序、丢失或重复分组,分组到达目的结点时,要对分组按编号进行排序等工作,增加了麻烦。若采用虚电路服务,虽无失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。
三种电路比较

电路交换——整个报文的比特流连续地从源点直达终点,好像在一个管道中传输
报文交换——整个报文先传送到相邻结点,全部存下来后查找转发表,转发到下一个结点
分组交换——单个分组(整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点
若要传送的数据量很大,且其传送时间远大于连接建立时间,则采用电路交换较为合适。
当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。
从提高整个网络的信道利用率上看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信
不同编码的解读方式

抗干扰能力:

每层协议汇总
1. 应用层
| 协议/服务 | 说明 | 传输层协议 |
|---|---|---|
| HTTP / HTTPS | 网页浏览与加密传输 | TCP |
| FTP | 文件传输协议(主动/被动模式) | TCP |
| SMTP | 发送邮件 | TCP |
| POP3 / IMAP | 接收与管理邮件 | TCP |
| DNS | 域名解析 | UDP(主要) |
| DHCP | 动态分配IP地址 | UDP |
| BGP | 边界网关协议 | TCP(端口179) |
| SSH / Telnet | 远程登录 | TCP |
| SNMP | 网络管理 | UDP |
| RIP | 路由信息协议(内部) | UDP |
| NTP | 时间同步 | UDP |
| WebSocket | 全双工通信 | TCP |
2. 传输层
| 协议 | 特点 | 主要用途 |
|---|---|---|
| TCP | 面向连接、可靠传输、流量控制、拥塞控制 | HTTP、FTP、SMTP、SSH等 |
| UDP | 无连接、不可靠、低延迟 | DNS、DHCP、音视频流、RIP等 |
| SCTP | 多流、多宿主、部分可靠 | 电话信令、实时系统 |
3. 网络层
| 协议 | 说明 | 主要功能 |
|---|---|---|
| IP(IPv4 / IPv6) | 网际协议,负责寻址和转发 | 数据报封装、路由选择 |
| ICMP | 控制报文协议(ping、traceroute) | 错误报告、网络诊断 |
| IGMP | 组播管理 | 组播组成员管理 |
| ARP | 地址解析协议(IP → MAC) | 局域网内地址映射 |
| RARP | 反向地址解析协议 | 旧式无盘系统启动 |
| RIP | 距离向量路由协议 | 内部网关路由 |
| OSPF | 链路状态路由协议 | 内部网关路由(基于IP,协议字段89) |
| NAT | 网络地址转换 | 私有IP与公网IP转换 |
4. 数据链路层
| 协议/机制 | 说明 | 主要功能 |
|---|---|---|
| 以太网(Ethernet) | IEEE 802.3,有线局域网 | 帧封装、MAC寻址、CSMA/CD |
| Wi-Fi(IEEE 802.11) | 无线局域网 | CSMA/CA、无线帧封装 |
| PPP | 点对点协议(拨号、串行链路) | 帧封装、链路控制 |
| HDLC | 高级数据链路控制 | 帧同步、差错控制 |
| VLAN(802.1Q) | 虚拟局域网 | 帧标记、逻辑隔离 |
| STP(802.1D) | 生成树协议 | 防环路、冗余链路管理 |
| MAC地址 | 硬件地址 | 帧转发与过滤 |
| 帧中继、ATM | 广域网技术(传统) | 虚电路、高速交换 |
5. 物理层
| 技术/标准 | 说明 | 主要功能 |
|---|---|---|
| 双绞线(CAT5/6/7) | 以太网常用介质 | 电信号传输 |
| 光纤(单模/多模) | 高速、远距离传输 | 光信号传输 |
| 同轴电缆 | 传统有线电视与网络 | 电信号传输(较高带宽) |
| 无线(Wi-Fi、蓝牙) | 无线传输介质 | 电磁波传输 |
| 以太网物理层标准 | 如10BASE-T、1000BASE-T | 编码、调制、信号定义 |
| RS-232、USB | 串行通信接口 | 设备间物理连接 |
