计科八股20260628——计算机网络主干复习

也是断更了两周。

这两周博主一周一直在套磁、填夏令营和准备回家,一周在手术静养。所以就开始摆烂了两周。

到现在摆烂的感觉越来越不对,于是大概想了一下,现在能做的事情,就是再强化专业课,以及重操旧业刷算法。然后默默等开奖。只是过程太煎熬了。


Q:请你介绍TCP/IP网络四层模型以及对应的功能?

1.网络接口层。在计算机教学中会分成物理层和数据链路层。物理层负责硬件之间通过物理媒介(光线、电缆、无线电波)传输二进制比特流。数据链路层负责在相邻结点之间建立、维护、终止链路。

2.网际层/网络层:负责主机到主机之间的数据传输,主机通过IP唯一标识。还负责寻址和路由。

3.传输层:负责进程到进程之间的数据传输,进程通过IP和端口号唯一标识。如果是TCP协议还要保证可靠传输。

4.应用层:负责为应用程序提供服务。(会话层:管理应用程序之间的回话。表示层:数据编码解码、加密解密、压缩解压缩。)

Q:集线器、交换机、路由器的工作地点?

物理层。只把电信号复制转发,不识别任何信息。

数据链路层。能识别帧Frame,依靠MAC地址做转发决策。

网际层。能识别数据报Packet,依靠IP地址做路径选择。


有向导引传输介质包括双绞线、同轴电缆和光纤;无向导引截止包括wifi、卫星和微波。

数据链路层想网络层提供的核心服务包括:成帧、链路接入、差错检测与修正和可靠交付。

CRC循环冗余校验属于检测技术,FEC前向纠错属于纠正技术。

以太网(Ethernet)采用的介质访问控制(MAC)协议是CSMA/CD,核心逻辑是"先听后发,边发边听,冲突停发,随机重发"。无线局域网(WiFi/802.11)采用的MAC协议是CSMA/CA,其核心机只是通过RTS(请求发送)和CTS(允许发送)控制帧来预约信道,避免隐藏终端问题。

以太网最小帧长:64字节。MAC地址长度为48位(6字节)。

CSMA/CD中,检测到冲突后,发送方会发送阻塞信号以强化冲突,并执行二进制指数退避算法

Q:什么是CRC,什么是FEC?

CRC:发送端把数据看成一个巨大的二进制数,用生成的多项式除它,得到余数为CRC校验码,并把它也附在后面一起发送。接收端也用同样的多项式除之,如果余数为0则说明数据正确。否则数据错误需要重传。

FEC:发送端按算法增加冗余信息,接收端即使收到有误的数据包,也能通过冗余信息推断原始数据,不需要重传。(海明码)

海明码我差点忘掉了,用最通俗的解释就是:海明码是根据位置的二进制来看的,比如P1为什么对应1357,分别写作001 011 101 111,那么共性是第一个数是1。然后我们要令1357位的异或=0,那么可以解出P1=0。同理P2要求第二个数是1,010、011、110、111就可以满足条件。

Q:什么是CSMA/CD/CA?

CSMA/CD 是以太网的介质访问控制协议,核心是冲突检测:先听后发,边发边听,听到冲突就停止并随机重发。它依赖有线信道能同时收发信号的特点来检测冲突。

CSMA/CA 是 Wi-Fi 的介质访问控制协议,核心是冲突避免:因为无线信道不能边发边听,所以它通过RTS/CTS 预约机制来提前占用信道,避免冲突发生。


网络层两大核心功能是路由选择和分组转发。

NAT路由器维护一张转换表,出站时,路由器将数据包的源IP和源端口改为公网IP和新端口;入站时,根据数据包的目的端口查表,将目的IP和目的端口换回内网地址。

NAT不允许外部主机主动向内部主机发起连接。若要实现外部访问内部Web服务器,需要手动配置端口映射。

路由器的交换结构有三种实现方式,经内存交换、经总线交换和经交叉开关交换。路由器的路由处理器负责控制平面,运行OSPF/BGP等路由协议,而数据平面的转发由硬件完成。

SDN软件定义网络的核心思想实事控制平面与数据平面彻底分离。SDN架构中控制器通过南向接口向下发流表给交换机,应用程序通过北向接口调用网络资源。SDN南向结构的代表协议是OpenFlow,支持匹配-动作模式的通用转发。

距离向量DV算法是分布式算法,RIP协议基于此算法;链路状态LS算法是全局性算法,OSPF基于此算法。OSPF属于AS(自治系统)内部网关协议IGP,BGP属于AS外部网关协议EGP,其路由决策主要考虑策略。

因特网控制报文协议ICMP用于传递查错和控制信息,应用程序PING发送的是回显请求报文。

ARP地址解析协议主要是将IP地址映射到MAC地址。ARP请求是广播,ARP响应是单播。

集线器不隔离冲突域,交换机隔离冲突域;交换机不隔离广播域,路由器隔离广播域。

Q:南向北向接口?


传输层为用户层提供两种服务(端到端即进程到进程):面向连接的TCP和无连接的UDP服务。

TCP传输控制协议:面向连接、可靠、基于字节流。

