Post

InternetPrinciples(04735)

计算机网络原理(04735)

第一章 计算机概述

1 计算机网络基本概念

网络协议

  • 网络通讯实体之间的在数据交换过程中需要遵循的规则或约定

  • 三要素

    • 语法(syntax)
    • 语义(semantics)
    • 时序(timing)

网络功能(核心功能:资源共享)

  • 硬件资源共享
  • 软件资源共享
  • 信息资源共享

网络分类

  • 按覆盖范围分类

    • 个域网:PAN 1-10m
    • 局域网:LAN 10m-1km
    • 城域网:MAN 5-50km
    • 广域网:WAN 几十到几千米
  • 按拓扑结构分类

    • 星形拓扑结构:易监管,故障诊断隔离;中央结点网络瓶颈,一旦故障全网瘫痪;受限中央结点
    • 总线型拓扑结构:所需电缆数少,易于扩展;通信范围受限,故障诊断与隔离难,容易发生冲突
    • 环形拓扑结构:所需电缆短,可以使用光纤,易于避免冲突;某结点故障全网瘫痪,加入新结点撤出比较麻烦,存在等待时间
    • 网状拓扑结构:可靠性高,一条或多态线路故障,网络仍然可联通;结构复杂,造假成本高,选路协议复杂
    • 树形拓扑结构:易于扩展,故障隔离容易;对根结点可靠性高,根结点故障,导致大范围无法通讯
    • 混合拓扑结构:大多数实际网络拓扑属于混合网络(Internet);易扩展,构建不同规模,可根据需求选网络结构;网络结构复杂,管理维护复杂
  • 按交换方式分类
    • 电路交换
    • 报文交换
    • 分组交换
  • 按网络用户分类
    • 公用网
    • 私有网

2 计算机网络结构

  • 网络边缘:计算机、服务器、智能手机、智能传感器……
  • 网络接入

    • 电话拨号揭露
    • 非对称数字用户线路 ADSL
    • 混合光纤同轴 HFC 揭露
    • 局域网
    • 移动网络接入
  • 网络核心:分组交换网络设备构成,主机之间数据中继与转发

3 数据交换技术

  • 概念:实现在大规模网路核心上进行数据传输的技术基础
  • 电路交换:最早出现的一种交换方式(电话网络最早、最大的电路)
    • 优点:实时性高、时延和时延抖动小。
    • 缺点:突发数据传输,信道利用率低,传输速率单一
  • 交换网络:

    1. 建立链接
    2. 传输数据
    3. 拆除电路
  • 报文交换:储存-转发交换方式
    • 什么是报文:发送方把要发送的信息附加上发送/接收主机的地址和控制信息
    • 优点:信道利用率高
    • 缺点:时延长,可能会报文过多而丢弃报文
  • 分组交换:包交换,存储-转发交换方式
    • 将待传输的数据(报文)分割成较小的独立的数据块

4 计算机网络性能

  • 速率与带宽

    • 速率:网络单位时间内传送的数据量,用以描述网络传输数据的快慢;bit/s(位每秒)
    • 带宽
      • 通信和信号处理领域,指的是信号的频带宽度,即信号成分的最高频率与最低频率之差。单位:Hz(赫兹)
      • 计算机网络领域,指的是一条链路或者信道的数据传输能力,也就是最高数据速率,单位:bit/s(位每秒)
  • 时延:跳步的时间总和即为一个分组从源主机到达目的主机的时延

    • 数据从网络中的一个结点(主机或者交换设备)到达另一个结点所需要的时间
    • 在分组交换网络中:通常将连接两个结点的直接链路称为一个”跳步”,简称”跳”
    • 公式

      • 结点处理时延:$dc$;此类延时较小,往往忽略
      • 排队时延:$dq$;排队时延不确定
      • 传输时延:$dt=L/R$;分组在输出链路发送时,从发送第一位开始,到发送完最后一位需要的时间
        • L:分组长度bit
        • R:链路带宽bit/s
      • 传播时延:$dp=D/V$信号从发送端出来,经过一段物理链路到达接收端需要的时间。
        • D:物理链路长度m
        • V:信号传播速度m/s
      • 一个分组经过一个跳步需要的时间$dh=dc+dq+dt+dp$;一般只需要计算$dt+dp$
  • 时延带宽积:物理链路的传播时延与链路带宽的乘积,记为 G
    • 公式:$G=传播时延*链路带宽$ G=dp*R
      • 传播时延的单位:s
      • 带宽的单位: bit/s
      • 时延带宽积的单位:bit
  • 丢包率:丢失分组和发送分组之比。反映网络的拥塞程度
    • $Ns$:发送分组数
    • $Nr$:接收分组数
    • 公式:$\eta= \frac{Ns-Nr}{Ns}$
  • 吞出量:在单位时间内源主机通过网络向目的主机实际送达的数据量,记为 Thr;对于分组交换网络,源主机到目的主机的吞吐量在理想情况下约等于瓶颈链路的带宽,即等于链路的带宽中的最小值
  • 例题:设主机 A 和主机 B 由一条带宽为 R=108bit/s、长度为 D=100m 的链路互连,信号传播速率为 V=250000km/s。如果主机 A 从 t=0 时刻开始向主机 B 发送长度为 L=1024bit 的分组

    1. 主机 A 和主机 B 间的链路传输时延 dt: 答案:$dt=L/R=1024bit÷108bit/s=1.024×10-5s$
    2. 主机 A 发送该分组的传播时延 dp。 答案:$dp=D/V=100m÷250000km/s=100÷250000×103m/s=4×10-7s$
    3. 该分组从主机 A 到主机 B 的延迟 T。(忽略结点处理时延和排队时延) 答案:$T=dt+dp=1.024×10-5s+4×10-7s=1.064×10-5s$
    4. 在 t=dt 时刻,分组的第一位在何处。(说明原因) 答案:分组的第一位已到达主机B,因为:dt>dp
    5. 主机 A 与主机 B 间链路的时延带宽积 G 答案:$G=dp×R=4×10-7s×108bit/s=40bit$

5 计算机网络体系结构

  • 概念

    • 用户之间进行信息交换
      • 硬件:主机、链路、交换设备
      • 协议
    • 协议最典型的划分方式,采用分层方式组织协议
    • 分层核心思路是上层功能建立在下层更能基础上,每一层内均要遵守一定的通信规则协议
    • 计算机网络体系结构:计算机网络划分的层次以及各层协议的集合;这种分层体系结构是按照功能划分的,不是按照实现方式划分的
  • OSI 参考模型:国际化标准组织(ISO);开放系统互连(open system interconnection)

    • 含义:端到端层:传输层、会话层、表示层、应用层

      • 数据:(PDU:协议数据单元)在垂直的层次中自上而下地逐层传递至物理层
      • 实通信:物理层的两个端点进行物理通信
      • 虚拟通信:对等层不直接进行通信
      • 中间系统(路由器):通常只实现物理层、数据链路层和网络层功能
      • 结点到结点层:物理层、数据链路层、网络层
    • 七层概述(高->低

      • 7->应用层:提供网络服务(文件传送、电子邮件、P2P 等)报文
      • 6->表示层:处理应用实体之间交换数据的语法
      • 5->会话层:用户与用户之间的连接。建立会话时核实双方身份、费用、对话控制与管理
      • 4->传输层:第一个端到端的层次。复用/分解,端到端的可靠数据传输、连接控制、流量控制、拥塞机制等;数据段或报文段
      • 3->网络层:数据转发与路由;分组或包
      • 2->数据链路层:有效的差错控制;
      • 1->物理层:无结构的比特流传输;比特流或位流
    • 主要功能

      • 1-3:完成数据交换和数据传输,称为网络低层
      • 4:底层于高层之间传输层衔接
      • 5-6:完成信息处理服务的功能,称为网络高层
  • TCP/IP 参考模型

    • 最大、最重要的计算机网络—因特网的体系结构可以采用 TCP/IP 参考模型描述
    • 4->应用层、 报文 、OSI(应用层、表示层、会话层):Internet 常见的网络应用(WWW、HTTP、FTP、邮件【SMTP、POP3】);面向链接服务(TCP)、面向无连接服务(UDP)
    • 3->传输层、 、OSI(传输层):应用层将用户数据按照特定的应用层协议封装好,接下来由传输层的协议负责把这些数据传输到接收方主机上对等的应用程序。TCP 协议、UDP 协议
    • 2->网络互连层、 数据报、 OSI(网络层):核心;解决把数据分组发往目的网络或主机的问题。路由选择,IP、ICMP、IGMP、BGP、OSPF、RIP 协议等
    • 1->网络接口层、 、 OSI(数据链路层、物理层):没有真正描述这一层的实现。具体的实现方法将随着网络类型的不同而不同
  • 五层参考模型:结合OSITCP/IP 提出总和理论需求和实际网络的五层参考模型

    • 应用层 报文
    • 传输层
    • 网络层 数据报
    • 链路层
    • 物理层 比特流

6 计算机网络与因特网发展简史

  • 分组交换技术提出因特网
  • 历史

    • 1967 年发布第一个 ARPAnet 第一分组交换分组交换计算机网络 分组交换网之父
    • 1969 年第 ARPAnet 建成有四个分组交换机互连网络
    • 1972 年第 ARPAnet 发展到 15 个交换结点
    • 20 世纪 70 年代早期与中期,除了 ARPAnet 之外,还诞生许多其他的分组交换网络(ALOHAnet、Telenet);发展三个因特网核心网络协议:TCP、UDP、IP
    • 20 世纪 70 年代末, ARPAnet 已连接大约 200 台主机。因特网已现雏形
    • 20 世纪 80 年代,因特网连接的主机数量达到 100000 台
    • 20 世纪 90 年代,因特网祖先 ARPAnet 已不复存在
    • 20 世纪 90 年代后五年,因特网快速发展与变革的时期,企业和高校、甚至个人开始接入因特网
    • 2000 年开始,因特网进入爆发式发展期

第二章 网络应用

1 计算机网络应用体系结构

  • 客户端/服务器(C/S)结构网络应用

    • 最典型、最基本的网络应用
    • 网络应用通信的双方分为服务器程序和客户程序
    • 特征
      • 通信只在客户和服务器之间进行,用户与用户之间不进行直接通信
      • 主动发起通信的一方是客户程序,被动接受通信的一方是服务器
      • 服务器程序先运行,做好接受通信的准备
  • P2P(peer to peer)

    • 通信双方没有传统意义上的客户服务器之分,地位对等,通信双方都具备客户与服务器的特征
    • 文件分发、文件共享、视频流服务等应用中,P2P 表现出优越的性能
  • 混合结构网络应用

    • C/S 应用和 P2P 应用相结合
    • 既有中心服务器的存在,也有对等端间的直接通信

2 网络应用通讯基础原理

  • 网络应用的基本通讯过层:运行在不同主机上的应用进程间以C/S方式进行通信
  • C/S 方式:服务器端运行的是服务器进程,被动等待客户请求服务;客户端运行的是客户进程,主动发起通信,请求服务器进程提供服务
  • 应用进程之间遵循应用层协议交换应用层报文。还需要通过层间接口(应用编程接口 API)将报文传递给相邻的传输层
  • 典型的网络应用编程接口是套接字(Socket)
  • 对于一个传输层协议,需要为与其接口的每个套接字分配一个编号,标识该套接字,该编号称为端口号(IP+端口号)
  • Internet 传输层只提供两类服务:(TCP、UDP)

3 域名系统(DNS)

  • 概念
    • 域名系统(domain naming system)
    • 域名解析原理:为了实现域名解析,域名系统会建立分布式数据库,储存域名与IP地址的映射关系
      • 主机域名:www.baidu.com ->域名解析-> IP地址:220.181.38.251
  • 层次化域名空间
    • 域名的命名方式:层次树状结构命名方式,每个域名有不同的级别的域名构成,各个层级域名之间用点分隔
    • www.sina.com.cn
      • www:三级域名
      • sina:二级域名
      • com:通用顶级域名
      • cn:国家顶级域名
    • 顶级域名分类
      • 1)国家顶级域名:cn,us,uk
      • 2)通用顶级域名:com,org,gov,edu
      • 3)基础结构域名:只有一个(arpa,反向域名解析)
  • 域名服务器:以为管理范围单位

    • 本地(默认)域名服务器:在主机网络地址配置是,都会配置用于保存被查询域名信息
    • 根据保存的域名信息在解析过程中的作用分类

      • 根域名服务:最重要的域名服务器,全球 13 个 a ~ m(保存所有顶级域名服务器的域名和 IP 地址)
      • 顶级域名服务(TLD 服务):负责管理在该顶级域名服务器(cn)注册的所有二级域名
      • 权威域名服务:保存该区中的所有主机的域名和 IP 地址的映射
      • 中间域名服务:不是以上三种的域名服务器
  • 域名解析过程
    • 递归解析:主机进行域名查询时,本地域名服务器没有被查询域名信息,则本地域名服务器代理主机查询根域名服务器
    • 迭代解析:主机进行域名查询时,本地域名服务器没有被查询域名信息,则先求助于根域名服务器
    • 总结:无论是递归还是迭代,本地服务器不能直接响应解析结果,都需要从根域名服务器开始查询

