计算机网络个人笔记


[TOC]

第一章 计算机网络体系结构

I.计算机网络概述

概念

  • 计算机网络是互连的、自治的计算机集合。
  • 由节点(Node)和连接这些节点的链路(Link)组成。

组成

  • 组成部分:硬件、软件、协议
  • 工作方式:
    • 边缘部分:用户直接使用的主机
    • 核心部分:网络的基础设施,如路由器、交换机等
  • 功能组成:
    • 通信子网:负责数据传输
    • 资源子网:负责资源管理

功能

  • 数据通信
  • 资源共享
  • 分布式处理
  • 提高可靠性
  • 负载均衡

交换技术

种类

交换技术 特点 优点 缺点
电路交换 1.需要建立物理连接通道
2.传输过程中通道被==独占==
1.通信时延
2.适用于实时通信
3.能够完全有序传输
1.建立连接时间长
2.线路利用率低灵活性差
3.难以实现差错控制
报文交换 1.报文封装全部信息
2.==全部存储==后再转发
3.无需建立连接
1.适用于短报文传输
2.适用==不确定==通信量
3.线路可靠
4.动态分配线路
1.转发时延长
2.缓存开销大
3.难以实现差错控制
分组交换 1.报文分割成==固定长度==的分组
2.==存储转发==
3.无需建立连接
1.减少出错概率
2.简化缓存
3.流水线加速
1.存在存储转发时延
2.需要额外信息量
3.可能出现乱序、丢失、重复分组

[!Important]

  1. 报文转发和分组转发存在处理延迟,即上图中的空隙
  2. 分组转发花费时间和中间节点数量有关系,一些情况下可以简便运算

区别

  • 计算机的数据传送往往是突发式的,采用电路交换时通信线路的利用率很低。报文交换和分组交换不需要建立连接(即预先分配通信资源),在传送计算机的突发数据时可以提高通信线路的利用率

  • 将报文构造成若干个更小的分组进行分组交换,比将整个报文进行报文交换的时延要小,并且还可以避免太长的报文长时间占用链路,有利于差错控制,同时具有更好的灵活性。

分类

分布范围

  1. 广域网(WAN)
  2. 城域网(MAN)
  3. 局域网(LAN)
  4. 个人区域网(PAN)

传输技术

  1. 广播式网络
  2. 点对点网络

拓扑结构

  1. 总线型
  2. 星型
  3. 环型
  4. 网状型

关于差别,在通信效率、可靠性、扩展性、成本等方面出题

网络性能指标

[!Important]

速率中的K、M、G表示的是十进制,分别为10^310^610^9

  1. 速率

  2. 带宽

    • 模拟信号:频率范围(Hz)
    • 计算机网络:最高数据传输速率
  3. 吞吐量:单位时间通过网络的实际数据量

  4. 时延

    • 发送时延 t_s = 数据块长度/发送速率
    • 传播时延 t_c = 信道长度/传播速率
    • 处理时延
    • 排队时延

    总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延

  5. 时延带宽积: 传播时延 * 带宽

  6. 往返时延 RTT=|发送报文时间 - 接收确认ack时间|

  7. !信道利用率 U

    • 空闲时延 D_0、当前时延 D
    • D = \frac{D_0}{1-U}U 越大,当前时延 D 越大

II.计算机网络体系结构

分层结构

分层基本原则

  • 每层实现特定功能
  • 各层间由可以互相通信的接口
  • 下层独立于上层,即没有上层也能工作
  • 上层==单向==使用下层服务

结构元素

  1. 实体
  • 实体:在通信过程中能够发送或接收信息的硬件或软件模块
  • 对等实体:在通信过程中能够相互通信的实体
  1. 协议数据单元(PDU):对等层水平传递的数据单元,分为数据和控制信息

  2. 服务数据单元(SDU):对等层垂直传递的数据单元,服务上层

  3. 协议控制信息(PCI):对等层水平传递的控制信息

[!Note] 第n层收到的PDUs称为n-1层的SDUs,加上第n层的PCI就构成了n层的PDUs

!协议、接口、服务

  • 协议(水平关系)

    协议 含义 作用 举例
    语法 数据格式 数据的结构和编码 TCP 报文的格式由语法决定
    语义 具体操作流程 何时发何种控制信息、如何应答 TCP 三次握手具体操作
    同步(时序) 操作条件、时序 明确数据交互的顺序流程 TCP 连接的建立、关闭报文时序
  • 接口 服务访问点 SAP(Service Access Point):同一节点内相邻层之间的接口,提供服务访问点

  • 服务(垂直关系)

    • 服务原语:服务提供者和服务用户之间的通信操作
    • 请求:服务用户向服务提供者发出的请求,请求服务提供者执行某种操作
    • 指示:服务提供者向服务用户发出的指示,要求服务用户执行某种操作
    • 响应:服务用户向服务提供者发出的响应,表示对指示的响应
    • 证实:服务提供者向服务用户发出的证实,表示对请求的证实
    • 服务分类
    • 面向连接服务和无连接服务:是否建立连接
    • 可靠服务和不可靠服务:是否保证数据传输的可靠性
    • 有应答服务和无应答服务:是否需要对数据传输进行应答

OSI参考模型

低三层为通信子网,高三层为资源子网

层次 名称 传输单位 功能 协议
1 物理层 比特 1.规定物理接口参数
2.规定信号意义和电气特征
IEEE802.3
2 数据链路层 1.速率协调
2.差错检测(==只能丢弃==)
3.流量控制
SDLC、HDLC、STP、PPP、
3 网络层 数据包 点到点 1.差错、拥塞控制
2.路由选择
3.分组交换
4.流量控制
IP、ICMP、IGMP、ARP、RIP、OSPF
4 传输层 端到端 1.差错控制
2.流量控制
3.拥塞控制
TCP、UDP
5 会话层 数据 1.建立、==同步==、释放会话
2.建立恢复点
6 表示层 数据 1.数据格式转换
2.数据==加密、压缩==
7 应用层 数据 1.提供用户接口
2.文件传输
3.电子邮件
4.远程登录
HTTP、FTP、SMTP、POP3

