计算机网络期末焚决 2024级

13/17的内容由ZWQ同学完成,让我们对他表意最诚挚的感激!!!

【【已完结】计算机网络4小时核心考点冲刺串讲!】 https://www.bilibili.com/video/BV1ufsjz5E3n/?p=2\&share_source=copy_web\&vd_source=2c56c6a2645587b49d62e5b12b253dca

第一章

1.1 什么是互联网

主机=端系统:通过通信链路和分组交换机链接 分为客户和服务器

分组:发送端系统将数据分段 加上首部字节

分组交换机:路由器 链路层交换机

链路:传输速率用比特/秒度量

协议:定义了两个通信实体之间交换报文的格式和顺序 以及为了收发报文采取的动作

1.2 网络边缘:接入网,主机和物理媒体

接入网:将端系统物理连接到边缘路由器的网络

边缘路由器:端系统到任何其他端系统路径上第一台路由器

物理媒体:每个发射器-接收器对都需要跨越物理媒体

导引型媒体:光缆 双绞铜线

非导引型媒体:空气 外层空间

1.3 网络核心:分组交换,电路交换,互联网结构

分组交换

共享:用户只在有数据时发送分组。

链路是"共享的",不同用户可以在不同时间占用。

当多个用户同时发送,就可能出现排队延迟。

类比网络:好比多人共用一条WiFi,只要不同时发大文件,体验还不错;若多人同时发,网络就会拥塞。

队列增长的时间比率:多人同时使用导致需求大于总带宽概率

电路交换

独占:当某个用户需要通信时,必须在整个通信过程中独占一定带宽。

即使用户空闲(不发送数据),也要占着这条电路的带宽。

不排队

类比电话系统:只要接通电话,即使你沉默不说话,线路也被你占着。

1.4 性能:时延的四个来源,传输和传播时延的计算公式,排队时延的估算方法,丢失,吞吐量

时延的四个来源,传输和传播时延的计算公式:

1处理时延

2排队时延(好像没有)

3传输时延 L/R (把货物装上卡车的时间)

L分组长度(比特:每个字节是8比特) R传输速率(mbps=10的6次方)

4传播时延 d/s (卡车在路上运送货物的时间)

d路由器距离(m) s链路传播速率

排队时延的估算方法

流量强度 La/R 越接近1 排队时延越大

L分组比特大小 a分组到达队列平均速率 R传输速率

丢失

流量强度接近1时 分组发现队列已满 就会被丢弃

吞吐量

瞬时吞吐量 主机接收文件速率

平均吞吐量 F/T

F文件比特大小 T总用时

1.5 协议层次:分层,封装

1.6 安全

1.7 历史

第二章

2.1 网络应用的基本原理:客户端-服务器模型,P2P模型,进程端口套接字,应用协议,应用对传输层服务的要求

2.2 万维网与 HTTP:HTTP概述,非持久性和持久性HTTP,HTTP报文格式,HTTP

请求报文,HTTP响应报文,Cookie,缓存,HTTP/2(如何缓解队首阻塞),HTTP/3和QUIC

【【HTTP入门】什么是Cookie?怎么使用Cookie?】 https://www.bilibili.com/video/BV11NxYzEE8e/?share_source=copy_web\&vd_source=2c56c6a2645587b49d62e5b12b253dca

套接字 是一个抽象层 位于应用层TCP和传输层UDP之间

ip地址 相当于收件人地址

端口号 收件人邮箱编号

套接字 具体的邮箱

web缓存------代理服务器

为了减轻原始服务器的压力 将最近访问过的内容副本存储再代理服务器

如果代理服务器找不到才会去请求原始服务器

HTTP概述

HTTP:超文本传输协议

由用户程序和服务器程序实现 HTTP定义了这些报文的结构以及客户和服务器行进报文交换的格式

HTTP使用TCP作为它支撑运输协议 即HTTP协议不用担心数据丢失 也不关注TCP从网络的数据丢失和乱序鼓掌中恢复的细节

非持久性

每个客户-服务器经TCP的交互都由一个单独的TCP链接发送

1HTTP客户在端口号x发起到服务器的TCP连接

2HTTP客户经过它的套接字向服务器发送HTTP请求报文

3HTTP服务器进程经过他的套接字接受该请求报文 从存储器检索出对象 在HTTP响应报文中封装对象 通过其套接字向客户发送相应报文

4HTTP服务器进程通知TCP断开连接 5HTTP客户接收响应报文 TCP连接关闭

发起TCP连接涉及一次"三次握手"

1客户向服务器发送小TCP报文

2服务器用小TCP报文段作出确认和相应

3客户向服务器返回确认

前两个环节占用一个RTT(往返时间)

缺点

1必须为每一个请求的对象建立和维护一个全新连接 每个连接客户和服务器都要分配TCP缓冲区和保持TCP变量 2每个对象经受两倍RTT交付时延(一个创建TCP 一个用于请求和接受一个对象)

web是应用,用http实现,web页有若干资源,每个资源用url标记,url指向服务器的特定位置,当打开页面时会自动加载这些资源,加载的过程就是先建立TCP连接,然后通过http陆续通信,然后断开

持久性

每个客户-服务器经TCP的交互都由相同的TCP链接发送

2.3 电子邮件:SMTP概述,SMTP命令和交互**,** 邮件报文格式

SMTP概述

SMTP:因特网电子邮件核心 应用层协议 运行在TCP之上

核心功能 发送邮件 中继邮件 邮件队列管理

1SMTP:推协议 发送邮件服务器把文件推向接收邮件服务器//HTTP是拉协议 某人从Web服务器装载信息 用户从HTTP从该服务器拉取信息

2SMTP要求每个报文是7比特ASCLL码格式

3对于同时包含文本和图形的文档 //HTTP把每个对象封装到自己的响应报文 SMTP把所有报文对象放在一个报文中

2.4 域名系统:DNS分层结构,DNS名称解析方法,DNS记录类型,DNS协议报文格式

DNS :域名系统

1由分层的DNS服务器实现的分布式数据库 2一个使得主机能够查询分布式数据库的应用层协议

