计算机网络

Network

Posted by Kenshin on December 20, 2022
本文字符数:英文3646字 | 中文45857字

计算机网络

计算机网络体系结构

  • 定义

    • 最简洁:一些互连的、自治的计算机系统的集合
    • 广义观点:能实现远程信息处理的系统或进一步能达到资源共享的系统
    • 资源共享观点:以能够相互共享资源的方式互连起来的、自治的计算机系统的集合
    • 用户透明性观点:一个能为用户自动管理资源的网络操作系统,能够调用用户所需要的资源
    • 自治计算机指能进行自我管理、配置和维护的计算机
  • 世界上第一个计算机网络:ARPAnet

  • 组成

    • 物理组成
      • 硬件:主机,通信处理机(前端处理器),通信线路(有线/无线),交换设备(交换机等连接设备)
      • 软件:包括实现资源共享的软件和方便用户使用的各种工具软件
      • 协议:数据在线路上传输遵循一定的规则
    • 工作方式组成
      • 边缘部分:由所有主机组成,用来进行通信和资源共享
      • 核心部分:由大量的网络和连接网络的路由器组成,为边缘部分提供连通性和交换服务
    • 功能组成
      • 通信子网:由各种传输介质、通信设备和相应的网络协议组成,为网络提供数据传输、交换和控制能力,实现联网计算机之间的数据通信。包括物理层、数据链路层、网络层
      • 资源子网:由主机、终端以及各种软件资源、信息资源组成,负责全网的数据处理业务,向网络用户提供各种网络资源与服务
  • 功能

    • 数据通信:最基本和最重要,包括连接控制、传输控制、差错控制、流量控制、路由选择、多路复用等
    • 资源共享:包括数据、软件和硬件
    • 分布式处理(对用户透明),信息综合处理(集中或分级),负载均衡,提高可靠性(互为替代机),…
  • 分类

    • 按分布范围:广域网,城域网,局域网,个人区域网
    • 按拓扑结构:星形网络,总线型网络,环形网络,网状型网络
    • 按传输技术:广播式网络,点对点网络
    • 按使用者:公用网,专用网
    • 按数据交换技术:电路交换,报文交换,分组交换
  • 标准化工作:互联网草案 → 建议标准(RFC,request for comments 文档)→ 草案标准 → 互联网标准

  • 相关组织:国际标准化组织 ISO,国际电信联盟 ITU,美国电气和电子工程师协会 IEEE

  • 分层结构:OSI 参考模型 7 层,TCP/IP 模型 4 层(看作 5 层)

    • 实体:任何可发送或接收信息的硬件或软件进程,通常是一个特定的软件模块
    • 对等层:不同机器上的同一层
    • 对等实体:同一层上的实体
  • 协议:控制两个对等实体进行通信的规则

    • 语义:对构成协议元素的含义的解释,规定了所要完成的功能
    • 语法:规定了数据与控制信息的结构或格式
    • 同步:规定了各种操作的条件、时序
  • 接口,又称服务访问点:每一层向上层提供服务访问点,同一结点内相邻两层间交换信息的连接点

    • 服务数据单元 SDU,协议控制信息 PCI,接口控制信息 ICI
    • 协议数据单元 PDU:同等层对等实体间传送的数据单元,n-SDU+n-PCI=n-PDU,n-PDU=(n-1)-SDU
    • 接口数据单元 IDU:相邻层接口间传送的数据单元 n-SDU+n-ICI=n-IDU
  • 服务:下层为相邻上层提供的功能调用,通过接口

    • 服务原语:请求,指示,响应,证实
    • 面向连接的服务:事先建立双方的通信线路(包括建立、使用和释放)。TCP 是面向连接服务的协议,电话系统是一个面向连接的模式
      • 可靠信息流,信息回复确认;占用通信信道
    • 面向无连接的服务:把带有目的地址的包(报文分组)传送到线路上,由系统选定路线进行传输。IP 和 UDP 是面向无连接服务的协议,邮政系统是一个无连接的模式
      • 不占用通信信道;信息流可能丢失,信息无回复确认
    • 有应答服务:接收方在收到数据后向发送方给出相应的应答
    • 无应答服务:接收方收到数据后不自动给出应答
    • 可靠服务:网络具有检错、纠错、应答机制,能保证数据正确、可靠地传送到目的地
    • 不可靠服务:网络尽量但不保证数据正确、可靠地传送到目的地,是一种尽力而为的服务
    • 并非在一个层内完成的全部功能都称为服务,只有能够被高一层实体看得见的功能才称为服务
    • 第 n 层的实体使用第 n-1 层的服务,向第 n+1 层提供本层的服务(第 n 层及其以下各层所提供服务的总和),最高层向用户提供服务
    • 上一层只能通过相邻层的接口使用下一层的服务,而不能调用其它层的服务,即下一层提供服务的实现细节对上一层透明
  • 应用层:用户对用户

    • 任务:提供系统与用户的接口
    • 功能:文件传输,访问和管理,电子邮件服务
    • 协议:FTP、SMTP、POP3、HTTP
  • 表示层:数据格式转换,数据加密和解密,数据压缩及解压

  • 会话层:在两个节点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传送

  • 传输层:应用对应用,进程对进程

    • 传输单位:TCP 报文段或 UDP 用户数据报
    • 任务:负责主机中两个进程之间的通信
    • 功能:为端到端提供可靠的传输服务,流量控制、差错控制、服务质量等管理服务(第一个),复用分用
    • 协议:TCP、UDP、ARQ
  • 网络层:主机对主机

    • 传输单位:数据报/IP 分组
    • 硬件:路由器
    • 任务:将传输层传下来的报文段封装成分组;选择适当的路由,使传输层传下来的分组能交付到目的主机
    • 功能:为传输层提供服务,组包和拆包,路由选择,拥塞控制
    • 协议:IP、ICMP、IGMP、ARP、RARP
  • 数据链路层:提供相邻结点之间的通信,检测并校正物理层传输介质上产生的传输差错,使链路对网络层显现为一条无差错、可靠的数据传输链路

    • 传输单位:数据帧
    • 硬件:交换机、网桥
    • 任务:将网络层传下来的 IP 数据报组装成帧,要加报头和报尾
    • 功能:链路连接的建立、拆除、分离,帧定界和帧同步,差错检测(OSI 中有差错控制、流量控制)
    • 协议:PPP、HDLC
  • 物理层:定义数据终端设备 DTE 和数据通信设备 DCE 的物理和逻辑连接方法

    • 传输单位:比特流
    • 硬件:集线器、中继器
    • 任务:透明地传输原始比特流
    • 功能:为数据端设备提供传送数据通路
  • 共同点:分层,独立协议栈,都可以解决异构网络的互联(OSI 最初没有)

  • OSI 参考模型 TCP/IP 模型
    3 个主要概念:服务、接口、协议 没有明确区分服务、接口、协议
    产生在协议发明之前,协议有很好的的隐藏性 产生在协议发明之后,不适用于非 TCP/IP 协议栈
    共有 7 层 共有 4 层,网络接口层包括物理层和数据链路层
    网络层:连接和无连接 网络层:仅有无连接
    传输层:仅有面向连接 传输层:面向连接和无连接

    性能指标

    • 总时延=发送时延+传播时延+处理时延+排队时延
      • 发送时延或传输时延:主机或路由器发送数据帧所需要的时间。发送时延=数据帧长度/发送速率(带宽)
      • 传播时延:电磁波在信道中传播所需要的时间。传播时延=信道长度/电磁波在信道上的传播速度
      • 处理时延:主机或路由器在接收到分组时进行处理所需要的时间
      • 排队时延:分组需要在路由器的输入队列和输出队列中排队等待处理和转发
      • 一般处理时延和排队时延都忽略不计。高速网络链路提高的是数据发送速率,即减小了发送时延
    • 时延带宽积:又称以比特为单位的链路长度。时延带宽积=传播时延 x 带宽
    • 往返时间:从发送方发送数据开始,到发送方收到来自接收方的确认消息,总共经历的时间
    • 信道利用率:指某信道有百分之几的时间是被利用的(有数据通过)
    • 网络利用率:全网络的信道利用率的加权平均值
      • 利用率不是越高越好,过高会导致数据在路由器中转发时延过长
    • 带宽:模拟信号中表示频带宽度,数字信号表示在数据链路上每秒传输的比特数
    • 数据传输率由总时延决定,带宽仅决定了发送时延