[!Tip]

  • 流量控制:

    • 数据链路:相邻节点之间的流量控制

    • 网络层:==整个网络==中的流量控制

    • 传输层:端到端的流量控制

TCP/IP参考模型

  1. 网络接口层

    • 与OSI的物理层和数据链路层对应

    • 功能:定义网络接口标准

    • 以太网、令牌环、FDDI、ATM、PPP、SLIP
  2. 网际层

    • 与OSI的网络层对应

    • 功能:IP寻址、路由选择、分片、差错检测

    • 协议:IP、ICMP、ARP、RARP
  3. 传输层

    • 与OSI的传输层对应

    • 功能:差错控制、流量控制、拥塞控制

    • 协议:TCP、UDP
  4. 应用层

    • 与OSI的应用层、表示层、会话层对应

    • 功能:提供用户接口、文件传输、电子邮件、远程登录

    • 协议:HTTP、FTP、SMTP、POP3

!OSI与TCP/IP对比

  1. OSI 是理论模型,TCP/IP 是实际模型
  2. OSI 七层,TCP/IP 四层
  3. OSI 在网络层支持面向连接和无连接服务,而 TCP/IP 只支持无连接服务
  4. OSI 的传输层只提供端到端可靠传输,而 TCP/IP 的传输层提供不可靠传输 UPD 和可靠传输 TCP

第二章 物理层

实现功能:

  • “透明”传输比特流;

  • 物理接口特性
    • 机械特性:形状尺寸、引脚设计
    • 电气特性:信号电压、阻抗、传输速率、距离限制
    • 功能特性:规定接口各电缆作用(网线八根作用)、电压波形含义
    • 过程特性:信号时序关系

I.通信原理

基本名词

  • 数据、信号和码元

    • 数据:传送信息的实体
    • 信号:数据的电气和电磁表现
    • 码元:不同离散数字的基本波形

    模拟数据(信号)是连续的

    数字数据(信号)是离散的

  • 信源、信道和信宿

    • 信源:产生和发送数据的源头
    • 信宿:接收数据的终点
    • 信道:
    • 基带信号是数字0/1;宽带信号是模拟波形
    • 数字信道传输数字信号;模拟信道传输模拟信号
  • 速率、波特和带宽

    • 码元传输速率(波特率Baud/s)
    • 信息传输速率(比特率b/s)
    • 带宽
    • 模拟信号通信:频率范围Hz
    • 计算机网络:最高数据传输速率b/s

传输方式

  • 串行并行

    • 局域网:串行
    • 计算机内部:并行
  • 同步异步
    • 同步传输
    • 外同步:外加时钟
    • 内同步:信号编码同步
    • ==异步传输==:字节间异步,字节内同步
  • 单工双工
    • 单向:广播
    • 半双工:对讲机
    • 全双工:互联网

编码与调制

数字数据->数字信号

  1. 归零(RZ)编码
    • 0:前低后零
    • 1:前高后零
  2. 不归零(NRZ)编码(==无自同步==)
    • 0:低电平
    • 1:高电平
  3. 曼彻斯特编码:以太网
    • 设定初始信号形式
    • 码元必定在中间跳变
    • 码元==中间==电平变化表示信号0/1
  4. 差分曼彻斯特编码
    • 码元==开始==无跳变表示1,有跳变表示0

模拟数据->数字信号

奈奎斯特定理:f_{采样}≥2*f,才能完整保留信号信息

数字数据->模拟信号

  1. 调幅(AM):载波振幅变化表示0、1
  2. 调频(FM):载波频率变化表示0、1
  3. 调相(PM):载波相位变化表示0、1
  4. 正交幅度调制(QAM):R = B*log_{2}(mn)

信道容量

奈奎斯特定理(无干扰)

奈奎斯特速率v = 2Wlog_{2}V

W:信道频率带宽范围(Hz)

V:码元离散电平数量

香农定理(有噪声)

香农速率C = Wlog_{2}(1+\frac{S}{N})

W:信道频率带宽范围(Hz)

\frac{S}{N}:信噪比

[!Note]

  • 计算时注意“二进制”、“十六进制”等字眼,是波特值的含义,则要在v和C中选出最小的
  • 分贝值的大小为 d=10log_{10}(\frac{S}{N}),注意转换

信道复用

  1. 频分复用 FDM:不同用户用不同频率的信道,限于模拟信号
  2. 时分复用 TDM:分时服务用户
  3. 波分复用 WDM:(光的)波长
  4. !码分复用 CDM
    • 码片m_i:分给每个站码片 m_i,码片之间正交
    • 码片向量:码片 m_i 的1为1,0为-1
    • 站点发送:比特1为码片向量,比特0为码片销量负值
    • 站点接收:与自身码片向量相乘,除以码片长度

II.传输介质

  1. 双绞线
  2. 同轴线缆
  3. 光纤:==外低(反射率)内高(反射率)==
    • 多模:光的全反射;光源为发光二极管
    • 单模:直径小于光的波长,光沿直线;光源为半导体激光
  4. 无线传输:
    • 无线电波
    • 激光、红外线、微波

III.物理层设备

  1. 中继器

    • 功能:整形、放大并转发数字信号

    • “5-4-3”原则:5段通信介质由4个中继器连接,最多挂载3个计算机

      [!Tip]

      放大器放大的是模拟信号

      两端可以是不同介质,如无线有线,则两端可以是不同的链路层协议

  2. 集线器(Hub)

    • 功能:多端口中继器;整形、放大信号,扩大网络范围
    • ==半双工==

第三章 数据链路层