DNS名称解析方法

查询类型 定义 责任方
递归查询 客户端向 DNS 服务器发出请求,要求必须返回最终答案或错误;若本地无法解析,DNS 服务器需代为完成全部后续查询 由 DNS 服务器承担全部解析责任
迭代查询 客户端向 DNS 服务器发出请求,若服务器无答案,则返回"下一个应查询的服务器地址",由客户端自行继续查询 由客户端承担全部解析责任

2.5 视频流媒体与内容分发网络:流媒体播放缓冲,DASH,CDN

DASH

概念 定义 关键特征
Web 缓存 在客户端或中间代理上临时存储 HTTP 响应副本,避免重复请求源服务器 - 通常指 浏览器缓存代理缓存 - 局部性:服务于单用户或小群体 - 协议级:基于 HTTP 头(如 Cache-ControlETag
CDN 全球分布式边缘服务器网络,主动缓存并分发内容,提供就近访问 - 全局性:覆盖多地域、多运营商 - 服务化:由专业厂商运营(如 Cloudflare、阿里云) - 不仅缓存,还提供安全、负载均衡、动态加速等

2.7 基于 UDP 和 TCP 的套接字编程

一、TCP 套接字编程

  1. ][ds连接特性zwe\:面向连接,需三次握手建立、四次挥手关闭
  2. 核心流程:服务器:创建套接字→绑定 IP + 端口→监听(listen)→接受连接(accept)→收发数据(send/recv)→关闭
    1. 客户端:创建套接字→连接服务器(connect)→收发数据→关闭
  3. 关键要点:accept 返回新套接字(专用于单个客户端通信)
    1. 字节流传输,无数据边界,需处理粘包
    2. recv 返回空字节串 = 客户端关闭连接
    3. 可靠传输(重传、确认、有序),适用于文件 / 网页 / 邮件等场景

二、UDP 套接字编程

  1. 连接特性:无连接,无需握手 / 挥手
  2. 核心流程:服务器 / 客户端:创建套接字→绑定 IP + 端口→收发数据(sendto/recvfrom)→关闭(无 listen/accept)
  3. 关键要点:sendto 需指定目标 IP + 端口,recvfrom 返回发送方地址
    1. 数据报传输,有边界,无粘包
    2. 不可靠传输(丢包 / 乱序 / 重复,无重传),适用于直播 / 游戏 / DNS 等场景

核心区别

TCP:面向连接、可靠、字节流、需 listen/accept/connect;

UDP:无连接、不可靠、数据报、仅需 sendto/recvfrom

3.1 传输层服务

3.2 复用与分用:UDP的二元套接字和TCP的四元套接字

3.3 无连接传输:UDP概览,UDP报文段格式,互联网校验和

3.4 可靠数据传输的原理:FSM,rdt1.0-3.0,rdt3.0停等协议和流水线协议,GBN协议和累计确认,SR协议

GBN:发送窗口>1 接受窗口=1 累计接收:接收端返回ACK n,标识前n帧都收到。注意窗口大小小于2^n-1 仅为最早未收到ACK的分组开计时器,而SR是为所有分组都开计时器;收到更大的分组直接丢弃,而SR会存起来,接受到后直接刷的一下往后移

SR协议 在GBN协议之上 允许接受窗口大小>1,同时要求发送窗口大小为2^(n-1) 接受窗口大小为2^n-1

总结:

【3.1-3.3 transport-layer|multiplexing】 https://www.bilibili.com/video/BV1v24y1x7yb/?share_source=copy_web\&vd_source=2c56c6a2645587b49d62e5b12b253dca

【3.4 principles of reliable data transfer】 https://www.bilibili.com/video/BV14b411Z7Df/?share_source=copy_web\&vd_source=2c56c6a2645587b49d62e5b12b253dca

3.5 面向连接的传输:TCP概览,TCP报文段格式,TCP序列号和确认号,TCP超时,TCP发送和接收方逻辑,TCP流量控制,TCP连接管理

3.6 拥塞控制原理:拥塞原因和代价

3.7 TCP 拥塞控制:AIMD,cwnd,ssthresh,慢启动TCP Tahoe,快速恢复TCP Reno,TCP Cubic,BDP和TCP BBR,ECN,公平性

3.8 传输层功能的演进(8版教材):QUIC和HTTP/3

3.1 传输层服务

传输层是应用程序与网络层之间的"端到端快递员",给应用提供通信服务,核心分UDP(不可靠但快)和TCP(可靠但稍慢)两类。

3.2 复用与分用:UDP/TCP套接字

复用 :多个应用 → 通过 UDP/TCP 添加端口信息 → IP 统一封装(带 Protocol 字段)→ 共享物理接口发送。
分用:IP 根据 Protocol 字段分发给 UDP/TCP → 各自根据端口号(UDP 二元组 / TCP 四元组)交付给正确应用。

  • 复用:多个应用的数据包用"端口号"标记,共享网络接口发送;
  • 分用:收到的数据包按"端口号"分给对应应用;
  • UDP二元套接字:用「目标IP+目标端口」区分应用的UDP数据;
  • TCP四元套接字:用「源IP+源端口+目标IP+目标端口」区分不同TCP连接。

3.3 无连接传输:UDP

  • UDP概览:无连接、不可靠(丢包不重传)、速度快、面向报文、不用拥塞控制、一对多;
  • UDP报文段格式:包含源端口、目标端口、长度、校验和、数据;

全双工服务

  • 互联网校验和:发送方将数据分块相加得"校验和",接收方重算,不一致则数据出错,UDP直接丢弃。

3.4 可靠数据传输的原理

  • FSM:有限状态机,描述协议的状态(如发送方"等待数据""等待确认");
  • rdt1.0-3.0:可靠传输的演化: rdt1.0:假设网络绝对可靠,直接发;
    • rdt2.0:加"确认+重传";
    • rdt3.0:加"超时重传";
  • 停等协议:发一个包,等确认再发下一个(效率低);
  • 流水线协议:一次发多个包,不用等确认(效率高);
  • GBN(回退N步): 发送方一次发多个,只记最早未确认包;
    • 丢包则重传"从丢包开始的所有包";
    • 接收方用"累计确认"(只确认连续收到的最后一个包);
  • SR(选择重传): 双方有"窗口",只处理窗口内的包;
    • 丢包仅重传"该包",接收方缓存乱序包(效率比GBN高)。

3.5 面向连接的传输:TCP

  • TCP概览:面向连接、可靠、有序、字节流、一对一;
协议 传输模型 关键特性
UDP 面向报文 应用层交给 UDP 多长的数据,UDP 就原样封装成一个独立数据报发送,保留消息边界
TCP 面向字节流 应用层数据被视为无结构的连续字节序列,TCP 可任意拆分/合并,不保留消息边界
  • TCP报文段格式:含序号、确认号、窗口大小等字段;
  • TCP序号和确认号: 序号:标记"包中第一个字节的位置";
    • 确认号:告诉对方"已收到xxx序号前的所有数据";
  • TCP超时:发完包启动定时器,超时没确认则重传;
  • TCP发送/接收方逻辑: 发送方:管理"发送窗口",只发窗口内的包;
    • 接收方:管理"接收窗口",缓存乱序包,等齐后给应用;
  • TCP流量控制:接收方用"窗口大小"告诉发送方"当前能收多少",防止撑爆缓存;
  • TCP连接管理: 三次握手:建立连接(A请求→B确认→A回复);
    • 四次挥手:关闭连接(A说"没数据"→B确认→B说"没数据"→A确认)。

3.6 拥塞控制原理

  • 拥塞原因:网络包太多,路由器处理不过来,导致丢包、延迟增加;
  • 拥塞代价:丢包重传浪费带宽,延迟增加影响体验。

3.7 TCP拥塞控制

  • AIMD:加性增(不堵时慢加发送速度)、乘性减(堵时速度减半);
  • cwnd(拥塞窗口):发送方限制"一次最多发多少包",是控制核心;
  • ssthresh(慢启动阈值): 慢启动:cwnd指数增长,直到超过ssthresh;
    • 超过后:cwnd线性增长;
  • TCP Tahoe:丢包后cwnd重置为1,重新慢启动(保守);
  • TCP Reno:丢包后cwnd减半,进入"快速恢复"(高效);
  • 其他: Cubic:适配高带宽网络;
    • BBR:基于延迟/带宽控制,速度快;
    • ECN:路由器提前告诉发送方"网络快堵了";
    • 公平性:保证多个TCP连接公平分带宽。

3.8 QUIC和HTTP/3

  • QUIC:基于UDP的新传输协议,整合TCP的可靠/拥塞控制、TLS加密、HTTP/2多路复用;
  • HTTP/3:基于QUIC的HTTP协议,解决TCP的"队头阻塞"问题,速度更快。

4.1 网络层概览

  • 转发和路由 :转发是路由器"收到分组后直接发往下一跳";路由是"计算分组从源到目的的路径"(由路由算法实现)。
  • 数据平面和控制平面 :数据平面是路由器"转发分组的硬件/软件逻辑";控制平面是"计算路由、更新路由表的逻辑"。
  • 网络层服务模型 :定义网络层提供的服务(比如IP是"尽力而为"的无连接、不可靠服务)。

4.2 路由器的内部结构(红色重点)

【深入浅出计算机网络 - 4.4.6 路由器的基本工作原理】 https://www.bilibili.com/video/BV1MW4y187Vo/?share_source=copy_web\&vd_source=2c56c6a2645587b49d62e5b12b253dca

【网络层:数据平面|路由器工作原理(下)【再学计算机网络Vol.03】】 https://www.bilibili.com/video/BV1aUtJz8EKi/?share_source=copy_web\&vd_source=2c56c6a2645587b49d62e5b12b253dca

  • 输入端口 :接收分组,查路由表确定下一跳端口。
  • 最长前缀匹配 :查路由表时,选"与目的IP前缀匹配最长的条目"(比如目的IP是192.168.1.10,匹配192.168.1.0/24比192.168.0.0/16更优先)。
  • 交换结构分类 :路由器内部转发分组的硬件结构,分"总线型、交叉开关型、网络型"。
  • 缓存管理 :输入/输出端口的缓存,防止分组丢失(缓存满则丢包)。
  • 分组调度方案 :缓存中分组的发送顺序规则(比如FIFO、优先级调度)。

4.3 互联网协议(红色重点)

  • IP数据报格式 :IP分组的结构,包含版本、首部长度、TTL、协议、源/目的IP、数据等字段。
  • IP地址 :标识网络中主机的32位(IPv4)或128位(IPv6)地址。
  • 子网 :把一个大网络分成多个小网络,同一子网内的主机可直接通信。
  • CIDR :无类域间路由,用"IP地址/前缀长度"表示网络(比如192.168.1.0/24),替代传统的A/B/C类地址。
  • DHCP :动态主机配置协议,自动给主机分配IP地址、子网掩码等网络参数。DORA
  • 分层寻址 :IP地址分"网络部分+主机部分",通过网络部分找目的网络,主机部分找网络内的主机。
  • NAT :网络地址转换,把内网私有IP转换成外网公有IP,解决IPv4地址不足的问题。
  • 允许多台私网主机共享一个公网 IP: 核心机制:端口复用(PAT / NAPT):
    • 将若干个私网IP映射到同一个公网IP的不同端口上
      • 同一个公网 IP(203.0.113.5)
      • 通过不同端口号(60001, 60002)区分不同内网设备
  • IPv6 :下一代IP协议,用128位地址,解决IPv4地址耗尽问题,简化了首部格式。
  • 左侧零省略 连续零压缩
  • 隧道技术 :把IPv6分组封装在IPv4分组里传输(或反之),实现不同IP版本网络的互通。

4.4 通用转发(红色重点)

  • 匹配与动作模型 :通用的分组转发规则,先"匹配分组的特征(比如目的IP、端口)",再执行对应的"动作(比如转发、丢弃、修改字段)"。

  • OpenFlow接口标准 :软件定义网络(SDN)的接口,让控制器能远程控制路由器的转发规则。

  • 定义了 SDN 控制器如何与网络设备 (如交换机、路由器)通讯
    *

    2. 流表驱动转发
    • 每台 OpenFlow 交换机维护一个或多个流表
    • 流表项包含:
      • 匹配字段(Match):如源/目的 IP、MAC、端口、VLAN 等(最多 40+ 字段)
      • 动作指令(Action):如转发到某端口、丢弃、修改报文头等
      • 优先级、计数器、超时时间
    3. 典型交互流程
    • 数据包到达交换机
    • 若无匹配流表项 → 发送 Packet-In 给控制器
    • 控制器决策后,下发 Flow-Mod 添加流表
    • 后续同类流量直接按流表转发(无需再问控制器)

4.5 中间盒

网络中除了路由器、交换机之外的设备(比如防火墙、负载均衡器),负责处理分组的特定功能(比如过滤、流量分发)。

第五章 核心知识点

路由器功能:转发 路由选择

转发:如何输出 有硬件解决

路由选择:控制数据报从源主机到目的主机的路由方式

5.1 网络层概览
  • 逐路由器控制平面 :传统网络中,每个路由器自己计算路由(比如用OSPF/BGP),控制逻辑分散在各个路由器。
  • SDN :软件定义网络,把控制逻辑集中到"控制器",路由器只负责转发,由控制器统一管理路由规则。
5.2 路由算法(红色重点)
  • 链路状态协议 : 每个路由器收集"自己到相邻路由器的链路状态",广播给全网;
    • 每个路由器用Dijkstra算法计算"到所有目的网络的最短路径";
    • 代表协议:OSPF。
  • 距离向量协议 : 每个路由器把"自己到所有目的网络的距离(跳数)"告诉相邻路由器;
    • 每个路由器根据邻居的信息更新自己的路由表("传闻路由");
    • 存在"计数到无穷"问题;
    • 代表协议:RIP。
5.3 OSPF协议
  • AS的概念 :自治系统,是一个由同一机构管理、使用相同路由协议的网络集合(比如一个公司的内网)。
  • AS内部路由 :AS内的路由器用OSPF计算路径(链路状态协议)。
  • AS间路由 :不同AS之间用BGP协议交换路由信息。
  • OSPF :AS内的链路状态路由协议,用Dijkstra算最短路径,支持分区域(减少广播开销)。
5.4 BGP协议(红色重点)
  • BGP基本原理 :AS间的路由协议,负责在不同AS之间传递"可达网络"的信息。
  • eBGP和iBGP : eBGP:不同AS的路由器之间用eBGP交换路由;
    • iBGP:同一AS内的路由器之间用iBGP同步eBGP学到的路由。
  • BGP协议消息 :主要有OPEN(建立连接)、UPDATE(更新路由)、KEEPALIVE(保活)等。
  • 路径属性 :BGP路由的附加信息(比如"下一跳""AS路径"),用于路由选择。
  • BGP路由选择 :不是选"最短路径",而是根据"路径属性"选"最优路径"(比如优先选AS数少的路径)。
5.5 SDN控制平面(红色重点)
  • SDN整体结构 :分三层: 数据平面:交换机,负责转发分组;
    • 控制平面:控制器,集中管理所有交换机的转发规则;
    • 应用平面:网络应用(比如流量监控),通过控制器控制网络。
  • OpenFlow协议 :控制器和交换机之间的通信协议,控制器用OpenFlow给交换机下发"匹配-动作"转发规则。
5.6 ICMP

一种用于网络设备见传递控制和错误信息的协议,帮助主机和路由器报错。作为IP数据报在网络层传播。

  • Traceroute机制 :利用ICMP的"超时"和"目标不可达"报文,探测分组从源到目的主机经过的路由器(每跳增加TTL,超时后路由器返回ICMP超时报文,从而得到每跳的IP)。
报文类型 ICMP 类型/代码 触发条件 用途
超时(Time Exceeded) Type=11, Code=0 路由器将 TTL 减至 0 获取中间跳的 IP 地址
端口不可达(Port Unreachable) Type=3, Code=3 目标主机收到 UDP 到未监听端口 确认到达目标(Unix traceroute)
Echo Reply Type=0 目标主机响应 ICMP Echo 确认到达目标(Windows tracert)
  • ping:测试主机连通性
5.7 网络管理与配置
  • SNMP :简单网络管理协议,用于监控网络设备(比如路由器、交换机)的状态(CPU、带宽等)。
  • NETCONF :网络配置协议,用于远程配置网络设备(替代传统的命令行配置)。

第六章 核心知识点

6.1 链路层概览
  • 链路层基本介绍 :工作在"相邻节点的物理链路"上,负责把分组从一个节点传到相邻节点(比如路由器到路由器、主机到交换机)。
  • 链路层服务 :包括差错检测、封装成帧、多路访问(共享链路时的冲突处理)、透明传输等。
  • 链路层实现 :通常在网卡(NIC)中实现。
6.2 差错检测与纠正(红色重点)
  • 奇偶校验 :在数据后加1位,使"整个数据的1的个数"为奇数/偶数;只能检测1位错误,无法纠正。
  • 互联网校验和 :把数据分块相加,取反得到校验和;能检测多比特错误,但纠错能力弱(UDP/TCP用)。
  • CRC :循环冗余校验,用多项式除法计算校验码;能检测大部分错误(比如突发错误),是链路层常用的差错检测方式。
6.3 多路访问协议(红色重点)
  • 多路访问协议分类 :分"信道划分(比如TDMA)、随机访问(比如CSMA/CD)、轮流(比如轮询)"三类。
  • TDMA :时分多址,把时间分成时隙,每个节点占用固定时隙发送(无冲突,但时隙利用率低)。
  • FDMA :频分多址,把频段分成子频段,每个节点占用固定子频段发送(无冲突,但频段利用率低)。
  • Slotted Aloha :把时间分成时隙,节点只能在时隙开始时发送;冲突则重传(简单,但冲突概率高)。
  • CSMA :载波监听多路访问,发送前先听链路是否空闲,空闲再发;但可能出现"隐蔽终端"问题。
  • CSMA/CD :载波监听+碰撞检测,发送时同时监听,发现碰撞就立即停止发送(以太网用的协议)。
  • 轮询 :由主节点依次询问从节点"是否要发送"(无冲突,但主节点故障会瘫痪)。
  • 令牌传递 :令牌在节点间循环,拿到令牌的节点才能发送(无冲突,比如令牌环网)。
6.4 局域网(红色重点)
  • MAC地址 :链路层地址,48位,唯一标识网卡(比如00:1A:2B:3C:4D:5E)。
  • ARP :地址解析协议,把"IP地址"转换成"MAC地址"(比如主机要给同一子网的另一主机发数据,需要用ARP查对方的MAC)。
  • 流程:检查本地ARP缓存-广播ARP请求-单播回复ARP响应-更新ARP缓存-A用B的mac地址正常通讯
  • 以太网物理拓扑 :早期是总线型(用同轴电缆),现在是星形(用交换机+双绞线)。
  • 以太网帧结构 :包含目的MAC、源MAC、类型(比如IP数据报)、数据、CRC等字段。
  • 高速以太网不需要CSMA/CD,因为是全双工
  • 以太网交换机 :多端口的链路层设备,根据MAC地址转发帧(替代了集线器,无冲突)。
  • 为了隔离冲突域
  • 自学习机制 :交换机通过"收到的帧的源MAC+输入端口",自动构建MAC地址表。
  • 交换机逻辑 :收到帧后,查MAC地址表,把帧从对应端口转发出去(未知地址则泛洪)。
  • VLAN :虚拟局域网,把一个物理交换机分成多个逻辑交换机,不同VLAN的节点不能直接通信(隔离广播域)。
6.5 链路虚拟化MPLS
  • 多协议标签交换,在IP分组前加"标签",路由器根据标签转发(不用查IP路由表,转发更快),用于构建VPN等。
6.6 数据中心网络
  • 数据中心内的网络架构,通常用"叶脊(Spine-Leaf)"拓扑,保证高带宽、低延迟(支撑云服务、大数据等)。
6.7 Web请求的历程(红色重点)
  • 一个Web请求的完整流程: 主机用DNS解析域名→得到服务器IP;
    • 主机和服务器建立TCP连接(三次握手);
    • 主机发HTTP请求(比如GET /index.html);
    • 服务器发HTTP响应(比如返回HTML);
    • 浏览器渲染HTML,加载CSS/JS/图片等资源;
    • 关闭TCP连接(四次挥手)。

第七章 核心知识点

7.1 无线与移动网络介绍
  • 无线网络:用无线电波传输数据(比如WiFi、蜂窝网络);移动网络:支持节点移动的无线网络(比如手机4G/5G)。
7.2 核心技术
  • OFDM(你写的ODFM是笔误) :正交频分复用,把信道分成多个正交子信道,并行传输数据(提升带宽,WiFi/4G用)。
  • OFDMA :正交频分多址,在OFDM基础上,把不同子信道分给不同用户(5G用)。
  • CSMA/CA :载波监听+碰撞避免,无线局域网(WiFi)用的协议(因为无线不能像有线那样检测碰撞,所以用"先听后发+RTS/CTS"避免碰撞)。
  • RTS/CTS :请求发送/允许发送,WiFi中节点要发送前,先发RTS,对方回CTS,确认链路空闲后再发数据(解决隐蔽终端问题)。
7.3 802.11帧格式
  • WiFi的帧结构,包含帧控制(类型、子类型)、持续时间、地址(最多4个,因为WiFi有AP)、数据、CRC等字段。

求反的那个检验

第一章

时延

带宽------管道宽度 最大速率

传输速率/吞吐量------实际速率

时延带宽积:

  • 带宽 = 水管的横截面积(越粗,单位时间流过的水量越多)
  • 传播时延 = 水从一端流到另一端所需的时间
  • 时延带宽积 = 水管的总体积(= 截面积 × 长度)

|-------------------|-------------------------------------------|---|---|
| 带宽(Bandwidth) | 链路单位时间内能传输的最大数据量,即最高数据速率 | | |
| 时延带宽积(BDP) | 传播时延 × 带宽 ,表示链路上**"正在传输但尚未到达"**的最大数据量 |

往返时延(RTT):A-B-A RTT

利用率

信道利用率:关注两个点的通讯

信道利用率:关注整个网络

D=D0/(1-U) D是当前时延 D0是空闲时延 U是利用率

三个交换

电路交换:直接建立A-C的链接 中途不缓存 三个阶段 建立 传输 释放

花费时间(仅考虑传播时延):k-1+n-1 k个节点 分n个组

报文交换:分割为报文 但是到下一个节点要处理时延

分组交换:

大题:

路由更新RIP------来源加一 不在相加 不同取短 相同更新

路由吓一跳------

问子网掩码就是问网络号长度

检验


1. 试简述数据链路层的三个基本问题为什么都必须加以解决?

数据链路层的三个基本问题是:

  1. 封装成帧(Frame Delimiting)

    • 将网络层传来的分组加上首部和尾部,构成帧。
    • 作用:界定帧的开始与结束,便于接收方识别。
    • 若不解决,接收方无法判断一个数据包从哪里开始、到哪里结束。
  2. 透明传输(Transparent Transmission)

    • 数据中可能包含与帧定界符相同的比特序列(如 01111110),需进行转义处理(如比特填充)。
    • 若不解决,会导致接收方错误地认为帧已结束,造成数据丢失或错乱。
  3. 差错控制(Error Control)

    • 使用 CRC 校验等机制检测帧在传输过程中是否出错。
    • 若不解决,错误的数据会被误认为正确,影响上层应用可靠性。

总结:这三个问题是实现可靠、高效、清晰通信的基础,若不解决,将导致数据无法正确解析、传输失败或通信混乱。


2. 内部网关协议包括哪些?外部网关协议包括?

  • 内部网关协议(IGP, Interior Gateway Protocol) :用于自治系统(AS)内部路由器之间的路由选择。

    • 常见 IGP:
      • RIP(Routing Information Protocol)
      • OSPF(Open Shortest Path First)
      • IS-IS(Intermediate System to Intermediate System)
  • 外部网关协议(EGP, Exterior Gateway Protocol) :用于不同自治系统之间的路由交换。

    • 主要 EGP:
      • BGP(Border Gateway Protocol)------目前互联网中最主要的 EGP

什么叫内部网关 外部网关协议?详细讲解 RIP ISIS OSPF ieBGP

内部网关协议(IGP)和外部网关协议(EGP)是互联网路由体系中的两大类动态路由协议,它们分别用于自治系统(AS)内部自治系统之间的路由信息交换。

RIP:

一种分布式的 基于距离向量的【本地】路由算法

维护自己到其他网络的距离记录(跳数)TTL

仅和相邻的路由器交换信息(自身路由表),逐渐洪泛

缺点:好消息传得快 坏消息传得慢

OSPF(整个):

分组:【问候Hello 数据库描述DD 链路状态请求LSR 链路状态更新LSU 链路状态确认LSA】

1 邻居发现(hello报文)

2 发送链路状态通告LSA 即各个节点的邻接边权

3 洪范传播到各个路由器

4 建立链路状态数据库 LSDB

5 迪法求最短路

6 更新DRN路由表

一、基本概念

1. 自治系统(Autonomous System, AS)

  • 一个由单一管理机构控制 、采用统一路由策略的网络集合。

2. 内部网关协议(IGP, Interior Gateway Protocol)

  • 作用范围 :在同一个 AS 内部的路由器之间交换路由信息。
  • 目标:快速、高效地计算出 AS 内任意两点间的最优路径(基于带宽、跳数等技术指标)。
  • 典型协议:RIP、OSPF、IS-IS。

3. 外部网关协议(EGP, Exterior Gateway Protocol)

  • 作用范围 :在不同 AS 之间交换路由可达性信息。
  • 目标 :实现跨域通信,强调策略控制、稳定性、避免环路,而非单纯"最短路径"。
  • 唯一广泛使用的 EGPBGP(Border Gateway Protocol)
    • 其中,eBGP(External BGP) 专指运行在不同 AS 之间的 BGP 对等体

BGP:

基于路径向量的

报文【OPEN UPDATE KEEPALIVE NOTIFICATION】


3. 简述你熟知常用服务及端口号有哪些。

服务 协议 端口号 用途
HTTP TCP 80 Web 浏览器访问网页
HTTPS TCP 443 加密的 Web 通信
FTP TCP 21(控制)、20(数据) 文件传输
SSH TCP 22 安全远程登录
Telnet TCP 23 远程终端(不安全)
SMTP TCP 25 发送邮件
POP3 TCP 110 接收邮件(旧)
IMAP TCP 143 接收邮件(现代)
DNS UDP/TCP 53 域名解析
DHCP UDP 67(服务器)、68(客户端) 自动分配 IP
SNMP UDP 161 网络管理

4. CSMA/CD的工作过程包括那些步骤。

载波监听多点接入碰撞检测------冲突避免机制,主要用于共享总线型网络

先听后发 边听边发 冲突停发 随机重发

其工作步骤如下:

  1. 载波侦听(Carrier Sense)

    • 节点先监听信道是否空闲。
    • 若忙,则等待;若空,则准备发送。
  2. 冲突检测(Collision Detection)

    • 在发送过程中继续监听信道。
    • 如果检测到信号冲突(即两个节点同时发送),立即停止发送,并发送"堵塞信号(Jam Signal)"通知其他节点。
  3. 退避算法(Backoff Algorithm)

    • 使用二进制指数退避算法随机等待一段时间后重试。
    • 每次冲突后等待时间加倍,避免连续冲突。

CSMA/CA

发时预估 组播时间 收到就发 要发推延

CSMA/CA是不是说A向B发送信息RTS时会携带一个预估时间tD B会对所有能听到自己的节点组播CTS"A要给我发消息了,会花tD,你们不要在这段时间和我说话 ",A收到CTS则开始发信息,而要发消息的C就会推迟tD再发。相对于预约,而CD是重传退避


5. 简单说明TCP协议与UDP协议的主要区别。

特性 TCP UDP
是否面向连接 是(三次握手) 否(无连接)
可靠性 可靠(确认、重传、校验) 不可靠(无重传机制)
传输效率 较低(开销大) 高(开销小)
顺序保证 保证按序到达 不保证顺序
流量控制 支持(滑动窗口) 不支持
拥塞控制 支持 不支持
典型应用 HTTP、FTP、SMTP、Telnet DNS、VoIP、视频流、在线游戏
报文类型 TCP报文段 数据报
首部 20 9

6. 特殊IP地址的作用:127.0.0.1、255.255.255.255、0/0、192.168.0.255

IP 地址 类型 作用
127.0.0.1 回环地址(Loopback) 本机测试用,表示本地主机,所有发往该地址的包都不经过物理网卡,直接由操作系统处理。常用于调试程序和服务。
255.255.255.255 有限广播地址 仅限于本地子网内广播,路由器不会转发。用于向本地网络中的所有设备发送消息(如某些发现协议)。
0.0.0.0 默认路由 表示"任意源地址"或"未指定地址"。常用于默认路由(如 0.0.0.0/0),表示"所有目标地址都走这条路由"。
192.168.0.255 子网广播地址 在 192.168.0.0/24 网段中,这是该子网的广播地址。用于向该子网内所有主机发送广播信息(如 ARP 请求)。

7. 简述DNS解析过程?

DNS 解析是将域名(如 www.baidu.com)转换为 IP 地址的过程。典型流程如下:

  1. 浏览器发起查询

    • 用户输入域名 → 浏览器调用系统 DNS 解析器。
  2. 本地缓存查找

    • 查本地缓存(如 /etc/hosts 或 DNS 缓存)是否有记录。
  3. 递归查询(由本地 DNS 服务器完成)

    • 若无缓存,本地 DNS 服务器递归查询:
      • 向根域名服务器(Root Server)查询 .com 的权威服务器。
      • .com 的顶级域服务器查询 baidu.com 的权威服务器。
      • baidu.com 的权威服务器查询 www.baidu.com 的 A 记录。
  4. 返回结果

    • 权威服务器返回对应的 IP 地址(如 180.101.49.12)。
    • 本地 DNS 服务器将结果返回给用户,并缓存一段时间。
  5. 最终返回

    • 浏览器获得 IP 地址,建立 TCP 连接并请求资源。

8. 假定连接到透明网桥上的一台计算机把一个数据帧发给网络上的一个不存在的设备,网桥将如何处理这个帧?

透明网桥(Transparent Bridge)通过 MAC 地址学习泛洪(Flooding) 来转发帧。

当收到一个目的 MAC 地址未知的帧时:

  1. 查表失败:网桥在 MAC 地址表中找不到该目的 MAC 地址。
  2. 泛洪(Flooding) :将该帧转发到除接收端口外的所有其他端口
  3. 后续学习:如果某个端口回应了该帧(比如发送 ARP 应答),网桥会记录该 MAC 地址与端口的对应关系,下次即可精确转发。

✅ 所以答案是:网桥会将该帧泛洪到所有其他端口(除了接收端口),以便让目标设备有机会响应。


9. 主机A想下载文件 ftp://ftp.abc.edu.cn/file,大致描述下载过程中主机和服务器的交互过程。数据传输过程中,控制命令使用哪个端口?数据传输使用哪个端口?传输层选择什么协议?

✅ 交互过程(FTP 下载流程):
  1. 建立控制连接

    • 主机 A 向服务器 ftp.abc.edu.cn21 端口 发起 TCP 连接(主动模式下)。
    • 成功后,进入命令交互阶段(如登录、get file 命令)。
  2. 协商数据传输方式

    • 控制连接中发送 PORTPASV 命令确定数据传输模式:
      • 主动模式(Active):服务器主动连接客户端的某个端口(通常是 >1023 的端口)。
      • 被动模式(Passive):客户端连接服务器的随机高编号端口。
  3. 建立数据连接

    • 服务器根据协商结果,打开一个临时端口(如 20 或 >1023)用于传输文件。
    • 数据连接建立后,开始传输文件内容。
  4. 传输完成后关闭连接

    • 数据传输完毕,断开数据连接。
    • 控制连接保持一段时间,可继续执行其他命令。
✅ 端口与协议:
项目 内容
控制命令端口 21(TCP)
数据传输端口 20 (主动模式,TCP)或 动态端口(被动模式,通常 >1023)
传输层协议 TCP(FTP 是基于 TCP 的可靠传输协议)

💡 提示:FTP 使用 两个 TCP 连接 :一个控制连接(21),一个数据连接(20 或动态端口)。


✅ 总结回答要点

题号 关键点
1 三个基本问题:帧定界、透明传输、差错控制,缺一不可
2 IGP:RIP、OSPF、IS-IS;EGP:BGP
3 常见服务+端口(HTTP:80, HTTPS:443, FTP:21/20, SSH:22, DNS:53...)
4 CSMA/CD:侦听→发送→检测冲突→退避→重发
5 TCP 可靠连接,UDP 不可靠无连接
6 127.0.0.1=本地;255.255.255.255=本地广播;0.0.0.0=默认路由;192.168.0.255=子网广播
7 DNS 查询:本地缓存→递归查询→根→TLD→权威→返回结果
8 目标 MAC 未知 → 泛洪到所有端口(除入口)
9 FTP 使用 TCP,控制端口 21,数据端口 20 或动态端口,双连接

流量控制与拥塞控制

机制 解决的问题 类比
流量控制 发得太快收不过来(缓冲区溢出) 倒水时看杯子大小,别倒太快把水洒了
拥塞控制 防止太多数据注入网络 ,导致路由器/链路过载(网络拥塞崩溃)堵车 高峰期别全城开车上路,否则高速变停车场
  • 流量控制 → 点对点(End-to-End) 问题(A 和 B 之间)
  • 拥塞控制 → 全局网络(Network-Wide) 问题(整个互联网路径)

1. 流量控制:基于 接收窗口(rwnd)

  • 接收方主导 :接收方通过 TCP 报文头部的 Window 字段 告知发送方:"我还能接收 X 字节"。
  • 方案:SR 停等 GBN 滑动窗口
  • 滑动窗口机制
    • 发送方维护一个发送窗口,大小 ≤ 接收方通告的 rwnd
    • rwnd = 0,发送方暂停发送(进入"零窗口"状态)
  • 动态调整
    • 接收方应用读取数据越快 → 缓冲区空闲越多 → rwnd 越大 → 发送方发得越快
    • 反之则减慢

2. 拥塞控制:基于 拥塞窗口(cwnd)

  • 发送方自主决策 :发送方根据网络反馈信号 (丢包、延迟)推断拥塞程度,动态调整 cwnd
  • 发送窗口 = min(rwnd, cwnd) → 同时受接收能力和网络状态限制
算法 触发条件 行为
慢启动(Slow Start) 连接建立 / 超时重传后 cwnd 每 RTT 指数增长(1→2→4→8...)
拥塞避免(Congestion Avoidance) cwnd ≥ ssthresh cwnd 每 RTT 线性增长(+1 MSS)
快重传(Fast Retransmit) 收到 3 个重复 ACK 立即重传丢失包,不等超时
快恢复(Fast Recovery) 快重传触发后 cwnd = ssthresh + 3,继续拥塞避免(避免回到慢启动)

当然可以!下面我将为你完整、准确、按时间顺序 地详述从用户在浏览器地址栏输入 URL 到页面完全加载并支持交互的全过程 ,涵盖 URL 解析、DNS 查询、TCP 连接、TLS 握手(HTTPS)、HTTP 请求/响应、CDN、缓存、Cookie 处理、页面渲染等所有关键环节,并特别标注 Cookie 的作用时机。


🌐 完整 Web 访问流程(含 Cookie)

阶段 1:用户输入 URL 并回车
  • 用户在浏览器地址栏输入:https://www.example.com/shop
  • 浏览器解析 URL:
    • 协议:https → 需要 TLS 加密
    • 域名:www.example.com
    • 路径:/shop
    • 默认端口:443(HTTPS)

✅ 检查 HSTS 预加载列表:若 example.com 在列表中,即使输入 http:// 也会强制跳转 HTTPS 。


  • DNS 缓存 :检查浏览器/系统缓存中是否有 www.example.com 的 IP
  • 资源缓存:若之前访问过,可能直接使用本地缓存(需验证新鲜度)
  • Cookie 检查
    浏览器查找与 www.example.com 匹配的 Cookie(如 sessionid=abc123),但此时尚未发送

⚠️ Cookie 不会影响 DNS 或连接建立,只在 HTTP 请求阶段携带 。


阶段 3:DNS 解析(获取服务器 IP)
  1. 浏览器 → 本地 DNS 缓存 → 若无,则查询操作系统 hosts 文件
  2. 若仍无,向 本地 DNS 服务器 (如 ISP 提供的 8.8.8.8)发起 递归查询
  3. 本地 DNS 执行 迭代查询
    • 问根服务器 → .com TLD 服务器 → example.com 权威 DNS
  4. 最终获得 www.example.com 的 IP 地址(如 203.0.113.10
  5. 若网站使用 CDN,该 IP 实际指向 CDN 边缘节点,而非源站 。

阶段 4:建立 TCP 连接(三次握手)
  • 浏览器 → CDN 节点(IP: 203.0.113.10, 端口: 443)
  • 执行 TCP 三次握手:
    • SYN → SYN-ACK → ACK
  • 连接建立成功

阶段 5:TLS 握手(仅 HTTPS)
  1. Client Hello:浏览器发送支持的 TLS 版本、加密套件、随机数
  2. Server Hello:CDN 返回选定的加密套件 + 证书链
  3. 证书验证:浏览器验证证书有效性(CA、域名、有效期)
  4. 密钥交换:生成会话密钥(如通过 ECDHE)
  5. 加密通道建立:后续通信全部加密 。

阶段 6:发送 HTTP 请求(首次请求 HTML)

浏览器构造 HTTP 请求报文,此时携带匹配的 Cookie

复制代码
1GET /shop HTTP/1.1
2Host: www.example.com
3User-Agent: Mozilla/5.0 ...
4Accept: text/html,application/xhtml+xml
5Cookie: sessionid=abc123; lang=zh-CN    ←←← Cookie 在此处发送!
6Connection: keep-alive

Cookie 由浏览器自动附加,前提是:

  • 域名、路径、Secure/HttpOnly 等属性匹配

阶段 7:CDN 与源站处理请求
  • CDN 节点收到请求
    • 检查缓存:若 /shop 对应的 HTML 已缓存且未过期 → 直接返回
    • 若未缓存(或需动态内容)→ 回源站请求
  • 源站服务器处理
    • Web 服务器(如 Nginx)接收请求

    • 应用逻辑(如 Python/Django)执行:

      • 读取 Cookie: sessionid=abc123
      • 查询数据库验证会话有效性
      • 渲染个性化页面(如显示"欢迎回来,张三")
    • 可能设置新 Cookie(如更新会话时间):http 编辑

      复制代码
      1Set-Cookie: sessionid=xyz789; Path=/; Max-Age=3600; Secure; HttpOnly

阶段 8:返回 HTTP 响应

服务器(经 CDN)返回响应:

http

编辑

复制代码
1HTTP/1.1 200 OK
2Content-Type: text/html; charset=UTF-8
3Cache-Control: max-age=600          ← 控制浏览器缓存
4Set-Cookie: sessionid=xyz789; ...   ← 更新会话 Cookie
5Content-Length: 12345
6
7<!DOCTYPE html><html>...<img src="/logo.png">...</html>
  • 浏览器接收响应:
    • 存储新 Cookie (覆盖旧 sessionid
    • 根据 Cache-Control 决定是否缓存 HTML

阶段 9:浏览器解析 HTML 并加载子资源
  1. 构建 DOM 树,发现需加载:
    • CSS (/style.css)
    • JS (/app.js)
    • 图片 (/logo.png)
  2. 对每个资源,重复以下过程 (复用 TCP 连接):
    • 发送 HTTP 请求(自动携带同域 Cookie )http

      编辑

      复制代码
      1GET /logo.png HTTP/1.1
      2Host: www.example.com
      3Cookie: sessionid=xyz789; lang=zh-CN   ← Cookie 再次发送!
    • CDN 返回资源(可能来自缓存)

    • 浏览器缓存资源(若允许)

所有同域请求都会自动附带匹配的 Cookie,用于保持登录状态、个性化等 。

【第四章-IP数据首部, 网络地址】 https://www.bilibili.com/video/BV1BBeEebEGn/?share_source=copy_web\&vd_source=2c56c6a2645587b49d62e5b12b253dca

相关推荐
zhengfei6119 小时前
【Slack 安全工具箱】—— 多维度一体化安全管理平台
网络·安全·web安全
qq_401700419 小时前
什么是网关?
网络
半路_出家ren9 小时前
17.python爬虫基础,基于正则表达式的爬虫,基于BeautifulSoup的爬虫
网络·爬虫·python·网络协议·正则表达式·网络爬虫·beautifulsoup
呉師傅9 小时前
国产麒麟系统卡启动项或图标如何解决
运维·网络·windows·计算机外设·电脑
徐子童9 小时前
网络协议---TCP协议
网络·网络协议·tcp/ip·面试题·1024程序员节
君鼎9 小时前
计算机网络第四章:网络层学习总结
学习·计算机网络
ikkkkkkkl9 小时前
计算机网络:应用层
网络·计算机网络·应用层
UrSpecial9 小时前
IP网络协议
服务器·网络·tcp/ip
军哥系统集成号9 小时前
2026网络安全法修订落地:企业六类法定强制评估合规指南(附协同实施路径)
网络·安全·web安全