物理层

  • 信号是数据的电气或电磁表现,数据是传送信息的实体
    • 基带信号是将数字信号 0 和 1 直接用两种电压表示,然后传送到数字信道上去传输,称为基带传输
    • 宽带信号是将基带信号进行调制后形成模拟信号,然后再传送到模拟信道上去传输,称为宽带传输
    • 宽带可以等同于频带传输(都是模拟信号),只是宽带传输有更多的子信道,并且可以同时发送信号
  • 信源,信道,信宿
  • 数据传输方式:串行传输,并行传输
  • 通信方式:同步通信(时钟频率相等,帧),异步通信(每一字节增加一个起始比特一个终止比特,共 10bit)
  • 通信模式:单向通信(单工),双向交替通信(半双工),双向同时通信(全双工)
  • 比特率:又称为信息传输速率,表示单位时间内数字通信系统所传输的二进制码元个数,单位 bit/s
  • 波特率:又称为码元传输速率,表示单位时间内数字通信系统所传输的码元个数,也可称为脉冲个数或信号变化的次数,单位波特 Baud
  • 比特率=波特率*单个调制状态对应的二进制位数;1 码元携带 Nbit 信息时,1Baud=Nbit/s
  • 数据传输速率为 10Mbit/s 的以太网的码元传输速率为 20Baud
  • 采样定理:采样频率必须大于等于最大频率的两倍,才能保证采样后的数字信号完整保留原始模拟信号的信息
  • 码间串扰:高频分量衰减导致接收端信号波形失去了马元之间的清晰界限
  • 奈奎斯特定理:在采样定理和无噪声的基础上,$C_{max}=f_{采样}log_2N=2flog_2N (bit/s)$,f 表示理想低通信道的带宽,N 表示每个码元离散电平的数目
    • 给出了在无噪声情况下的最大码元传输速率,即 2f(即 2W)
    • 只要 N 足够大,编码足够好使得一个码元携带无穷个比特,则最大数据传输速率 C~max~可以达到无穷大
    • 理想低通信道的最高波特率为 2,理想带通信道的最高波特率为 1
  • 信噪比:信号的平均功率和高斯噪声的平均功率之比,$信噪比=10log_{10}{S/N} (dB)$
  • 香农公式:$C_{max}=W*log_2{(1+S/N)}$,W 为信道的带宽(频带宽度)
    • 要使极限传输速率提高,必须提高信道的带宽或信道中的信噪比
    • 只要信息的传输速率低于极限传输速率,一定能找到某种办法实现无差错的传输
    • 实际信道的传输速率要比极限速率低不少
  • 区别

    • 奈奎斯特定理公式指出了码元传输的速率是受限的,由于码间串扰的影响不能任意提高
    • 香农公式给出了信息传输速率的极限,想要突破除了提高带宽或信噪比别无他法
  • 调制
    • 数字数据调制为模拟信号
      • 带通调制:将基带信号的频率范围搬移到较高频段传输。幅移键控 ASK,频移键控 FSK,相移键控 PSK
      • 基带调制:低频成分改变波形,仍然是基带信号
      • 正交振幅调制 QAM:同频率 ASK 和 PSK 结合形成叠加信号。设波特率为 B,采用 m 个相位,每个相位 n 种振幅,则数据传输率 R=Blog~2~(mn)
    • 模拟数据调制为模拟信号:为了实现传输的有效性,需要较高的频率;使用 FDM 技术,充分利用带宽
  • 编码
    • 数字数据编码为数字信号 同 1 异 0,低 0 高 1
      • 非归零码 NRZ:低 0 高 1(或反过来),缺点是无法判断一个码元的开始和结束,收发双发难以保持同步
      • 非归零反相编码 NRZ-I:电平翻转表示 0,不变表示 1
      • 曼彻斯特编码:一个码元分为相等的两个间隔,前高后低表示 1,前低后高表示 0
        • 将每个码元中间的跳变作为收发双方的同步信号,无需额外的同步信号,又称自同步码
        • 频带宽度是原始的基带宽度的两倍
      • 差分曼彻斯特编码:若码元为 1,则前半个码元的电平与上一个码元的后半个码元的电平一样;若码元为 0,则前半个码元的电平与上一个码元的后半个码元的电平相反,每个码元中间有一次电平跳转
        • 比较复杂,但抗干扰性较好
      • 4B/5B 编码:每四位转换为五位,其中 16 种作为控制码或保留
    • 模拟数据编码为数字信号
      • 脉冲调制编码:采样,量化,编码。采样定理
  • 数据传输方式
    • 电路交换:建立一条被通信双方独占的物理通路
      • 优点:通信时延小,实时性强,有序传输,适用范围广,控制简单,避免冲突
      • 缺点:建立连接时间长,信道利用率低,缺乏统一标准,灵活性差
    • 报文交换:单位是报文,携带目的地址、源地址等信息,在交换节点采用存储转发的传输方式
      • 优点:无需建立连接,动态分配线路,提高可靠性,提高线路利用率,提供多目标服务
      • 缺点:存储转发时延(接收报文,检验正确性,排队,发送时间等);对报文大小没有限制,要求网络节点有较大的存储缓存空间
    • 分组交换:将报文分割为分组,携带源地址、目的地址、编号信息
      • 优点:加速传输,简化了存储管理,减少了出错概率(分组较短)和重发数据量
      • 缺点:存在传输时延;数据报服务存在失序、丢失或重复分组现象,到达目的节点时要对分组按编号进行排序等工作;虚电路服务需要有呼叫建立、数据传输和虚电路释放三个过程
    • 数据报:
      • 发送分组前无需建立连接
      • 网络尽最大努力交付,传输不保证可靠性和有序性(可靠性由用户主机保证)
      • 交换机可以同时接收和转发(不是同一个),减小了延迟,大大提高了吞吐量
      • 故障时可以更新转发表,寻找替代路径,适应能力强
      • 不独占链路,资源利用率高
    • 虚电路:
      • 必须建立连接,不再需要寻找路径,相对数据报方式时延较小
      • 分组路径相同,一定按序到达目的主机(可靠性由网络保证)
      • 分组首部不包含目的地址,而是包含虚电路标识符,相对数据报方式开销小
      • 每个分组都含有虚电路号,而不是源和目的地址
      • 虚电路号只具有局部含义,即相邻节点之间有效
      • 出现故障时,所有经过该交换机或该链路的虚电路将遭到破坏
      • 所有经过失效路由器的虚电路都要被终止,即使路由器很快恢复正常
      • 分为永久性 PVC 和交换型 SVC
  • 传输介质在物理层下面,又称为第 0 层,传输媒体层等

  • 导向性传输介质:
    • 双绞线:分为非屏蔽 UTP 和屏蔽 STP。用放大器放大衰减的模拟信号,用中继器将失真的数字信号整形
    • 同轴电缆:50Ω 基带同轴电缆,75Ω 宽带同轴电缆
    • 光纤:频带宽、衰减小、速率高、体积小、抗雷电和电磁干扰性好、误码率低、质量轻、保密性好
      • 单模光纤:衰减较小,适合远距离传输;多模光纤:容易失真,只适合近距离传输
  • 非导向性传输介质:短波,微波,红外线,可见光等
  • 物理层的功能:确定与传输介质的接口有关的一些特性,即屏蔽各种物理设备的差异
    • 机械特性:定义物理连接的边界点即接插装置,如接口的形状、尺寸、引线数目和排列等
    • 电气特性:电压高低,阻抗匹配,传输速率,距离限制
    • 功能特性:接口部件的信号线的用途,电压的电平的意义
    • 规程特性,或过程特性:物理线路上对不同功能的各种可能事件的出现顺序,即时序关系
    • 接口标准:EIA, RS-232-C, ADSL, SONET/SDH
  • 物理层设备
    • 中继器:保证信号质量的前提下,双绞线的最大传输距离是 100m,用中继器再生失真的数字信号
      • 不能连接两个不同速率的局域网,中继器出现故障对相邻的两个网段都会产生影响
      • 如果网络设备具有存储转发功能,就可以连接两个不同的协议(不同速率的网段)
      • 5-4-3 规则:任意两台计算机之间最多不能超过 5 段线,4 个中继器,其中只能有 3 个中继器直接与计算机或网络设备连接,否则会导致网络故障
    • 放大器用于模拟信号放大
    • 集线器:Hub,多端口中继器。某个端口收到数据后,从除输入端口外的所有端口广播出去
    • 通过中继器或集线器连接起来的几个网段仍然是一个局域网
    • 使用集线器的以太网在逻辑上仍是一个总线网,各工作站还是使用 CSMA/CD 协议,并共享逻辑上的总线

数据链路层

  • 功能:链路管理、帧定界和帧同步(接收方区分出起始和终止)、差错控制、透明传输
  • 有连接一定有确认
  • OSI 中数据链路层采用面向连接的 HDLC 协议,提供可靠传输的服务。TCP/IP 中使用的是 PPP 协议或 CSMA/CD 协议(拨号入网或以太网入网),不使用序号和确认机制,当检测到差错时或者丢弃而不进行任何处理(PPP 和 CSMA/CD),或者要求重传(HDLC,较少使用)。若需要可靠传输,由 TCP 负责重传,而不是数据链路层。使用 PPP 和 CSMA/CD 协议时进行差错检验是为了不收下有差错的帧,即保证上交主机的帧都是没有传输差错的。描述为“以很接近 1 的概率任务上交主机的帧是没有传输差错的”
  • OSI 中数据链路层有流量控制和差错控制,TCP/IP 中流量控制和差错控制被移到了传输层。无论哪种模型,帧同步是数据链路层,拥塞控制是传输层(和网络层共同工作)
  • 数据链路与链路的区别:多了实现通信规程需要的硬件和软件
  • 电路接通与数据链路接通的区别:链路两端的节点交换机开机,此时物理连接能够传送比特流,但数据传输并不可靠;在物理连接基础上建立数据连接,由于具有检测、确认和重传等功能,使其变为可靠的数据传输。数据链路断开连接时,物理连接不一定跟着断开

组帧

  • 为什么组帧时需要首部和尾部,而报文分割成分组(IP 数据报)只需要首部?
  • 网络中以帧为最小单位传输,需要确认在比特流中的开始结束,而分组是包含在帧的数据部分
  • 字符计数法:用特殊字符表示帧的开始,再用一个计数字段表明帧长(包括计数字段长)

    • 计数字段出现差错则失去帧同步,故很少被使用
  • 字节填充的首尾定界符法:解决首尾界符法(SOH, EOT)的透明传输问题,用转义字符 ESC(包括本身也要转义)

    • DLE STX, DLE ETX

    • 由于以太网在传送帧时,各帧之间必须有一定的间隙,从帧开始定界符后连续到达的比特流都属于同一个 MAC 帧,因此 MAC 帧不需要帧结束定界符,也不需要使用字节插入来保证透明传输
    • 普通帧透明传输用 ESC(1BH)。PPP 帧的帧定界字段为 0x7E
  • 比特填充的首尾标志法:HDLC 的标志字段为 F(01111110)

    • 透明传输:发送方遇到连续 5 个 1 就在后面插入 0,接收方遇到 5 个 1 就删除后面的 0
    • 容易由硬件实现,性能优于字符填充法
  • 物理编码违例法:违规编码法,利用物理介质上编码的违例标志,如曼彻斯特编码中的高高或低低

    • 只适用于采用冗余编码的特殊编码环境

差错控制

  • 影响因素:信道固有噪声干扰;解决方法:提高信噪比
  • 位错 CRC、帧错 ARQ、前向纠错 FEC

  • 检错编码:奇偶校验码。循环冗余码 CRC:
    • 具有 r 个检测位的多项式能够检测出所有长度小于或等于 r 的突发错误
    • 长度大于 r+1 的错误逃脱的概率是 1/2^r^
    • 循环冗余码仅能做到无差错接收
    • CRC 具有纠错功能,但一般出错直接重传,因此默认作为检错码
  • 纠错编码:海明码:具有一位纠错能力
    • 确定校验码的位数 r(数据位数为 k):2^r^ - 1 ≥ k + r
    • 确定校验码的位置:海明码按序 M~N~···M~1~,P~i~的位置为 2^i-1^
    • 确定数据的位置:数据位按序填入海明码
    • 求出校验位的值:被校验数据码的海明位号等于校验该数据码的各校验码海明位号之和,且校验码不需要再被校验。校验位 P~i~的值即为所有需要 P~i~校验的数据位求异或
    • 海明码的校验:假设出错位为 e~1~, e~2~, e~3~, e~4~,如 M~7~下标 7 为 0111,对应 e~4~, e~3~, e~2~, e~1~(倒过来看),故与 e~1~, e~2~, e~3~有关,用异或符号连接
      • e~1~ = M~1~⊕M~3~⊕M~5~⊕M~7~⊕M~9~
      • e~2~ = M~2~⊕M~3~⊕M~6~⊕M~7~⊕M~10~
      • e~3~ = M~4~⊕M~5~⊕M~6~⊕M~7~
      • e~4~ = M~8~⊕M~9~⊕M~10~
      • 若无错,则都为 0;若有错,按 e~4~, e~3~, e~2~, e~1~排序得到二进制序列对应十进制数即出错的位数
    • 码距:反映的是两个码字不一样的程度(码字对齐后不相同的位数),又称海明距离。许多码字的海明距只看最小的。
    • L - 1 = D + C 且 D ≥ C
      • 如果要检测出 d 位错误,D=d,C=0,得 L=d+1,需要一个海明距为 d+1 的编码方案
      • 如果要纠正 d 位错误,至少要检测出 d 位错误,D=C=d,L=2d+1,需要一个海明距为 2d+1 的编码方案
      • D≥C:海明码的纠错能力恒小于或等于检错能力

