计算机网络-总结

1

计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。一个很形象地比喻就是我们的语言,我们大天朝地广人多,地方性语言也非常丰富,而且方言之间差距巨大。A地区的方言可能B地区的人根本无法接受,所以我们要为全国人名进行沟通建立一个语言标准,这就是我们的普通话的作用。

计算机网络协议同我们的语言一样,多种多样。而ARPA公司与1977年到1979年推出了一种名为ARPANET的网络协议受到了广泛的热捧,其中最主要的原因就是它推出了人尽皆知的TCP/IP标准网络协议。目前TCP/IP协议已经成为Internet中的"通用语言"。

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统网络管理软件网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

计算机网络系统就是利用通信设备和线路将地理位置不同、功能独立的多个计算机系统互联起来,以功能完善的网络软件实现网络中资源共享和信息传递的系统。通过计算机的互联,实现计算机之间的通信,从而实现计算机系统之间的信息、软件和设备资源的共享以及协同工作等功能,其本质特征在于提供计算机之间的各类资源的高度共享,实现便捷地交流信息和交换思想。

计算机网络是通信技术与计算机技术紧密结合的产物。

计算机网络就是互连的、自治的计算机集合

  • 自治:无主从关系
  • 互连:互联互通

Internet是全球最大的互联网络,为网络应用提供通信服务的通信基础设施,为网络应用提供应用编程接口(API)。

网络协议(Network Protocol)简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所1采取的动作(actions)。

协议的三要素:

  • 语法(Syntax)
  • 语义(Semantics)
  • 时序(Timing)

计算机网络结构:

  • 网络边缘:主机、网络应用
    • 客户/服务器(Client/Server,CS)应用模型
    • 对等(Peer-Peer,P2P)应用模型
  • 接入网络、物理介质:有线或无线通信链路
  • 网络核心:互联的路由器(或分组转发设备)

计算机网络和Internet基本概念

理解Internet层次型网络架构

计算机网络是一个非常复杂的系统,涉及许多组成部分

  • 主机(hosts)
  • 路由器(routers)
  • 各种链路(links)
  • 应用(applications)
  • 协议(protocols)
  • 硬件、软件

使用分层结构可以有效地描述网络

网络体系结构是从功能上描述计算机网络结构

每层遵循某个/些网络协议完成本层功能

计算机网络体系结构是计算机网络的各层及其协议的集合

体系结构是一个计算机网络的功能层次及其关系的定义

分层结构的特点和优势

  • 结构清晰,有利于识别复杂系统的部件及其关系
  • 模块化的分层易于系统更新、维护
    • 任何一层服务实现的改变对于系统其他层都是透明的
    • 例如,登机过程的改变并不影响航空系统的其它部分(层)
  • 有利于标准化

分层网络体系结构的基本概念

20

  • 实体(entity)表示任何可发送或接收信息的硬件或软件进程
  • 协议是控制两个对等实体进行通信的规则的集合,协议是水平的
  • 任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,服务是垂直的
  • 下层协议的实现对上层的服务用户是透明
  • 同系统的相邻实体间通过接口进行交互,通过服务访问点SAP(Service Access Point),交换原语,指定请求的特定服务

OSI参考模型

目的是支持异构网络系统的互联互通

异构网络系统互连的国际标准

理解网络通信的最佳学习工具(理论模型)

理论成功,市场失败

21

22

中间系统只需完成三层的传输

其中虚线表示相同层次之间用协议交互

实线表示真实数据的传递

数据逐层进行处理

不同层之间通过接口传递信息

23

发送时每一层在数据包上加入相应的信息并传递给下一层

接收时每一层在数据包上拆分相应的信息并传递给下一层

24

数据封装的目的:

  • 增加控制信息:构造协议数据单元(PDU)
  • 控制信息主要包括:
    • 地址:标识发送端/接收端
    • 差错检测编码:用于差错检测或纠正
    • 协议控制:实现协议功能的附加信息,如:优先级(priority),服务质量(QoS)和安全控制等
  • 并不是所有协议都要加入信息

TCP/IP参考模型

25

26

5层参考模型

27

综合了OSI和TCP/IP的优点

数据封装

28

交换机只需要两层,路由器需要3层,主机需要5层

计算机网络数据交换技术

深入理解数据交换技术:分组交换(packet switching)和电路交换(circuit switching),基本原理和优缺点

