计算机网络速查

前导
ISO/OSI、TCP/IP
应用层、传输层、网络层
数据链路层、物理层

计算机网络体系结构

性能指标

  • 带宽(Bandwidth):在计算机网络中,带宽表示传送数据的能力,单位是比特/秒(b/s)
  • 时延(Delay):发送、传播、处理、排队时延

服务类型

  • 面向连接服务:可靠的(纠错、检错、应答),如 TCP
  • 无连接服务:尽最大努力交付,不可靠,如 IP、UDP
  • 一般我们说连接,针对的是端到端通信问题,在 OSI 中 IP 层既可以跑 TCP 也可以跑 UDP,所以说 OSI 的网络层支持两种连接服务

ISO 提出的 OSI 参考模型,自顶向下为(忽略会话、表示层):

  • 应用层:用户与网络的界面
  • 传输层:传输单位是 TCP/UDP,负责的是端到端的通信(进程之间)
  • 网络层:传输单位是数据包(data packet),主要任务是对分组(packet)进行路由选择,并实现流量控制、拥塞控制、差错控制和网际互联等功能
  • 数据链路层:传输单位是帧(data frame),主要任务是将网络层传来的 IP 数据包组装成帧,兼有差错控制、流量控制和传输管理等功能,负责的是点到点的通信(主机之间)
  • 物理层:传输单位是比特,常用的物理媒介有双绞线、光缆、无线信道等

TCP/IP 模型

  • 应用层:等价于 OSI 应用层
  • 传输层:等价于 OSI 传输层
  • 网际层:等价于 OSI 网络层
  • 网络接口层:等价于 OSI 物理层和数据链路层

中继系统

  • 中继器:物理层,信号在传输过程中会不断衰减,中继器起放大作用
  • 集线器(Hub):物理层,多端口中继器,广播式发送(一对多)
  • 网桥:链路层,隔离子网(防止子网间广播冲突),维护 MAC 地址与子网间映射,定向转发
  • 交换机:链路层,多端口网桥(多对多),可隔离冲突域,无法隔离广播域
  • 路由器:网络层,可互联两个不同网络层协议的网段

应用层

网络应用模型

  • 客户/服务器模型(C/S)
  • P2P 模型(peer to peer)

域名系统(Domain Name System):建立域名与 IP 的映射,C/S,UDP,端口号 53

  • 层次域名空间:域被划分为多级域名
  • 域名服务器:根、顶级、权限(可能有多个)、本地
  • 域名解析
    • 递归查询
    • 迭代查询

迭代、递归查询.png

文件传输协议(File Transfer Protocol)

  • C/S,工作时使用两个并行的 TCP 连接,控制连接(端口号 21)和数据连接(端口号 20)
  • 控制连接在整个会话期间一直保持打开状态
  • FTP 使用了一个分离的控制连接,因此 FTP 的控制信息是带外(Out-of-band)传送的

电子邮件系统:用户代理、邮件服务器、协议

  • SMTP(Simple Mail Transfer Protocol):邮件发送协议,C/S,TCP,端口号 25
  • POP3(Post Office Protocol):邮件读取协议,C/S,TCP,端口号 110
  • MIME(Multipurpose Internet Mail Extensions)

万维网(World Wide Web)

  • URL:统一资源定位符
  • HTTP:超文本传输协议,TCP,端口号 80
    • 非持久连接:每个网页元素对象的传输都单独建立一个 TCP 连接
    • 持久连接:TCP 一次建立,网页元素可多次请求
  • HTML(HyPerText Markup Language):超文本标记语言

传输层

传输层为应用层提供通信服务(进程间,端到端)

  • 多路复用:发送方的不同进程可以使用同一个传输层协议传送数据
  • 多路分用:接收方的传输层在剥去报文首部后能把这些数据正确交付到目的进程
  • 端口号:16bit,0~1023 为熟知端口号
  • 套接字(socket):IP + 端口号,唯一的标识网络中的一台主机和其上的一个进程