流量控制与可靠传输机制(传输层功能)

  • 流量控制:控制发送方发送数据的速率,使接收方来得及接收

    • 停止-等待流量控制:逐帧应答确认
    • 滑动窗口流量控制:发送窗口(单位为帧)达到最大尺寸时关闭网络层,接收窗口外的帧丢弃
  • 传输差错分为比特差错、帧丢失、帧重复、帧失序
  • 可靠传输指发送什么就接收什么(确认帧/捎带确认/累积确认,超时重传)
  • 自动重传请求 Automatic Repeat reQuest
    • 停止-等待协议(Stop-and-Wait 停等 ARQ)=停止等待流量控制技术+考虑不利因素(重传计时器)
      • 信道利用率:Td/(Td+RTT+Ta)
    • 后退 N 帧(Go-Back-N)协议(连续 ARQ):采用 n 位比特对帧编号,发送窗口 1<W~T~≤2^n^-1(否则无法判断后续帧是重传帧还是新帧),接收窗口=1。帧出错时接收方简单丢弃该帧及后续所有帧(只能按序接收)。支持累积确认
      • 信道利用率:N*Td/(Td+RTT+Ta)(捎带确认情况 Ta=Td)
    • 选择重传(Selective-Repeat)协议:设置缓冲区。发送窗口=接收窗口=2^n-1^时效率最大。发送窗口取拥塞窗口和接收窗口的最小值。不支持累积确认。不一定按序接收,但按序传送给主机。怀疑出错返回否定帧 NAK 要求重传
      • 极限信道利用率:理想情况下(不会发生碰撞),Td/(Td+RTT/2+Ta)
  • 发送缓存和接收缓存

介质访问控制:分配信道的使用权

  • 介质访问控制子层 Medium Access Control
  • 信道划分介质访问控制(静态分配信道)
    • 频分多路复用 FDMA:增加带宽,总带宽限制,保护频带
    • 时分多路复用 TDMA:普通的称为同步时分复用,统计时分复用(异步时分复用)是一种动态的时间分配
    • 波分多路复用 WDM:光的频分多路复用,在一根光纤中,分波器
    • 码分多路复用 CDMA:又称为码分多址,共享信道的频率和时间,是真正的动态复用技术
      • 不同站点的码片向量的规格化内积为 0
      • eg.某 CDMA 接收站收到(-1 +1 -3 +1 -1 -3 +1 +1),各站点码片向量 A(-1 -1 -1 +1 +1 -1 +1 +1),B(-1 -1 +1 -1 +1 +1 +1 -1),C(-1 +1 -1 +1 +1 +1 -1 -1),D(-1 +1 -1 -1 -1 -1 +1 -1)
        • 分别规格化内积为 1,-1,0,1。1 表示发送了比特 1,-1 表示发送了比特 0,0 表示没有发送数据
      • 抗干扰能力强,保密性强,语音质量好;减少投资和降低运行成本,主要用于无线通信系统(移动)
  • 随机访问介质访问控制(动态分配:随机接入),又称争用型协议
    • ALOHA 协议:不进行检测,一段时间没收到确认则认为发生冲突,等待一段随机时间后再次发送
    • 时分 ALOHA 协议 Slotted ALOHA:每个节点只有等到下一个时隙到来时才可发送数据,避免随意性,减少冲突的可能性,但还是想发就发,碰撞概率很大
    • CSMA 协议:载波侦听多路访问。发送前用载波侦听技术判断信道是否空闲
      • 1-坚持:空闲立即发送,否则保持监听,如果碰撞等待随机一段时间再重新侦听
      • p-坚持:以概率 p 发送数据,1-p 概率推迟到下一个时隙,一次循环。如果信道忙就持续侦听
      • 非坚持:空闲立即发送,否则延迟一段随机时间再重新监听
    • CSMA/CD 协议:带冲突检测,局域网中广泛应用(只能半双工)
      • 1 坚持,先听后发,边发边听,冲突停发(且向总线发一串阻塞信号通知其他有关站点停发),随机重发
      • 争用期:以太网端到端的往返时延,用 2τ 表示,又称为冲突窗口或碰撞窗口。只有经过争用期这段时间还没有检测到冲突,才能肯定这次发送不会发生冲突
        • 规定以太网最短帧长为 64B,故 10Mbit/s 以太网的争用期为 51.2μs,对于 100Mbit/s 以太网,争用期设置为 5.12μs(即电缆长度减少到 100m,且帧间时间间隔由 9.6μs 改为 0.96μs,都是 1/10)
        • 最小帧长=争用期 x 数据传输速率,可见最短有效帧长和最远两个站的距离及传输速率都成正比
      • 全双工不需要使用 CSMA/CD 冲突检测机制,半双工需要
      • 碰撞检测到的时机是发送端在发送数据时收到了数据,而不是碰撞发生的时刻
      • 截断二进制指数型退避算法:发生碰撞的站在停止发送数据后,要推迟一个随机时间才能再发送数据
        • 基本退避时间一般取争用期 2τ,重传参数 k=Min[重传次数,10]​
        • 从整数集合{0,1,…,2^k^-1}中随机选择一个数 r,重传时延就是r*2τ
        • 重传次数到16次仍不能成功时,说明网络太拥挤,直接丢弃该帧并向高层报告(检测到 16 次冲突)
        • 使重传需要推迟的平均时间随重传次数的增大而增大。但当数据发送量大时,可能导致一方的重传推迟时间越来越长,而另一方却在连续发送数据帧,称为捕获效应
      • 非受限协议:不用等待确认帧,故可忽略传播时延
    • CSMA/CA 协议:冲突避免。发送数据之前监听信道,如果信道空闲则发送。发送数据时先广播其他结点,让其他结点先不要发送
      • 在发送完一个帧后必须等待一段时间(帧间间隔),检查接收方是否发回帧的确认。若收到确认说明无冲突;若在规定时间内没有收到确认,表明出现冲突,重发该帧
      • 无线局域网不能使用 CSMA/CD:信号强度,隐蔽站
      • 实现碰撞避免的机制包括:预约信道,ACK 帧,RTS/CTS 帧
      • 进行信道预约主要是通过请求发送帧 RTS,request to send 和允许发送帧 CTS, clear to send
      • 仍采用二进制指数退避算法来解决冲突问题
  • 轮询访问介质访问控制(动态分配:受控接入)
    • 令牌传递协议,用于令牌环网中,适用于负载很高的广播信道,通过一个集中控制的监控站经过轮询过程后再决定信道的分配
    • 令牌(特殊格式的帧)沿环形总线在计算机之间依次传递,只有拿到令牌才能发送数据帧,不会发生冲突

局域网 Local Area Network

  • 特点:为一个单位所拥有的,地理范围和站点数目优先,具有较高的数据率、较低的时延和较小的误码率

  • 优点:

    • 具有广播功能,从一个站点可方便的访问全网,局域网上的主机可共享各种硬件和软件资源
      • 广域网不能用广播通信会造成网络堵塞,应采用点对点通信,使用交换机来转发
    • 便于系统的扩展和演变,各设备的位置可灵活地调整和改变
    • 提高了系统的可靠性、可用性
    • 各站为平等关系而不是主从关系
  • 主要技术要素:拓扑结构、传输介质、介质访问控制方法(最重要,决定局域网的技术特性)

  • 主要拓扑结构:星形网,环形网,总线型网,树形网(星形和总线型的结合)

  • 主要传输介质:双绞线(主流),铜缆,光纤

  • 拓扑实现:

    • 以太网:总线形逻辑,星形物理
    • 令牌环:环形逻辑,星形物理
    • FDDI:环形逻辑,双环物理
  • 主要介质访问控制方法:CSMA/CD,令牌总线,令牌环。前两种作用于总线型网,令牌环作用于令牌环网(环形局域网)

    • IEEE.802 标准定义局域网对应数据链路层和物理层,并将数据链路层拆分为媒体接入控制 MAC 子层和逻辑链路控制 LLC 子层。与接入到传输媒体有关的内容都放在 MAC 子层,LLC 子层与传输媒体无关,位于 MAC 子层之上,用于向网络层提供一个接口(SAP)以隐藏各种 802 网络之间的差异(提供无确认无连接、面向连接、带确认无连接、高速传送四种不同的连接服务类型)
    • 由于以太网在局域网市场中的垄断地位,DIX Ethernet V2 标准被广泛使用,LLC 子层已经作用不大
  • 以太网:采用总线拓扑结构,信息以广播方式发送,使用CSMA/CD技术对总线进行访问控制

    • 采用无连接的工作方式;不对发送的数据帧进行编号,也不要求对发送方发送确认
    • 提供不可靠服务,即尽最大努力交付,差错的纠正由 TCP 完成
    • 数据链路层不提供重传机制,但以太网有碰撞检测,则要重传,且越底层的重传越快。当发送方已经发送完数据再收到碰撞信号,就不需要重传,因为不能肯定碰撞是否是因为自己发送数据产生的
  • 每块网卡有全球唯一的 MAC 地址,固化在网卡的 ROM 中,共 48bit(6B)

  • DIX Ethernet V2 标准 MAC 帧格式(采用曼彻斯特编码)

    • img
    • 前导码 8B:使接收端与发送端进行时钟同步,可分为前同步码 7B 和帧开始定界符 1B
    • 目的地址、源地址均 6B,只有目的地址才能使用多播地址和广播地址
      • 单播地址:目的地址前八位的最后一位为 0
      • 组播地址:目的地址前八位的最后一位为 1,其余不全为 1
      • 广播地址:目的地址前八位的最后一位为 1,其余也全为 1
    • 类型 2B:指出数据交给哪个协议实体处理,如 0x0800 表示上层使用的是 IP 数据报
    • 数据 46~1500B:最短帧长 64B-首部尾部长度 18B=46B(区分噪声和因发生碰撞而异常终止的短帧),最大 1500B 是规定(保证每个站都能公平竞争接入到以太网,防止其他站等待时间过长)
      • 数据长度小于 46B 时,加入整数字节的填充字段 Pad(0~46B)
    • 校验码 FCS 4B:采用 CRC 检错 MAC 帧的数据部分、目的地址、源地址和类型字段(不纠错),不校验前导码
    • 802.3 帧与 DIX 以太帧不同处:帧起始标志:与 802.4 和 802.5 兼容;长度/类型域:替代了 DIX 帧中的类型域,> 1500 时表示类型,≤1500 时指出数据域的长度,在数据部分增加一个小的 LLC 头部提供类型
    • IMG_8367
  • 以太网的传输介质

  • 参数 传输媒体 每段最大长度/m 每段最大结点数
    10Base5 粗基带同轴电缆 500 100
    10Base2 细基带同轴电缆 185 30
    10Base-T 非屏蔽双绞线 100 2
    10Base-F 光纤 2000 2

    高速以太网

    • 100Base-T:双绞线,100Mbit/s 基带信号,星形拓扑,CSMA/CD 协议,半双工,又称快速以太网
      • 最短帧长不变,一个网段的最大电缆长度 100m,帧间时间间隔 0.96μs
    • 吉比特以太网:千兆以太网,1Gbit/s,半双工 CSMA/CD,全双工不需要。载波延伸,分组突发…
    • 10 吉比特以太网:使用光纤,只工作在全双工方式下,没有争用问题
    • 以太网是可扩展的、灵活的、易于安装、稳健性好
  • 无线局域网 IEEE 802.11

    • 有固定基础设施:最小构件为基本服务集 BSS,包含一个基站和若干移动站,BSS 内可直接通信,外部通信必须通过基站,因此基站又称接入点(AP)。BSS 可以孤立,也可通过接入点连接到主干分配系统 Distribution System,再接入到另一个 BSS,构成扩展的服务集 Extended Service Set。ESS 通过门桥 Portal 提供到非 IEEE 802.11WLAN 的介入(相当于网桥)

    • 无固定基础设施:又称自主网络,平等移动站组成临时网络,都具有路由器的功能

    • 物理层:跳频扩频 FHSS,直接序列扩频 DSS,红外线 IR

    • MAC 层:分为分布协调功能 DCF 子层和点协调功能 PCF 子层,使用CSMA/CA 协议,增加了确认机制

    • 应用 CSMA/CA 协议,采用停等协议,可靠传输(802.3 不可靠)

    • 帧间间隔 IFS, InterFrame Space:所有站在完成发送后必须等待一段很短的时间(继续监听)才能发送下一帧,长短取决于该站要发送的帧的类型

      • img
      • DIFS,分布式协调 IFS:最长,优先级最低,用于异步帧竞争访问的时延
      • PIFS,点协调(集中协调)IFS:中等长度,优先级居中,在 PCF 操作中使用
      • SIFS,短 IFS:最短,优先级最高,用于需要立即响应的操作(如前一帧出错,控制帧,ack 等)
      • 控制帧及确认帧采用 SIFS;要发送数据帧时,载波监听到信道空闲时需等待 DIFS 后发送 RTS 预约信道
    • 数据帧四种类型

      • IBSSimg

      • From APimg

      • To APimg

      • WDSimg

      •   To DS From DS Ad1 Ad2 Ad3 Ad4
        IBSS 0 0 DA SA BSSID -
        From AP 0 1 DA BSSID SA -
        To AP 1 0 BSSID SA DA -
        WDS 1 1 RA TA DA SA
  • 令牌环网:空闲时令牌在环网中循环传递 → 数据发送节点修改标志位,附加数据,将令牌改造成数据帧 → 沿环路传递,目的地址匹配则接收节点复制数据帧 → 数据帧传递到源节点,源节点校验以查看传输过程中是否有错,有错则重传,无错则不再转发 → 源节点重生令牌,释放权限

    • 每一站通过电缆与接口干线耦合器 TCU 连接,作用是传递所有经过的帧,为接入站发送和接收数据提供接口
    • 控制机制:分布式控制模式的循环方法,拿到令牌就可以占有信道发送数据
    • 逻辑上环形拓扑,物理上星形

