当前位置: 首页 > news >正文

八股文·计算机网络

文章目录

  • 网络的模型
    • OSI模型:七层模型
      • 应用层:向用户提供应用程序服务
      • 表示层:对`格式进行转换`,例如`加密/解密`,`压缩和解压缩`
      • 会话层:建立和管理`通信双方的会话`,例如`腾讯会议双方的通信`。
      • 传输层:提供`进程为单位`的端到端的传输服务。
      • 网际层:`不同网络`之间的通信服务,IP协议,路由和转发。
      • 链路层:`同一局域网下`的通信服务,例如成帧,`差错检验`,`信道冲突`和`无线网络`。
      • 物理层:二进制比特流的传输服务。
    • TCP/IP模型:只有四层
  • 物理层
    • *链路类型:全双工,半双工,单工
      • 单工:谁能发送、谁能接收,是固定的;数据流只能`沿一个固定方向传输`;应用:家庭电话。
      • 半双工:谁发送、谁接收,可以变化,但必须轮流;数据流可以沿两个相反方向传输,但同一时间`只能传输一个方向`的数据流;应用:无限局域网
      • 全双工:谁发送、谁接收,可以变化,并且可以同时进行;数据流可以沿两个相反方向传输,同一时间`可以传输相反方向`的数据流;应用:TCP双向连接。
    • 信道传输速率
      • 奈奎斯特定律
      • 香农定律
    • 数字调制Modulation:将模拟信号转换数字信号
      • 基带传输
        • 曼切斯特编码:将时钟信号叠加到编码中
        • 翻转-NRZ编码:0-1编码,编码跳转的信号,仍然无法解决静默问题
      • 宽带传输:多路复用技术
        • 码分复用技术:共享信道支持同时发送消息
  • 链路层:成帧,差错检验,信道冲突和无限网络
    • 成帧:区分不同帧
    • 差错检验:冗余位技术---汉明码,奇偶校验,循环冗余码
      • 奇偶检验:只能检验奇数位。
      • 汉明距离:定义为从一个码字转换为另一个有效码字的最短距离,检验和修复的最短位数?
      • 循环冗余码:使用多项式除法决定冗余位
    • 流量控制:滑动窗口协议
    • 链路利用率的计算方式
    • 传输时延和传播时延
    • MAC层:媒体访问控制,数据链路层的一个子层
      • 信道划分:静态划分和动态划分
        • 静态划分:时分/频分/码分复用信道
        • 动态划分:CSMA/CD协议
      • CSMA/CD协议:载波监听,如果`有冲突不发送`;冲突避免,发送后还需要`检测冲突`,如果`有冲突随机等待`并且重发
        • 冲突检测时间和如何避免`冲突检测不及时`:规定数据大小,约束帧的`传输时间`>信道上的往返`传播时延`
      • 以太网:802.3
        • 以太网帧的结构
        • MTU:单个网络中最大传输单元,表示为`以太网帧的负载`
          • 透明传输:每一个路由器负责包裹的`拆分和整合`
          • 非透明传输:每一个路由器`只负责包裹的拆分`,整合工作在接受方
        • 以太网的`传输`速率:标准以太网10Mbps,快速100Mbps等
      • WIFI:802.11
        • 连接过程:与基站连接,分为积极连接(主动探索基站),消极连接(基站主动介绍)
        • *隐藏终端和暴露终端问题
  • 网络层
    • IP协议:互联网协议
      • IPv4地址:32位,0.0.0.0-255.255.255.255,8bit/1字节为一组,分别私有和公开IP地址。
      • IP数据报封装
      • IP寻址:网络id+主机id---分类寻址,子网寻址,CIDR
        • 分类寻址:网络id和主机id的地址范围进行分类
        • 子网寻址:确定网络id+子网id+主机id,固定/可变子网划分,默认网关和`子网掩码`
          • 寻址方式
        • CIDR:无分类域间路由,只区分前缀id和主机id,路由聚合确定`共同前缀和掩码`和最长前缀匹配确定`网络`
          • 路由聚合
          • 最长前缀匹配:进行子网掩码匹配时,取最长匹配
      • NAT:网络地址翻译
        • 私有地址和公开地址
    • 互联网控制协议
      • ICMP:互联网控制消息协议,用于`错误报告`和`回复请求`(`ping`命令)
      • ARP:MAC地址寻求协议,用于查询某个IP地址对应的MAC地址,如果不属于一个局域网,则改为`发送默认网关的ARP请求`。
      • DHCP:动态主机控制协议,为每一个主机分配IP地址,子网掩码和默认网关等网络必备信息。
        • 本地DHCP服务器和DHCP缓存
      • 路由算法
        • 路由和转发的含义
        • 泛洪:与广播类似,对于不同局域网的概念,保证不会出现环
        • 距离矢量算法:分布式的Bellman-Fold算法,代表:路由信息算法
          • 缺点:坏消息传递慢,被相邻节点误导
        • 链路状态算法:全局式的Dijsktra算法,代表:开放最短路径算法
          • 缺点:维护全局拓扑结构的代价昂贵
        • 边界路由算法:自治系统,内层边界路由算法,外层边界路由算法
          • 自治系统:不同路由器所连接的一个`网络整体`
          • 内层边界路由算法:每一个网络整体所使用的路由算法,例如OBPF和RIP算法
          • 外层边界路由算法:`边界路由器`,不同网络整体所使用的路由算法,`公平性且非最优`
        • 网际层中的多播和广播(泛洪)
  • 传输层:提供进程级端到端的服务
    • 网络套接字-Socket:应用层与传输层通信的一个抽象接口,包括IP地址(主机)+端口号(进程)
    • 端口号:知名端口号
    • TCP:面向连接,基于字节流的服务
      • 数据格式:TCP Segment-TCP段
      • TCP Header结构:端口号,SYN/FIN/ACK表示,序列号字段
        • 序列号-Sequence Number:负载中`第一个字节`的序号,例如Seq=100,表示负载中下一次传递的第一个字节序号为100
        • 确认码-ACK Number:期待接受的`下一个字节`的序号,例如序号101,表示预期接受导的下一个字节序号为101
      • TCP连接建立:三次握手,SYN占据一个字节
        • 为什么不能改为二次握手:`滞留的`TCP连接建立请求
      • TCP连接取消:四次挥手,FIN占据一个字节
        • 为什么不能改为四次挥手:服务器可能还有数据需要传输给客户
      • TCP流量控制
        • 流量控制的动机:发送方和接受方的发送/接受速率不匹配
        • 滑动窗口协议:序列号,剩余接受窗口大小
      • TCP超时时间管理:确认合适的超时时间,SRTT,RTO等
      • TCP拥塞控制:快启动,拥塞避免,快重传,快回复
        • 最大段长-MSS:拥塞控制中,数据传输的基本单位
        • MTU和MSS:帧的负载的长度=IP包裹的总长度=IP头+TCP段=IP头+TCP头+TCP段
        • 快启动:小于拥塞阈值时,每返回一个MSS的`ACK`,窗口大小+1,乘法增加
        • 拥塞避免:大于等于拥塞阈值时,每一个`RTT`,窗口大小+1,线性增加
        • 快回复:遇到连续三个重复的ACK时,窗口和阈值缩小为`一半`
        • 快重传:遇到连续三个重复的ACK时,直接重传`丢失的TCP段`
        • 超时处理:阈值变为一半,窗口变为1
        • TCP Reno和Tahoe:前者包含快速重传和回复的逻辑
      • QUIC:快速UDP网络连接
    • UDP:无连接,不可靠的连接服务
      • UDP数据报的格式
  • 应用层
    • 网络应用架构/模型-Application Architecture:CS模式和P2P模式
      • CS模式:架构简单,方便管理,随时可提供服务;不易扩展,服务器压力大
      • P2P模式:架构复杂,不方便管理,消息传递复杂;容易扩展,分布式,扩展性强
    • 域名系统-DNS:网址-IP地址
      • 根服务器:提供顶级域名服务器的IP地址
      • 顶级域名服务器:包含edu/com等顶级域名的服务器
      • 权威服务器:包含所需域名的名称服务器,查询时`直接返回IP地址`
      • DNS缓存和本地DNS服务器:包含一些常用域名缓存的本地服务器
      • 迭代查询和递归查询
    • URL:统一资源定位符
    • HTTP/HTTPs
      • Cookie和Session
    • HTML
    • 邮件系统:用户代理和邮件服务器
      • 发送协议:简单邮件传输协议-SMTP,`只能发送文本类数据`;MIME,可以`发送多媒体数据`
      • 接受协议:POP3协议,IMAP-允许用户以文件夹形式管理邮件
  • 网络设备
    • 集线器:存在冲突,信道共享,需要开启CSMA/CD协议
    • 交换器和网桥:不存在冲突,信道独立,分割`冲突域`
    • 直接转发 / 存储转发机制
      • 为什么路由器需要存储转发:根据IP地址查找路由表(非根本),`检验数据`,`修改条数`,等
    • 路由器:分割`不同网络`/`广播域`
      • 路由功能:交换控制信息,更新路由表
      • 转发功能:根据路由表+路由算法决定下一跳