4 万维网应用

  • 万维网应用:web 应用
    • 主要包括:浏览器、web 服务器、超文本传输协议 HTTP
      • 浏览器:Web 应用的客户软件、客户代理。
      • Web 服务器:服务器软件、存储管理供用户请求浏览的 Web 页面(Web 文档)
      • 超文本传输协议(HTTP):客户和服务器间的交互基于的协议
    • 统一资源定位符号(universal resource locator,URL)
      • URL 地址:存放对象的主机域名(或 IP 地址)+对象的路径名;URL 寻址方式确保万维网上的每一个 web 页面或者对象都有一个唯一的标识符
  • HTTP:超文本传输协议(Hyper Text transfer protocol,HTTP)

    • 概述
      • Web 应用的应用层协议,定义浏览器如何向 Web 服务器发送请求,以及 Web 服务器如何进行响应
      • HTTP/1.0 和 HTTP/1.1
    • HTTP 链接
      • HTTP 基于传输层的 TCP 传输报文。浏览器在向服务器发送请求之前,首先建立 TCP 连接,然后才发送 HTTP 请求报文,接收 HTTP 响应报文(C/S)
      • RTT (Round Trip Time): 作为一个时间单位来使用(HTTP 客户进程向服务器请求建立连接:从客户发送连接请求,到客户收到服务器连接确认,用时一个往返时间)
    • 使用 TCP 策略不同
      • 非之久链接的 HTTP(tcp 用一次就断开了)
        • 非持久连接(一条连接)(8 个 RTT)
        • 并行连接(多条连接)(4 个 RTT)
      • 持久连接的 HTTP(TCP 不断开)
        • 非流水方式持久连接(5 个 RTT)
        • 流水方式持久连接(3 个 RTT)
    • HTTP 报文

      • 请求报文和响应报文

        • 请求:浏览器(客户端)发送给 Web 服务器
        • 响应:Web 服务器发送给浏览器
        • 请求报文

            请求报文
          起始行 请求行:<方法>< URL ><版本协议>
          首部行  
          空白行  
          报文主体  
          • 请求方法:

            方法 简介
            GET 请求读取由 URL 所标识的信息,是最常见的方法
            HEAD 请求读取由 URL 所标识的信息的首部
            POST 给服务器添加信息
            OPTION 请求一些选项的信息
            PUT 在指明的 URL 下存储一个文档
        • 响应报文:状态码用于服务器向客户端通告响应情况

          • 响应格式

              响应报文
            起始行 状态行:<版本协议><状态码><短语>
            首部行  
            空白行  
            报文主体  
          • HTTP 状态码:3 位十进制数,利用第一位十进制数字区分 5 类状态码

            状态码类别 取值范围 作用 说明
            1xx 100-199 信息提示 通告信息,可能还需要进一步交互
            2xx 200-299 成功 成功完成客户请求的操作,并进行响应
            3xx 300-399 重定向 表示资源已移走,需要向新 URL 发请求
            4xx 400-499 客户端错误 由于客户端请求错误,无法成功响应
            5xx 500-599 服务器错误 由于服务器端错误,无法成功响应
          • 常见的状态码

            状态码 短语 含义
            100 Continue 已成功收到了请求的初始部分,请客户端继续
            200 OK 成功,所请求信息在响应报文中
            301 Moved Permanently 重定向
            400 Bad Request 客户端请求错误
            401 Unauthorized 未授权,需要输入用户名和密码
            404 Not Found 客户端请求的对象,在服务器上不存在
            451 Unsupported Media Type 不支持的媒体类型
            505 HTTP Version Not Supported 请求使用的 HTTP 版本,服务器不支持
  • Cookie
    • HTTP 服务器不保存客户的任何信息,被称为无状态协议;引入 Cookie 机制,用于用户跟踪
    • 小型文本文件(Cookie):网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据
    • Cookie 技术主要包括 4 部分内容
      • 1)HTTP 响应报文中的 Cookie 头行:用户的 Cookie ID,用户偏好等。
      • 2)用户浏览器在本地存储、维护和管理的 Cookie 文件。
      • 3)HTTP 请求报文中的 Cookie 头行:用户已访问过的网站再次访问时,浏览器会检索本地 Cookie 文件。
      • 4)网站在后台数据库中存储、维护 Cookie 信息:分配用户 ID、每个 ID
    • 分类
      • 保存在硬盘中的 Cookie 称为永久 Cookie,关闭浏览器不影响 Cookie
      • 保存在内存中的 Cookie 称为会话 Cookie,关闭浏览器 Cookie 消失
    • 用途
      • 1)网站可以利用 Cookie 的 ID 来准确统计网站的实际访问人数、新访问者和重复访问者的人数对比、访问者的访问频率等数据
      • 2)网站可以利用 Cookie 限制某些特定用户的访问
      • 3)网站可以存储用户访问过程中的操作习惯和偏好
      • 4)记录用户登录网站使用的用户名、密码等信息
      • 5)电子商务网站利用 Cookie 可以实现”购物车”功能

5 Internet 电子邮件

  • 概述
    • 邮件服务器:发送和接收邮件、向发信人报告邮件传送情况(已交付、被拒绝、丢失等)、 用户注册、 分配存储空间
    • 用户代理:电子邮件应用的客户端软件(Outlook,Apple Mail,Fox Mail)
    • 简单邮件传输协议(SMTP):实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输;默认端口 25
    • 邮件读取协议(POP3、IMAP、HTTP)
      • POP3:第三版邮局协议
      • IMAP:互联网邮件访问协议
      • HTTP:Web 邮件系统的邮件读取协议
  • SMTP(simple mail transfer protocol ,SMTP)
    • 实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输
    • 使用传输层 TCP 实现可靠数据传输,使用的端口号是 25
      • 过程
        • 握手阶段
        • 邮件传输阶段
        • 关闭阶段
    • 特点
      • 1)SMTP 只能传送7 位ASCLL码文本内容,包括 SMTP 命令、应答消息以及邮件内容,优化方案互联网邮件扩展(multipurpose internet mail extensions,MIME)
      • 2)SMTP 传送的邮件内容中不能包含CRLF.CRLF,因为该信息用于标识邮件内容的结束。
      • 3)SMTP 是推动协议。(补充:HTTP 是”拉动”协议)。
      • 4)SMTP 使用TCP 连接是持久
  • 邮件读取协议:比较流行的邮件读取协议:以拉动方式运行
    • POP3
      • 使用 TCP,默认端口110
      • 交互阶段
        • 授权、事务处理、更新阶段(quit)
    • IMAP-互联网邮件访问协议(Internet Message Access Protocol,IMAP):
      • IMAP 服务器将每个邮件与一个文件夹进行关联,通过 IMAP 收件人可以对邮件进行移动、查询、阅读、删除等操作
      • IMAP 维护了 IMAP 会话的用户状态的信息。并且允许用户代理只读取部件的部分内容
    • HTTP:web 邮件系统的的邮件读取协议

6、7 FTP、P2P 应用

  • FTP(file transfer protocol):
    • 在互联网的两个主机间实现文件互传的网络应用的应用层协议
    • FTP 是 C/S 方式实现客户、服务器之间的双向文件传输。
    • FTP 服务器器进程分为两部分:主进程,负责接受新的客户请求;
    • 若干从进程,负责处理单个客户请求
    • FTP 应用结构:控制进程的端口号 21传送数据的端口号 20
  • P2P 应用
    • 客户/服务器体系结构过于依赖服务器,一旦服务器出现故障,会引起单点故障。P2P 体系结构对服务器的的依赖很小
    • 特点
      1. 应用的对等方是用户的计算机。
      2. 很强的应用规模伸缩性。
      3. 应用在对等方之间进行
      4. 应用充分聚集利用了端系统的计算能力以及网络传输宽带

8 Socket 编程

  • 类型
    • 数据报类型套接字SOCK_DGRAM、面向传输层 UDP 接口传输层
    • 流式套接字SOCK_STREAM、面向传输层 TCP 接口传输层
    • 原始套接字SOCK_RAW、面向网络层协议(如 IP、ICMP 等)接口 网络层
  • 函数
    1. 创建套接字:socket( )
    2. 绑定套接字的本地端点地址: bind( )
    3. 设置监听:listen( )
    4. 建立连接:
      1. TCP 客户端:connect( )
      2. TCP 服务端:accept( )
    5. 接收数据:
      1. TCP:recv( )
      2. UDP:recvfrom( )
    6. 发送数据:
      1. TCP:send( )
      2. UDP:sendto( )
    7. 关闭套接字:close( )

第三章 传输层