实现功能:

  1. 封装成帧
  2. 透明传输
  3. 差错检测

I.数据链路层概述

相关名词

  1. 链路:从一个节点到相邻节点的通信信道,中间==无交换节点==
  2. 数据链路:链路+链路层协议
  3. 帧:数据链路层传输的数据单元 PDU

!服务

  1. 无确认的无连接服务:不需要建立连接,不需要确认,如以太网
  2. 有确认的无连接服务:不需要建立连接,需要确认,如无线局域网
  3. 有确认的面向连接服务:需要建立连接,需要确认,如PPP

设备

交换机(多接口网桥)

  • 工作流程

    • 自学习:收到帧,发现转发表中没有此帧的源MAC和目的MAC,记录MAC和对应接口,并广播到==其他==所有接口

    • 转发:收到帧,转发表中有目的MAC表项,转发到对应接口
  • 工作模式

    • 直通交换:只检查帧首目的MAC地址,直接转发
    • 存储转发:存储到内存中进行检错,错则丢,无损则转发
  • 特点
    • 隔离冲突域:星型一对一
    • 不隔离广播域:广播帧都会被转发

!功能

封装成帧

在数据前后加上帧首部和帧尾部

  1. 帧首部和帧尾部

    • 帧首部:帧起始标志、地址、控制、协议
    • 帧尾部:校验和

    • 以太网V2的MAC帧格式(左尾右首)
    FCS 数据载荷 类型 源地址 目的地址
    4B 46-1500B 2B 6B 6B
    • PPP的帧格式(左尾右首)
    标志 FCS 数据载荷 协议 控制 地址 标志
    1B 2B 最大1500B 2B 1B 1B 1B
  2. 帧定界

  3. 帧同步

透明传输

传输的数据不受特殊字符的影响

  • 字符填充:在数据中插入转义字符,如HDLC的ESC(11111101)
  • 字符计数:在帧首部加入帧长度

流量控制

控制==发送方==发送速率,防止接收方缓存溢出

  • OSI体系中,数据链路层有流量控制的功能
  • TCP/IP体系中,流量控制由==传输层==负责

差错检测

通过确认重传、CRC检测帧中的错误

  • CRC:检测帧内位错,将帧看成多项式,除以生成多项式,余数作为校验码

  • 确认重传:帧丢失,超时重传
    • 通信质量好的线路,仅进行CRC检测,重传由上层协议处理
    • 通信质量差的线路,进行确认重传

II.组帧

功能:将网络层递交的分组封装成帧

问题:帧定界、帧同步、透明传输

  1. 字符计数法:帧首部添加==计数字段==记录该帧的字节数

  2. 字节填充法:

    • 添加SOH、EOT标识帧头帧尾
    • 数据段中存在”SOH、EOT、ESC“字符,前面添加ESC进行转义
  3. (==HDLC==)零比特填充法:

    • 使用01111110标志帧开始和结束
    • 数据字段中每连续5个”1“后自动添加一个”0“
  4. 违规编码法:使用数据传输方式中不用的编码标识首尾

III.差错控制

检错编码

  • 奇偶检验码:数据中”1“的个数

  • 循环冗余码CRC
    • 约定 G(x) = x^{n_k}+x^{n_{k-1}}+···+x^{n_1}
    • 冗余码计算:在源数据后加 G(x)Max(x_{n_k}、x_{n_{k-1}}···x_{1}) 位,进行除法计算

纠错编码

  • 海明码距 d_{min}

    • 检错数量 r = d_{min}-1
    • 校正错误数量 r = (d_{min}-1)/2
  • 海明码:见车爹PPT

IV.流量控制和可靠传输

流量控制

流量控制指由==接收方控制发送方==的发送速率。

  1. 数据链路层控制的相邻结点之间的流量;传输层控制端到端流量

  2. 数据链路层控制方法:接收方是否返回ACK控制;传输层控制方法:接收方在ACK设置窗口值调整发送方的发送窗口

可靠传输

可靠传输是指发送方数据能被接收方正确接收

  1. 有线网络数据链路层不负责可靠运输
  2. 无线网络数据链路层负责可靠运输
  1. 停止等待协议(S-W)

    • 一次只发送一帧

    • 超时重传
    • 一位比特编号
    • 设置帧缓冲区用于重传
  2. 后退N帧协议(GBN)

    • 发送方在发送窗口内连续发送

    • 接收方发现丢失一帧,后面全无效

    • 接收方可累计确认,只确认最新连续的一位

    • 发送方接收到ACK后,可直接将窗口后滑
  3. 选择重传(SR)
    • 发送方在发送窗口内连续发送
    • 接收方必须每帧都发送确认
    • 接收方检测到错误帧就发送NAK,要求==立即重传==要求的帧

[!Tip]

注意题目中的帧数和帧序号比特数区别

帧序号比特数k:2^k - 1 >= n

V.介质访问控制

随机访问控制

ALOHA协议

  1. 纯ALOHA协议

    发送方:随机发送数据帧,发送成功则等待下一帧,发送失败则等待随机时间后重传,直到发送成功

  2. 时隙ALOHA协议

    发送方:等待下一个时隙发送数据帧,发送成功则等待下一帧,发送失败则等待下一个时隙后重传,直到发送成功

CSMA协议

  1. 1-坚持CSMA协议

    发送方:要发送信号时,持续监听信道,信道空闲则发送数据帧,直到发送成功

  2. 非坚持CSMA协议

    发送方:要发送信号时,若信道忙则等待随机时间后再次监听信道,信道空闲则发送数据帧,直到发送成功

  3. p-坚持CSMA协议

    发送方:要发送信号时,若信道忙则等待随机时间后再次监听信道,信道空闲则以概率p发送数据帧,以概率1-p继续等待

CSMA/CD协议

总线型有线网络