网络的模型

OSI模型:七层模型

TCP/IP模型:只有四层

物理层

*链路类型:全双工,半双工,单工

单工:谁能发送、谁能接收,是固定的;数据流只能沿一个固定方向传输;应用:家庭电话。

半双工:谁发送、谁接收,可以变化,但必须轮流;数据流可以沿两个相反方向传输,但同一时间只能传输一个方向的数据流;应用:无限局域网

全双工:谁发送、谁接收,可以变化,并且可以同时进行;数据流可以沿两个相反方向传输,同一时间可以传输相反方向的数据流;应用:TCP双向连接。

信道传输速率

奈奎斯特定律

在理想条件下(带宽受限无噪声),指出码元传输速率是有上限的,超过此上限会出现严重的码间串扰

香农定律

指出了在有噪声的条件下,信道的极限传输速率和信噪比带宽有关系,如果两者都达到了极限,想要提高速率只能通过让每个码元携带更多的比特信息(换一种编码方式)。

数字调制Modulation:将模拟信号转换数字信号

基带传输

宽带传输:多路复用技术

链路层:成帧,差错检验,信道冲突和无限网络

成帧:区分不同帧

差错检验:冗余位技术—汉明码,奇偶校验,循环冗余码

奇偶检验:只能检验奇数位。