1 传输层的基本服务

  • 传输的功能

    • 核心任务:应用进程之间提供端到端的逻辑通信服务
    • 功能
      • 应用层报文进行分段和重组
      • 面向应用层实现复用与分解
      • 实现端到端的流量控制
      • 拥塞控制
      • 传输层寻址
      • 对报文进行差错检测
      • 实现进程间的端到端可靠数据传输控制
    • 并不是所有的传输层协议都要实现所有的功能,大部分传输层协议
  • 传输层寻址与端口

    • 传输层就是为了支持不同的主机,不同操作系统上的应用程序之间的通信,必须要使用统一的寻址方法对应用进程进行标识
    • 单个计算机中,不同应用进程用进程标识符(进程 ID)来区分
      • TCP/IP 网络体系结构的解决方法
        • 在传输层使用端口(port)
        • 全网利用IP地址+端口号,唯一标识一个通信端点
    • 端口号为16位整数,可以编号65536 $2^{16}$

      端口 描述 用处
      0-1023 熟知端口号 服务端
      1024-49151 登记端口(IANA 登记防止重复) 服务端
      49152-65535 短暂端口号 客户端
    • 常用端口号

      端口号 描述
      20、21 FTP 文件传输协议端口号
      25 SMTP 简单邮件传输协议端口号
      53 DNS 域名服务器端口号
      80 HTTP 超文本传输协议端口号
      110 POP3 第三版的邮局协议端口号
  • 无连接服务与面向连接服务

    无连接服务(UDP) 面向连接服务(TCP)
    数据传输之前:无需与对端进行任何信息交换(”握手”),直接构造传输层报文段并向接收端发送 数据传输之前:需要双方交换一些控制信息,建立逻辑连接,然后再传输数据,传输结束后还需要拆除连接
    例如:邮政系统的信件通信 例如:电话通信

2 传输层的复用与分解

  • 概述
    • 多路复用与多路分解:支持众多应用进程共用同一传输层协议,能准确的将接收的数据交付给不同的应用进程,称为传输层的多路复用与多路分解
    • 多路复用::在源主机,传输层协议从不同的套接字收集应用进程发送的数据块,并为每个数据块封装上首部信息(包括用于分解的信息)构成报文段,然后将报文段传递给网络层;多个进程同时利用同一个传输层协议
    • 多路分解:在目的主机,传输层协议读取报文段中的字段,标识出接收套接字,进而通过该套接字,将传输层的报文段中的数据交付给正确的套接字
  • 无连接的多路复用与多路分解(UDP)
    • 分配方法
      • UDP 自动分配未使用端口
      • 创建 UDP 套接字,通过调用bind() 函数为该套接字绑定一个特定端口
    • UDP 套接字二元组:<目的IP地址,目的端口号>
  • 面向连接
    • TCP 套接字四元组:<源IP地址,源端口号,目的IP地址,目的端口号>

3 停-等协议与滑动窗口协议

  • 可靠原理
    • 概述
      • internet 传输层的两个协议:TCP 、UDP
      • TCP 可靠传输服务,将报文交给 IP 传送,而 IP 尽力服务,也就是不可靠,必须采取措施才能使其在基于不可靠的网络层上实现可靠传输
    • 不可靠传输信道的不可靠性方面
      • 比特差错:1100——0110
      • 乱序:先发的数据包后到达,后发的数据包先到达
        • 发送:1、2、3、4、5
        • 接收:2、1、5、4、3
      • 数据丢失:中途丢失,不能达到目的地
        • 发送:1、2、3、4、5
        • 接收:1、3、4、5
    • 采取措施
      • 差错检测:利用差错编码实现数据包传输过程中的比特差错检测(甚至纠正)
      • 确认:接收方向发送方反馈接收状态
        • ACK(肯定确认);NAK(否定确认)
        • 肯定确认:Positive Acknowledgement,正确接收数据
        • 否定确认:Negative Acknowledgement,没有正确接收数据
      • 重传:发送方重新发送接收方没有正确接收的数据
        • 发送方接收到 NAK,表示接收方没有正确接收数据,则将出错的数据重新向接收方发送
      • 序号:确保数据按序提交
        • 对数据包进行编号。可以避免由于重传引起的重复数据被提交的问题
      • 计时器:解决数据丢失问题
        • 发送方发送数据后启动计时器,如超时还未收到接收方的确认。主动重发数据包,从而纠正数据丢失问题
    • 有效、合理地综合应用上述措施,可以设计实现可靠数据传输的协议
      • 停-等协议与滑动窗口协议
  • 停等协议
    • 工作流程
      • 1)发送方发送经过差错编码和编号的报文段,等待接收方的确认。
      • 2)接收方如果差错检测无误且序号正确,则接收报文段,并向发送方发送 ACK,否则丢弃报文段,并向发送方发送 NAK
      • 3)发送方如果收到 ACK,则继续发送后续报文段,否则(NAK 超时)重发刚刚发送的报文段
    • 细节
      • 差错控制:报文段、ACK、NAK 数据包均需要进程差错编码以便进行差错控制
      • 序列号:只需要 1 位就够了(区分是新发的报文还是重传的报文)
      • ACK 和 NAK:利用重复 ACK 代替 NAK(对上一个正确接手的报文段再次进行确认【ACK0】)
      • ACK 和 NAK 差错:有错推断
  • 滑动窗口
    • 停等协议不足(性能差、信道利用率低)
    • 流水线协议(管道协议):允许发送方没有收到确认前发送多个分组(最典型的流水线协议滑动窗口协议
    • 流水线协议可靠传输,改进
      • 增加分组序号(多位)
      • 发送方和接收方可以缓存多个分组
    • 特点
      • 发送方依序流水方式(1,2,3,4,5)发送分组,接收方接手分组按序向上提交
      • 发送方对已发送的未收到确认的分组,必须缓存,必要时重发,发送方可以连续发送多个未收到确认的分组(取决于缓存能力)
      • 接收方对未按按序到达的分组,必须缓存或者丢弃并确认(取决于缓存能力)
    • 滑动窗口协议的窗口
      • 发送窗口($Ws$):发送方可以发送未被确认分组最大数量
      • 接手窗口($Wr$):接手方可以缓存的正确到达到达分组的最大数量
    • 滑动窗口协议,根据窗口的大小,两种代表性的滑动窗口协议
      • 1)回退 N 步协议:GBN 协议(Go-Back-N)
        • 发送窗口 Ws≥1 ,接收窗口 Wr=1。
          • 发送端缓存能力高,可以在没有得到确认前发送多个分组
          • 接收端缓存能力很低,只能接收 1 个按序到达的分组,不能缓存未按序到达的分组
        • 发送方响应事件
          • 上层调::窗口未满,用”下一个可以序号”编号并发送分组,否则拒绝发送新的数据
          • 收到 1 个 ACKn:GBN 采用累积确认方式,即发送方收到 ACKn 时,表明接收方正确接收序号 n 以及序号小于 n 的所有分组
          • 计时器超时:发送方只使用一个计时器,对”基序号”指向的分组计时;如超时,如超时,重发当前发送窗口中所有已发送但未确认的分组,即”回退 N 步”,因为接收方 Wr=1,无缓存能力
        • 接收方
          • Wr=1,只能接收”基序号”所指向的分组
          • 如接收方正确接收到序号为基序号,则发送一个 ACKn,接收窗口滑动到序号 n+1 的位
          • 接收到的序号不是 n 或者分组差错等,则发送 ACKn-1。
        • 总结
          • 在差错较低的情况下,信道利用率会得到很大提高
          • 如果信道误码率或者丢包率较高,导致大量重发,信道传输能力降低
          • GBN 适合低误码率、低丢包率、带宽高时延积信道,且对接收方缓存能力要求低
      • 2)选择重传协议:SR 协议(Selective Repeat)
        • 选择重传(SR)通过让发送方仅重传那些未被接收确认(出错或者丢失)的分组,避免了不必要的重传
        • 发送窗口 WS > 1,接收窗口 Wr > 1。很多 SR 协议 WS 、Wr 大小相等。
          • 发送端缓存能力高
          • 接送端缓存能力高
        • 发送方响应
          • 上层调用,请求发送数据:检查”下一个可用序号”,位于发送窗口内则发送,否则缓存或者返回给上层
          • 计时器超时,发送方对每个分组进行计时,超时则重发该分组
          • 收到 ACKn:SR 协议对 n 进行判断。如 n 在当前窗口内,则标记已接收(刚好是基序号,窗口向右滑动到最小未被确认序号处);其他情形不做响应
        • 接收方
          • 正确接收到序号在接收窗口范围内的分组 PTKn,发送 ACKn,窗口滑动
          • 正确接收到序号在接收窗口左侧的分组 PTKn,这些分组在之前已经正确接收并提交,丢弃 PTKn,并发送 ACKn,窗口不滑动
          • 其他情况,直接丢弃分组,不做任何响应