数据交换类型:

  • 电路交换:电话网络

    • 多路复用(multiplexing):共享信道,将链路/网络资源进行划分。

    • 频分多路复用(FDM):有线电视网络

      2

    • 时分多路复用(TDM):划分为帧,帧可以划分为时隙

      3

      4

    • 波分多路复用(WDM):光纤,用波长划分

      5

    • 码分多路复用(CDM):广泛应用于无线链路共享(如蜂窝网,卫星通信等)

      每个用户分配一个唯一的m bit的码片序列,其中0用-1表示,1用+1表示

      各用户使用相同频率载波,利用各自码片序列编码数据

      编码信号=原始数据×码片序列

      各个用户的码片序列相互正交

    • 统计多路复用:分组序列不确定,按需共享链路

  • 报文交换

    • 报文(message):源(应用)发送信息的整体,如:一个文件
  • 分组交换:报文的拆分与重组,会产生额外开销

    • 将报文进行拆分成一系列相对较小的数据包

    • 在数据包前加一个头部信息构成一个分组

      7

      6

  • 报文交换与分组交换均采用存储-转发交换方式

  • 分组交换相较于报文交换效率更高,路由器所需的缓存也会降低

  • 分组交换相较于电路交换,允许更多用户同时使用网络

  • 分组交换并不是绝对优于电路交换,分组交换适用于突发数据传输网络,使得资源充分共享,简单,无需呼叫建立

  • 而电路交换适用于持续型的活动,例如视频电话等

  • 此外,分组交换可能产生拥塞,分组延迟和丢失(丢包) - 这就需要一些协议处理可靠数据传输和拥塞控制。

8

计算机网络协议栈分层设计

理解Internet层次型网络架构

深入理解计算机网络协议栈分层设计的方法

掌握每层的名称、主要功能、Internet对应层的主要协议

Internet协议栈由5个层次组成:应用层、传输层、网络层、链路层、物理层

  • 应用层

    1. HTTP:提供Web文档的请求和传送

    2. SMTP:提供电子邮件报文的传输

    3. FTP:提供两个端系统之间的文件传输

    4. DNS(域名系统):将网址转换为32比特网络地址

      两个端系统的应用程序交换的信息分组称为报文(message)

  • 传输层

    1. TCP:向应用程序提供面向连接的服务,服务包括应用层报文向目的地的确保传递和流量控制(即发送方和接收方速率匹配);将长报文划分为短报文,提供拥塞控制,抑制源发送速率

    2. UDP:向应用程序提供无连接的服务,没有可靠性、流量控制和拥塞控制

      传输层的信息分组称为报文段(segment)

  • 网络层(IP层)

    1. IP协议:定义了数据报中各个字段以及端系统和路由器如何作用于这些字段。所有具有IP层的因特网组件必须运行IP协议

    2. 路由选择协议:有多种路由选择协议(重点掌握RIP协议和OSPF协议)。使数据报根据路由从源传输到目的地

      网络层的信息分组称为数据报(datagram)

  • 链路层

    1. 将网络层的数据通过链路层传输到下一个结点,在下一个结点再从链路层将数据交给网络层

    2. 链路层协议包括PPP、DOCSIS,并且可提供可靠交付,但与TCP可靠交付不同

      链路层的信息分组称为(frame)

  • 物理层

    提供协议和传输介质供比特流传输,不同传输媒介具有不同的物理层协议

计算机网络性能分析方法

掌握计算机网络主要性能评价参数的物理含义及计算方法,包括吞吐率(throughout)、延迟(delay)、丢包率(loss rate)