汉明距离:定义为从一个码字转换为另一个有效码字的最短距离,检验和修复的最短位数?

循环冗余码:使用多项式除法决定冗余位

流量控制:滑动窗口协议

重要的点

捎带确认:在传输数据时顺便传输ACK确认,不单独发送一个ACK确认报文
累计确认:ACKx表示对于前x个报文的累计确认
窗口大小:W s + W R ≤ 2 m W_s+W_R\leq2^{m}Ws+WR2m,m mm表示用于编码报文的位数;防止:窗口移动,相同编号报文带来的歧义问题。


停止-等待 Stop-and-wait:接受和发送窗口都为1

退回N步 Go-back-N:接受窗口为1,发送窗口为N

选择性重传 Selective Repeat:接受和发送窗口数大于等于1

链路利用率的计算方式

传输时延和传播时延

MAC层:媒体访问控制,数据链路层的一个子层

信道划分:静态划分和动态划分

静态划分:时分/频分/码分复用信道
动态划分:CSMA/CD协议

CSMA/CD协议:载波监听,如果有冲突不发送;冲突避免,发送后还需要检测冲突,如果有冲突随机等待并且重发

冲突检测时间和如何避免冲突检测不及时:规定数据大小,约束帧的传输时间>信道上的往返传播时延

以太网:802.3

以太网帧的结构
MTU:单个网络中最大传输单元,表示为以太网帧的负载

透明传输:每一个路由器负责包裹的拆分和整合

非透明传输:每一个路由器只负责包裹的拆分,整合工作在接受方

以太网的传输速率:标准以太网10Mbps,快速100Mbps等