广域网

  • 广域网由节点交换机(完成分组存储转发功能)及连接这些交换机的链路组成,互联网是由路由器互连的各网络

    比较标准 广域网 局域网
    覆盖范围 很广,通常跨区域 较小,通常在一个区域内
    连接方式 点对点通信方式 广播通信方式
    OSI 层次 物理层、数据链路层、网络层 物理层、数据链路层
    着重点 强调资源共享 强调数据传输
    • 联系:都是互联网的重要组成构件,从互联网角度看,二者平等,没有包含关系;连接在广域网或局域网上的主机在网内进行通信时只需要使用其网络的物理地址即可
    • 从层次上看,二者区别很大,局域网协议主要在数据链路层(少量物理层),广域网协议主要在网络层
    • 广域网中,路由选择协议负责搜索分组从某个节点到目的节点的最佳传输路由,以便构造路由表。再从路由表构造出转发分组的转发表,分组是通过转发表进行转发的
  • SLIP 主要完成数据报的传送,但没有寻址、数据检验、分组类型识别和数据压缩等功能,只能传送 IP 分组。实现简单,但上层不是 IP 就无法传输,且对一些高层应用也不支持。于是制定点对点协议 PPP,主要组成:

    • 一个将 IP 数据报封装到串行链路的方法
    • 一个链路控制协议 LCP。用于数据链路连接的建立、配置、测试、释放
    • 一套网络控制协议 NCP。每个协议支持不同的网络层协议,用来建立和配置不同的网络层协议

PPP

  • PPP 帧格式:首部 5B 尾部 3B,信息部分为 IP 数据报

    • 这里写图片描述
    • 标志字段 F:首尾各占 1B,规定为 0x7E,与 HDLC 相同。透明传输方面,HDLC 采用零比特填充。PPP 采用字节填充,转义字符为 0x7D
      • 遇 0x7E 转变为 2 字节序列 0x7D, 0x5E;遇 0x7D 转变为 0x7D, 0x5D
      • 遇 ASCII 码的控制字符(小于 0x20),如 0x03 表示 ETX 传输结束,转变为 0x7D, 0x23(加偏移量 0x20)
      • 只有 MAC 帧有帧间隙,不用加入尾标志,PPP 和 HDLC 都需要尾标志字段
    • 地址字段 A:1B,0xFF
    • 控制字段 C:1B,0x03
    • 协议字段:2B,0x0021 代表 IP 数据报,0xC021 是 PPP 链路控制数据,0x8021 是网络控制数据
    • 信息部分:占 0~1500B,因为是点对点而不是总线型,不采用 CSMA/CD 协议,自然没有最短帧
    • 帧检验序列 FCS:2B,CRC 码,检验区间包括地址字段、控制字段、协议字段和信息字段
    • 连续传输帧时,前一个帧结束标志字段可以同时作为后一个帧的起始标志字段
  • 工作状态:物理层连接 →LCP 分组建立数据链路层连接,选择要使用的 PPP 参数 →NCP 分配临时 IP 地址,建立网络层连接,这样个人计算机就成为因特网上的主机。通信完毕的过程与之相反
  • PPP 是一个面向字节的协议,PPP 只检错不提供纠错、流量控制(TCP 负责)、不可靠(不适用序号和确认)、点对点通信(不支持多点线路)、只支持全双工链路
    • 支持 IPX 及 AppleTalk 协议
    • 不提供面向连接服务
    • 支持身份认证
    • 其动态 IP 地址分配可由 NCP 完成
    • 默认用在异步线路,采用字节填充法
    • 用在 SONET/SDH 等同步线路,则采用硬件完成比特填充

HDLC

  • 高级数据链路控制 HDLC 协议特点:ISO 制定的面向比特(PPP 是面向字节的)的数据链路控制协议,可适用于链路的两种基本配置:非平衡配置和平衡配置。非平衡配置:由一个主站控制整个链路的工作;平衡配置:链路两端的两个站都是复合站,每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的允许
    • 零比特插入法实现透明传输,硬件容易实现
    • 全双工,CRC 校验,顺序编号,控制和处理分离灵活性高
  • 数据操作方式
    • 常响应方式:非平衡。主站传输从站响应
    • 异步响应方式:非平衡,从站未受允许也可进行传输
    • 异步平衡方式:平衡
  • HDLC 帧格式:首部尾部各 24bit(3B),信息部分为网络层交下来的分组

    • img
    • 标志字段 F:01111110,首尾各一个 0 作为帧的边界,透明传输采用零比特填充
    • 地址字段 A:非平衡方式为次站的地址;平衡方式为确认站的地址。全 1 为广播方式,全 0 为无效地址
    • 控制字段 C:根据前两位的取值可以分为编号帧(U 帧),督帧(S 帧),信帧(I 帧)
      • 无编号帧 11 用于提供对链路的建立、拆除及多种控制功能
      • 监督帧 10 用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能
      • 信息帧 0·用于传输数据信息,或使用捎带技术对数据进行确认和应答
    • 信息字段:长度任意,存放来自网络层的协议数据单元
    • 帧检验序列 FCS:16 位,CRC 码,检验区间包括地址字段、控制字段和信息字段
  • PPP 与 HDLC 的区别

    • PPP 面向字节,使用字节填充;HDLC 面向比特,使用比特填充(当使用同步传输时,PPP 使用比特填充)
    • PPP 帧比 HDLC 帧多一个 2B 的协议字段
    • PPP 不适用序号和确认机制,只保证无差错接收,端到端差错检错由高层协议完成。HDLC 协议的信息帧使用了编号和确认机制

数据链路层设备

  • 网桥的优点:
    • 过滤通信量(同一个网段内的帧无需转发,直接丢弃)
    • 扩大了物理范围
    • 提高了可靠性
    • 可互连不同物理层、不同 MAC 子层和不同速率的以太网
  • 网桥的缺点:
    • 存储转发增加了时延
    • 在 MAC 子层并没有流量控制功能
    • 具有不同 MAC 子层的网段桥接在一起时时延更大(帧格式转换)
    • 只适用于用户数不太多和通信量不太大的局域网,否则会因传播过多的广播信息产生网络拥塞(广播风暴)
  • 网桥的分类:
    • 透明网桥:即插即用,选择的不是最佳路由。自学习配置转发表:
      • 更新转发表(源站 MAC 地址、端口号和帧到达时间)
      • 转发表有项,则按其接口转发;否则通过除进入接口外的所有其它接口转发;转发表中的接口是该帧进入网桥的接口,则无需转发,直接丢弃
        • 源 LAN 和目的 LAN 相同,丢弃
        • 源 LAN 和目的 LAN 不同,转发
        • 目的 LAN 未知,扩散
      • 使用生成树算法使网络在逻辑上没有环路,避免网络资源浪费,但生成树一般不是最佳路由
    • 源选径网桥:最佳路由,路由选择由源站负责,网桥只进行接收和转发
      • 以广播方式发送发现帧,沿所有可能的路由传送,并记录经过的路由,到达目的站时原路返回。源站从中选择一个最佳路由,或是经过路由器最少,或是往返时间最短,实现负载平衡
  • 局域网交换机:多端口网桥,一般工作在全双工方式
    • 以太网交换机独占传输媒体的带宽。交换机总容量=端口数*每个端口带宽*1(半双工)或 2(全双工)
    • 最大的优点是不仅每个端口节点所占用的带宽不会因为端口节点数量的增加而减少,而且整个交换机的总带宽会随着端口节点的增加而增加
  • 局域网交换机的两种交换模式
    • 直通式交换:只检查目的地址(前 6B)。速度很快,但缺乏安全性,也无法支持具有不同速率的端口的交换
    • 存储转发式交换:先存储在高速缓存中检查数据是否正确,有错丢弃,无错转发。优点是可靠性高,能支持不同速率端口间的转换,缺点是延迟较大
    • 无碎片转发是交换机在得到数据报的前 64B 后就转发,对于小于 64B 的数据报认为是碎片,不进行转发
  • 局域网交换机的工作原理:检测帧的源 MAC 地址和目的 MAC 地址,与系统内部的动态查找表进行比较,若不在查找表中,则将该地址加入查找表中,并将数据报发给相应的目的端口
  • 虚拟局域网 VLAN:解决普通交换机进行局域网互连时无法限制广播的问题。具有第三层特性的第二层交换机,即可以隔离广播域
  • 网桥的端口一般连接到局域网的网段,交换机的每个端口都与主机或 Hub 直接相连
  • 以太网交换机采用的专用的交换机构硬件芯片,转发速度比网桥快