UDP(User Datagram Protocol)

  • 无连接,不可靠,尽最大努力交付,适用于实时类、不要求准确率的场景
  • 首部 8B,包括源端口号、目的端口号、UDP 长度和 UDP 校验和,均为 2B
  • UDP 校验和:二进制反码运算求和

TCP(Transmission Control Protocol)

  • 面向连接,可靠,全双工(只能一对一)
  • 报文段:最短为 20B
    • 源、目的端口字段,2B + 2B
    • 序号字段:TCP 逐字节传送数据,每个字节会携带序号,4B
    • 确认号字段:期望收到对方下一个报文段数据的第一个字节的序号,4B
    • 数据偏移:首部长度,4bit
    • 确认位 ACK:为 1 确认号有效
    • 同步位 SYN:一般为 1
    • 窗口字段:现在允许对方发送的数据量,2B
  • MSS:最大报文段长度

TCP 连接(三次握手):连接建立、数据传送、连接释放

  • 1、客户发送连接请求报文段
  • 2、服务器同意建立连接,发回确认,为本次连接分配 TCP 缓存和变量(易受到 SYN 洪泛攻击)
  • 3、客户发送确认,为本次连接分配缓存和变量

TCP.png

TCP 连接释放(四次握手)

  • 1、客户发送连接释放报文段,停止发送数据,主动关闭 TCP 连接
  • 2、服务器收到即确认,此时服务器 TCP 连接处于半关闭状态
  • 3、若服务器无数据发送,则通知发回 TCP 释放连接
  • 4、客户确认,等待 2MSL 后连接关闭

TCP 可靠传输

  • 序号字段保证数据能有序交付给一个用才能
  • 确认号指示期望收到的下一个序号,是重传机制的基础
    • 累计确认:只确认数据流中至第一个丢失字节为止的字节
    • 超时重传:计时器到期还未收到确认时重传
    • 冗余 ACK:1、3、4、5,对 1 发送冗余 ACK,期望接受 2,对 2 进行重传

TCP 流量控制与拥塞控制

  • 流量控制:接收方根据自己接收缓存的大小,动态调整发送方发送窗口的大小,这称为接收窗口(rwnd)
  • 拥塞控制:发送方考虑网络拥塞情况维护一个拥塞窗口(cwnd)限制发送速率
  • 发送窗口的上限值为 min(rwnd, cwnd)

拥塞避免算法

  • 慢开始和拥塞避免:初始 cwnd = 1,慢开始指数增长至阈值 ssthresh 后加法增长直至出现超时,ssthresh /= 2cwnd = 1
  • 快重传和快恢复:检测到冗余 ACK 时立即重传;快恢复即在 cwnd 增长至阈值后,ssthresh 依旧减半,但 cwnd 设置为 ssthresh 减半后的数值,继续加法增长

慢开始、拥塞避免.png

快恢复.png

网络层

网络层的功能

  • 异构网络互联:路由器作为中继系统
  • 路由与转发:路由选择、分组转发
  • 拥塞控制:开环控制(设计即考虑)、闭环控制(动态调整)

路由算法

  • 静态路由算法:手工配置路由表,网络变化后调整难度大
  • 动态路由算法:自适应,路由器间交换信息按某种算法得出路由表
    • 距离-向量路由算法:结点间按固定时间间隔交换距离向量信息,按最短路原则更新路由表;常见为 RIP 算法,以“跳数”作为距离的度量,16 为不可达,限制了网络的规模;RIP 会出现慢收敛现象,坏消息传的慢;RIP 属于应用层,使用 UDP 传输
    • 链路状态路由算法:结点通过泛洪法向所有路由器发送信息,保证每个结点都拥有完全的网络拓扑信息,每个结点执行单源最短路算法(Dijkstra)更新路由表,只有当链路状态发生变化时才会更新;常见为 OSPF 算法,OSPF 属于网络层,直接通过 IP 数据报传输
  • 域内路由选择:内部网关协议(IGP),具体如 RIP、OSPF
  • 域间路由选择:外部网关协议(EGP),具体如 BGP