WIFI:802.11

连接过程:与基站连接,分为积极连接(主动探索基站),消极连接(基站主动介绍)
*隐藏终端和暴露终端问题

网络层

IP协议:互联网协议

IP协议(Internet Protocol,网际协议)是TCP/IP体系中的网络层协议,主要负责:

IPv4地址:32位,0.0.0.0-255.255.255.255,8bit/1字节为一组,分别私有和公开IP地址。

IP数据报封装

IP寻址:网络id+主机id—分类寻址,子网寻址,CIDR

分类寻址:网络id和主机id的地址范围进行分类
子网寻址:确定网络id+子网id+主机id,固定/可变子网划分,默认网关和子网掩码

寻址方式
CIDR:无分类域间路由,只区分前缀id和主机id,路由聚合确定共同前缀和掩码和最长前缀匹配确定网络

路由聚合
最长前缀匹配:进行子网掩码匹配时,取最长匹配

NAT:网络地址翻译

私有地址和公开地址


互联网控制协议

ICMP:互联网控制消息协议,用于错误报告回复请求(ping命令)

ARP:MAC地址寻求协议,用于查询某个IP地址对应的MAC地址,如果不属于一个局域网,则改为发送默认网关的ARP请求

DHCP:动态主机控制协议,为每一个主机分配IP地址,子网掩码和默认网关等网络必备信息。

本地DHCP服务器和DHCP缓存

路由算法

路由和转发的含义

泛洪:与广播类似,对于不同局域网的概念,保证不会出现环
距离矢量算法:分布式的Bellman-Fold算法,代表:路由信息算法

缺点:坏消息传递慢,被相邻节点误导
链路状态算法:全局式的Dijsktra算法,代表:开放最短路径算法
缺点:维护全局拓扑结构的代价昂贵
边界路由算法:自治系统,内层边界路由算法,外层边界路由算法
自治系统:不同路由器所连接的一个网络整体

内层边界路由算法:每一个网络整体所使用的路由算法,例如OBPF和RIP算法
外层边界路由算法:边界路由器,不同网络整体所使用的路由算法,公平性且非最优
网际层中的多播和广播(泛洪)

传输层:提供进程级端到端的服务

网络套接字-Socket:应用层与传输层通信的一个抽象接口,包括IP地址(主机)+端口号(进程)

端口号:知名端口号

TCP:面向连接,基于字节流的服务

数据格式:TCP Segment-TCP段

TCP Header结构:端口号,SYN/FIN/ACK表示,序列号字段

序列号-Sequence Number:负载中第一个字节的序号,例如Seq=100,表示负载中下一次传递的第一个字节序号为100

确认码-ACK Number:期待接受的下一个字节的序号,例如序号101,表示预期接受导的下一个字节序号为101

TCP连接建立:三次握手,SYN占据一个字节

为什么不能改为二次握手:滞留的TCP连接建立请求

TCP连接取消:四次挥手,FIN占据一个字节

为什么不能改为四次挥手:服务器可能还有数据需要传输给客户

TCP流量控制

流量控制的动机:发送方和接受方的发送/接受速率不匹配
滑动窗口协议:序列号,剩余接受窗口大小

TCP超时时间管理:确认合适的超时时间,SRTT,RTO等

TCP拥塞控制:快启动,拥塞避免,快重传,快回复

最大段长-MSS:拥塞控制中,数据传输的基本单位

MTU和MSS:帧的负载的长度=IP包裹的总长度=IP头+TCP段=IP头+TCP头+TCP段
快启动:小于拥塞阈值时,每返回一个MSS的ACK,窗口大小+1,乘法增加
拥塞避免:大于等于拥塞阈值时,每一个RTT,窗口大小+1,线性增加
快回复:遇到连续三个重复的ACK时,窗口和阈值缩小为一半
快重传:遇到连续三个重复的ACK时,直接重传丢失的TCP段
超时处理:阈值变为一半,窗口变为1
TCP Reno和Tahoe:前者包含快速重传和回复的逻辑

QUIC:快速UDP网络连接