4 用户数据包协议(UDP)user datagram protocol

  • 基本知识
    • 概述
      • Internet 传输层协议
      • 提供无连接、不可靠、数据报尽力传输服务
      • 通讯进程之间没有握手过程
      • UDP 没有拥堵控制机制
      • 实现了复用与分解以及简单的差错检测
      • DNS 使用 UDP 应用层协议的例子
    • 选择 UDP 原因特点
      • 应用进程容易控制发送什么数据以及何时发送。可能会出现分组的丢失和重复
      • 无需建立连接;DNS 使用的主要原因
      • 无连接状态,无需维护连接状态
      • 首部开销小,只需要8 个字节;而 TCP 需要 20 字节
  • 数据报结构
    • 首部(每个字段长度都是2个字节,共8个字节)
      • 源端口号目的端口号:实现复用和分解
      • 长度:指示 UDP 报文段中的字节数(首部和数据总和)
      • 校验和:接收方使用来检测数据报是否出现差错
  • 校验和

    • 提供差错检测功能
    • 检测 UDP 报文段从源到目的传送过程中,其中数据是否发送了改变
    • 计算规则
      • 所有参与运算的内容按16 位对齐求和
      • 求和过程中遇到溢出(即进位)都被回卷(即进位与和的最低位再相加
      • 最后得到的和取反码,就是 UDP 的校验和,填入 UDP 数据报的校验和字段
    • 计算内容包括:UDP 伪首部、UDP 首部、应用数据;UDP 协议好 17
    • 示例

      • 数值 1:0110 0110 0110 0000
      • 数值 2:0101 0101 0101 0101
      • 数值 3:1000 1111 0000 1100

        操作 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1
        数值 1   0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0
        数值 2   0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
        1+2   1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1
        数值 3   1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0
        1+2+3 1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1
        益处回卷   0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0
        取反码   1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
    • 总结
      • UDP 提供差错检测,但是它没有差错恢复能力只是
      • 简单地丢弃差错报文段,或者将受损的报文段交给应用程序并给出警告
      • 由应用程序处理出错报文

5 传输控制协议(Transmission Control Protocol,TCP)

  • 概述
    • 提供面向连接、可靠、有序、字节流传输服务
    • 特点
      • 应用进程之间先建立连接,而且该连接只供通讯双方(2 个端点)使用
      • 传输数据:无差错、不丢失、不重复、按序到达
      • 面向字节流:字节序列;应用程序和 TCP 的交互是一个个数据块,TCP 把他们看做是无结构字节流
      • 全双工通讯:通讯双方进程在任何时候都能发送和接收数据
    • 最大报文段长度(Maximum segment size,MSS):报文段中封装的应用层数据的最大长度
  • 报文段结构
    • 概述:TCP 报文段有首部字段和一个数据字段组成(将文件划分成长度 MSS 的快,最后一块除外),一个快封装成一个TCP报文段
    • 1)源端口字段,目的端口号字段:占 16 位;复用和和分解上层应用的数据
    • 2)序号字段、确认序号字段:32 位
      • 序号字段:TCP 的序号是对每个应用层数据的每个字节进行编号
      • 确认序列号字段:期望从对方接收数据的字节序号,即该序号对应的字节尚未收到
      • TCP 采用累计确认机制
    • 首部长度字段:占 4 位,指出 TCP 段的首部长度(字段值为 5,表示首部长度 20 字节)
    • 保留字段:占 6 位,保留为今后使用,目前值为 0
    • URG、ACK、PSH、RST、SYN、FIN 各占 1 位,标志位字段,共 6 位,取值位01
      • 紧急 URG=1,紧急指针字段有效,优先传送。
      • 确认 ACK=1,确认序号字段有效;
      • ACK=0 时,确认序号字段无效。推送 PSH=1,尽快将报文段中的数据交付接收应用进程,不要等缓存满了再交付。
      • 复位 RST=1,TCP 连接出现严重差错,释放连接,再重新建立 TCP 连接。
      • 同步 SYN=1,该 TCP 报文段是一个建立新连接请求控制段或者同意建立新连接的确认段。
      • 终止 FIN=1,TCP 报文段的发送端数据已经发送完毕,请求释放连接
    • 接收窗口字段:占 16 位 ,向对方通告我方接收窗口的大小,实现 TCP 流量控制
    • 校验和:占 16 位,和 UDP 的校验和的计算方法相同
    • 紧急指针字段:占 16 位
      • URG=1 时,才有效。指出在本 TCP 报文段中紧急数据共有多少个字节
    • 选择字段长度可变,最短为 0 字段
    • 填充字段,取值为 0,目的是为了整个首部长度是 4 个字节的整数倍数
  • TCP 连接管理

    • 连接管理:连接建立于连接拆除(三次握手)

      • 主机 A 于主机 B 建立 TCP 连接
        • 主机 A 的 TCP 向主机 B 发出连接请求 SYN 报文段(第一次握手)SYN=1;seq=x;
        • 一旦包含 SYN 报文段的 IP 数据报到达主机 B,SYN 报文段被从数据报中提取出来,主机 B 的 TCP 接到连接请求段后,如同意建立连接,则发回确认的 SYNACK 报文段(第二次握手)。
      • 流程图

              sequenceDiagram
                participant C as 客户端
                participant S as 服务端
                C->>S: SYN=1,seq=x (第一次握手)
                S-->>C: SYN=1,ACK=1,seq=y, ack_seq=x+1 (第二次握手)
                C->>S: ACK=1,seq=x+1,ack_seq=y+1(第三次握手)客户端同意
        
        • 第一次握手(客户端进入SYN_SEND同步发送)
          • SYN=1:建立连接请求控制段
          • seq=x(seq 表示序号的意思):表示传输的报文段的第 1 个数据字节的序列号是 x,此序列号代表整个报文段的序号
        • 第二次握手(服务端由LISTEN进入SYN_RCVD(同步收到))
          • SYN=1:同意建立新连接的确认段
          • ACK=1:确认序号字段有效
          • seq=y:服务器告诉客户机确认报文段的序列号是 y。
          • ack_seq=x+1:表示已经收到了序列号为 x 的报文段,准备接收序列号为 x+1 的报文段
        • 第三次握手(当客户机发送 ACK 时,进入ESTABLISHED状态;当服务器收到 ACK 后,也进入ESTABLISHED状态)
          • ACK=1:确认序号字段有效
          • seq=x+1:客户机此次的报文段的序列号是 x+1
          • ack_seq=y+1:客户机期望接收服务器序列号为 y+1 的报文段
          • 第三次握手可携带数据
      • 为什么要三次握手
        • 第一次握手:客户发送请求,此时服务器知道客户能发
        • 第二次握手:服务器发送确认,此时客户知道服务器能发能收
        • 第三次握手:客户(数据)发送确认,此时服务器知道客户能收
    • 连接拆除(4 次挥手)

      • 流程图

        sequenceDiagram
            participant C as 客户端
            participant S as 服务端
            C->>S: FIN=1,seq=u (第一次挥手)
            S-->>C: ACK=1,seq=v,ack_seq=u+1 (第二次挥手)
            S-->>C: FIN=1,ACK=1,seq=v+1,ack_seq=u+1 (第三次握手)
            C->>S: ACK=1,seq=u+1,ack_seq= v+1+1(第四次挥手)
        
        • 第一次挥手
          • 客户向服务器发送释放连接报文段:(FIN=1,seq=u)
          • FIN=1:发送端数据发送完毕,请求释放连接
          • seq=u:传输的第一个数据字节的序号是 u
          • 客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待 1 状态)
        • 第二次挥手
          • ACK=1:确认字号段有效。
          • ack_seq=u+1:服务器期望接收客户数据序号为 u+1。
          • seq=v:服务器传输的数据序号是 v
          • 服务器状态由ESTABLISHED进入CLOSE_WAIT(关闭等待)
          • 客户端收到 ACK 段后,由FIN_WAIT_1进入FIN_WAIT_2
        • 第三次挥手
          • FIN=1:请求释放连接
          • ACK=1:确认字号段有效
          • ack_seq=u+1:表示服务器期望接收客户数据序号为 u+1
          • seq=v+1:表示自己传输的第一个数据字节的序号是 v+1
          • 服务器状态由CLOSE_WAIT进入LAST_ACK(最后确认状态)
        • 第四次挥手
          • ACK=1:确认字号段有效。
          • ack_seq=v+1+1:表示客户期望接收服务器数据序号为 v+1+1。
          • seq=u+1:表示客户传输的数据的序号是 u+1。
          • 客户端状态由FIN_WAIT_2进入TIME_WAIT,等待 2MSL 时间,进入CLOSED状态
          • 服务器在收到最后一次 ACK 后,由LAST_ACK进入CLOSED
  • 流量控制
    • 概述
      • 协调发送方与接收方的数据发送与接收速度,避免发送方发送数据太快,超出接收方接收能力和处理力
      • 利用窗口协议,但不是简单的滑动窗口协议
    • 实现机制
      • 建立连接,双方固定大小缓冲空间
      • 接收窗口字段(16 位),向对象通告接收窗口大小(剩余空间)
      • 不能超过最近一次接收端通告的接收窗口大小
  • 用塞控制
    • 概念
      • 太多的主机以太快的速度向网络中发送太多的数据,超出了网络处理能力
      • 导致大量数据分组拥挤在中间设备队列中等待转发,网络性能显著下降的现象
    • 拥塞的后果
      • 1)数据分组通过网络的时间显著增加
      • 2)队列满导致大量分组被丢弃
    • 用塞控制
      • 通过合理调度、规范、调整向网络中发送数据的主机数量
      • 发送速率、数据量,以避免拥塞或消除已发生的拥塞
    • 窗口调控基本策略(Additive Increase Multiplicative Decrease,AIMD)
      • 网络未发送拥堵时,逐渐”加性”增大窗口
      • 网络拥塞时”乘性”减小窗口
    • 算法
      • 慢启动
        • 建立连接时,使用慢启动拥塞控制算法调整拥塞窗口
        • RTT:发送端发出一个报文段到接收这个报文段的确认单时间间隔
      • 用塞避免
        • 为了防止拥塞窗口增长而引起的网络拥塞
        • 设置一个拥塞窗口阈值
        • 当拥塞窗口大于等于阈值时,每经过 1 个 RTT,拥塞窗口的值加 1
        • 当前拥塞窗口中所有报文段全部发送并且接收并成功确认,拥塞窗口的值加 1 “加性增加”
        • 例子
          • 当前拥塞窗口为 24MSS,当前阈值为 16MSS。
          • 新的阈值:为当前拥塞窗口的一半 24MSS÷2=12MSS
          • 新的拥塞窗口:直接调整为 1MSS
        • 调整好新的阈值和新的拥塞窗口后,重新执行慢启动算法。”乘性减小”
      • 快速重传
        • 接收端收到 3 次重复确认,则推断被重复确认的报文段已经丢失
        • 于是立即发送被重复确认的报文段
      • 快速恢复
        • 当发生 3 次重复确认时,网络拥塞程度不是很严重。
        • 阈值和拥塞窗口的调整方法:不再重新从慢启动阶段开始,而是直接从新的阈值开始,直接进入拥塞避免阶段

第四章网络层