UDP用户数据报协议:无连接、不可靠、基于数据报。

TCP特性:

流量控制:通过接收窗口字段实现盲目地市防止接收方缓存溢出。

拥塞控制:慢启动、拥塞避免、快速重传、快速恢复。

rwnd(Receiver Window):接收窗口,接收方。

cwnd(Congestion Window):拥塞窗口,发送方。

发送端实际能发送的数据量,取 min(rwnd, cwnd)rwnd 是接收方的硬限制,cwnd 是发送方对网络的软探测。

Q:三次握手四次挥手?

Synchronize:同步

Sequence Number:序列号

Acknowledgment:确认

Finish:结束

借鉴小红书帖子:

Q:为什么需要4挥?

因为被动方接收到FIN时可能还有数据要发,不能立即关闭,所以ACK和FIN不能合并发送。


HTTP/1.0采用非持久连接;HTTP/1.1采用持久连接,并支持流水线。

非持久HTTP获取一个包含N个嵌入对象的页面,共需要建立N+1次TCP连接,总耗时(N+1)*2RTT+传输时延。

  • 请求 HTML:建立连接(1 次握手)→ 传输 → 关闭连接

  • 请求第 1 个图片:再建立连接(第 2 次握手)→ 传输 → 关闭

  • 请求第 2 个图片:再建立连接(第 3 次握手)→ 传输 → 关闭

  • ...

  • 总共建立 N+1 次 TCP 连接

(每次建立连接都要 1 个 RTT 发 SYN,1 个 RTT 回 SYN-ACK,握手完成)

持久HTTP获取含N个嵌入对象的页面,总耗时为(2+N)*RTT。(忽略传输时延)

三次握手只做一次,后面所有文件共用这条连接。

  • 建立 1 次 TCP 连接(1.5 RTT,三次握手)

  • 连续请求 HTML + N 个图片,所有请求共用一次握手

耗时(2 + N) × RTT + 传输时延(若忽略传输时延)

具体公式推理

建立连接需要 1.5 RTT,第一个请求耗时 1 RTT,后续每多一个嵌入对象增加 1 RTT。总耗时 ≈ 1.5 + (N+1) ≈ 2+N 个 RTT。

Q:计算机核心协议

超文本传输协议、超文本传输安全协议、文件传输协议、安全外壳协议、远程终端协议、简单邮件传输协议、邮局协议第3版、互联网消息访问协议、域名系统、动态主机配置协议、简单网络管理协议、实时传输协议

二、域名解析全过程(DNS,面试必背)

Q:用户在浏览器输入 www.example.com,到拿到 IP 地址,中间发生了什么?

  1. 浏览器缓存:先查浏览器本地有没有缓存该域名的IP。

  2. 操作系统缓存(hosts文件):浏览器没找到,去查操作系统本地的 hosts 文件和 DNS 缓存。

  3. 本地DNS服务器(递归查询):以上都没找到,向运营商(或配置的)本地DNS服务器发起查询。

  4. 根DNS服务器:本地DNS不知道,向根服务器问".com"是谁管。

  5. 顶级域DNS服务器(.com):根服务器返回 .com 顶级域的权威服务器地址。

  6. 权威DNS服务器 :本地DNS向 example.com 的权威服务器问 www 的IP。

  7. 返回结果:权威服务器返回IP,本地DNS缓存并返回给客户端。

端口号 :DNS 默认使用 UDP 53(数据量小,快),如果数据量超过 512 字节则改用 TCP 53。
递归查询 vs 迭代查询(面试补充加分项):

  • 递归查询:客户端要求DNS服务器替它完成全部查询(通常客户端→本地DNS)。

  • 迭代查询:DNS服务器返回"下一步该问谁",让客户端自己去问(通常DNS服务器之间的查询)。

三、邮件相关协议(容易被问倒)

协议 端口 作用方向 使用场景
SMTP 25/TCP 发信(推送) 发送邮件,从客户端到服务器,或服务器到服务器
POP3 110/TCP 收信(拉取+删除) 将邮件从服务器下载到本地,通常下载后服务器端会删除
IMAP 143/TCP 收信(同步管理) 在服务器端管理邮件,多设备同步,保持邮件状态一致

邮件发送流程(完整路径)

发件人用 SMTP 将邮件推送到发件方邮件服务器 → 发件方服务器用 SMTP 将邮件转发到收件方邮件服务器 → 收件人用 POP3/IMAP 从收件方服务器拉取邮件。

四、FTP 的两个端口(面试高频)

端口号 用途 说明
21 控制连接 发送命令(如登录、列出目录、切换路径)
20 数据连接 实际传输文件数据

FTP 两种模式

  • 主动模式:服务器主动从 20 端口发起数据连接到客户端。

  • 被动模式:客户端主动连接服务器随机端口(适合客户端在NAT内的情况)。

五、DHCP 工作流程(面试加分项)

一句话背DORA 四步走

  • Discover(发现):客户端广播找DHCP服务器。

  • Offer(提供):服务器广播或单播回复可用的IP。

  • Request(请求):客户端广播选择该IP并请求租约。

  • Acknowledge(确认):服务器确认分配,客户端正式使用。