理解 throughout*delay的物理含义

  • 速率即数据率(data rate)或称数据传输速率或比特率(bit rate)

    单位时间内传输的信息量

  • 带宽(bandwidth)原本指信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹

    计算机网络的带宽通常是数字信道所能传送的最高数据率,b/s

  • 延迟/时延(delay / latency)

    • dproc:结点处理延迟(nodal processing delay)

      9

      差错检测

      确定输出链路

      通常<msec

    • dqueue:排队延迟(queueing delay),排队等待处理

      10

      等待输出链路可用

      取决于路由器拥塞程度

      具有不确定性

      假设链路带宽R,分组长度L,平均分组到达率a

      流量强度(traffic intensity)=La/R

      • La/R ~ 0:平均排队延迟很小
      • La/R → 1:平均排队延迟很大
      • La/R > 1:超出服务能力,平均排队延迟无限大!

      13

    • dtrans:传输延迟(transmission delay)

      11

      取决于分组长度L、链路带宽R

      dtrans=L/R

    • dprop:传播延迟(propagation delay)

      12

      取决于独立链路长度d、信号传播速度s

      dprop=d/s

  • 时延带宽积=传播时延×带宽=dprop×R

    14

    可以理解为这条链路的"体积"

    时延带宽积又称为以比特为单位的链路长度

    可类比为高速公路可以堵多少辆车

  • 丢包率=丢包数 / 已发分组总数

    由于队列缓存容量有限,分组到达已满队列时将被丢弃(即丢包),丢弃分组可能由前序结点或源重发(也可能不重发)

    15

  • 吞吐量/率(Throughout)=一个文件的大小 / 接收端接收该文件的时间

    表示在发送端与接收端之间传送数据的速率(b/s)

    • 即时吞吐量:给定时刻的速率
    • 平均吞吐量:一段时间的平均速率

    16

    17

    Example1

    18

    • 若Rs<Rc,则端到端的吞吐量是Rs
    • 若Rs>Rc,则端到端的吞吐量是Rc
    • 吞吐量=min{Rs, Rc}

    瓶颈链路(bottleneck link):端到端路径上,限制端到端吞吐量的链路

    Example2

    19

    每条连接的端到端吞吐量:min{Rc, Rs, R/10}

    实际网络中,Rc或Rs通常是瓶颈

计算机网络的发展

了解计算机网络和Internet的发展史,及技术演化

Points

  1. 计算机网络性能分析方法排队延迟是指排队等待处理还是处理后等待传输?

Latter

应用层服务模型及协议设计的基本方法

掌握应用层在网络协议栈中的位置及主要功能

理解应用层协议的两种设计架构:C/S、P2P

客户机/服务器结构(Client-Server, CS)

1

服务器提供服务,客户机请求服务

点对点结构(Peer-To-Peer, P2P)

没有永远在线的服务器

任意节点之间可以直接通讯

高度可伸缩,但难于管理

2

混合结构(Hybrid)

HTTP协议的设计及性能分析

熟练掌握HTTP协议设计基本原理和方法

掌握两种HTTP工作机制:持续型(persistent)和非持续性(non-persistent)

掌握HTTP性能分析的方法,性能参数:传输延迟

URL(Uniform Resource Locator):统一资源定位器

HTTP(Hyper Text Transfer Protocol):超文本传输协议

使用C/S结构

使用TCP传输服务

使用请求/响应的模式

无状态:服务器不维护任何有关客户端过去所发请求的信息

非持续型连接

  • 每个TCP连接最多允许传输一个对象
  • HTTP 1.0版本使用非持续性连接

RTT(Round Trip Time):从客户端发送一个很小的数据包到服务器并1返回所经历的时间

响应时间(Response time)=2RTT+文件发送时间

  • 发起、建立TCP连接:1个RTT
  • 发送HTTP请求消息到HTTP响应消息的前几个字节到达:1个RTT
  • 响应消息中所含的文件/对象传输时间

3

若HTML文件中包含多个指向其他文件的链接时

总时间=2RTT+文件发送时间+n×(2RTT+文件发送时间)

持续性连接

  • 每个TCP连接允许传输多个对象
  • HTTP 1.1版本使用持续型连接

响应时间与非持续型连接相同,但是当HTML文件中包含多个指向其他文件的链接时,持续性连接所需时间较短

总时间=2RTT+文件发送时间+n×(RTT+文件发送时间)

Cookie技术

某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密)

能够用于

  • 身份认证
  • 购物车
  • 推荐
  • Web e-mail

Web缓存/代理服务器技术

在不访问服务器的前提下满足客户端的HTTP请求

  • 缩短客户请求的响应时间
  • 减少机构/组织的流量
  • 在大范围内(Internet)实现有效地内容分发

4

通过架设代理服务器实现

缓存既充当客户端,也充当服务器

一般由ISP(Internet服务提供商)架设

Email相关协议

了解Email相关协议(POP, SMTP)的工作原理

要求传输可靠,弹性带宽,对时间不敏感,TCP协议,异步应用

Email应用的构成组件

  • 邮件客户端(user agent)
  • 邮件服务器(server)
  • SMTP协议(Simple Mail Transfer Protocol)

5

SMTP协议

  • 邮件服务器之间传递消息所使用的协议
  • 客户端:发送消息的服务器
  • 服务器:接受消息的服务器
  • 使用TCP进行email消息的可靠传输
  • 端口25
  • 传输过程的三个阶段
    • 握手
    • 消息的传输
    • 关闭
  • 命令/响应交互模式
    • 命令(command):ASCII文本
    • 响应(response):状态代码和语句