1 网络层服务

  • 任务:承载传输层报文段的网络层数据报从源主机送达到目的主机,中间经过多跳路由器
  • 功能

    • 转发:当输入链路接收到一个分组后,路由器需要决策通过哪条输出链路将分组发送出去,并将分组从输入接口转移到输出接口
    • 路由选择:当分组从源主机流向目的主机时,必须通过某种方式决定分组经过的路由或路径

      • 计算分组经过的路由的算法(路由选择算法、路由算法
      • 路由器基于某种算法计算路由,将路由信息存储到路由器转发表
      • 每个路由器上有一张转发表(路由表

        目的地址 输出地址
        地址 1 1
        地址 2 2
    • 连接建立:网络层连接是从源主机到目的主机经过的一条路径,这条路径所经过的每个路由器等网络设备都要参与网络层连接的建立
      • 是否在网络提供连接服务
        • 提供连接服务的虚电路(VC)网络
        • 提供无连接服务的数据报网络

2 数据报网络与虚电路网络

  • 数据报网络
    • 概述:按照目的主机地址进行路由选择的网络(因特网是按照 IP 目的地址进行路由选择,因此因特网是一个典型的数据报网络
    • 特点
      • 每个数据分组单独处理(称数据报),每个数据报都携带源目的主机地址信息
      • 通信之前,不需要建立连接(称无连接)
      • 发送接收次序不一定相同,路径也可能不一致,接收方需要重组(传输层)
      • 丢失差错检测,由通信双方的传输层协议(TCP)解决
      • 分组到达分组交换机路由器,通过分组交换机的转发表(目的地址映射到某个输出链路的转发表)决策适合的输出链路,转发表更新(1-5m)
  • 虚电路网络(Virtual circuit,VC)

    • 虚电路
      • 源主机到目的主机的一条路径上建立的一条网络层逻辑连接,为区别于电路交换中的电路,称为虚电路
      • 每条虚电路都有虚电路号,称为虚电路标识(VCID)
    • 虚电路网络:在网络层提供面向连接的分组交换服务。双方通信前先虚电路建立连接,通信结束后再拆除连接
    • 一条虚电路(VC)由 3 个要素构成
      • 从源主机到目的主机之间的一条路径(一系列的链路和分组交换机)。因此分组是顺序到达的
      • 该路径上的每条链路的虚电路标识(VCID)
      • 分组交换机的转发表(VCID 转换表)中记录虚电路标识的接续关系
      • 建立一条新的 VC,VCID 转换表添加一行新表项
    • 虚电路交换与电路交换
      • 类似,都是面向连接的,顺序发送,建立连接都需要开销
      • 电路交换提供稳定的传输速率和延迟时间
      • 虚电路是分组交换提供统计多路复用传输服务
    • 虚电路分类
      • 永久型(PVC):提前建立,长期使用的虚电路,建立时间可以忽略
      • 交换型(SVC):根据需要临时建立,通信结束后拆除,建立和拆除时间开销较大。
    • 虚电路交换与数据报交换的差别
      • 虚电路网络(ATM 网络)通常由网络完成这些功能,由端系统提供无差错数据传送服务,而端系统则可以很简单
      • 数据报网络(Internet)通常网络实现的功能很简单,如基本的路由与转发,顺序控制、差错控制和流量控制等功能则由端系统来完成
    • 虚电路交换和数据报交换比较

      项目 虚电路网络 数据报网络  
      是否建立连接 先建立连接 不建立连接  
      地址 每个分组含有一个短的虚电路号 每个分组包含源和目的端地址  
      分组顺序 按序发送,按序接收 按序发送 ,不一定按序接收
      路由选择 建立 VC 时需要路由选择,之后所有分组都沿此路由转发 每个分组独立路由选择  
      典型网络 X.25、帧中继、ATM 因特网  

3 网络互连与网络互连设备

  • 异构网络互连
    • 主要是指两个网络的通信技术和运行协议的不同
    • 基本策略:协议转换和构建虚拟互连网络
      • 协议转换
        • 采用一类支持异构网络之间协议转换的网络中间设备
        • 来实现异构网络之间数据分组的转换与转发
        • 网桥、应用网关、交换机或者是多协议路由器
      • 构建虚拟互联网络:在异构网络基础上构建一个同构的虚拟互联网络(IP 网络
    • 异地同构网络:实现两个异地同构网络互连的典型技术是隧道技术
    • 例: MPLS(Multiple Protocol Lable Switching):多协议标记交换网络。
  • 路由器

    • 概述
      • 典型的网络层设备
      • 具有多个输入端口和多个输出端口的专用计算机
      • 主要任务就是获取与维护路由信息以及转发分组
      • 路由器从功能体系结构角度:输入端口、交换结构、输出端口、路由处理器
    • 输入端口:查找,转发,到达分组 缓存排队功能(下图,输入端口接收与处理数据过程)

          graph LR
              A(线路端接) -->B(数据链路处理 协议,封装)
              B(数据链路处理 协议,封装) -->C(查找 转发 排队)
              C(查找 转发 排队) -->D(交换结构)
      
    • 交换结构:分组被转发至哪个输出端口已经确定,具体的工作由交换结构来完成
      • 分类
        • 基于内存交换:输入端口(中断方式)-> 内存(路由处理器)-> 输出端口
        • 基于总线交换
          • 输入端口和输出端口连接在一条数据总线上
          • 无须路由处理器介入即可实现交换功能
          • 总线是独占式,一个分组通行,其他排队
        • 基于网络交换
          • 使用一个复杂的互联网络来实现交换结构
          • 克服单一、独占所带来的限制并行交换传输,但输出端口相同,也需要排队
      • 比较
        • 基于内存交换:性能最低,路由器价格最便宜
        • 基于网络交换:性能最高,路由器价格昂贵
    • 输出端口:提供缓排队功能,从队列中取出分组进行数据链路层数据帧的封装,通过物理线路端发送出去

      • 概述(下图输出端口处理数据过程)

        • 1)先到先服务(FCFS)调度策略;
        • 2)按优先级调度、按 IP 数据报的服务类型调度

              graph LR
                  A(交换结构) -->B(排队 缓存管理)
                  B(排队 缓存管理) -->C(数据链路处理 协议,封装)
                  C(数据链路处理 协议,封装) -->D(线路端接)
                  D(线路端接)-->E(XXXXXX)
          
    • 路由器处理器:路由器的 CPU,负责执行路由器的各种指令
      • 1)执行命令
      • 2)路由协议运行
      • 3)路由计算以及路由表的更新和维护
    • 路由器匹配规则
      • 检索路由表,没有则选择默认路由转发
      • 匹配成功,则选择对应接口
      • 有多条匹配成功,选择前缀匹配成功最长的路由项,即最长前缀匹配优先原则(网络号)

4 网络层拥塞控制

  • 网络拥塞:用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的总需求超过了网络固有的容量
    • 流量控制与拥塞控制
      • 流量控制:发送方根据接收方的的接收能力(缓存,速度)调整发送速率和数据量,关注点到点的流量
      • 拥塞控制:主要考虑端系统之间网络环境,确保网络能够承载所达到的流量
      • 例子
        • A 地到 B 地的车辆放行
        • 考虑 B 地停车能力,流量控制
        • 考虑 A 地到 B 地经过的路网不塞车,拥塞控制
    • 原因
      • 1)缓冲区容量有限
      • 2)传输线路的带宽有限
      • 3)网络结点的处理能力有限
      • 4)网络中某些部分发生了故障
    • 改进
      • 增加网络资源(拥塞防止)
      • 减下网络负载(拥塞消除)
    • 网络层拥塞控制措施
      • 流量感知路由
      • 准入控制
      • 流量调节
      • 负载脱落
  • 流量感知路由
    • 概述:
      • 网络抽象为一张带权无向图,路由器抽象为图的结点,链路抽象为图的边
      • 每一条链路有自己的链路费用(例如:时延小,权值小)
      • 权值根据网络负载动态调整,可以将网络流量引导到不同的链路上,均衡网络负载,延缓或者避免拥塞的发生
      • 流量感知路由是一种拥塞预防措施,在一定程度上缓解和预防拥塞的发生
      • 可能发生震荡现象
  • 准入控制
    • 广泛应用于虚电路网络的拥塞预防技术
    • 思想:对新建虚电路审核,如果新建立的虚电路会导致网络变得拥塞,那么网络拒绝建立该新虚电路
  • 流量调节:在网络发生拥塞时,通过调整发送方发送数据的速率来消除拥塞。
    • 抑制分组:感知到拥塞的路由器选择一个被拥塞的数据报,给该数据报的源主机返回一个抑制分组
    • 背压:抑制分组在从拥塞结点到源结点的路径上的每一跳,都发挥抑制作用
  • 负载脱落
    • 有选择地主动丢弃一些数据报,来减轻网络负载,从而缓解或消除拥塞
    • 选择丢弃哪些数据报是关键,通常与上层应用有关