IP(IPv4)分组:首部最短为 20B

  • 首部长度、总长度、片偏移
  • 生存时间(TTL):数据报在网络中可通过的路由器数最大值
  • IP 数据报分片:通过片偏移等字段实现重组

IPv4 地址与 NAT

  • IPv4 地址:32bit,网络号 + 主机号
    • 主机号全 0 表示本网络本身
    • 主机号全 1 表示本网络的广播地址,即直接广播地址
    • 127.0.0.0 环路自检地址,表示任意主机本身
    • 全 0 表示本网络本主机
    • 全 1 表示整个网络的广播地址,即受限广播地址
  • 网络地址转换(NAT):整个专用网使用一个 IP 与因特网互联,对外隐藏内部管理的私有 IP 地址;WAN 连接时利用 NAT 将私有 IP 转换为合法的全球 IP
  • IPv6::128bit,IPv4 与 IPv6 通过双协议栈、隧道技术实现转换

子网划分、子网掩码、CIDR

  • 子网划分:将原始主机号拆分为子网号 + 主机号的形式,提高地址空间的利用率
  • 子网掩码:mask,1 对应网络及子网号,0 对应主机号,逐位与即可得出相应子网的网络地址
  • 无分类域间路由选择(CIDR):IP -> 网络前缀 + 主机号,如 128.23.23.1/20 表示前 20 位为网络前缀;网络前缀相同的地址的聚合称为路由聚合
  • 最长前缀匹配:查找路由表时选择匹配的具有最长网络前缀的路由(地址块小)

ARP、DHCP、ICMP

  • ARP:地址解析协议,维护同一个局域网上 IP 到 MAC 地址的映射,广播请求
  • DHCP:动态主机配置协议,为主机动态分配 IP,应用层协议,C/S,UDP,通过广播实现交互(初始无 IP)
  • ICMP:网际控制报文协议,差错报告和询问;应用层的 PING 使用了 ICMP

IP 组播:一定仅应用于 UDP

  • 主机使用因特网组管理协议(IGMP)加入组播组
  • 主机组播时仅发送一份数据,在传播路径分岔时将分组复制后继续转发
  • IP 组播使用 D 类地址,前四位为 1110

移动 IP:移动结点以固定的网络 IP 地址实现跨越不同网段的功能

  • 移动结点:具有永久 IP 地址
  • 本地代理:移动结点的“永久居所”,根据移动用户的转交地址,采用隧道技术转交数据包
  • 外部代理:在外部网络中帮助移动结点完成移动管理的实体

数据链路层

链路层:将网络层的分组封装成帧传输

  • 帧定界:确定帧的界限
    • 字符计数法,如 5_12345
  • 帧同步:能区分出帧的起始和终止
    • 字符填充
    • 零比特填充
    • 违规编码法,如高-高电平
  • 透明传输:可以传输任意组合的比特(即使与定界符相同)

差错控制

  • 检错编码
    • 奇偶校验码
    • 循环冗余码(CRC)
  • 纠错编码
    • 海明码

流量控制与可靠传输

  • 停止-等待协议:发送方每发送一帧,都要等待接收方的应答信号
  • 滑动窗口:发送方维护一个发送窗口,表示连续的允许发送的帧的序号;接收方维护一个接收窗口,表示连续的允许接收的帧的序号,接收窗口大小为 1 时可保证帧的有序接收
    • 停止-等待:发送窗口为 1,接收窗口为 1
    • 后退 N 帧(GBN):发送窗口大于 1,接收窗口为 1,累计确认,以最近一个 ACK 号为准重传(0, 2, 4,以 4 为准)
    • 选择重传:发送窗口大于 1,接收窗口大于 1,由接收方主动质疑出错帧(发送否定帧 NAK),不保证有序,可以避免重复传送那些已正确到达接收端的数据帧
  • 可靠传输:确认和超时重传
    • 自动重传请求(ARQ)