POP协议(Post Office Protocol)

邮件访问协议:从服务器获取邮件,认证/授权(客户端↔服务器)和下载,这是一种无状态协议

此外,IMAP(Internet Mail Access Protocol)协议和HTTP协议也是一种邮件访问协议

DNS协议

理解DNS采用分布式设计的意图

理解DNS两种查询方式:递归查询(recursive queries)和迭代查询(iterated queries)的工作原理

DNS:Domain Name System

Internet上主机/路由器的识别问题

  • IP地址
  • 域名

DNS为域名解析系统:可以建立域名和IP地址之间的映射

  • 多层命名服务器构成的分布式层次式数据库
  • 应用层协议:完成名字的解析
    • Internet核心功能,用应用层协议实现
    • 网络边界复杂
  • DNS服务
    • 域名向IP地址的翻译
    • 主机别名
    • 邮件服务别名
    • 负载均衡:Web服务器?

6

如果本地域名服务器无法解析域名,就要询问根服务器,根服务器如果不知道映射,就要访问权威域名服务器来获得映射,然后向本地域名服务器返回映射

顶级域名服务器(TLD DNS Server)

  • 负责顶级域名,com、org、net、edu等,以及所有国家的顶级域名,如uk、fr、ca、jp等域名的解析
  • 这些域名服务器负责管理该顶级域名服务器注册的所有二级域名
  • 当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)

权威域名服务器(Authoritative Server)

  • 组织机构的DNS服务器对本机构内的一些服务器(Web, Mail)提供了权威的主机名到IP地址的映射
  • 它由组织机构自己或ISP进行维护

本地域名服务器也叫做默认域名服务器

当主机进行DNS查询时,查询被发送到本地域名服务器

作为代理(proxy),将查询转发给(层级式)域名解析服务器系统,同时也有缓存的作用

只要域名解析服务器获得域名-IP映射,及缓存这一映射

  • 一段时间过后,缓存条目失效(删除)
  • 本地域名服务器一般会缓存顶级域名服务器的映射,因此根据名服务器不会经常被访问

迭代查询

7

递归查询

8

P2P应用程序的设计方法

理解P2P协议设计面临的问题和基本方法

P2P(Peer-To-Peer)

  • 没有服务器
  • 任意端系统之间可以直接通信
  • 节点阶段性接入Internet
  • 节点可能换IP地址

Example

文件分发系统

9

  • 对于C/S结构

服务器串行地发送N个副本,时间为NF/us

客户机i需要F/di时间下载

10

  • 对于P2P结构

服务器必须发送一个副本,时间为F/us

客户机i需要F/di时间下载

最快的可能上传速率:us+Σui

11

  • 两结构对比

12

P2P查询

  1. 集中式索引:易于出现单点失效问题

    13

  2. 洪范式查询:广度优先算法

    14

  3. 层次式覆盖网络:介于集中式索引和洪范式查询之间的方法

    15

    • 节点和超级节点间维持TCP连接
    • 某些超级节点对之间维持TCP连接
    • 超级节点负责跟踪子节点的内容

网络应用程序实现技术(Socket编程)

熟练掌握socket programming设计的基本方法

Points

  1. SMTP协议和POP协议的工作原理

  1. DNS采用分布式设计的意图

  1. P2P协议设计面临的问题和基本方法

概述

1

传输层协议为运行在不同Host上的进程提供了一种逻辑通信机制

  • 位于网络层之上
  • 依赖于网络层服务
  • 对网络层服务进行(可能的)增强

端系统运行传输层协议

  • 发送方:将应用递交的消息分成一个或多个的报文段(Segment),并向下传给网络层
  • 接收方:将接收到的报文段组装成消息,并向上交给应用层

传输层可以为应用提供多种协议

  • Internet上的TCP:传输控制协议(Transmission Control Protocol),可靠数据传输
  • Internet上的UDP:用户数据报协议(User Datagram Protocol),不可靠数据传输

可靠、按序的交付服务(TCP)

  • 拥塞控制
  • 流量控制
  • 连接建立

不可靠的交付服务(UDP)

  • 基于尽力而为的网络层,没有做可靠性方面的扩展

多路复用/解复用

传输层服务模型及功能

理解传输层在网络协议栈中的位置及主要功能

UDP协议简介

理解UDP协议的设计原理

基于Internet IP协议

  • 复用/分用
  • 增加了简单的错误校验

采用尽力而为(Best Effort)服务,UDP段可能

  • 丢失
  • 非按序到达