网络层

  • 尽最大努力交付的含义:不保证无差错、规定时间、按顺序、重复交付 IP 数据报,不故意丢弃 IP 数据报

    • 丢弃的情况:路由器检测出 IP 数据报的首部检验和有错误;网络通信量过大,路由器或主机缓存无空闲
  • 网络层的功能
    • 异构网络互联:利用协议使性能各异的网络让用户看来是一个统一的网络(虚拟互联,逻辑互联)
      • 中继系统:中继器或集线器(物理层),网桥或交换机(数据链路层),路由器(网络层),网关(网络层以上)
      • 网关是一个逻辑概念,在具有路由功能的设备上实现,用来连接两个不能直接互连的网络。如路由器、防火墙、三层交换机、电脑、一些存储设备等
      • 互联网指用路由器进行互联的网络
    • 路由选择:数据报每个分组都要重新选择路径;虚电路只有创建时才需要确定路由路径
    • 分组转发:路由器根据转发表将 IP 数据报从合适的端口转发出去
      • 路由表由路由选择算法得出,需要对网络拓扑变化的计算最优化
      • 转发表由路由表得出,应当使查找过程最优化
    • 拥塞控制:确保通信子网能够传送待传送的数据,是一个全局性的问题。分为开环控制和闭环控制
      • 流量控制只与给定的发送端和接收端之间的点对点通信量有关,使发送端发送数据的速率不能过快
      • 开环算法和闭环算法的目的是保证由源点产生的交通流不会把网络性能降低到指定的服务质量值之下
        • 开环算法依据用户的协议限制进入网络的交通,从而阻止拥塞的发生。如果服务质量不能被保证,那么网络不得不拒绝交通流,决定接受或拒绝交通流的功能称为准入控制,因此开环算法包含某种类型的资源预留
        • 闭环算法在拥塞已经发生或即将发生时对它做出反应,典型的是依据网络的状态调节交通流,因此必须把网络的状态反馈到调节交通的地点。闭环算法一般情况下都不使用资源预留
  • 路由算法:静态路由选择策略(非自适应路由选择),动态路由选择策略(自适应路由选择)
    • 距离-向量路由算法:所有节点定期将整个路由选择表传送给所有与之直接相邻的节点,本质是迭代法。表中包含每条路径的目的地(另一节点)和路径的代价(距离),最常用的 RIP 算法中,距离定义为跳数
    • 链路状态路由算法:要求每个参与算法的节点具有完全的网络拓扑信息,主动测试所有邻接节点的状态,定期地将链路状态传播给所有其他节点(用 Dijkstra 最短路径算法更新最短路由)
      • 只有当链路状态发生变化时,才使用洪泛法向本自治系统中的所有路由器发送信息
      • 发送的信息是与本路由器相邻的所有路由器的链路状态(相邻的路由器及链路的度量)
        • 对于 OSPF,度量包括费用、距离、时延、带宽等
    • 层次路由:将互联网划分为许多较小的自治系统,分别用内部网关协议 IGP(如 RIP 和 OSPF)和外部网关协议 EGP(如 BGP)。自治系统内部的路由选择称为域内路由选择,自治系统之间的路由选择称为域间路由选择
      • OSPF 将自治系统划分为更小的范围,称为区域,缩小洪泛法交换信息的范围,加快收敛速度。路由器按区域位置不同分为骨干路由器,区域边界路由器,自治系统边界路由器
    • 静态路由不会根据流量和结构来调整他们的路由决策,但用户可以随时配置路由表
    • 动态路由需要实时获得网络的状态,并根据网络的状态适时地改变路由决策

IPv4

  • IPv4 分组

    • img
    • 首部共 60B,其中 21-60B 部分是可选字段和填充(填充为 4B 的整数倍),默认情况下首部看成 20B
      • 版本:4bit。首部长度:4bit,单位 4B。区分服务:1B
      • 总长度:2B,单位 1B,最大 65536B,超过 MAC 帧的数据部分最大长度时需要切割
      • 标识:2B,一个计数器,用来产生 IP 数据报的标识,不是序号(IP 是无连接服务)
      • 标志:3bit,只有前两位有意义,MF(合并数据报用,0 标志最后一片),DF(1 表示不能分片,路由器丢弃数据报,并发送 ICMP 报文)。片偏移:13bit,单位 8B(13 位表示 16 位)
      • 生存时间 TTL:1B,TimeToLive,数据报在网络中可通过路由器数的最大值
      • 协议:1B,6 表示 TCP,17 表示 UDP
      • 首部校验和:2B,只校验首部,不校验数据部分
      • 源地址,目的地址:4B,指 IP 地址
    • 基本单位:总 1,首 4,偏 8
    • 下一跳路由器的 IP 地址不直接填入待发送的数据报,而是通过 ARP 转换成 MAC 地址,放入其 MAC 帧的首部
    • 0.0.0.0 是默认目的地址,不能作为目的地址
  • IPv4 地址

    • img
    • A 类地址:前 8 位为网络号,且第一位规定为 0。网络号全 0 的地址保留表示本网络,01111111 保留作为本地软件环回测试本主机的进程之间的通信,因此可指派网络数为 2^7^-2。后面 3B 为主机号,主机号全 0 表示该网络的地址,如一主机的 IP 地址为 12.0.0.1,那么该主机的网络地址就是 12.0.0.0;主机号全 1 表示广播地址,如 12.255.255.255。每个 A 类网络上最大主机数为 2^24^-2 1~126
    • B 类地址:前 16 位为网络号,且前两位规定为 10。128.0.0.0 不指派,最小可指派网络地址为 128.1.0.0。可指派的网路数 2^14^-1,每个网络上的最大主机数 2^16^-2 128.1~191.255
    • C 类地址:前 24 位为网络号,且前三位规定为 110。192.0.0.0 不指派,最小可指派网络地址为 192.0.1.0。可指派的网路数 2^21^-1,每个网络上的最大主机数 2^8^-2 192.0.1~223.255.255
    • D 类地址:224~239
    • E 类地址:240-255
  • 6 种特殊地址:广播只能目的,本主机只能源地址或默认目的地址,本网络特定主机只能目的地址,环回都可

    特殊地址 网络号 主机号 源地址或目的地址
    网络地址 特定 全 0 都不是
    直接、本网络广播地址 特定 全 1 目的地址
    受限、本地广播地址 全 1 全 1 目的地址
    这个网络上的这个主机 全 0 全 0 源地址或默认目的地址
    这个网络上的特定主机 全 0 特定 目的地址
    环回地址 127 不是全 0 或全 1 源地址或目的地址
    • 直接广播地址:又称定向广播,分组发送到一个特定网络上的所有主机,减少了 ABC 类的可用主机数
    • 受限广播地址:定义在当前网络上的广播地址,会被路由器阻挡,仅局限于本地局域网,属于 E 类地址
    • 这个网络上的这个主机:主机为了发现自己的 IP 地址,给引导服务器发送 IP 分组,使用这样的地址作为源地址,并用 255.255.255.255 作为目的地址。永远是 A 类地址
    • 这个网络上的特定主机:用于某个主机向同一网络上的其他主机发送报文,路由器把分组限制在本地网络
    • 环回地址:用来测试机器的软件,如 ping。仅会使 A 类地址的网络数减少一个
  • IP 地址补充

    • IP 地址是一种分等级的地址结构
      • IP 地址管理机构只分配网络号,主机号由得到网络号的单位自行分配,方便了 IP 地址的管理
      • 路由器仅根据目的主机所连接的网络号来转发分组,是路由表中的项目数大幅减少,减小了存储开销
    • IP 地址是标志一个主机(或路由器)和一条链路的接口,多接口主机的每个接口的网络号 net-id 必须不同
    • 用中继器或网桥连接起来的若干局域网仍为一个网络,具有相同的网络号
    • 分配到网络号的网络,不论范围类型,都是平等的
    • 链路层广播是用数据链路层协议在一个以太网上实现对该局域网上的所有主机的 MAC 帧进行广播
    • IP 广播是用 IP 通过因特网实现的对一个网络(目的网络)上的所有主机的 IP 数据报进行广播
    • IP 分组的源地址和目的地址在传输过程中不会改变,MAC 帧的不同的网络上传送时,首部中的源地址和目的地址会发生变化
  • NAT:将专用网内部使用的本地 IP 地址(可重用地址)转换成有效的外部全球 IP 地址,整个专用网只需一个全球 IP

    • 因特网规定的专用地址(路由器看到专用地址不转发,即专用地址不能作为因特网上传送的目的地址)
      • 1 个 A 类地址:10.0.0.0~10.255.255.255
      • 16 个 B 类地址:172.16.0.0~172.31.255.255
      • 256 个 C 类地址:192.168.0.0~192.168.255.255
    • 专用网的主机不先联系因特网的主机,因特网的主机就一定不会联系专用网的主机
    • NAT 转换表:{本地 IP 地址:端口}到{全球 IP 地址:端口}的映射
  • 划分子网:从主机号借若干个比特作为子网号,网络号不变

    • 原因:IP 地址空间的利用率有时很低,给每个物理网络分配一个网络号会使路由表变得太大而使网络性能变坏,两级的 IP 地址不够灵活
    • 子网号不能使用全 0 或全 1(等长子网划分),但 CIDR 实际上是划分子块,可以使用全 0 全 1(变长子网划分)
    • 子网掩码”与”IP 地址 → 网络地址
    • 一个 A 类网络的子网掩码为 255.255.0.255,这是一个有效的子网掩码
    • 划分子网能减小广播域的大小,增加主机的数量和增加网络的数量的说法都是错误的
  • CIDR:Classles Inter-Domain Routing 无分类域间路由选择,软件支持下实现超网构造。IP={<网络前缀>, <主机号>},采用斜线记法(又称 CIDR 记法):IP 地址/网络前缀位数
    • 将网络前缀都相同的连续 IP 地址组成 CIDR 地址块,称为路由聚合(构成超网),可以缩短路由表,减小路由器之间选择信息的交换,从而提高网络性能
    • 查找路由表时可能会有歧义,应用最长前缀匹配原则(最长匹配、最佳匹配);查找路由表时使用二叉线索树
  • ARP:地址解析协议,动态地维护存放在 ARP 高速缓存中的所在局域网上的各主机和路由器的 IP 地址到硬件 MAC 地址的映射表

    • ARP 高速缓存中有目标主机的 IP 地址,则查出对应的硬件地址,写入 MAC 帧;没有则广播ARP 请求分组FF-FF-FF-FF-FF-FF,获得目标主机的 ARP 响应分组(单播)后,将目标主机的硬件地址写入 ARP 高速缓存,建立映射关系
    • IP 地址到硬件地址的解析是由 ARP 自动进行的,对用户透明
    • 主机/路由器 → 本网络主机:ARP 查找目标主机的硬件地址
    • 主机/路由器 → 另一个网络的主机:ARP 查找本网络上一个路由器的硬件地址,其余工作由路由器完成
  • DHCP:动态主机配置协议,提供了即插即用连网的机制,属于应用层协议,DHCP 报文使用UDP传输

    • DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的,只能在有限时间(称为租用期)内使用
    • 允许网络上配置多个 DHCP 服务器,DHCP 客户从多个应答信息中通常挑选最先到达的信息
    • 过程:客户机广播 DHCP发现消息 → 服务器获得客户机的 IP 地址,广播 DHCP提供消息(包含 IP 地址和相关配置信息)→ 客户机接收服务器提供的相关参数,则广播 DHCP请求消息向服务器请求 IP 地址 → 服务器广播 DHCP确认消息,将 IP 地址分配给客户机
      • 客户端和服务器通过广播方式来进行交互
    • 广播发现报文源地址 0.0.0.0,目的地址 255.255.255.255,目的 MAC 地址 FF-FF-FF-FF-FF-FF
  • ICMP:网际控制报文协议,检测出错误的路由器或主机将错误报告(差错或异常情况)告诉发送主机,以确定错误类型和重发策略。ICMP 报文作为 IP 数据报的数据部分,加上首部组成 IP 数据报发送出去
    • ICMP 差错报告报文
      • 终点不可达:路由器或主机不能交付数据
      • 源站抑制:路由器或主机过于拥塞而丢弃数据报,源站应降低发送速率
      • 时间超过:IP 数据报TTL耗尽。如果分片,则在规定时间内不能收到全部片时也丢弃并回报
      • 参数问题:首部中有字段的值不正确(现在一般不发。IP 不要求源主机重传有差错的 IP 数据报,无差错传输由 TCP 完成;另外首部出错不知道源地址字段有没有出错)
      • 改变路由:重定向路由,主机下次应将数据报发送给其他的路由器
    • ICMP 询问报文,最常用是前两类
      • 回送请求和回答报文
      • 时间戳请求和回答报文
      • 掩码地址请求和回答报文
      • 路由器询问和通告报文
    • 不应发送 ICMP 差错报告报文的情况 C
      • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文
      • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文
      • 对具有组播地址的数据报都不发送 ICMP 差错报告报文
      • 对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文
    • ICMP 的典型应用:
      • ping:分组网间探测,测试主机之间连通性,应用层直接使用 ICMP,不经过 TCP 或 UDP,使用了回送请求和回答报文
      • traceroute:跟踪分组经过的路由,使用 ICMP 时间超过报文
    • img
    • ICMP 的数据部分包含收到的 IP 数据报的首部及数据字段的前 8B(包含 TCP/UDP 报文首部中的端口号)