半双工通信

  1. 发送阶段:检测冲突

    • 争用期 t=2τ :代表信号在端到端往返的最大时间,若在此时间内没有检测到冲突,则发送成功

    • 最小帧长L_{min} = 2τ*v:保证在发生冲突时,发送方能检测到冲突; 10Mbps以太网:t= 51.2μsL_{min} = 512bit =64B
  2. !冲突阶段:截断二进制

    • 二进制指数退避算法:R = rand(0,1,···,2^k-1)k=min(n,10)n为冲突次数
    • 重传推迟时间t_{backoff} = R*2τ
    • 发送失败:当n >= 16时,发送失败

!CSMA/CA协议

无线局域网

  1. 发送阶段
    • 源站检测信道空闲,等待==DIFS==长度的时间准备发送
    • 源站检测信道空闲,使用==随机避让算法==延迟
  2. [可无此阶段]信道预约阶段
    • 源站广播发送==RTS==报文
    • 目的站等待==SIFS==后,发出==CTS==,通信范围接收到此帧的其他站保持静默(处理隐蔽站问题)
  3. 数据传输阶段
    • 源站接收到CTS,等待SIFS后开始发送
    • 目的站接收完数据后,等待SIFS后发送ACK帧回应直到源站接收
    • 此阶段对于其他站为NAV(信道忙)时间
  • IFS(InterFrame Space):帧间间隔

  • DIFS:分布式协调IFS,只在源站侦测到空闲后触发

  • SIFS:短IFS,在任意类型帧间触发

  • RTS(Request To Send):请求发送控制帧

    • 源地址 + 目的地址

    • 本次通信所需时间:SIFS + CTS + SIFS + 数据帧 + SIFS + ACK

    即对面接收完RTS开始,到己方接收完ACK结束

  • CTS(Clear To Send):允许发送控制帧

    • 给源站明确的发送指令

    • 指示其他站在预约期内保持静默

    • 预约期:SIFS + 数据帧 + SIFS +ACK

    即对面接收完CTS开始,到对面接收到ACK结束

  • NAV(Network Allocation Vector)

    • 预约时间/信道被分配时间

    • 在CTS中标明,NAV = SIFS + 数据帧 + SIFS + ACK
  • 随机避让算法

    • 基本退避时间
    • 退避计时器在第k次:R=rand(0,1,···,2^{k+2}-1),k<=6
    • 退避时间 2τ*R

轮询访问

令牌传递协议

  1. 源站按环路连接,令牌轮流传递;
  2. 一个站点拥有令牌后

    • 无数据发送,则立即传给下一站

    • 有数据发送,将令牌中插入数据发送,每次只能发送一帧;
  3. 数据帧在环路循环转发,目的站收到后复制再继续转发;
  4. 源站收到后检验帧,出错则重发,否则生成新令牌并传递给下一站。

VI.局域网

概览

  1. 介质访问控制方法:CSMA/CD、令牌总线、令牌环

  2. 局域网拓扑:以太网、令牌环、FDDI

  3. IEEE802定义:
    • 逻辑链路控制(LLC):无确认无连接、带确认无连接(帧加序号)、面向连接、高速传送、寻址、竞争处理
    • 介质访问控制(MAC):组帧、差错控制、透明传输

以太网V2/802.3

结构:逻辑总线型、物理星型(一交换机连多终端)

CSMA/CD协议

无连接、无确认、不可靠

曼彻斯特编码

  • 网卡(网络适配器):数据==串并联转换==、直接丢弃差错帧、正确帧触发中断

  • MAC地址:6B = 48b

  • 以太网V2 MAC帧

    • MAC层:MAC帧

    • 物理层:前导码(8B,7B前同步码+1B帧开始定界符)+ 以太网MAC帧(64B~1518B)

    [!TIP]

    以太网==没有帧停止定界==,由于使用曼彻斯特编码,发送完一帧后出现电平不变现象,接收方视其为帧结束(类似违规编码思想)

  • 高速以太网

    速率 帧间间隔 通信方式 介质访问控制协议
    100Mbps 9.6μs 全双工+半双工 CSMA/CD==(半双工)==
    1Gbps 0.96μs(缩短信道长度到100M) 全双工+半双工
    10Gbps 全双工 全双工不需要访问控制

无线网802.11

802.11帧有==4个地址==

  • 有固定基础设施

    • 基本服务集(BSS):一个AP + 几个移动站
    • AP接入点基站:
    • 服务及标识符SSID(WIFI名)
    • 信道Channl
    • 扩展服务集(ESS):一个分配系统DS + 几个基本服务集BSS
    • DS连接各BSS的基站AP
  • 自组织网络:节点平等,所有节点都有路由功能

  • 802.11帧

    • 结构

    • 地址字段分配
    方向 地址1(接) 地址2(发) 地址3(末) 地址4
    发送给AP设备 AP地址 源地址 目的地址
    发送给终端设备 目的地址 AP地址 源地址

VLAN服务802.1Q

  • 划分方式

    • 基于物理接口
    • 基于MAC地址
    • 基于IP地址
  • !802.1Q帧

    [!TIP]

    比普通V2帧长度多4B,最大帧长1522B

    添加后,需要重新计算FSC

    • 结构:
    • TPID:0X8100
    • PRI:优先级
    • VID:标识符,==12位==

VII.广域网

PPP协议

用户与ISP的通信协议

数据层面:不可靠、无序号和确认

控制层面:面向连接

只保证CRC检错实现无差错接收