无连接

  • UDP发送方和接收方不需要握手
  • 每个UDP段的处理独立于其他段

UDP的存在价值

  • 无需建立连接,有效减少延迟
  • 实现简单,无需维护连接状态
  • 头部开销少,UDP头部8个字节,TCP头部20个字节
  • 没有拥塞控制:应用可更好地控制发送时间和速率
  • 常用于流媒体应用
    • 容忍丢失
    • 速率敏感
  • UDP还用于
    • DNS
    • SNMP

在UDP上实现可靠数据传输

  • 在应用层增加可靠性机制
  • 应用特定的错误恢复机制

2

校验和(checksum)用于检测UDP段在传输中是否发生错误(如位翻转)

3

网络可靠数据传输的基本原理

熟练掌握经典的可靠数据传输(RDT)协议的工作原理及性能评价

  • 面临的问题:出错,丢包,乱序
  • 解决方法:ACK,超时重传,序列号
  • 性能参数:链路利用率

掌握停等协议(stop and wait)设计面临的问题,适用的场景,工作原理及基本的性能分析方法

掌握并行RDT协议设计面临的问题,适用的场景,工作原理及基本的性能分析方法

掌握两种并行RDT的基本工作原理:GBN(Go Back N)和SR(Selective Repeat)

Introduction

RDT(Reliable Data Transfer)

4

rdt_send():被上层应用调用,将数据交给rdt以发送给对方

udt_send():被rdt调用,在不可靠信道上向接收方传输数据

rdt_rcv():当数据包到达接收方信道时被调用

deliver_data():被rdt调用,向上层应用交付数据

渐进地设计可靠数据传输协议的发送方和接收方

利用状态机(Finite State Machine, FSM)刻画传输协议

5

更多关于有限状态机的介绍见数字逻辑与数字系统-Part5

Rdt 1.0

可靠信道上的可靠数据传输

理想情况

底层信道完全可靠

  • 不会发生错误
  • 不会丢失分组

发送方和接收方的FSM独立

6

Rdt 2.0

产生位错误的信道

7

8

Rdt 2.1

由于Rdt 2.0中反馈消息ACK/NAK可能会发生错误或被破坏,对NAK进行编号

发送方状态机

9

接收方状态机

Rdt 2.2

对ACK进行编号来代替NAK,可减少一种确认消息,降低出错的概率

10

Rdt3.0

由于信道既可能发生错误,也可能丢失分组,那么仅使用Rdt2.x引入的ACK或NAK就不够用了

所以引入Timeout,发送方等待合理的时间后

  • 如果没收到ACK,重传
  • 如果分组或ACK只是延迟而不是丢失了(超过了合理的实践),会导致重传发生重复,但是序列号可以解决这个问题,接收方需在ACK中显示告知所确认的分组

11

12

13

Conclusion

  • Rdt 1.0:一种理想模型,传输完全可靠
  • Rdt 2.0:引入ACK和NAK,由接收方反馈给发送方
  • Rdt 2.1:对NAK进行编号
  • Rdt 2.2:对ACK进行编号来代替NAK
  • Rdt 3.0:引入Timeout

Rdt 2.X中使用停等协议,收到ACK/NAK才会继续发送下一组数据

Rdt 3.0能够正确工作,但性能很差

停-等协议:收到上一个分组的反馈消息(ACK或NAK)之前不会开始发下一个分组,可以防止发送端和接收端速度不匹配造成传输错误

TCP协议的可靠数据传输机制

掌握TCP协议可靠传输机制的设计

  • RTT的估计算法和超时时长的动态设置
  • 提高链路利用率的方法:accumulated ACK;piggybacking ACK;fast retransmi等

深入理解TCP协议的流量控制

深入理解TCP连接管理

24

25

26

27

28

29

网络拥塞控制的基本原理

理解拥塞控制的基本原理

拥塞(Congestion):太多发送主机发送了太多数据或者发送速度太快以致于网络无法管理

拥塞会导致:

  • 分组丢失(路由器缓存溢出)
  • 分组延迟过大(在路由器缓存中排队时间过长)

拥塞控制的方法:

32

拥塞控制原理:管制发送方的发送速率

TCP协议的拥塞控制机制

理解TCP拥塞控制的原因及面临的问题

熟练掌握TCP拥塞控制的过程

TCP拥塞控制基本原理

33

加性增-乘性减:AIMD

原理:逐渐增加发送速率,谨慎探测可用带宽,直到发生loss

AIMD:

  • Additive Increase:每个RTT将CongWin增大一个MSS——拥塞避免
  • Multiplicative Decrease:发生loss后将CongWin减半