IPv6

  • 从根本上解决了 IPv4 即将耗尽的问题:更大的地址空间(32 位 →128 位),扩展的地址层次结构,灵活的首部格式,改进的选项,允许协议继续扩充,支持即插即用(自动配置),支持资源的预分配,IPv6 的首部长度必须是 8B 的整数倍(IPv4 首部长度是 4B 的整数倍)
    • 有长得多的地址;简化了 IP 分组的基本首部(8 个段,IPv4 是 12 个段),使路由器能更快地处理分组,改善吞吐率;更好地支持选项,加快了分组处理速度
    • IPv6 首部长度是 8B 的整数倍,IPv4 首部是 4B 的整数倍
    • 路由器不允许分片,只能在包的源结点分片
  • IPv6 格式(基本首部 40B)
    • img
    • 版本:4bit,指明协议的版本,对于 IPv6,该字段总是 6
    • 通信量类:8bit,区分不同 IPv6 数据报的类别或优先级,已经定义了 0~15,0 的优先级最低,0-7 表示允许延迟,8-15 表示高优先级,需要固定速率传输
    • 流标号:20bit,所有属于同一个流的数据报都具有同样的流标号
    • 有效载荷长度:16bit,指明 IPv6 数据报除基本首部以外的字节数(包括扩展首部),最大 64KB
    • 下一个首部:8bit,相当于 IPv4 的协议字段或可选字段
    • 跳数限制:8bit;源地址:128bit;目的地址:128bit
  • 3 种地址类型
    • 单播:传统的点对点通信
    • 组播:数据报交付到一组计算机中的每一个,广播可看作是特例
    • 任播:其目的站是一组主机,但数据报在交付时只交付给其中一个,通常是距离最近的那个
  • 冒号十六进制法:缩写法,双冒号表示法(一个地址中只能出现一次)
  • IPv4 向 IPv6 过渡:双协议栈,隧道技术