面向==字节==、全双工

  • 组成部分

    • 链路控制协议LCP:配置测试链路连接,协商参数
    • 网络控制协议NCP:对接兼容多种网络层协议
    • 组帧方法(规范)
  • !PPP帧

    • 结构
    • 首尾标志字段F:0X7E,定界符(与V2帧相比,有尾定界符)

      • 同步传输:零比特填充法,防止0x7E(01111110)在内部出现
      • 异步传输:转义字符0x7D
    • 地址字符A:0xFF,无用
    • 控制字符C:0x03,无用
    • 协议字符P:0x0021->IP数据报;0xC021->LCP数据
    • 数据载荷:0~1500B(不用CSMA/CD,无需最小帧长)
    • 帧检验FCS:CRC检验冗余码
  • 连接过程

    flowchart TD
    A[链路静止] --> |物理层链路建立| B[链路建立]
    B --> |LCP协商失败|A
    B --> |LCP配置协商|C[鉴别]
    C --> |鉴别失败|D[链路终止]
    D --> |LCP链路终止|A
    C --> |鉴别成功|E[网络层协议]
    E --> |NCP配置协商|F[链路打开]
    F --> |链路故障或终止|D
    

    无连接 -> 物理链路 -> LCP链路(控制)-> NCP链路(数据)

第四章 网络层

I.网络层功能

屏蔽了各种局域网的异构细节,如链路层协议、网络层协议(IPv4和IPv6)

路由转发

  • 路由选择
  • 分组转发

服务方式

虚电路

面向连接

保证可靠性

设虚电路号码VCID

  • 建立连接时:分组首部使用完整地址

  • 后续:只使用VCID
  • 工作流程

    1. 虚电路建立

      • A:呼叫请求 -> B
      • B:呼叫应答 -> A
    2. 数据传输

      • A:数据 -> B
      • B:ACK -> A
    3. 虚电路拆除

      • A:释放请求 -> B

      • B:释放应答 -> A
  • 分类

    • 永久性虚电路(PVC)
    • 交换型虚电路(SVC):临时

数据报

无连接、不可靠

SDN网络

  • 架构
    • 数据平面:终端设备 + 路由器(感觉已经算是交换机了)
    • 控制平面:远程控制服务器计算路由
  • 接口
    • 南向接口:转发设备(路由器)与控制服务器建立连接的接口,如Overflow协议
    • 北向接口:给上层开发者设计应用
    • 东西接口:SDN控制服务器之间的接口

拥塞控制

  • 判断方式:负载增加,吞吐量降低

  • 开环控制

    静态,设计时预计所有情况

  • 闭环控制

    动态,运行时对反馈的拥塞情况进行调整

    闭环:即运行时有反馈环

II.IPv4

IPv4地址

4B = 32bit

分类编址

  • 主机号全0:网络地址标识

  • 主机号全1:广播地址

  • 划分规则:

  • 特殊地址:

划分子网编址

分类编址 + 子网掩码,使部分主机号作为网络号,划分出多个子网

  • 范围:主机号全0、全1无法使用
  • 路由表变化:目的网络地址 + 子网掩码 + 下一跳地址

无分类编址CIDR

去除ABC分类编址的思想,只使用掩码标识网络号长度

从ISP分到网络号后,仍然能自定义掩码长度来划分子网

V4首部格式

段名 长度 作用
版本 4b 协议版本为4
首部长度 4b 单位为4B,长度范围20B~60B,数值范围0101~1111
区分服务 8b 区分类别和优先级,很少使用
总长度 16b 单位为1B,首部长度 + 数据载荷长度
标识 16b 分片后通过同一标识合并
标志 3b MF:1表示后面还有分片,0表示没有;
DF:1表示允许分片,0表示不允许
片偏移 13b 单位为8B,数值×8代表本段第一个字节在原数据载荷中的位置
生存时间 8b TTL,每转发一次跳数减1
协议 6b 表示数据载荷协议类型(如TCP、UDP等)
首部校验和 16b 用于检测首部差错
  1. 计算分片
    • 片偏移计算(8B整数)
  2. 生存时间判断

优化技术

  • NAT:路由器构建NAT表,将外网地址+端口和内网地址+端口进行映射

    • NAT路由要看到传输层的端口号
    • 转发时会改变源或者目的IP地址
  • 路由聚合:路由器对需要聚合的网络寻找最长前缀,并和变长掩码一起存入路由表

  • 特殊路由:

    • 特定主机路由:*.*.*.*/32,定位到单个主机
    • 默认路由:0.0.0.0/0,路由表无其他项则走默认路由

ARP 地址解析协议

  • 网络层/数据链路层,自生成报文
  • 每个主机、路由都有ARP表
  • 已知IP地址,需要询问MAC地址
  • 动态维护,一般2min更新
  1. ARP请求报文

    • 主机A发送广播,目的MAC地址为全1
    • 目的主机B收到后,自身ARP表记录A的源IP和源MAC
  2. ARP响应报文
    • 主机B单播回应
    • 内容为自身MAC地址
    • 主机A更新ARP表

DHCP 协议

ICMP 网际控制协议

  • IP报文
  • 网络层数据报转发时状态信息交互
  • ICMP差错报告报文

    • 终点不可达:路由器/主机==不能交付报文==时向源发送
    • 源点抑制:路由器/主机因为==拥塞==丢弃报文时向源发送
    • 超时:路由器收到TTL==为0==的报文时向源发送,若收不到全部分片则全部丢弃
    • 参数问题:路由器/主机收到==首部字段校验和错误==时丢弃报文,并向源发送
    • 改变路由(重定向):路由器向源发送,告知源有更好的路由

    不发送ICMP差错报告的情况

    • ICMP差错报告报文,不发送ICMP差错报告
    • 特殊地址不发(广播、回环)
    • 多分片报文只发送一次,后续分片不发
  • ICMP询问报文

    • 回送请求和应答:PING(应用层)
    • 时间戳请求和应答:Traceroute(网络层)
    • 地址掩码请求和应答
    • 路由器请求和通告

III.IPv6

128b = 16B

基本首部长度固定,选项通过扩展首部实现,扩展首部算在有效载荷内

不能分片,只能由源端分片,目的端合并

中间路由接收到太长的数据报会丢弃报文,并发送ICMP差错报告

V6首部格式