34

慢启动:SS

由于AIMD在开始时一般不会发生loss,所以一开始使用加性增可能会浪费时间,浪费资源

原理:当连接开始时,指数性增长

SS:

  • 每个RTT将CongWin翻倍
  • 收到每个ACK时进行操作
  • 初始速率很慢,但是快速攀升

35

Threshold变量

Q:何时应该指数性增长切换为线性增长(拥塞避免)?

A:当CongWin达到Loss事件前值的1/2时

Loss事件发生时,Threshold被设为Loss事件前CongWin值的1/2

36

Threshold会有一个初始值,上图中为8

图中第一次发生Loss时CongWin的值为12,所以将Threshold置为6

37

  • 收到3个重复ACK表示网络还能够传输一些segment
  • Timeout事件表明拥塞更为严重

流水线机制与滑动窗口协议

流水线机制

允许发送方在收到ACK之前连续发送多个分组,这就需要

  • 更大的序列号范围,不能只有0和1
  • 发送方和/或接收方需要更大的存储空间以缓存分组

14

滑动窗口协议

窗口

  • 允许使用的序列号范围
  • 窗口尺寸为N:最多有N个等待确认的消息

滑动窗口

  • 随着协议的运行,窗口在序列号空间内向前滑动

滑动窗口协议:GBN, SR

15

  • 绿色:已经发送过的分组且收到ACK
  • 黄色:分组发送后等待ACK
  • 蓝色:还可以同时发送分组的数量
  • 白色:还未使用的序列号

GBN协议

Go-Back-N协议

发送方

  • 分组头部包含k-bit序列号
  • 窗口尺寸为N,即最多允许N个分组未确认

16

  • ACK(n):确认到序列号n(包含n)的分组均已被正确接收
    • 有可能收到重复ACK
  • 为空中的分组(分组已发送但还未收到ACK)设置计时器
  • 超时Timeout(n)事件:重传序列号大于等于n,还未收到ACK的所有分组

17

18

  • ACK机制:发送拥有最高序列号的、已被正确接收的分组的ACK
    • 可能产生重复ACK
    • 只需要记住唯一的expectedseqnum
  • 乱序到达的分组
    • 直接丢弃,接收方没有缓存
    • 重新确认序列号最大的、按序到达的分组

19

GBN协议的问题

重传分组较多,导致传输性能降低,需要较大的缓存空间

SR协议

Selective Repeat协议

  • 接收方对每个分组单独进行确认
    • ACK(n):仅代表当前分组已确认接收
    • 设置缓存机制,缓存乱序到达的分组
    • 当收到本应该收到的分组后,再加上已缓存的乱序的分组,可以等效于一个正确排续的分组,将它们一起上传到上层
  • 发送方只重传那些没收到ACK的分组
    • 为每个分组设定计时器
  • 发送方窗口
    • N个连续的序列号
    • 限制已发送且未确认的分组
  • 发送方窗口和接收方窗口不是同步的

20

21

22

SR协议的问题

接收方无法区分以下两种场景

23

为解决上述问题,序列号空间大小与窗口尺寸要满足

NS+NR<=2k

TCP概述

  • 点对点
    • 一个发送方,一个接收方
  • 可靠的、按序的字节流
  • 流水线机制
    • TCP拥塞控制和流量控制机制设置窗口尺寸
  • 发送方/接收方缓存
  • 全双工(full-duplex)
    • 同一连接中能够传输双向数据流
  • 面向连接
  • 流量控制机制

Points

  1. 多路复用/解复用
  2. TCP流量控制:一种速度匹配机制

来保证发送方不会传输过多数据,也不会传输过快以至于淹没接收方从而导致接收方缓存溢出

  1. TCP连接管理

使用TCP进行传输前首先要建立连接

三次握手:

30

31

  • 请求建立连接
  • 收到请求且询问建立连接的具体信息
  • 连接建立成功
  1. TCP具有公平性

38

39

40

数据层面

网络层的服务模型及功能

掌握网络层协议在协议栈中的位置,提供的服务及主要功能

网络层的核心功能:转发与路由

  • 转发(forwarding):将分组从路由器的输入端口转移到合适的输出端口
  • 路由(routing):通过相应的路由算法确定分组从源到目的经过的路径

无连接服务

  • connection-less service
  • 不事先为系列分组的传输确定传输路径
  • 每个分组独立确定传输路径
  • 不同分组可能传输路径不同,可能会导致系列分组到达时与开始传输时的顺序不同
  • 数据报网络(datagram network)