5 Internet 网络层

  • IPV4
    • 概述
      • Internet 网络层最核心的协议
      • 定义了如何封装上层协议(如 UDP、TCP)的报文段
      • 定义了 Internet 网络层寻址(IP 地址)以及如何转发 IP 数据报等内容;两个版本:IPv4 和 IPv6
    • 格式
      • 1)版本号:4 位。IP 的版本号。
      • 2)首部长度:4 位。IP 数据报的首部长度:20B-60B(假设第一个字节(8 位):表示 IPv4,首部长度 4X5=20 字节)
      • 3)区分服务:8 位。在旧标准种称为服务类型(Type Of Service,TOS)字段,用来指示期望获得哪种类型的服务
      • 4)数据长度:16 位。IP 数据报的总字节数,包括首部和数据部分
      • 5)标识:16 位。标识一个 IP 数据报。每产生一个 IP 数据报,IP 协议的计数器加 1。
        • 该字段的重要用途:在 IP 数据报分片和重组过程中用于标识属于同一 IP 数据报。
        • 该字段不可唯一标识一个 IP 数据报
      • 6)标志:3 位
        • DF 【Don’t Fragment】(禁止分片):0=允许分片;1=禁止分片
        • MF【More Fragament】(更多分片):0=未分片或者最后一片;1=是分片且不是最后一个
      • 7)片偏移字段(13 位):以 8B 为单位。表示一个 IP 数据报分片与原 IP 数据报的数据的相对偏移量
        • 当该字段值为 0 时,且 MF=1, 则表示这是一个 IP 分片,且是第一个分片
      • 8)生存时间:8 位。Time-To-Live ,TTL。表示 IP 数据报在网络中可以通过的路由器数(或跳步数)
      • 9)上层协议:8 位,指示该 IP 数据报封装的是哪个上层协议
        • TCP–6
        • UDP–17
      • 10)首部校验和:16 位,利用校验和实现对 IP 数据报首部的差错检测
      • 11)源 IP 地址:32 位 发出 IP 数据报的源主机的 IP 地址
      • 12)目的 IP 地址:32 位。IP 数据报的需要送达的主机的 IP 地址
      • 13)选项:长度可变
      • 14)数据:存放 IP 数据报所封装的传输层报文段
    • IP 数据报分片
      • 概述
        • 一个 IP 数据报从源主机到目的主机传输过程中,可能经过多个运行不同数据链路层协议的网络
        • 不同数据链路层协议所能承载的网络层数据报的最大长度不尽相同
        • 以太网承载数据最大长度1500字节
        • 最大传输单元(Maximum Transmission Unit , MTU):数据链路层帧能承载的最大数据量。受 MTU 限制
      • 数据报长度超过 MTU,DF=0 时分片,DF=1 时丢弃,MF 标志位,最后一个分片是 0,其余分片全部是 1
      • 注意事项
        • IP 分片的协议版本、标识、源 IP、目的 IP 直接继承原数据报对应的值
        • IP 分片重组任务由目的主机的 IP 完成
          • 是否属于同一个数据报
          • 是否是最后一个分片
          • IP 分片的先后顺序
      • 原则
        • 尽可能少分片
        • 一个最大分片可封装的数据字节数最好是 8 的倍数
        • 假设数据报总长度为 L 字节,MTU 为 M 字节。且 L>M,DF=0。
      • 计算方法(例子)
        • 发送一个总长度为 3400 字节的 IP 数据报,通过 MTU=1500 字节的链路转发。如何分片
          • 解析
            • 因为 MTU=1500 字节:对于一个分片来说包括两部分内容:首部+数据一个分片可以封装的数据字节数:1500-20=1480 字节
            • IP 数据报的总长度:3400 字节 IP 数据报的数据长度:3400-20=3380 字节分片数:3380÷1480=2.28(3 片)
            • 偏移量
              • 第 1 片的片偏移量:0÷8=0
              • 第 2 片的片偏移量:1480÷8=185
              • 第 3 片的片偏移量:2960÷8=370
  • IPv4 的编址

    • 概述
      • Pv4 地址的长度为 32 位,共有 232 个不同的 IP 地址,约为 43 亿个
      • 表示法:点分十进制标记法
      • 一台主机可以拥有多个 IP 地址
      • IP 地址两部分
        • 前缀(Prefix):即网络部分(Net ID)。用于描述主机所归属的网络
        • 后缀(Postfix):即主机部分(Host ID)。用于表示主机在网络中的唯一地址
    • 分类

      • A、B、C 类:地址可以用于标识网络中的主机或路由器
      • D 类:作为组广播地址
      • E 类:地址保留

        前缀长度 前缀 首字节
        A 8 位 0xxxxxxx 0-127
        B 16 位 10xxxxxx xxxxxxxxx 128-191
        C 24 位 110xxxxx xxxxxxxxx xxxxxxxxx 192-223
        D 不可用 1110xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx 224-239
        E 不可用 1111xxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx 240-255
    • 表示

      • 前缀中的后几位:表示网络地址个数
      • 后缀位数:表示这类网络中的 IP 地址总数
      前缀 前缀固定 前缀中的后几位表示网络地址 每个网络中 IP 地址总数
      A 8 0 7 位,27=128 个 $2^{24}$
      B 16 10 14 位,214 个 $2^{16}$
      C 24 110 21 位,221 个 $2^{8}$
    • 特殊地址
      • 本地主机地址:0.0.0.0/32,获取 IP 地址的时候可以用。新加入的主机通过 DHCP 请求 IP 地址
      • 有限广播地址:255.255.255.255/32,表示广播地址。此网络内所有主机都可以收到
      • 回送地址:127.0.0.0/8,例如 127.0.0.1.ping 一下,网络是否畅通
    • 私有地址:一部分分类地址保留用于内部网络。这部分分类地址可以在内网使用,但不能在公共互联网上使用

      私有地址类别 范围
      A 类 10.0.0.0——10.255.255.255 (或 10.0.0.0/8)
      B 类 172.16.0.0——172.31.255.255(或 172.16.0.0/12)
      C 类 192.168.0.0——192.168.255.255(或 192.168.0.0/16)
    • 无类地址
      • 无类地址中,网络前缀不再被设计为定长的 8 位、16 位、24 位,而变成可以是 0-32 位的任意值
      • 网络地址书写形式:a.b.c.d/x。
    • 子网划分

      • 概述:为了缓解地址空间不足,提高 IP 地址空间利用率:另外的两种策略子网化和超网化
      • 子网化:将一个较大的子网划分为多个较小子网的过程。(大变小)
      • 超网化:将具有较长前缀的相对较小的子网合并为一个具有稍短前缀的相对较大的子网。(小变大)
      • 子网掩码

        • 子网掩码:定义一个子网的网络前缀长度;
        • 子网掩码位数:32 位
        • 书写形式:二进制,点分十进制
        • 取值规则:对应网络前缀,全部为 1。其余位(主机部分),全部为 0
        • 例子:
          • 子网地址:213.111.0.0/24;子网掩码:255.255.255.0;网络前缀(24)位,主机位(8)位
          • 子网地址:213.111.0.0/23;子网掩码:255.255.254.0;网络前缀(23)位,主机位(9)位
      • 假设某子网中的一个主机的 IP 地址是 203.123.1.135,子网掩码是 255.255.255.192

        1. 那么该子网的子网地址是什么?

          • 与运算;0&0=0; 0&1=0; 1&0=0; 1&1=1
          • 子网地址是 203.123.1.128/26
        2. 直接广播地址是什么?

          • 子网掩码的反码与主机 IP 地址按位或运算
          • 反码:1 变为 0;0 变为 1
          • 0 || 0 = 01 || 0 = 10 || 1 = 11 || 1 = 1
          • 直接广播地址:203.123.1.191
        3. 该子网 IP 地址总数是多少?

          • IPV4 地址共 32 位,分为网络位+主机位。
          • 通过子网掩码可以确定网络位,
          • 则主机位为:32-网络位。IP 地址总数:2 (主机位数)。
          • 主机位有 32-26=6 位,即有 26=64 个 IP 地址总数。
        4. 该子网的可分配 IP 地址数是多少?

          • 在 IP 地址总数中子网地址占一个,广播地址占一个,不能分配给主机和路由器接口。
          • 所以,可分配 IP 地址总数:IP 地址总数-2(子网地址占头,广播地址占尾。)
          • 该子网的可分配 IP 地址数是 64-2=62 个
        5. 可分配 IP 地址范围是多少?

          • 子网地址:203.123.1.128(头)(第一小题已经算出)
          • 广播地址:203.123.1.191(尾)
          • 可分配 IP 地址范围是: 203.123.1.129〜203.123.1.190
      • 路由聚合
        • 概述:路由器转发表由网络地址、子网掩码、下一跳地址、路由器接口组成。网络地址、子网掩码可以合并给出
        • 规则
          • 只有一条路由匹配成功(默认路由除外),选择该路由表项转发 IP 数据报。
          • 匹配成功的路由表项不止一条,选择网络前缀最长的那条。
          • 没有一条匹配成功,通过默认路由转发 IP 数据报
        • 总结
          • 减少路由表项数,提高路由效率,将可以聚合在一起的子网聚合成一个大的子网。子网划分的逆过程
          • 前提:具有相同的路由”路径”,即”下一跳地址”和”接口”相同
  • 动态主机配置(DHCP)
    • 概述:当组织分配到一个网络地址块后,就可以为该组织内的主机和路由器接口分配 IP 地址
    • 分配方式
      • 静态分配:网络管理员手动配置
      • 动态分配:动态主机配置协议(DHCP)来分配
    • 端口号
      • DHCP 服务器端口号67
      • DHCP 客户端口号68
    • DHCP 工作过程
      • 服务器发现:广播方式
      • 服务器提供:广播方式
      • 请求:广播方式
      • DHCP 确认
  • 网络地址转换(Network Address Translation,NAT)
    • 作用:IPv4 址分配殆尽,很多主机使用私有地址,但是在公共网络上私有地址是无效的
    • 工作原理
      • 从内网出去的 IP 数据报,将其 IP 地址替换为 NAT 服务器拥有的合法的公共 IP 地址以及端口号,并将替换关系记录到 NAT 转换表中;
      • 从公共互联网返回的 IP 数据报,依据其目的 IP 地址与目的端口号检索 NAT 转换表,并利用检索到的内部私有 IP 地址和端口号替换目的 IP 地址和端口号,然后将 IP 数据报转发到内部网络
    • 外网访问内网
      • NAT 穿透技术
      • 在外网主机主动与内网主机发起通信之前,先在 NAT 转换表建立好内外网映射(静态配置、动态配置:UPnP),使内网运行的服务以 NAT 公网地址的”合法”身份”暴露”出去
  • 互联网控制报文协议(Internet Control Message Protocol ,ICMP)

    • 进行主机或路由器间的网络层差错报告与网络探测
    • 类型
      • 差错报告报文
        • 终点不可达
        • 源点抑制
        • 时间超时
        • 参数问题
        • 路由重定向
      • 询问报文
        • 回声请求/应答
        • 时间戳请求/应答
  • IPv6
    • 概述
      • 版本字段:指出协议版本号。
      • 流量类型:和 IPv4 的区分服务(TOS)字段相似。
      • 流标签:用来标识一系列数据报的流。
      • 有效载荷长度字段:IPv6 数据报中数据的字节数量。
      • 下一个首部:用来标识 IPv6 数据报要上交给上层的协议是那个,比如 TCP 还是 UDP。
      • 跳数限制:与生存时间 TTL 功能类似。
      • 源 IP 地址和目的 IP 地址:与 IPv4 意义一样。
      • 数据:数据报中承载的有效载荷。
      • IPV6 基本首部 40 字节。
    • 表示方法
      • 8 组冒号分隔的十六进制数:5000:0000:00A1:0128:4500:0000:89CE:ABCD
      • 连续多组 0000 可以用::代替;::只能出现一次
      • 在 IPv6 地址中嵌入 IPv4 的点分十进制:6700::89A1:0321:206.36.45.19
    • 分类
      • 单播:可以标识网络中唯一的主机或路由器接口,可做源地址和目的地址。
      • 组播:标识网络中的一组主机,可做目的地址。
      • 任播:也是标识网络中的一组主机,但是当向一个任播地址发送数据报的时候,只有该任播地址组内某个成员收到数据报,可做目的地址
    • IPv4 到 IPv6 的迁移
      • 双协议栈:网络结点同时具备发送 IPv4 与 IPv6 数据报的能力
      • 隧道:通信源端与目的端都提供 IPv6 服务,但是途径一段 IPv4 网络。在 IPv6 数据报进入隧道前的最后一个路由器上,该路由器将整个 IPv6 数据报封装进 IPv4 数据报中,再转发,在出口处再从 IPv4 数据报中提取 IPv6 数据报的有效荷载

6 路由算法与路由协议

  • 路由选择算法的分类
    • 网络层的另一项重要功能:路由选择
    • 带权无向图:将网络抽象为一个带权无向图 G=(N,E),N 表示结点集合,E 是边的集合
    • 分类
      • 是否需要全局信息
        • 全局式路由选择算法-典型:链路状态路由选择算法(LS 算法)静态动态
        • 分布式路由选择算法-典型:距离向量路由选择算(DV 算法)
      • 静态动态
        • 静态:人工配置
        • 动态:自动计算最佳路由。LS、DV
      • 是否敏感
        • 敏感
        • 迟钝
  • 链路状态路由选择算法
    • 链路状态路由选择算法是一种全局式路由选择算法,每个路由器在计算路由时,需要构建出整个网络的拓扑图
    • 链路状态路由选择算法:利用 Dijkstra 算法求最短路径
  • 距离向量路由选择算法
    • 距离向量路由选择算法是一种异步的、迭代的分布式路由选择算法。该算法的基础是 Bellman-Ford 方程(简称 B-F 方程)
    • 网络中每个结点 x,估计自己到网络中所有结点 y 的最短距离,记为 Dx(y),称为结点 x 的距离向量。
  • 层次化路由选择

    • 合理的网络规模范围
      • 全局式路由选择算法(链路状态路由选择算法(LS 算法))
      • 分布式路由选择算法(距离向量路由选择算(DV 算法))
    • 层次化路由选择:大规模网络路由选择最有效可行的解决方案
    • 自治系统(autonomoussystem,AS):大规模的互联网按组织边界、管理边界、网络技术边界或功能边界划分为多个自治系统。每个自治系统由运行相同路由协议和路由选择算法的路由器组成
      • 每个自治系统存在至少一个与其他自治系统互连的路由器,负责与其他自治系统交换路由可达信息,称为网关路由器
    • 大规模互联网的路由划分为两层:
      • 自治系统内路由选择:基于所在自治系统采用的路由选择算法、计算到达自治系统内目的网络的路由
      • 自治系统间路由选择:网关路由器运行自治系统间路由选择协议,负责其他自治系统的路由可达性信息
  • Internet 路由选择协议

    • 内部网关协议(Interior Gateway Protocol,IGP)(Internet 自治系统内路由选择协议);典型:RIP、OSPF
      • RIP(routing information protocol)
        • 路由信息协议
        • 最早的自治系统内路由选择协议之一,基于距离向量路由选择算法
        • 特性
          • 第一、RIP 在度量路径时采用的是跳数,每条链路的费用都为 1。
          • 第二、RIP 的费用定义在源路由器和目的子网之间,最短路劲费用是指最短路劲经过的子网数量
          • 第三、RIP 被限制的网络直径不超过 15 跳的自治系统内使用,16 表示无穷大,表示目的网络不可达
        • RIP 是应用进程的实现,使用传输层的 UDP 报文来封装传输 RIP 报文
        • RIP 仍然是网络层协议,因为 RIP 实现的是网络层的功能
      • OSPF(Open Shortest Path First)
        • 开放最短路径优先协议
        • 基于链路状态路由选择算法的 IGP,使用 Dijkstra 算法求最短路径
        • 优点
          • 安全-OSPF 报文,经过认证。可以防止恶意侵入者将不正确的信息注入道路由器转发表中
          • 支持多条相同费用路径:允许使用多条相同费用路径,这样防止在具有多条从源到目的的费用相同的路径时,所有流量都发往其中一条路径
          • 支持区别化费用度量:同一条链路,根据 IP 数据报不同,设置不同的费用度量,实现不同类型网络流量的分流
          • 支持单播路由与多播路由:单播:只有一个源点网络和一个终点网络多播:在多播通信中,有一个源点和一组终点,这是一对多的关系
          • 分层路由:OSPF 支持在大规模自治系统内进一步进行分层路由
    • 外部网关协议(Exterior Gateway Protocol,EGP):Internet 自治系统间路由选择协议;典型:BGP

      • BGP(Border Gateway protocol)
        • 边界网关协议
        • 实现跨自治系统的路由信息交换。典型版本是 BGP4
        • BGP 封装进 TCP 报文段
        • 每个 AS 可以通过 BGP 实现如下功能
          • 1)从相邻 AS 获取某子网的可达性信息
          • 2)向本 AS 内部的所有路由器传播跨 AS 的某子网的可达信息
          • 3)基于某子网可达性信息和 AS 路由策略、决定到达该子网的最佳路由
        • BGP 也是由应用进程实现,传输层使用 TCP
          • 通过 179 号端口建立半永久的 TCP 连接。交换 BGP 报文
          • TCP 连接两端的路由器称为 BGP 对等端方
          • 发送报文的过程称为 BGP 会话
          • 分为内部 BGP 会话和外部 BGP 会话
        • BGP 报文的 4 中类型
          • 1)OPEN(打开)报文,用来与 BGP 对等方建立 BGP 会话
          • 2)UPDATE(更新)报文,用来通告某一路由可达性信息,或者撤销已有路由
          • 3)KEEPALIVE(保活)报文,用于对打开报文的确认,或周期性地证实会话的有效
          • 4)NOTIFICATION(通知)报文,用来通告差错
        • 属性
          • 1)AS-PATH:AS 路径
          • 2)NEXT-HOP:一个开始 AS-PATH 的路由接口