段名 长度 作用
版本 4 内容6
通信量类 8 区分类别和优先级
流标号 20 类似于v4首部标识,同一个“流”内流标号相同
有效载荷长度 16 单位1B,除基础首部的字段长度(包含扩展首部),最大65535
下一个部首 8 无扩展首部时:数据载荷协议类型(TCP/UDP)
有扩展首部时:第一个扩展首部类型
跳数限制 8 TTL,路由器转发-1,0则丢弃

V6地址

  • 表示方法

    • 冒号十六进制:每4个十六进制数(2Byte)之间用冒号隔开

    • 左侧0省略:两个冒号间的十六进制数中最前面的一串0可以省略不写;冒号间全为0,可省略只写一个

    • 连续0压缩:多个连续0,可只填俩个冒号,==只能出现一次==,多个则无法定位
    • 可结合点分十进制后缀
  • 地址类型

    • 未指明地址:0:0:0:0:0:0:0:0,::/128,只能作为源地址

    • 回环地址:0:0:0:0:0:0:0:1,::1/128,只有一个

    • 多播地址:FF00::/8,用于多播通信

    • 本地链路地址:FE80::/10,私有地址,只能在本地链路使用

    • 全球单播地址:除了以上,其他都是
    全球路由前缀 子网标识 接口标识
    48b 16b 64b

    [!TIP]

    由于接口标识可对MAC地址进行编码,所以可以通过IPv6地址直接找到MAC地址,==省去ARP协议==

  • V4和V6地址转换

    • 双栈:同时支持V4和V6
    • 隧道:V4数据报封装在V6数据报中
    • NAT64:V6数据报封装在V4数据报中

IV.路由协议

RIP协议

  • 应用层,UDP封装
  • 基于距离向量
  • 路由器到直连网络的距离定义为1
  • 只和==相邻==路由器交换自己的路由表
  • 周期30s交换更新路由表,180秒无报文则此路由失效
  • 收敛:每个路由器都知道到达本自治系统AS内各网络的最短距离和下一跳路由器

  • 计算流程:

    • A向相邻的B发送路由表a

    • B将a中所有距离条目加上与A的距离,下一跳改为A

    • 和自身路由表进行比较,选最短的
  • 存在问题:网络N1突然失效,相邻路由器更新成16不可达之后,被相邻其他无法获取到N1状态的路由器路由表影响,16不可达被覆盖为可达。直到多次后才能确认不可达。

OSPF协议

  • 网络层,IP数据报

  • 基于链路状态(量化为代价)
  • 支持CIDR
  • 有鉴别,保证安全
  • 链路状态有32位序号,越大越新
  • 代价计算

    cost = 100Mbps/链路带宽

    cost大于1则保留整数,小于1则记为1

  • 链路状态表:相邻路由 + 代价

  • 区域划分:为适配大规模网络,OSPF将一个自治系统AS再划分为多个==区域==,限制洪泛范围,减少通信量,但OSPF更复杂了

    • ==主干==区域连接若干区域
    • 主干路由器:主干区域内的路由器,包含边缘
    • 区域内路由器:只在区域内,不连接主干路由器
    • 区域边界路由器:属于主干路由器,与其他区域连接

链路建立和维护

  1. 问候(hello)

    • 建立邻居表
    • 发送周期10s,若40s未收到某方hello则视为其已经不可达
  2. 链路状态更新分组(LSU)

    • 链路状态通告(LSA):直连网络 + 邻居路由器的链路状态信息

    • ==可靠==的洪泛发送

      可靠:需要收到的路由器发送==链路状态确认==报文

      洪泛:向所有相邻路由器发送,它们收到后继续转发给相邻

  3. 链路状态数据库(LSDB)

    • 每一个路由器都存储,记录链路状态通告(LSA)
    • 通过洪泛使得网络中所有LSDB一致

报文类型

基本工作流程

BGP协议

  • EGP:与RIP、OSPF内部网关协议(IGP)相对的外部网关协议

  • 连接多个AS的协议
  • 非选择最佳,只求能比较好的到达
  • 基本概念

    • 各AS选择某个路由器作为BGP发言人
    • BGP发言人运行BGP + AS内部网关协议
    • 目的:构造出AS间不存在环路的树形结构连通图
    • 路径向量:(AS1,AS2)
  • 报文

V.IP多播

基本概念

  • 一对多
  • 多端口转发
  • IPv4中使用D类多播地址:1110****.*.*.*
    • ==224==.0.0.0 ~ ==239==.255.255.255
    • 一个D类地址代表一个多播组

!局域网硬件多播

解决本地局域网内多播数据包分发问题

  1. IPv4地址映射多播MAC地址
    • 多播MAC号:前25比特相同,01:00:5E:0 :···
    • 后23位来自多播IP地址后23位
    • 由于D类前4位为1110,后23位映射到多播MAC,有32-4-23=5位没映射到MAC地址上,使得一个MAC地址对应2^{5}=32个IP上
    • 在网络层还需要过滤非目的IP的报文(IP和MAC双匹配)

因特网多播

解决多播组设备寻址问题

IGMP

  • 多播路由器运行IGMP,监视本局域网内多播组成员变化

  • 路由器不知道多播组成员数量和网络分布情况
  • IGMP报文类型
    • 成员报告报文:设备->多播路由器,加入
    • 成员查询报文:多播路由器->设备,是否存活
    • 离开组报文:设备->多播路由器,直接退出

多播路由选择协议

  • 目标:为每个多播组建立多播转发树,使报文只转发一次
  • IP多播组沿多播转发树洪泛,能传到所有拥有多播成员的多播路由器
  • 多播路由器再进行硬件多播