连接服务

  • connection service
  • 首先为系列分组的传输确定从源到目的经过的路径(建立连接)
  • 然后沿该路径(连接)传输系列分组
  • 系列分组的传输路径相同,可以保证系列分组到达的顺序
  • 传输结束后拆除链接
  • 虚电路网络(virtual-circuit network)

路由器内部结构

了解路由器内部结构

IP协议、IP地址分配和管理

理解IPv4地址CIDR表示方式、子网、子网掩码的概念

掌握IP地址分配方法:能够根据用户对IP地址数量的需求进行网络规划、分配IP地址块

理解网络地址转换NAT的动机和工作机制

了解IPv6和IPv4共存的原理

IP数据报(分组)格式:IPv4-32bits

1

2

首部长度可以看做首部的行数

3

4

5

Time To Live

TTL的初始值表示最多可经过多少个路由器

6

7

8

9

10

11

12

13

IP编址

  • IP地址
    • 网络号(NetID) - 高位比特
    • 主机号(HostID) - 低位比特
  • IP子网
    • IP地址具有相同网络好的设备接口
    • 不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口

14

有类编址

15

IP子网划分与子网掩码

16

子网掩码

17

B类网络默认子网掩码为:255.255.0.0

借用3比特划分子网,说明SubID为3位,且全部置1,即11100000=224

Example:

18

19

需要去掉主机域全0和全1的IP地址

CIDR

无类域间路由(CIDR:Classless Inter Domain Routing)

  • 消除了传统的A类、B类和C类地址界限
    • NetID+SubID→Network Prefix(Prefix)可以任意长度
  • 融合子网地址与子网掩码,方便子网划分
    • 无类地址格式:a.b.c.d/x,其中x为前缀长度
  • 提高IPv4地址空间的分配效率
  • 提高路由效率
    • 将多个子网聚合为一个较大的子网,即路由聚合(route aggregation)

20

Points

  1. DHCP协议

动态主机配置协议-DHCP:Dynamic Host Configuration Protocol

从服务器动态获取

即插即用

允许地址重用

支持在用地址续租

支持移动用户加入网络

通过广播从服务器获取IP地址

21

  1. 网络地址转换(NAT)

Network Address Translation

22

23

ISP:互联网服务提供商(Internet Service Provider)

24

  1. IPv6
  • 128位
  • 固定长度40字节基本首部
  • 不允许分片
  • 移除了校验和
  • 用冒号分割,共8个16进制数表示

27

IPv4-嵌入形式规定前80个比特(前5个16进制数)都为0,接下来16个比特(第6个16进制数)全为1

控制层面

网络层控制层面的基本概念

理解网络层控制层面的基本概念和功能

路由算法设计及性能分析

理解路由协议设计的基本原理和方法

掌握路由协议的设计方法:能够根据网络拓扑结构,使用链路状态(Link State)和距离矢量(Distance Vector)路由算法计算出从某一路由节点A到其它路由节点的最短路径,并给出路由器A上的路由表

链路状态路由算法

Dijkstra算法

28

29

距离向量路由算法

30

Internet路由协议

理解Internet层次型路由结构

了解Internet经典路由协议的工作原理(OSPF, RIP, BGP)

了解Inter-AS路由协议和Intra-AS路由协议设计的原则

层次路由

31

32

  • intra-AS:自治系统内部的路由协议
  • inter-AS:自治系统之间的路由协议
  • AS内部路由协议也称为内部网络协议IGP(Interior Gateway Protocol)
  • intra-AS / IGP 包括:
    • RIP:路由信息协议,Routing Information Protocol
    • OSPF:开放最短路径优先,Open Shortest Path First
    • IGRP:内部网关路由协议,Interior Gateway Routing Protocol(Cisco私有协议)
  • inter-AS 包括:BGP:边界网关协议,Border Gateway Protocol

33

RIP协议

路由信息协议(RIP,Routing Information Protocol)

使用距离向量路由算法

34

OSPF协议

开放最短路径优先(Open Shortest Path First)

采用链路状态路由算法(Dijkstra算法)

35

OSPF优点(RIP不具备)

36

分层的OSPF

37

38

39

40

BGP协议

  • eBGP:External
  • iBGP:Internal

41

ICMP协议

了解ICMP协议的工作原理

互联网控制报文协议(ICMP,Internet Control Message Protocol)

25

Points

数据链路层服务模型及功能

理解链路层在协议栈中的位置及其功能,链路层负责物理相邻节点之间的数据传输