介质访问控制:让使用同一信道的不同信号间不互相干扰

  • 信道划分介质访问控制:集中发送,以某种方式区分信号
    • 频分多路复用(FDM):将信号调制到不同频率的载波上叠加后传输
    • 时分多路复用(TDM):物理信道按时间片轮流分配给多个信道使用
    • 波分多路复用(WDM):光的 FDM
    • 码分多路复用(CDM):采用不同的编码区分各路原始信号
      • 码分多址(CDMA):使用相互正交的码分向量指代站点,用站点的两个相反的方向向量指代 1 和 0,这样不同站点发送的信号向量也相互正交,混合向量与信号向量做内积即可得出信号源所在的站点
  • 随机访问介质控制:随机发送,碰撞即重传
    • ALOHA:在一段时间内未收到确认,等待随机时间后重传
    • 时隙 ALOHA:将时间划分为时隙(slot),只能在时隙开始时发送帧
    • 载波侦听多路访问(CSMA):发送前侦听共用信道,空闲时发送
      • 1-坚持:持续侦听,空闲则立即发送,多个侦听结点可能会冲突
      • 非坚持:信号忙则放弃侦听,等待一个随机时间再侦听
      • p-坚持:信道空闲则以概率 p 发送信号;忙时持续侦听
    • 碰撞检测(CSMA/CD):先听后发,边听边发,冲突停发,随机重发
    • 碰撞避免(CSMA/CA):预约信道,向其他站点通知自己传输数据所需的时间长度,尽量避免碰撞
  • 轮询访问介质控制
    • 令牌传递协议:令牌轮询,有令牌才能发送帧

局域网(Local Area Network)

  • 常用 CSMA/CD、令牌轮询
  • MAC 协议无连接不可靠
  • MAC 帧:最大 1500B,里面包含 MAC 地址(物理地址)

广域网:交换机及其链路组成

  • PPP 协议:点对点链路通信,全双工,面向字节,只提供差错检测,无纠错不可靠
  • HDLC 协议:,全双工,面向比特,有编号和确认机制,可靠

数据链路层设备

  • 网桥:多个以太网通过网桥连接,各网段成为隔离开的碰撞域
  • 交换机:多端口网桥

物理层

通信方式

  • 单工通信:单向信道
  • 半双工通信:两条信道,但不可以同时发送和接受信息
  • 全双工通信:可以同时发送和接受信息

信号相关

  • 奈奎斯特定理:在理想低通的信道中。极限码元传输率为 $2W$ 波特,$W$ 是信道的带宽;极限数据传输率为 $2W\log_2V$,$V$ 是码元的种数
  • 香农定理:信道的无误差极限数据传输率为 $W\log_2(1+S/N)$,$S/N$ 为信噪比
  • 调制:数据变换为模拟信号,充分考虑数据的信号特征(频率、幅度等)
  • 编码:数据变换为数字信号,数字直接映射为电平变换

数据传输方式

  • 电路交换:建立一条专用(双方独占)的物理通信路径,建立连接时间长,使用效率低
  • 报文交换:数据交换的单位是报文,指明目标地址和源地址等信息,在交换节点处以存储-转发的形式传输,无须建立连接,但转发时延长,且对报文大小无限制,需要大缓存空间
  • 分组交换:报文交换的升级版,限制了每次传输数据块大小的上限,以分组(packet)形式传输
    • 数据报:报文拆分,以数据报分组形式转发,不保证可靠性,到达后需要排序
    • 虚电路:建立一条逻辑上相连的虚电路(非专用),可靠,能保证有序到达

传输介质及设备

  • 双绞线、同轴电缆、光纤、无线传输介质
  • 中继器:转发,将衰减的信号再生(放大),不能连接两个速率不同的网段
  • 集线器(Hub):多端口中继器