第五章 数据链路层与局域网

1 数据链路层服务

  • 概述:负责通过一条链路,从一个结点向另一个物理链路直接相连的相邻结点,传送网络层数据报,中间不经过任何其他交换结点
  • 数据链路
    • 在物理链路之上
    • 基于通信协议来控制数据帧传输的逻辑数据通路
    • 其主要依赖硬件实体是:网卡(NIC,网络适配器)
  • 结点
    • 从数据链路层来看,主机、路由器等统称为结点
    • 链路:相邻结点的通信信道称为链路
    • 数据链路层传输的数据单元是:
  • 数据链路层提供的服务
    • 1)组帧
      • 数据链路层将要传输的数据(网络层 IP 数据报)封装成帧,称为组帧或者成帧
      • 帧头(帧首):发送结点和接收结点的地址(MAC)信息
      • 帧尾:用于差错检测的差错编码
      • 帧定界:识别一个帧的开始和结束
    • 2)链路接入
      • 物理链路可以分为:点对点链路和广播链路
      • 点对点链路:发送结点和接收结点独占信道链路
      • 广播链路:通信链路被多个结点共享,会彼此干扰,导致传输失败
      • 结点必须运行 MAC 协议(媒介访问控制协议)协调各结点共享物理传输媒介
    • 3)可靠交付
      • 可靠数据传输原理,停-等协议,滑动窗口协议都适用
      • 无线链路(出错率高):支持可靠数据传输
      • 光纤、双绞线(出错率低):不提供可靠数据传输服务
    • 4)差错控制
      • 数据链路层帧在物理媒介上的传播过程,可能会出现比特翻转的差错
      • 误比特率:一段时间内出现差错的比特数/传输比特总数。与线路信噪比有很大关系
      • 措施:差错控制

2 差错控制

  • 概述
    • 信号在信道传输过程中,会受到各种噪声的干扰,从而导致传输差错
    • 随机噪声——随机差错或独立差错
    • 冲击噪声——突发差错
    • 差错控制就是通过差错编码技术,实现对信息传输差错的检测,并基于某种机制进行差错纠正和处理
  • 差错编码基本方式
    • 检错重发:
      • 发-待发送数据差错编码,在通过信道传输
      • 收-利用差错编码检测,出错,请求重发数据加以纠正,知道正确为止
      • 停-等,滑动窗口
    • 前向纠错 FEC(利用纠错编码)
      • 发-纠错编码,发包含纠错编码的帧
      • 收-利用纠错编码差错检测,对错误的帧纠错
      • 使用:单工链路、对实时性要求比较高的应用。
    • 反馈校验
      • 接-原封不动发回
      • 发-通过对比接收端反馈 若有不同,立即重传数据,直到一致为止
      • 优点:原理简单,易于实现,无须差错编码
      • 缺点:需要相同传输能力的反向信道,传输效率低,实时性差
    • 检错丢弃
      • 网络应用对可靠性要求不高,可以采用不纠正出错数据,直接丢弃错误数据
      • 只适用于实时性高的系统
  • 差错编码基本原理
    • 在待传输数据信息基础上,附加一定的冗余信息。冗余信息:与数据信息建立某种关联关系
    • 接收方检测冗余信息与数据信息的关联关系是否存在,存在则没有错误,否则就有错误
  • 差错控制检错与纠正能力
  • 典型差错编码
    • 奇偶
      • 奇校验码:奇数位出错能检测出来,偶数位发生错误无法检测出来
      • 偶校验码:奇偶校验可以实现 50%的检错率
      • 优点:编码简单、编码效率高、开销最小的检错编码;
      • 缺点:检错率不高
    • 汉明码
    • 循环冗余码:在数据链路层广泛应用的差错编码。(检错码)

3 多路访问控制协议

  • 概述
    • 点对点信道:一对一通信方式,信道被双方独享
    • 广播信道(共享介质):一对多通信方式,信道上连接的点很多,信道被结点共享。必须使用多路访问控制协议来协调结点的数据发送
    • MAC 协议的根本任务:解决信道的共享问题
  • 信道划分 MAC 协议:利用多路复用技术实现信道共享的 MAC 协议
    • 频分多路复用 FDM:在频域内将信道带宽划分为多个子信道,将原始信号调制到对应的某个子信道的载波信号上,使同时传输的多路信号在整个物理信道带宽的允许范围内频谱不重叠,从而共用一个信道
    • 时分多路复用 TDM
    • 波分多路复用 WDM
    • 码分多路复用 CDM
  • 随机访问 MAC 协议
    • ALOHA 协议
    • CSMA 载波监听多路访问协议(先听后说)
    • CSMA/CD 带冲突检测的载波监听多路访问协议(先听后说,边听边说)
  • 受控接入 MAC 协议
    • 集中式控制:轮询技术
    • 分散式控制:是令牌技术

4 局域网

  • 概述
    • 局域网(LAN):局部区域网络,覆盖面积小,网络传输速率高,传输的误码率低
    • 局域网常见的拓扑类型:星形网络,总线型网络,环形网络等
    • 为了使数据链路层更好地适应多种局域网标准,IEEE802 委员会将局域网的数据链路层拆分为两个子层
      • 逻辑链路控制(Logical Link Control,LLC)子层(名存实亡)
      • 介质访问控制(medium access control,MAC)MAC 子层
  • 数据链路层寻址与 ARP
    • 概述:数据链路层的帧,需要携带发送结点的数据链路层地址,以及接收结点的数据链路层地址,标识帧的发送方与接收方
    • MAC 地址
      • MAC 地址(物理地址、局域网地址):MAC 地址具有唯一性,每个网络适配器对应一个MAC地址
      • MAC 地址空间的分配:由电气和电子工程师协会(IEEE)统一管理
        • IEEE 分配前 24 位的 MAC 地址块
        • 后 24 位由生产公司分配
      • 表示
        • 以太网和 IEEE 802.11 无线局域网,使用的 MAC 地址长度为 6 字节(48 位)。一共有 248 个可能的 MAC 地址
        • 通常采用十六进制表示法,每个字节表示一个十六进制数,用 - 或:连接起来
        • 例如
          • 00-2A-E1-76-8C-3900:2A:E1:76:8C:39
        • 16 进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
        • Mac 广播地址:FF-FF-FF-FF-FF-FF
    • 地址解析协议
      • 根据本网内目的主机或默认网关的IP地址获取其 MAC 地址
      • 基本思想
        • 在每一台主机中设置专用内存区域,称为 ARP 高速缓存(也称 ARP 表)
        • 存储该主机所在局域网中其他主机和路由器的 IP 地址与 MAC 地址的映射关系
        • ARP 通过广播 ARP 查询报文,来询问某目的 IP 地址对应的 MAC 地址,即知道本网内某主机的 IP 地址,可以查询得到其 MAC 地址
      • 注意的两点
        • (1)ARP 查询分组是通过一个广播帧发送的;而 ARP 响应分组是通过一个标准的单播帧发送的
        • (2)ARP 是即插即用的,一个 ARP 表是自动建立的,不需要系统管理员来配置
  • 以太网
    • 概述:以太网(ethernet):目前为止最流行的有线局域网技术。以太网与 IEEE802.3 是等价的
    • 以太网成功的原因
      • 1)以太网是第一个广泛部署的高速局域网。
      • 2)令牌环网、FDDI(纤分布式数据接口)和 ATM(异步传输模式)等比以太网技术更复杂、昂贵,阻止了网络管理员改用其他技术
      • 3)以太网数据速率也快,比起其他技术,毫不逊色
      • 4)以太网硬件价格极其便宜,网络造价成本低
    • 经典以太网技术
      • 1)采用粗同轴电缆连接的总线型以太网(10Base-5)(10:10Mbit/s ;BASE:传输信号为基带信号;5:5 个网段、单段最大传输距离为 500 米)
      • 2)数据传输速率为 10Mbit/s,无连接不可靠
      • 3)MAC 协议采用 CSMA/CD 协议
      • 4)相距最远主机信号往返的传播时延为 51.2μs,所以以太网最短帧长为 64 字节
  • 交换机
    • 网桥
      • 工作在数据链路层,和交换机功能类似。对数据帧实现转发
      • 适合用户数不太多和通信量不太大的局域网
      • 典型网桥:透明网桥,一种即插即用设备。局域网上的站点并不知道所发送的帧经过哪几个网桥
    • 交换机(转发与过滤)
      • 交换机可以认为是多端口的网桥,目前应用最广泛的数据链路层设备
      • 交换机的基本工作原理:
        • 当一帧到达时,交换机首先需要决策将该帧丢弃还是转发
        • 如果是转发的话,还必须进一步决策应该将该帧转发到哪个(或哪些)端口去
        • 以目的 MAC 为主键查询内部转发表(无须转发、选择性转发、泛洪)
      • 优点
        • 消除冲突
        • 支持异质链路
        • 网络管理
  • 虚拟局域网
    • 划分方法
      • 基于交换机端口划分:每个交换机端口属于一个 VLAN。
      • 基于 MAC 地址划分:按主机 MAC 地址定义 VLAN 成员
      • 基于上层协议类型或地址划分:根据数据中的上层协议类型(IP)或者地址(IP 地址)定义 VLAN 成员

5 点对点链路协议

  • 点对点链路协议:点对点协议(PPP 协议)、高级数据链路控制协议(HDLC 协议)
  • PPP:适合单个发送方和单个接收方的点对点链路
    • PPP 的一个典型应用是家庭用户拨号上网
    • 功能
      • 成帧
      • 链路控制协议:启动线路、检测线路、协商参数、关闭线路
      • 网络控制协议:协商网络层选项
    • 不要求 PPP 实现的功能
      • 差错纠正
      • 流量控制
      • 按序交付
    • PPP 的字节填充:PPP 帧的长度都是整数字节。特殊的控制转义字节01111101
  • HDLC 协议:应用于点对点链路和点对多点链路
    • HDLC 有 3 种类型的帧(根据控制位的不同)
      • 信息帧(I 格式 Information)
      • 管理帧(S 格式 Supervisory)
      • 无序号帧(U 格式 Unnumbered)
    • HDLC 协议是面向位的协议:位填充技术