UDP:无连接,不可靠的连接服务

UDP数据报的格式

应用层

网络应用架构/模型-Application Architecture:CS模式和P2P模式

CS模式:架构简单,方便管理,随时可提供服务;不易扩展,服务器压力大

P2P模式:架构复杂,不方便管理,消息传递复杂;容易扩展,分布式,扩展性强

域名系统-DNS:网址-IP地址

根服务器:提供顶级域名服务器的IP地址

顶级域名服务器:包含edu/com等顶级域名的服务器

权威服务器:包含所需域名的名称服务器,查询时直接返回IP地址

DNS缓存和本地DNS服务器:包含一些常用域名缓存的本地服务器

迭代查询和递归查询

URL:统一资源定位符

HTTP/HTTPs

Cookie和Session

HTML

邮件系统:用户代理和邮件服务器

发送协议:简单邮件传输协议-SMTP,只能发送文本类数据;MIME,可以发送多媒体数据

接受协议:POP3协议,IMAP-允许用户以文件夹形式管理邮件

网络设备

集线器:存在冲突,信道共享,需要开启CSMA/CD协议

交换器和网桥:不存在冲突,信道独立,分割冲突域

直接转发 / 存储转发机制

设备典型方式
集线器 Hub直接转发(物理层)
交换机 Switch主要是存储转发,也可直接转发
路由器 Router必须存储转发

为什么路由器需要存储转发:根据IP地址查找路由表(非根本),检验数据修改条数,等

路由器:分割不同网络/广播域

路由功能:交换控制信息,更新路由表

转发功能:根据路由表+路由算法决定下一跳

http://www.jsqmd.com/news/1232819/

相关文章:

  • AI短剧系统私有化部署与零代码开发指南
  • HarmonyOS ArkTS 实战:实现一个校园卡充值与消费记录应用
  • Playwright:新一代Web自动化测试框架的核心优势与实践指南
  • python数据可视化技巧的100个练习 -- 34. 混淆矩阵的矩阵图
  • C++异常处理实战:从<stdexcept>标准库到异常安全编程
  • 深入解析TMS320F2807x中断系统:PIE机制、优先级配置与安全实践
  • 玄铁 0.17.5 跑不起猜数字游戏?evaluator 漏注册 InputExpression 分支的根因复盘
  • C#调用C++可变参数函数的实战指南与避坑策略
  • 开源项目商业化:盈利模式与实战策略
  • AI如何革新企业级多页面系统设计
  • 《坎巴拉太空计划》krpc模组|0.5.4|文档(中译版)——教程与示例:对接引导与用户界面
  • 培训课程预约平台系统
  • C++20模块与预编译头性能实测:构建速度与增量编译的颠覆性对比
  • C语言+WASM构建浏览器端高性能AI推理引擎实战指南
  • Python游戏开发入门:Pygame核心概念与实战项目搭建
  • 2026教育培训小程序开发十大公司测评:招生、排课与学员运营怎么选?含零代码SAAS、AI编程、源码定制交付
  • 从零实现C++轻量级Json-RPC框架:核心原理与工程实践
  • 10款高效免费的Windows工具推荐
  • UE4 MediaTexture黑屏问题:从原理到实战的完整排错指南
  • 红黑树在Linux内核中的高效实现与应用
  • C++信奥刷题实战:从P8488题看模拟算法与STL应用
  • 媒体标题的语义分析与传播策略解析
  • 基于 SpringBoot 的智慧柳州旅游景点导游平台
  • Codex智能体平台:13个核心Skill构建自动化科研工作流
  • C++异常嵌套机制:std::nested_exception原理与实战应用
  • 2026 年新发布:顺昌口碑好的回收源头厂家竞争格局,扔掉旧物,这笔钱你真的省下来了吗? - 品质体验官
  • 零碳园区/工厂如何申报?从政策门槛、补贴方向到全流程,一文说清
  • Spring Boot异步任务与线程池优化实践
  • 双语新闻热词筛选与处理全流程解析
  • 揭秘日电影:视觉符号与叙事结构的双重解码