VI.移动IP

  • 原因:移动设备在某个网络下获得了IP地址

    • 设备在移动状态下需要在不同网域下使用网络

    • 正在提供服务的服务器也需要定位到此设备,移动设备IP不能改变
  • 解决方法:代理

    1. 设备在归属地获得永久(归属)地址,上级路由称为归属代理
    2. 设备移动到其他网络下
    3. 设备使用代理发现协议,在外地网络注册,并提供永久地址和归属代理地址
    4. 外地代理通过以上信息与归属地代理建立IP隧道
    5. 归属地代理==接收==到数据后,转发给外地代理,外地代理转发给移动设备
    6. 移动主机==发送==数据时,交给外地代理直接转发,不需要送给归属代理

第五章 传输层

I.概述

物理层+数据链路层+网络层 -> 主机到主机通信

传输层 -> 进程到进程通信

端口号

区分计算机类进程的数据报文

同设备内一个端口只能建立一个连接

  • 长度:2B
  • 范围:0 ~ 65535(2^{16}-1
  • 分类
    • 熟知端口:0~1023
    • 登记端口:1024~49151
    • 临时端口:49152~65535

复用分用

  • 复用

    • TCP/UDP 复用:理解为应用报文打包
    • IP复用:传输层报文打包为IP报文
  • 分用:理解为解包并分流到各自应用进程

II.UDP

无连接不可靠,不使用流量控制和拥塞控制

检查到错包就丢弃

支持广播、多播、单播

伪首部序号为17

UDP首部

源端口 目的端口 长度 校验和
2B 2B 2B 2B
  • 源端口:可选,不需要时全0
  • 目的端口:
  • 长度:首部+数据,最小8(首部长度)
  • 校验和:需要加上12B伪首部

III.TCP

面向连接 可靠

对==报文段==进行确认

面向字节流

伪首部中序号为6

TCP首部

  • 序号:32b,代表本报文段第一个字节序号
  • 确认号:32b,指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号
  • 数据偏移:4b,数据报长度,单位4B
  • 保留:6b,无用置0
  • 短状态:1有效
    • URG:紧急报文,首先传送
    • ACK:为1则确认字段有效
    • PSH:尽快交付,不保留在缓冲区
    • RST:复位,释放连接再重新连接
    • SYN
    • 连接请求报文:SYN=1,ACK=0
    • 连接确认报文:SYN=1,ACK=1
    • FIN:终止位,代表要求释放连接
  • 窗口:16b,代表接收方所允许的对方发送的数据量(rnwd)
  • 校验和:12b,伪首部+首部+数据载荷计算反码算数运算求和
  • 紧急指针:16b,URG=1时才有效,指明紧急数据的长度,单位1B

建立连接

三次挥手

  • 第一次:SYN=1,ACK=0,==SYN占用一个序号==
  • 第二次:SYN=1,ACK=1,==SYN占用一个序号==
  • 第三次:ACK=1,可带可不带数据,不带数据则不占用序号

[!TIP]

  • 采用“三报文握手”而不是“两报文握手”来建立TCP连接,是为了防止已失效的TCP连接请求报文段突然又传送到了TCP服务器进程,因而导致错误。
  • 左边:
    • CLOSED
    • SYN-SENT
    • ESTABLISHED
  • 右边:
    • CLOSED
    • LISTEN
    • SYN-RCVD
    • ESTABLISHED

四次挥手

  • 第一次:FIN=1,ACK=1,==FIN占用一个序号==
  • 第二次:ACK=1,继续传送数据
  • 第三次:FIN=1,ACK=1,数据传送完,使用FIN表示准备断开
  • 第四次:ACK=1,对方收到后断开,己方等待2MSL

[!TIP]

  • 等待2MSL是防止第四次丢失,导致对面无法关闭
  • 左边:
    • ESTABLISHED
    • FIN-WAIT1
    • FIN-WAIT2
    • TIME-WAIT
    • CLOSED
  • 右边:
    • ESTABLISHED
    • CLOSE-WAIT
    • LAST-ACK
    • CLOSED

流量控制

  • 接收窗口(rwnd):发送方维持,代表缓冲区能接受的容量
  • 实现端到端的流量控制(两个进程直接),数据链路层是节点之间的流量控制

滑动窗口+持续计时器

拥塞控制

  • 种类

    • 开环控制:初始即设计好一切情况

    • 闭环控制:引入反馈,边监测边调整
  • 拥塞窗口(cwnd):发送方的窗口大小

  • 发送上限 = min[cwnd, rwnd]

慢开始

  • 拥塞窗口cwnd从1开始,每经过一次确认(时隔1TTL)后乘2

  • 慢开始门限(ssthresh):到达限制后cwnd进入拥塞避免

拥塞避免

  • cwnd到达ssthresh后,每次加一
  • 直到发生超时(拥塞)或者收到三次确认报文,进入下一种调整模式

快重传

  • 报文丢失(非拥塞状态)
  • 接受方发送三次确认报文冗余ACK
  • 发送方立即重传对方所需报文段

快恢复

收到==三次确认报文==后进行

  • ssthresh调为当前cwnd一半
  • cwnd调为当前一半
  • 进入拥塞避免

第六章 应用层

I.网络应用模型

C/S模型

  • 服务器:总是打开,提供服务,面向任务
  • 客户机:请求服务,面向用户
  • 特点:
    • 体系内计算机地位不平等
    • 客户机间不直接通信
    • 可扩展性不佳

P2P模型

  • 对等方(Peer):任意一对计算机,直接相互通信
  • 可扩展性好
  • 网络健壮性好

II.动态主机配置协议(DHCP)

动态分配地址

基于UDP,主机端口68,服务器67

!工作流程

  1. 客户端加入:客户端广播DHCP发现,源地址全0,目的地址全1
  2. 服务器接手:DHCP服务器收到后,广播DHCP提供,源地址服务器地址,目的地址全1
  3. 客户端接受此服务器,广播DHCP请求,源地址全0,目的地址全1
  4. 服务器广播DHCP确认,分配IP地址,源地址服务器地址,目的地址全1

报文

种类 目的 源IP 目的IP
DHCP发现 客户端寻找DHCP服务器 0.0.0.0 255.255.255.255
DHCP提供 DHCP服务器确认给此客户端提供服务 服务器地址 255.255.255.255
DHCP请求 客户端要求分配IP 0.0.0.0 255.255.255.255
DHCP确认 服务器分配IP 服务器地址 255.255.255.255

III.域名系统(DNS)

命名系统,方便记忆

基于UDP协议,53号端口

域名服务器

  1. 根域名服务器:被所有本地域名服务器所知
  2. 顶级域名服务器:com、cn、site等
  3. 权限域名服务器
  4. 本地域名服务器

解析过程

  • 递归查询

    • 本地主机向本地域名服务器查询
    • 本地域名服务器向根域名服务器查询
    • 根域名服务器向顶级域名服务器查询
    • ···
    • 主机->本地->==根域名==->顶级域名->权限域名
    • 根域名负载大 ,基本不用
    • 主机和本地域名服务器之间只使用递归查询
  • 迭代查询

    • 本地主机向本地域名服务器查询
    • 本地域名服务器:
    • 向根域名服务器查询
    • 向顶级域名服务器查询
    • 向权限域名服务器查询
    • 本地域名服务器向主机返回结果

IV.文件传输系统(FTP)

交互式访问,允许用户指明==文件类型和格式==

控制连接:端口21,TCP

数据连接:端口20,TCP

会话过程,服务器保留用户状态信息,追踪用户在远程目录树位置

控制连接

  • 传输控制信息
  • 会话期间保持打开

数据连接

  • 接收到文件传输请求后,创建数据传送进程和数据连接
  • 传送完毕后关闭
  • 模式
    • 主动模式PORT:客户端发送PORT命令和==客户端随机开放端口号x==,服务器通过20与x连接
    • 被动模式PASV:客户端发送PASV命令,==服务器在本地开放随机端口y==,告知客户端
    • 选择权都在客户端上

网络文件系统NFS

  • FTP:修改服务器上文件,先==全部==下载到本地,修改完再传回
  • NFS:远程打开文件,在文件特定位置读写修改

V.电子邮件(Email)

组成结构

  • 用户代理UA:程序,如QQ邮箱、Outlook软件
  • 邮件服务器:用于发送、接收邮件
  • 邮件发送和读取协议:存取协议
  • 现状:用户通过浏览器使用HTTP协议发送邮件,SMTP只在服务器之间

邮件格式和MIME

格式

  • 信封:从内容自动提取目的人和标题

  • 内容
    • 首部
    • FROM
    • To
    • Subject
    • 主体内容

MIME

由于SMTP只能传输7位ASCII码文件,需要MIME进行内容扩展,可以讲图片音视频等转换为7位ASCII,并读取恢复

!发送协议IMAP

SMTP==服务器==端口号:25

  1. 连接建立

    • 发送方SMTP服务器(客户端)与接收方SMTP服务器建立TCP连接
    • 接收方服务器发出220服务就绪
    • 客户端发送HELLO+客户端主机名
    • 接收方发送250 OK
  2. 邮件发送

    • 客户端发送MAIL FROM+主机名
    • 接收方服务器准备好则发送250 OK
    • 客户端发送RCPT TO+收件人地址
    • 接收方服务器准备好则发送250 OK
    • 客户端发送DATA命令
    • 接收方服务器准备好则发送250 OK
    • 客户端发邮件内容,.代表结束
    • 接收方服务器准备好则发送250 OK
    • 客户端发送QUIT
    • 接受方服务器发送221,==主动断开==

接收协议POP3和IMAP

  • POP3
    • TCP,端口110
    • 工作方式
    • 下载并保留:主机下载完邮件保留在SMTP服务器上
    • 下载并删除:主机下载完邮件删除SMTP服务器的文件
  • IMAP
    • 允许用户创建文件夹,并移动位置
    • 允许用户只获取邮件部分报文

VI.万维网WWW

URL

  • 统一资源定位符

  • <协议>://<域名(或IP)>:<端口>/<路径>

    [!TIP]

    当浏览器输入URL开始访问(无缓存):

    1. 主机向本地域名服务器发出DNS查询
    2. 本地域名服务器
      • 向根域名服务器查询
      • 向顶级域名服务器查询
      • 向权限域名服务器查询
    3. 本地域名服务器将结果IP返回主机
    4. 主机发起TCP连接请求,三次握手后建立连接
    5. 主机发出HTTP请求
    6. 服务器处理请求,返回HTTP报文
    7. 主机收到报文后进行处理
    8. 传输结束,四次挥手结束TCP连接

HTTP

无连接,TCP确保可靠连接

无状态,引入Cookie后实现了有状态

  • Cookie

    • 网站服务器为用户生成Cookie识别码,在服务器中存储用户信息
    • 网站服务器发送给用户的响应报文中有"Set cookie: ****"
    • 用户在自己的Cookie文件中存储此信息
    • 用户下次访问时,在请求报文中添加Cookie值
    • 服务器识别后提供个性化服务
  • 非持续连接 HTTP1.0:==每个元素==传输都建立一次TCP连接,*2TTL开销**

  • 持续连接 HTTP1.1:建立一次TCP连接后保持,主机发出请求,服务器发送文件

    • 非流水线:一次请求,一个文件

    • 流水线:可连续发送请求(可视为一次),服务器连续发送多个文件

    [!WARNING]

    !发送大文件时,需要注意TCP窗口大小(遵循慢启动)

  • 报文结构

    • 请求报文

    • 方法+URL+版本:GET xidian.edu.cn HTTP1.1

    • 首部字段名+值:Keep Alive:1

    • 响应报文

    • 版本+状态码+短语:HTTP1.1 202 Accepted

声明:AweiP Cache|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 计算机网络个人笔记


且愿饮冰而热血不凉