路由协议

  • RIP(Routing Information Protocol)路由信息协议是一种内部网关协议 IGP,是一种动态路由选择协议,用于自治系统 AS 内的路由信息的传递。RIP 协议基于距离矢量算法 DistanceVectorAlgorithms,使用“跳数”(Hop Count,也称度数 metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在 15 跳(15 度)之内。RIP 应用于 OSI 网络七层模型的应用层

    • 距离向量算法:从一个路由器到直接连接的网络的距离定义为 1,从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1
      • 某路由器收到其相邻路由器(地址为 X)的 RIP 报文后,先将报文中所有项目的下一跳字段中的地址都改为 X,并把所有距离字段值+1
        • 项目中的目的网络不在路由表中,则把该项目添加到路由表中
        • 下一跳字段给出的路由器地址是相同的,则把收到的项目替换原路由表中的项目
        • 收到项目中的距离小于路由表中的距离,则进行更新
      • 默认在两个使用 RIP 协议的路由器间每 30s 广播一次 RIP 路由更新信息,建立并维护动态路由表
      • RIP 默认超时时间为 3min,若还没有收到相邻路由器的更新路由表,则记为不可达路由(距离设置为 16),若再过 120s 仍未收到更新报文,就将这些路由从路由表中删除
    • RIP 认为一个好的路由就是通过路由器数目少的路由,即距离短,一条路径最多包含15 个路由器,距离的最大值为 16 时相当于不可达,因此只适用于小型互联网。RIP 不能在两个网络间同时使用多条路由,只选择一个具有最少路由器的路由(最短路由),哪怕还存在另一条低时延但路由器较多的路由
    • RIP 协议中每个网络的子网掩码必须相同
    • 3 要点
      • 仅与相邻路由器交换信息
      • 交换的信息时当前本路由器所知道的全部信息,即自己的路由表
      • 按固定的时间间隔(如 30s)交换路由信息
    • RIP 报文格式(v2)
      • img
      • 首部 4B:1B 命令,1B 版本,2B 必为 0(填充)
      • 路由 20B:最多可重复出现 25 个,最大长度为 4B+25*20B=504B(而 UDP 限制报文大小为 512B,去掉 8B 的 UDP 首部,也恰好得到最大长度为 504B)
      • 因此报文到达目的地时不提供顺序化(不需要编号),一个路由表项不会分开在两个 RIP 报文中
      • 从应用层交付下来在传输层加上 UDP 首部形成 UDP 用户数据报,在网络层加上 IP 首部形成 IP 数据报
    • RIP 的优点:实现简单、开销小、收敛过程较快
    • RIP 的缺点:限制了网络的规模,路由器之间交换信息的开销随规模扩大而增加,网络出现故障时更新过程收敛时间长(坏消息传的慢)
  • OSPF(Open Shortest Path First)开放最短路径优先协议是一个内部网关协议(Interior Gateway Protocol,简称 IGP),用于在单一自治系统(autonomous system,AS)内决策路由,对链路状态路由协议的一种实现。用 Dijkstra 算法来计算最短路径树。OSPF 支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等

    • 所有路由器都会维持一个同步的链路状态数据库,即全自治系统的拓扑结构图,可由 Dijkstra 算法计算出完整的最优路径,但路由表中只存储下一跳
    • 不使用 UDP 或 TCP 数据报传送,而是直接使用 IP 数据报传送,支持子网划分和 CIDR
    • 对不同的链路可根据 IP 分组的不同服务类型 TOS 设置成不同的代价
    • 每个链路状态都带上一个 32 位的序号,序号越大状态就越新
    • 3 要点
      • 用洪泛法向本自治系统中所有路由器发送信息(只有当链路状态发生变化时)
      • 发送的信息是与本路由器相邻的所有路由器的链路状态
      • 链路状态指本路由器和哪些路由器相邻以及该链路的度量 metric
    • 5 种分组类型
      • Hello:问候分组,发现和维持邻站的可达性
      • DBD:数据库描述分组,发送自己数据库中所有链路状态项目的摘要信息
      • LSR:链路状态请求分组,请求对方发送某些链路项目的详细信息
      • LSU:链路状态更新分组,用洪泛法对全网更新链路状态
      • LSACK:链路状态确认分组,对 LSU 分组的确认
    • 每隔十秒交换一次问候分组,以确定哪些站可达,40s 内没有从某邻居接收到这种分组,则认为这个邻居不存在了。每隔一段时间如 30min,刷新一次数据库中的链路状态
    • 相对于 RIP:收敛较快,分层,负载平衡(同代价有多路径),灵活(依据费用类型),组播发送报文(RIP 广播)
  • BGP(Border Gateway Protocol)边界网关协议是应用层运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息,这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策

    • 采用的是路径-向量路由选择协议
    • BGP 只是力求寻找一条能够到达目的网络且比较好的路由,并非要寻找一条最佳路由
    • BGP 交换的网络可达性信息是到达某个网络所经过的路径
    • 特点:
      • 交换路由信息的节点数量级是自治系统数的量级
      • 每一个自治系统中 BGP 发言人(或边界路由器)的数目很少,使自治系统间的路由选择不过分复杂
      • 支持 CIDR,故 BGP 路由表包括目的网络前缀、下一跳路由器及经过的自治系统序列
      • 刚运行时,邻站交换整个 BGP 路由表,以后只在发生变化时更新有变化的部分
    • 4 种报文
      • Open:打开报文,用来和相邻的另一个 BGP 发言人建立关系
      • Update:更新报文,用来发送某一路由的信息,及列出要撤销的多条路由
      • Keepalive:保活报文,用来确认打开报文和周期性地证实邻站关系
      • Notification:通知报文,用来发送检测到的差错
  • 主要特点 RIP OSPF BGP
    网关协议 内部 内部 外部
    路由表内容 目的网络,下一跳,距离 目的网络,下一跳,距离 目的网络,完整路径
    最优通路依据 跳数 费用 多种有关策略
    算法 距离-向量协议 链路状态协议 路径-向量协议
    传送方式 传输层 UDP IP 数据报 建立 TCP 连接
    其他 简单、效率低、跳数为 16 不可达;好消息传得快,坏消息传的慢 效率高、路由器频繁交换信息,难维持一致性;规模大、统一度量为可达性 TCP 连接 →BGP 报文建立 BGP 会话 → 交换路由信息
  • RIP 处于 UDP 的上层,RIP 所接受的路由信息都封装在 UDP 数据报中
  • OSPF 位于网络层,由于要交换的信息量较大,应使报文的长度尽量短,采用 IP
  • BGP 需要在不同 AS 之间交换路由信息,由于网络环境复杂,需要保证可靠的传输,所以使用 TCP

其他

  • IP 组播:仅应用于UDP(TCP 面向连接,是一对一的发送)
    • D 类地址支持,前置为 1110,范围是 224.0.0.0~239.255.255.255 224-239
      • 每个地址标识一组主机
      • 只能用于目标地址,不能用于源地址
      • 尽最大努力交付,不提供可靠交付
      • 不产生 ICMP 差错报文(ping 组播地址不会收到响应)
      • 并非所有 D 类地址都可以作为组播地址:224.0.0.0 ~ 224.0.0.255 为预留的组播地址(永久组地址),地址 224.0.0.0 保留不做分配,其他地址供路由协议使用;224.0.1.0 ~ 224.0.1.255 是公用组播地址,可以用于 Internet;224.0.2.0 ~ 238.255.255.255 为用户可用的组播地址(临时组地址),全网范围内有效;239.0.0.0 ~ 239.255.255.255 为本地管理组播地址,仅在特定的本地范围内有效。
    • 分为本局域网上进行硬件组播和在因特网的范围内进行组播,后者最后也要进入前者的过程
    • 组播地址与 MAC 地址的换算:取组播地址后 23 位,倒数 24 位取 0,将其转换成 16 进制,再加上固定的首部01-00-5E得到 IP 地址。eg. 224.215.145.230→E0-D7-91-E6→ 取 57-91-E6→ 组合 01-00-5E-57-91-E6
    • 每 32 个组播 IP 地址映射一个组播 MAC 地址,出现在同一个网络里面的概率很小,若果出现了,主机的上层协议会做出判断,丢弃不属于自己的组播报
    • IGMP(因特网组管理协议,Internet Group Management Protocol),是一个组播协议,只有两种分组:询问分组和响应分组。IGMP 使用 IP 数据报传递其报文,也向 IP 提供服务,属于整个网际协议 IP 的一部分
    • 组播数据报在传输的过程中,若遇到不运行组播路由器的网络,路由器就对组播数据报进行再次封装使之成为一个单一目的站发送的单播数据报。通过隧道之后,再由路由器剥去其首部,使其恢复成原来的组播数据报,继续向多个目的站转发
    • 实现组播的路由算法:基于链路状态的路由选择,基于距离-向量的路由选择,协议无关的组播 PIM(可以建立在任何路由器协议之上)
  • 移动 IP:使移动节点以固定的网络 IP 地址,实现跨越不同网段的漫游功能,并保证了基于网络 IP 的网络权限在漫游过程中不发生任何改变
    • 功能实体:
      • 移动节点:具有永久 IP 地址
      • 本地代理:归属代理,有一个端口与移动节点本地链路相连的路由器,根据转交地址采用隧道技术转交数据包
      • 外部代理:移动节点的漫游链路上的默认路由器,通知本地用户代理自己的转交地址
    • 技术:代理搜索,申请转交地址,登录,隧道(临时双向数据通道)
    • 通信过程
      • 在本地网按传统的 TCP/IP 方式进行通信(固定的主地址)
      • 漫游到外地网络时仍使用固定的 IP 地址进行通信,移动节点需要向本地代理注册当前的位置地址即转交地址(外部代理的地址或动态配置的一个地址)
      • 本地代理接收来自转交地址的注册后构建一条通向转交地址的隧道,将 IP 分组通过隧道送到转交地址
      • 在转交地址处解除隧道封装,恢复原始 IP 分组送到移动节点
      • 移动节点在外网通过外网的路由器或外代理向通信对端发送 IP 数据报
      • 当移动节点来到另一个外网时,只需要向本地代理更新注册的转交地址就可以继续通信
      • 当移动节点回到本地网时,移动节点向本地代理注销转交地址,使用传统的 TCP/IP 通信
  • 网络层设备:路由器
    • 路由器实质上是一种多个输入端口和多个输出端口的专用计算机,任务是连接不同的网络以转发分组
      • 路由选择部分:控制部分,根据选定的路由选择协议构造并定期更新和维护路由表,核心部件是路由选择处理器
      • 分组转发部分:由一组输入端口、交换结构(关键部件)和一组输出端口组成,有三种常用的交换方法:通过存储器进行交换、通过总线进行交换和通过互联网进行交换
    • 分组转发:路由器根据转发表将用户的 IP 数据报从合适的端口转发出去
    • 路由选择:按照分布式算法,根据从各相邻路由器得到关于网络拓扑的变化情况,动态改变选择的路由
    • 路由器根据路由选择算法得出,转发表从路由表得出
    • 若路由器处理分组的速率过快或过慢,路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
    • 路由表结构:目的网络 IP 地址,子网掩码,下一跳 IP 地址,接口

传输层

  • 传输层是面向通信部分的最高层,也是用户功能中的最低层,为两台主机提供应用进程之间的通信,又称端到端通信。传输层可靠与否与选择的协议有关,一般默认传输层是可靠的(如数据链路层 HDLC 可靠,PPP 不可靠)
    • 提供应用进程间的逻辑通信(网络层提供主机之间的逻辑通信)
    • 差错检测(首部和数据部分,网络层只检查 IP 数据报首部,不检查数据部分)
    • 提供无连接或面向连接的服务(根据上层应用程序的性质)
      • 对于面向连接服务特有的:连接管理(握手),流量控制和拥塞控制
    • 复用:发送方不同的应用进程可以使用同一个传输层协议传送数据
    • 分用:接收方剥去报文的首部后能把数据正确交付到目的应用进程,根据目的端口号
  • 传输层的服务访问点 SAP 是端口,传输层按端口号寻址。区分:硬件端口是不同硬件设备进行交互的接口,软件端口是应用层的各种协议进程与传输实体进行层间交互的一种地址
    • 传输层使用的是软件端口
    • 端口用一个 16 位端口号进行标识,只具有本地意义。分为(前两者又称服务端端口)
      • 熟知端口 Well-Known Port(保留端口 Reserved Port):0~1023,为公共服务保留的端口
        • FTP(21,20), TELNET(23), SMTP(25), DNS(53), TFTP(69), HTTP(80), SNMP(161)
      • 登记端口:1024~49151,为没有熟知端口号的应用程序使用,必须在 IANA 登记防止重复
      • 客户端端口或短暂端口或临时端口:49152~65535,尽在客户进程运行时动态选择,结束后自动空闲
    • 只有通过 IP 地址和端口号才能唯一确定一个连接的端口(应用进程),即套接字 Socket=(主机 IP 地址,端口号)
  • 用户数据报协议 UDP,只在 IP 数据报服务之上增加了复用分用差错检测的功能,面向报文
    • 主要特点
      • 传送数据前无需建立连接,数据到达后也无需确认,主机不需要维持复杂的连接状态表
      • 不可靠交付
      • 报文头部短(8B),传输开销小,时延较短
      • 网络出现的拥塞不会使源主机的发送速率降低(没有拥塞控制),有利于实时应用
      • 支持一对一,一对多,多对一,多对多的交互通信
    • UDP 数据报首部:共 8B,四个字段组成:源端口 2B,目的端口 2B,长度 2B,校验和 2B
      • 尽管有 2B 的长度字段,一般 UDP 限制应用程序数据为 512B 或更小
      • 校验和检验范围:伪首部、UDP 数据报的首部和数据。计算校验和时在 UDP 数据报之前临时加上 12B 的伪首部,包含源 IP 地址字段、目的 IP 地址字段、全 0 字段、协议字段(UDP 固定为 17)、UDP 长度字段。伪首部只用于计算和验证校验和,既不向下传送,也不向上递交。校验范围内字段按照 16 位长度进行二进制反码求和运算后结果取反,无差错结果应该为全 1,有错则丢弃
        • 二进制反码求和:先求反码(所有位取反),做加法,进位进 1,最高位进位需要对最后的结果加 1

传输控制协议 TCP

  • 主要特点
    • 面向连接,不提供广播或多播服务
    • 可靠交付(不仅避免差错,还有失序、TTL 下降到零、拥塞丢弃等情况)
    • 报文段头部长,传输开销大
    • 面向字节流,按字节编号
    • 支持全双工,支持紧急数据
  • 在传输层,TCP 模块中有一个 TCB(传输控制模块),用于记录 TCP 运行过程中的变量。对于多个连接的 TCP,每个连接都有一个 TCB,其结构定义包括这个连接使用的源端口、目的端口、目的 IP、序号、应答序号、对方窗口大小、自己窗口大小、TCP 状态等
  • 首部格式(默认 20B 固定首部,最大可以表示 60B)
    • img
    • 源端口和目的端口:各 2B
    • 序号:4B。TCP 是面向字节流的,字节流需要编号保证按序交付。是第一个字节的序号,也称报文段序号
    • 确认号:4B。确认号=N 表示到序号 N-1 为止的所有数据都已正确收到,确认号是期待下一个收到的 TCP 段的序号,如果中间出现了丢失则期待收到丢失的报文段(如果是确认报文段丢失要考虑是否支持累积确认)
    • 数据偏移:占 4bit,表示首部长度,单位 4B
    • 保留字段:占 6bit,目前默认为 0
    • 紧急 URG:=1 表明紧急指针字段有效,数据从第一字节到紧急指针所指字节是紧急数据
    • 确认 ACK:=1 表示确认号有效,TCP 规定连接建立后所有报文段必须把 ACK 置 1
    • 推送 PSH:=1 表示尽快交付,不再等到整个接收缓存填满后再向上交付
      • URG 表示部分数据紧急,则不进入接收缓冲,直接上交,其余数据进入接收缓冲
      • PSH 表示将报文完整填入接收缓冲后就直接上交,不等待填满
    • 复位 RST:=1 表示 TCP 连接出现严重差错,必须释放连接后重新建立
    • 同步 SYN:=1 表示这是一个连接请求或连接接受报文
    • 终止 FIN:=1 表示数据发送完毕,要求释放连接
    • 窗口字段:2B,单位为 1B,用来控制对方发送的数据量,明确指出了现在还允许对方发送的数据量
    • 校验和字段:2B,除了伪首部第四个字段(协议字段)的 17 改为 6,其他和 UDP 校验相同,校验首部和数据
    • 紧急指针字段:2B,指出本报文段中的紧急数据的最后一个字节的序号
    • 选项字段:长度可变,TCP 最初只规定了最大报文段长度 MSS
    • 填充字段:为了使整个首部长度是 4B 的整数倍
    • 首部中不包含目的 IP 地址,在向下传递时要告诉 IP 层目的主机 IP 地址,由 IP 填写在 IP 数据报的首部中
  • TCP 连接管理:使 TCP 连接的建立和释放都能正常的进行
    • TCP 连接的端点叫作套接字 Socket 或插口(不是主机、IP 地址、应用进程、协议端口等)
    • img
      1. 发送连接请求报文段,SYN=1,TCP 规定 SYN 报文段不能携带数据,但要消耗一个序号,seq=x表示传送数据时的第一个数据字节的序号是 x
      2. 同意则发回确认,SYN=1ACK=1,确认号ack=x+1,自己选择序号seq=y,也不能携带数据
      3. 给出确认的确认,ACK=1,确认号ack=y+1seq=x+1,通知上层连接已经建立;后收到确认的一方也通知上层,此时 TCP 连接已经建立。ACK 报文可以携带数据(SYN=0),如果不携带数据则不消耗序号
      4. 第三次握手没有 SYN
    • 采用三次握手的目的是为了防止报文段在传输连接建立过程中出现差错,建立连接后就可以全双工通信了
    • 服务器易受 SYN 洪泛攻击
    • img
      1. FIN=1,seq=u 单方关闭单向通路,不能发送可以接收
      2. ACK=1,seq=v,ack=u+1 继续传送剩余数据
      3. FIN=1,ACK=1,seq=w,ack=u+1 ack 保持为 u+1
      4. ACK=1,seq=u+1,ack=w+1 TCP 必须经过时间 2MSL 后才真正释放
    • 防止报文段滞留在网络中的情况,不同的 TCP 连接不能使用相同的初始序号
    • 建立连接时采用两次握手可能产生死锁,B 的确认应答分组丢失的情况
    • 等待 2MSL(Maximum Segment Lifetime,报文最大生存时间)可以防止 A 最后返回的确认报文段丢失使 B 不能进入正常关闭状态,而此时 A 已关闭,也不可能重传。其次防止出现已失效的连接请求报文段,等待 2MSL 可保证本连接持续时间内产生的所有报文段从网络中消失
  • TCP 可靠传输
    • 数据编号与确认:TCP 面向字节流,每个字节都遍一个序号,确认是对接收到的数据的最高序号表示确认,返回的确认号是已收到的数据的最高序号加 1,即期望下次收到的数据中的第一个数据字节的序号。使用累计确认
    • 选择确认 SACK:SR 协议中,把后面有序的帧存在接收缓冲区中,等前面失序的帧到达后一起按序交付,就用到了选择确认 SACK
    • 超时重传机制:对每一个报文段设置一个计数器,对于重传时间采用自适应的算法
      • RTT=(1-α)*(旧的 RTT)+α*新的往返时延样本 ​,一般 α 取 0.125(接近 1 则更新快)
      • RTO=β*RTT, β>1​,计时器的超时重传时间 RTO 应略大于平均往返时延
      • Karn 算法:对超时重传的报文段不作为往返时间样本,这样得出的加权 RTT 和 RTO 比较准确
      • 修正的 Karn 算法:报文段每重传一次,就把 RTO 增大一些,新的 RTO=γ*旧的 RTO,典型值是 2
    • 冗余 ACK:每当比期望序号大的失序报文段到达时,发送一个冗余 ACK,指明下一个期待的序号,当收到对同一个报文段的连续 3 个冗余 ACK,就重传该报文
  • TCP 流量控制 Flow Control
    • 让发送方的发送速率不要太快,使接收方来得及接收,避免网络发生拥塞。利用滑动窗口机制实现
    • TCP 为每一个连接设有一个持续计数器,只要 TCP 一方收到对方的零窗口通知,就启动持续计时器。若持续计时器的时间到期,就发送一个零窗口探测报文段(仅携带 1B 数据),对方在确认这个探测报文段时给出现在的窗口值,若仍为零就重置持续计时器,若不为零,就可以打破死锁
    • 控制 TCP 报文段的发送时机的机制
      • 维持一个变量等于 MSS,当缓存中存放的数据达到 MSS 字节时就组装成报文段发送出去
      • 由 TCP 支持的推送 push 操作指明要求发送
      • 发送方的一个计时器期限到了,就把当前已有的缓存数据装入报文段发送
  • TCP 拥塞控制 Congestion Control
    • 基本概念
      • 出现资源拥塞的条件:对资源需求的总和>可用资源
      • 目的是使网络能够承受现有的网络负荷
      • 是一个全局性过程,涉及所有主机、所有路由器及与降低网络传输性能有关的所有因素
      • 指在给定的发送端和接收端之间的点对点通信量的控制
      • 要做的是抑制发送端发送数据的速率,以便使接收端来得及接收
      • 是一个动态过程,因此很难设计
      • 分组的丢失是网络发生拥塞的征兆而不是原因
      • 许多情况下拥塞控制本身称为引起网络性能恶化甚至发生死锁的原因
    • 开环控制:设计网络时事先考虑拥塞因素,力求工作时不产生拥塞
    • 闭环控制:基于反馈环路的概念。措施:检测拥塞在何时何处发生,将拥塞信息传送到可采取行动的地方,调整网络系统的运行以解决出现的问题
    • TCP 要求发送端维护以下两个窗口
      • 接收端窗口 rwnd:接收端根据目前缓存大小许诺的最新的窗口值,放在窗口字段通知发送端
      • 拥塞窗口 cwnd:发送端根据自己估计的网络拥塞程度而设置的窗口值,反映了网络的当前容量
      • 发送窗口的上限值=MIN{rwnd, cwnd},接收方总是有足够大的缓存空间,因而发送窗口的大小由网络的拥塞程度来决定,故可以将发送窗口等同为拥塞窗口
    • 慢开始算法:
      • 开始发送报文时设置拥塞窗口 cwnd=1,即一个最大报文段长度 MSS 的数值
      • 收到一个对新的报文段的确认后,cwnd+1,按轮次来看,每经过一个传输轮次(RTT),拥塞窗口加倍
        • 传输轮次更强调把 cwnd 所允许发送的报文段都连续发送出去,并收到了对已发送的最后一个字节的确认。往返时间 RTT 即此过程经历的总时间
      • 这样逐步增大 cwnd,可以使分组注入到网络的速率更加合理。拥塞窗口大小呈指数形式增长,慢开始把拥塞窗口增大到一个规定的慢开始门限阈值 ssthresh 后改用拥塞避免算法
    • 拥塞避免算法
      • ssthresh 的初始值设置为 16(eg),慢开始 cnwd 增长到 ssthresh 时改用拥塞避免算法,拥塞窗口按线性规律增长。假定拥塞窗口数值增长到 24 时出现超时,说明网络拥塞,则把拥塞窗口重置为 1,新的 ssthresh 变为 24 的一半,修改后第一个 RTT 用于重传
      • 完全避免网络拥塞是不可能的,拥塞避免指在拥塞避免阶段控制 cwnd 为线性增长,使较不容易拥塞
    • 快重传算法:要求接收方每收到一个失序的报文段后就立即发出重复确认,让发送方及早知道有报文段没有到达接收方。发送方只要连续收到 3 个重复确认(如对 M~2~)就应当立即重传对方尚未收到的报文段(M~3~)
    • 快恢复算法
      • 发送端收到连续 3 个重复确认时,就执行乘法减小算法,ssthresh 设置为当前拥塞窗口的一半,接下去执行加法增大算法(cwnd 设置为新的 ssthresh)
      • 还有另一种算法是将 cwnd 设置为 ssthresh+3xMSS,若收到的重复 ACK 为 n(>3)个,则将 cwnd 设置为 ssthresh+nxMSS,按拥塞避免算法继续发送报文段

应用层

域名系统 DNS:

  • DNS 是一个分布式的数据库,并包括域名空间和域名服务器;并且提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指,每个站点只保留它自己的那部分数据。
  • 采用 C/S 模型,运行在 UDP 上,使用 53 号端口
  • 机器处理 IP 数据报时要使用 IP 地址而不使用域名的原因? 因为 IP 地址的长度是固定的 32 位(IPv6 地址是 128 位)是定长的;而域名的长度不是固定的,机器处理起来比较困难。
  • 域名到 IP 地址的解析过程:当一个进程需要把主机名解析为 IP 地址时,该应用进程就调用解析程序,并且成为 DNS 的一个客户,把待解析的域名放在 DNS 请求报文中,以 UDP 用户数据报方式发给本地域名服务器中(使用 UDP 是为了减少开销)。本地域名服务器在查找域名后,把对应的 IP 地址放在回答报文中返回;应用进程获得目的主机的 IP 地址后即可通信。
  • 高速缓存:提高查询效率,减少因特网上的 DNS 查询报文数量。主机名和 IP 地址之间不是永久映射,DNS 服务器在一段时间后丢弃高速缓存中的信息

域名结构:层次树状结构 在这里插入图片描述

  • 域名规则:英文不区分大小写,除连字符-外不使用其他标点符号,每个标号不超过 63 个,多标号组成的完整域名不超过 255 个字符,级别最低的域名写在最左边
  • 顶级域名:基础结构域名(只有 arpa),国家顶级域名 nTLD,通用顶级域名 gTLD
  • 域名服务器:根,顶级,授权(权限),本地

域名解析

  • img
  • DNS 可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。大多数情况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须自己处理超时和重传来保证可靠性。
  • 在两种情况下会使用 TCP 进行传输:
    • 如果返回的响应超过的 512 字节(UDP 最大只支持 512 字节的数据)
    • 区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据)
  • 每一个域名都由标号序列组成,而各标号之间用点隔开。 举例:域名:mail.cctv.com 标号 com 是顶级域名。标号 cctv 是二级域名。标号 mail 是三级域名。