1

2

3

4

MAC协议设计

深入理解多址接入协议(MAC)设计的基本原理和方法

三类MAC协议

  • 理解信道划分(channel partitioning)的设计思想、应用实例
  • 理解轮流协议(taking turns)的设计思想、应用实例
  • 随机接入(random access):深入理解ALOHA、Slotted ALOHA、CSMA/CD、CSMA/CA

MAC协议

多路访问控制协议(Multiple Access Control)或介质访问控制协议(Medium Access Control)

8

9

理想MAC协议

10

MAC协议分类

11

MAC协议效率:长期运行时,成功发送帧的时隙所占的比例(很多结点,有很多帧待发送)

信道划分协议

TDMA:Time Division Multiple Access

12

FDMA:Frequency Division Multiple Access

13

随机访问协议

14

时隙(slotted)ALOHA协议

15

Example:

  • C:collision
  • E:empty
  • S:send

16

17

18

ALOHA协议

19

要比时隙ALOHA协议效率

20

CSMA协议

21

  • 1-坚持CSMA:以概率1监听这个信道,即一直监听这个信道直到信道空闲,发送完整帧
  • 非坚持CSMA:随机等待一段时间,再次监听这个信道
  • P-坚持CSMA:以概率P监听这个信道,直到信道空闲,发送完整帧;以概率(1-P)随机等待一段时间,再次监听这个信道

CSMA/CD协议

22

23

24

轮转访问协议

25

轮询(Polling)

26

令牌传递(Token Passing)

27

MAC协议总结

28

有线局域网:Ethernet

熟练掌握CSMA/CD

  • 理解载波侦听后要冲突探测的原因
  • 掌握二进制指数退避算法估计随机退避的时长

掌握ARP的工作机制

掌握数据包跨子网传输中IP地址和MAC地址的寻址过程

理解并掌握交换机的自学习过程

理解VLAN的工作原理

MAC地址

29

30

31

ARP协议

地址解析协议(Address Resolution Protocol)

32

33

以太网

34

不可靠无连接的服务

35

以太网CSMA/CD算法

36

交换机

37

多端口间同时传输

38

39

交换机自学习

40

帧过滤/转发

41

交换机互联

42

交换机vs路由器

43

VLAN

虚拟局域网(Virtual Local Area Network)

44

基于端口的VLAN

45

跨越多交换机的VLAN

46

无线局域网:WLAN

掌握CSMA/CA协议设计面临的问题和工作原理

深入理解隐藏终端(hidden terminal)问题产生的原因及其解决方法

WLAN:Wireless Local Area Network

无线局域网

51

多路访问控制-CSMA/CA协议

CSMA/CA:…/Collision Avoidance

52

53

基本思想:允许发送端预约(reserve)信道,而不是随机发送数据帧,从而避免长数据帧的冲突

54

RTS-CTS交换

55

隐藏终端问题

RTS/CTS协议即请求发送/允许发送协议,相当于一种握手协议,主要用来解决"隐藏终端"问题。“隐藏终端”(Hidden Stations)是指,基站A向基站B发送信息,基站C未侦测到A也向B发送,故A和C同时将信号发送至B,引起信号冲突,最终导致发送至B的信号都丢失了。“隐藏终端"多发生在大型单元中(一般在室外环境),这将带来效率损失,并且需要错误恢复机制。当需要传送大容量文件时,尤其需要杜绝"隐藏终端” 现象的发生。IEEE802.11提供了如下解决方案。在参数配置中,若使用RTS/CTS协议,同时设置传送上限字节数----一旦待传送的数据大于此上限值时,即启动RTS/CTS握手协议:首先,A向B发送RTS信号,表明A要向B发送若干数据,B收到RTS后,向所有基站发出CTS信号,表明已准备就绪,A可以发送,其余基站暂时"按兵不动",然后,A向B发送数据,最后,B接收完数据后,即向所有基站广播ACK确认帧,这样,所有基站又重新可以平等侦听、竞争信道了。

计算机网络数据传输过程

通过数据包在网络中的传输过程的分析,全面回顾所涉及的各层协议

Points

  1. 差错检测-循环冗余校验码(CRC)

5

6

r=G的位数-1

Example:

D=101110,G=1001

D左移3位 / G,减法时做异或运算

7

所以结果为D后面加上R,即101110011

  1. PPP协议

点对点协议(Point to Point Protocol)

点对点数据链路控制

47

PPP设计需求

48

PPP无需支持的功能

49

PPP数据控制协议

50