第六章物理层

  • 从物理层角度来看,计算机网络通信的本质就是数据通信

1 数据通信基础

  • 数据通讯基础概念
    • 消息与信息
      • 消息:人类能够感知的描述
      • 信息:一个抽象的概念。消息中所包含的有意义的内容,消息是信息的载体
    • 通信
      • 本质是在一点精确或近似地再生另一点的信息
      • 通信系统:一般是指电通信,能够实现通信功能的各种技术、设备和方法的总体
    • 信号:在通信系统中,特别是电通信系统,信息在传输通道中传播的载体,称之为信号
    • 数据:对客观事物的性质状态以及相互关系等进行记载的符号及其组合,可以是数字、文字、图像等,也可以是其他抽象符号
    • 信道:信道是信号传输的介质
      • 狭义信道:仅是指信号的传输介质
      • 广义信道:不仅是传输介质,而且包括通信系统中的一些转化装置
  • 数据通讯系统模型
    • 数据通信系统的构成
      • 计算机网络是典型的数据通信系统
      • 通信系统的作用是将消息从信源传送到一个或多个目的地
      • 能够实现信息传输的一切技术设备和传输介质的集合称为通信系统
    • 模拟通信与数字通信:信道传输的是模拟信号称为模拟通信系统;信道传输的是数字信号称为数字通信系统
      • 模拟:是指信号的因变量完全随连续消息的变化而变化的系号(电视图像、电话语音)
      • 数字:是指表示消息的因变量是离散的,自变量时间的取值也是离散的信号(计算机数据、电话、数字电视)
    • 数据通信方式
      • 数据传输方向
        • 单向通信:无线电广播
        • 双向交替通信(半双工):对讲机
        • 双向同时通信(全双工):电话网、计算机网络
      • 数据传输时空顺序
        • 并行通信:一个字节,每一位一个通道,全部位同时传送。
        • 串行通信:一条通道,每一位依次在这条通道上传输
      • 数据同步技术
        • 异步通信:发送字符,不需建立同步时钟,实现简单,传输效率低适用低速网络。
        • 同步通信:发送数据块(包含多个字符),双方建立同步时钟,实现复杂,传输效率高适用高速网络
      • 数据通信系统的功能
        • 1)信道的利用:多个通信设备共享,多路复用技术
        • 2)接口及信号产生:保证信源、信宿与传输系统之间的信息交互
        • 3)同步:发送与接收器之间达成约定
        • 4)差错检测与纠正:发现信号失真,并纠正
        • 5)寻址与路由:具有多条路径的网络选择合适的路径进行数据传
        • 6)网络管理:规划、设置、监控、调度与维护
        • 7)安全保证:数据在传输过程中不被改变,不被非法用户获

2 物理介质

  • 物理介质是网络中传输信息的载体
  • 分类
    • 导引型传输介质(有线)
      • 以导线为传输介质,信号沿导线进行传输,信号的能量集中在导线附近,因此传输效率高,但是部署不灵活
      • 方式
        • 架空明线(基本淘汰)
        • 双绞线
        • 同轴电缆(被双绞线替代)
        • 光纤:利用了光的全反射现象
    • 非导引型传输介质(无线)

3 信道与信道容量

  • 概述
    • 信道就是信号在通信系统中传输的通道
    • 无线通信:信道就是电磁波传输通过的空间
    • 有线通信:信道就是导向性线缆
  • 信道分类与模型
    • 信道
      • 狭义信道:信号传输介质。
      • 广义信道(简称信道):包括信号传输介质和通信系统的一些变换装置(发送设备、接收设备、天线、调制器等)。
      • 广义信道按功能划分:调制信道、编码信道
    • 调制信道
  • 信道传输特性

    • 概述

      • 模拟信源:电话机发出,可以通过信源编码转换为数字基带信号;
      • 数字信源:计算机发出。
      • 数字信号两种传输方式:基带传输、频带传输
    • 数字基带传输编码

  • 信道容量

4 基带传输

  • 基带传输基本概念
    • 信号码(绝对码)
      • 单极不归零码
      • 双极不归零码
      • 单极归零码
      • 双极归零码
      • 差分码(相对码)
    • 传输码
      • AMI 码:双相码;米勒码
      • CMI 码:nBmB 码;nBmT 码;

5 频带传输

  • 频带传输基本概念
  • 频带传输中的三种调制方式
    • 二进制数字调制
    • 多进制数字调制
    • 正交幅值调制 QAM

6 物理层接口规程

  • 物理层接口概述
    • 物理层完成数据终端设备之间的比特流传输、包括物理链路的建立、维护和拆除的规范和标准,同时也定义物理层接口通信标准
    • 物理层接口协议解决的问题:主机、工作站等数据终端设备与通信线路上的通信设备之间的接口问题
      • 数据终端设备 DTE(计算机):Data Terminal Equipment
      • 数据电路终端设备 DCE(调制解调器):Data Circuit-Terminating Equipment
  • 物理层接口特性
    • 机械特性:指明通信实体间硬件连接口的机械特点,尺寸、引线数目和排列
    • 电气特性:规定了物理连接上,导线的电气连接及有关电路特性
    • 功能特性:指明物理接口各条信号线的用途等
    • 规程特性:通信协议,指明利用接口传输比特流的全过程,传输事件发生的合法顺序,包括事件的执行顺序和数据传输方式

第七章无线与移动网络

1 无线网络

  • 无线网络基本结构
    • 概述
      • 无线主机:运行应用程序的终端设备(计算机、智能手机)
      • 无线链路:主机通过无线链路连接到基站或者另一台无线主机
      • 基站:关键部分。如蜂窝网的蜂窝塔(cell tower)、IEEE802.11 的 AP
      • 网络基础设施:通常是大规模有线网络,如 internet
    • 自组织网络(Ad Hoc Network):又称特定网络。
  • 无线链路与无线网络特性
    • 无线链路特征:通过无线链路连接到基站,不同无线链路技术传输速率和传输距离不同
    • 有线网络与无线网络的重要区别在数据链路层和物理层,无线链路有别于有线链路主要表现
      • 信号强度的衰减
      • 干扰
      • 多径传播
    • 导致碰撞的两种情况
      • 1)隐藏终端
      • 2)衰减

2 移动网络

  • 移动网络基本原理
    • 无线网络不一定是移动网络,但移动网络一定是无线网络
    • 移动性分析
      • 从网络层角度分析用户的移动性
      • 移动结点的地址始终保持不变
      • 可用的有线基础设施的支持
    • 移动互联网体系结构
      • 1)归属网络(家网):一个移动结点的永久居所。
      • 2)归属代理(家代理):在一个归属网络中代表移动结点执行移动管理功能的实体。一般配置在路由器上。
      • 3)外部网络(被访网络):移动结点所在的非归属网络。
      • 4)外代理:在外部网络中代表移动结点执行移动管理功能的实体
  • 寻址:移动结点从一个网络移到另一个网络保持地址不变
    • 解决方案
      • 外部网络可以通过向其他所有网络发通告,告诉它们该移动结点正在它的网络中
      • 将移动性功能从网络核心搬到网络边缘,由该移动结点的归属网络(归属网络)来实现
  • 移动结点的路由选择

3 无线局域网 IEEE802.11

  • IEEE 802.11 系列标准
  • IEEE 802.11 体系结构
    • 基站:接入点(AP)
    • 基本服务集(BSS):包含一个或多个无线站点和一个接入点的中央基站。
  • IEEE 802.11 的 MAC 协议
  • IEEE 802.11 帧
    1. 控制帧
    2. 数据帧
    3. 管理帧

4 蜂窝网络

5 移动 IP 网络

6 其他典型无线网络简介

小结

第八章网络安全基础

1 网络安全概述

2 数据加密

  • 数据加密基本概念
  • 传统加密方式:替代密码、换位密码
  • 对称密钥加密:DES、三重 DES、AES、IDEA
  • 非对称/公开密钥加密:RSA、 Diffie-Hellman

3 消息完整性与数字签名

4 身份验证

5 密钥分发中心与证书认证

6 防火墙与入侵检测系统

防火墙

防火墙是能够隔离组织内部网络与公共互联网,允许某些分组通过 而阻止其他分组进入或离开内部网络的软件、硬件或者软件硬件结合的 一种设施

  • 防火墙分类

    • 无状态分组过滤器

      最经典的部署在内网和网络边缘路由器上的防火墙

    • 有状态分组过滤器
    • 引用网关

7 网络安全协议

电子邮件对网络安全的需求

  1. 机密性:不被第三方阅读邮件内容
  2. 完整性:传输过程不被篡改;通过完整性验证可以判断是否被篡改
  3. 身份认证性:接收方能确认发送方的身份
  4. 抗抵赖性:接收方能预防发送方抵赖自己发送过的事

    安全电子邮件标准(PGP 标准:Pretty Good Privacy) PGP 提供的服务:邮件加密、报文完整性、数字签名

SSL/TLS

  • SSL/TLS 介于应用层和传输层之间,类似于会话层,可作为基础协议栈的一部分,也可直接嵌入到浏览器中使用

  • SSL 可以提供的服务:机密性、完整性、身份认证等安全服务。

  • SSL 协议栈

    SSL 是介于 TCP 和 HTTP 等应用层协议之间的一个可选层,绝大多数应用 层协议可以直接建立在 SSL 协议之上,SSL 不是单独的协议,而是两层协议

  • SSL 使用的加密算法有
    1. 公开密钥加密算法:SSL 主要使用 RSA,其他多种公钥加密算法也支持
    2. 对称密钥加密算法:SSL 支持 DES 分组密码、3DES 分组密码等
    3. MAC 算法:MD5 或 SHA-1
  • SSL 的握手过程

    1. 客户发送其支持的算法列表,以及客户一次随机数 nonce,服务器从算法列表中选择算法,并发给客户自己的选择、公钥证书和服务器端一次随机数 nonce。
    2. 客户验证证书,提取服务器公钥,生成预主密钥,并利用服务器的公钥加密预主密钥,发送给服务器,实现密钥的分发
    3. 客户与服务器基于预主密钥和一次随机数,分别独立计算加密密钥和 MAC 密钥,包括前面提到的 4 个密钥
    4. 客户发送一个针对所有握手消息的 MAC,并将此 MAC 发送给服务器
    5. 服务器发送一个针对所有握手消息的 MAC,并将此 MAC 发送给客户

IPSec

VPN 的实现技术很多,其中最安全使用最广泛的是IPSec 安全点的邮件对网络安全的需求包括机密性、完整性、身份认证和抵抗赖性

  • IPsec 是网络层使用最广泛的安全协议,但 IPsec 不是一个单一的协议,而是一个安全体系
  • IPsec 提供的安全服务包括机密性、数据完整性、源认证和防重放攻击等。提供不同服务模型的两个协议分别是 ESP 和 AH 协议
  • IPsec 有两种典型的传输模式
    • 传输模式
    • 隧道模式
This post is licensed under CC BY 4.0 by the author.