文件传送协议:FTP 采用 C/S 工作方式,使用两个并行的 TCP 连接来传送一个文件。适合在异构网络中的任意计算机之间传送文件,FTP 服务器必须在整个会话期间保留用户的状态信息

  • 功能:提供不同种类主机系统之间的文件传输能力,以用户权限管理的方式提供用户对远程 FTP 服务器上的文件管理能力,以匿名 FTP 的方式提供公用文件共享的能力

  • 控制连接:服务器打开端口号 21 等待客户端的连接,客户端主动建立连接后,使用这个连接将客户端的命令传送给服务器,并传回服务器的应答。
    • 在整个会话期间一直保持打开状态,控制信息都以 7 位 ASCII 码格式传送,传输用户名和密码
  • 数据连接:用来传送一个文件数据。根据数据连接是否是服务器端主动建立,FTP 有主动和被动两种模式:
    • 主动模式:服务器端主动建立数据连接,其中服务器端的端口号为 20,客户端的端口号随机,但是必须大于 1024,因为 0~1023 是熟知端口号。
    • 被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机。 注:主动模式要求客户端开放端口号给服务器端,需要去配置客户端的防火墙。被动模式只需要服务器端开放端口号即可,无需客户端配置防火墙。但是被动模式会导致服务器端的安全性减弱,因为开放了过多的端口号。

电子邮件协议。SMTP 只能传送 7 位 ASCII 码,用 MIME 扩展(多用途网际邮件扩充)传送非 ASCII

  • SMTP 使用 C/S 方式,TCP 连接,端口号 25
  • MAIL→250 OK→RCPT→DATA→QUIT→221(服务关闭)
  • POP3 使用 C/S 方式,TCP 连接,端口号 110
  • 因特网报文存取协议 IMAP:邮件接收协议,比 POP 复杂
  • 基于万维网的电子邮件:浏览器和服务器之间使用 HTTP,不同服务器之间使用 SMTP

  • SMTP
  • MIME
  • 邮件首部:From 必填,通常由邮件系统自动填入;To 必填,Subject 可选

万维网

  • HTTP 是无状态的,本身无连接,使用 TCP 连接保证可靠性,默认端口 80

  • 面向文本,有请求报文和响应报文

    • GET:请求读取由 URL 标识的信息
    • HEAD:请求读取由 URL 标识的信息的首部
    • POST:给服务器添加信息(如注释)
    • CONNECT:用于代理服务器
  • url 是( Uniform Resource Locator )统一资源定位符的缩写。

    • 完整格式&语法:
      • scheme:[//[user[:password]@]host:port][?query] [#fragment]

      • 传送协议
      • 层级 URL 标记符号(为[//],固定不变)
      • 访问资源需要的凭证信息(可省略)
      • 服务器。(通常为域名,有时为 IP 地址)
      • 端口号。(以数字方式表示,若为 HTTP 的默认值“:80”可省略)
      • 路径。(以“/”字符区别路径中的每一个目录名称)
      • 查询。(GET 模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以 UTF8 的 URL 编码,避开字符冲突的问题)
      • 片段。以“#”字符为起点
  • 状态码:1xx 表示通知信息,2xx 表示成功,3xx 表示重定向,4xx 表示客户差错,5xx 表示服务期差错

  • 非持久连接,为每个网页元素对象传输单独建立一个 TCP 连接

  • 持久连接 HTTP/1.1,保持连接,又分为非流水线和流水线方式

  • http-response

    http-request

    ascii

  • COOKIE:发起请求 → 产生 Set-Cookie 报头 → 读取 Set-Cookie 形成 Cookie.txt→ 产生 Cookie 报头 → 产生应答

  • 采用 ping 命令检测网络连接故障时,可以先输入 ping 127.0.0.1,即本地循环地址,如果发现本地址 ping 通, 就表明本地机 TCP/IP 协议正常工作。如果上面的操作成功,接下来可以 ping 本机 IP,若通,则表明网络适配器(网卡或 MODEM)工作正常。最后 ping 同网段中某计算机的 IP,如果 ping 不通则表明网络线路(网络接口)出现故障。

  • HTML 标签:https://baike.baidu.com/item/html标签/6999473?fr=aladdin

    • <br>换行符
  • E1 线路的数据率就是 2.048 Mb/s,E1 的一个时分复用帧占 125 us, 可供用户使用的话路占 30 个时隙。

  • 多个电话信道 ( 即话路 ) 通过 T1 线路进行传输, 属于时分多路复用,因为每个话路的 PCM 数据在一个 T1 时分复用帧内依次轮流传输。

  • 一个电话话路的 PCM 信号特点:每秒 8000 次采样,每次采样 8 bit,数据率为 64 kbps。

CGI 接口负责 WEB 服务器与后端程序及脚本之间的接口,该接口使得后端程序及脚本能够接收来自浏览器的输入信息(例如,来自表单)。