北航计网理论期末复习

北航计网理论期末复习

主要参考资料:课程ppt、王道考研、课本、往届期末试题

第一章 概 述

计算机网络定义与分类

计算机网络:一些互相连接的、自治的计算机的集合

网络的功能:连通性和资源共享

计算机网络分类

按作用范围(或覆盖范围)分类:

  • 广域网WAN 几十到几千公里
  • 局域网LAN 一个建筑物或一个单位
  • 城域网MAN
  • 个人区域网PAN

从网络的使用者进行分类:

  • 公用网 (public network)
  • 专用网 (private network)

计算机网络与Internet发展概述

计算机网络发展

  • 主机终端时代
    • 计算机以大型主机形式存在
    • 终端通过专用线路或通信网络连接到主机上,实现多用户远程共享主机计算资源
  • 主机互连时代
    • 分布在各地的大型主机通过通信网络实现互连
    • 1969年,ARPANET建立(阿帕网为美国国防部高级研究计划署开发的世界上第一个运营的封包交换网络,它是全球互联网的始祖)
  • 网络时代
    • 1978年,TCP/IP协议诞生

Internet发展概述

  • ARPANET–网际互联发展

  • 建成三级结构的Internet

  • 形成多层次ISP结构的Internet

计算机网络的性能

性能指标

名称单位描述计算公式
速率b/s传送数据的速率,最高数据率为带宽
带宽b/s通信线路传送数据的能力,即最高数据率
吞吐量单位时间内通过某个网络的数据量
时延指数据从网络(或链路)一端传送到另一端所需的时间总时延=发送+传播+处理+排队
发送时延=数据块长度/发送速率
传播时延=信道长度/电磁波在信道传播速率
时延带宽积发送端发送到第一个比特到达终点时,发送端已发送比特时延带宽积=传播时延*信道带宽
往返时间RTT发送端发送数据到收到接收端确认的时间
信道利用率某信道有百分之几的时间是被利用的(有数据通过)
网络利用率全网络的信道利用率的加权平均值

计算机网络体系结构

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

具有七层和五层协议的体系结构

在这里插入图片描述

协议数据单元PDU(Protocol Data Unit):对等层次之间传送的数据单位。

实体、协议、服务和服务访问点

实体(entity):任何可发送或接收信息的硬件或软件进程

协议(protocol):控制两个对等实体进行通信的规则的集合

同一系统相邻两层的实体进行交互的地方,称为服务访问点SAP

  • 计算机网络提供的服务分类:
    • 面向连接的服务和无连接服务(TCP/UDP)
    • 可靠服务和不可靠服务
    • 有应答服务和无应答服务

在这里插入图片描述

TCP/IP体系结构

在这里插入图片描述

路由器在转发分组时最高只用到网络层,而没有使用传输层和应用层

在这里插入图片描述

第二章 物理层

物理层的基本概念

  • 物理层的主要任务:在传输介质上传输比特流
  • 物理层四个特性:机械特性、电气特性、功能特性、过程特性

数据通信的基础知识

数据通信系统的模型

在这里插入图片描述

  • 信道(channel):表示向某一方向传送信息的介质

  • 通信的目的:传送消息

  • 消息实体:数据

  • 信号:数据的电气或电磁表现,分为模拟信号和数字信号

  • 码元:在时域的波形表示数字信号时,代表不同离散数值的基本波形

    • 码元速率:单位时间内通过信道的码元个数,单位波特
    • 数据速率:单位时间内通过信道的信息量,单位b/s或bps
信号的基本概念
  • 通信双方的交互方式

    • 单向通信
    • 双向交替通信
    • 双向同时通信
  • 基带信号和带通信号

    • 基带信号:来自信源的信号。计算机输出的代表各种文字或图像文件的数据信号都属于基带信号。

      基带信号往往包含有较多的低频成分,甚至有直流成分,而许多信道并不能传输这种低频分量或直流分量。因此必须对基带信号进行调制

    • 基带信号经过载波调制后,信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道)

  • 调制方法

    • 调幅
    • 调频
    • 调相:载波的初始相位随着基带数字信号而变化
    • 为了获得更高的传输速率,常采用多元制的混合调制方法

    在这里插入图片描述

信道的极限容量

信号失真问题

  • 任何实际的信道都不是理想的,在传输信号时会产生各种失真以及带来多
    种干扰

  • 码元传输的速率越高,或信号传输的距离越远,在信道的输出端的波形的
    失真就越严重

信道能够通过的频率范围

一个信道所能通过的频率范围总是有限的,高频分量往往不能通过信道

接收端收到的信号波形失去了码元之间的清晰界限,即“码间串扰”

  • 奈奎斯特(Nyquist)定理

    • 理想低通信道最大数据传输率 = 2 H l o g 2 V ( b p s ) 理想低通信道最大数据传输率 = 2Hlog_2V (bps) 理想低通信道最大数据传输率=2Hlog2V(bps)
    • H:信道带宽,V:信号电平的级数(信号的状态数)

    在这里插入图片描述
    )

信噪比

信号的平均功率与噪声的平均功率之比,常记为S/N,以分贝(dB)作为计量单位

信噪比 = 10 l o g 10 ( S / N ) ( d B ) 信噪比 = 10log_{10}(S/N) (dB) 信噪比=10log10(S/N)(dB)

香农公式

信道的极限信息传输速率 C 可表达为: C = W l o g 2 ( 1 + S / N ) b / s C = W log_2(1+S/N) b/s C=Wlog2(1+S/N)b/s

W:信道带宽(单位:Hz),S:信道内所传信号的平均功率,N:信道内部的高斯噪声功率

物理层下面的传输介质

传输介质:又称为传输媒体或传输媒介,指数据传输系统中发送器和接收器之间的物理通路

导引型传输介质

  • 双绞线
  • 同轴电缆
  • 光纤

非导引型传输介质

非导引型传输介质指可传播无线电波的自由空间

信道复用技术

复用(multiplexing)就是在一个信道上传输多路信号

  • 频分多路复用:不同用户占用不同的频带资源

  • 时分多路复用:将时间划分成一段段等长的时隙,每个用户使用不同的时隙;便于数字传输

  • 波分复用:光的频分复用

  • 码分复用

宽带接入技术

xDSL技术

通过改造现有的模拟电话用户线的传输方式,使其能够承载宽带业务

xDSL的几种类型:

  • ADSL(Asymmetric Digital Subscriber Line)
  • HDSL (High speed DSL)
  • SDSL (Single-line DSL)
  • VDSL (Very high speed DSL)

HFC

Hybrid Fiber Coax光纤混合同轴网

基于光纤的宽带接入:FTTx

基于光纤传输的宽带接入技术

  • FTTH(Fiber To The Home):光纤到户
  • FTTB(Fiber To The Building):光纤到大楼
  • FTTC (Fiber To The Curb):光纤到路边

目前用于光纤到户的技术:无源光网络PON—Passive Optical Network

第三章 数据链路层

数据链路层设计要点

  • 物理层实现了比特流的传输,数据链路层在其基础上实现帧(frame)的传输

  • 数据链路层传输的协议数据单元(PDU)是帧

  • 数据链路层使用的信道类型

    • 点对点
    • 广播
  • 常用的成帧方法

    • 字符计数法:在帧头部指明字节数
    • 字符填充的首位定界法:定义专门的字符作为帧的起始/结束标志,并使用字符填充方式将标志字符与数据区分开来
    • 比特填充的首位定界法:定义专门的比特序列作为帧的起始/结束标志,并使用比特填充方式将标志序列与数据区分开来
    • 物理编码违例法:使用无效的物理编码作为帧的开始/结束标志,供接收方识别

错误检测和纠正

检错编码
  • 用误码率BER(Bit Error Rate)表示链路可靠性: 误码率 = 出错的比特数 / 传送的总比特数 误码率=出错的比特数/传送的总比特数 误码率=出错的比特数/传送的总比特数
  • 常用检错编码方法
    • 奇偶校验
    • 简单累加和(校验和)
    • 循环冗余校验CRC(Cyclic Redundancy Check)
纠错编码

纠错编码通过增加冗余信息使得能够检测错误发生所在,以便于纠正,又称为前向纠错(forward error correcting)

  • 海明编码

基本数据链路协议

无限制的单工协议

假设前提

  • 单向传输
  • 理想信道
  • 发送方总有数据发送
  • 接收方总能及时处理所收到的数据

单工停-等(stop-and-wait)协议

增加流量控制(flow control)机制:

  • 接收方每收到一帧,都向发送方返回一个应答帧
  • 发送方每发送一帧,都等待来自接收方的应答帧,之后才发送下一帧

有噪声信道的单工协议

ARQ(Automatic Repeat reQuest)协议:

  • 校验和:使接收方能够检测帧是否出错
  • 确认帧:使发送方知道帧已被正确接收
  • 超时重发:发送方在规定时间内未收到确认帧,则重发帧
  • 帧序号:保证接收方不会重复接收帧

滑动窗口协议

滑动窗口协议原理

基本思想:

  • 允许发送方连续发送多个帧
  • 通过滑动窗口实现流量控制

发送方

  • 发送窗口内的序列号代表允许它发送的帧
    • 窗口内最大的序列号称为窗口上边界,或窗口上沿、前沿
    • 窗口内最小的序列号称为窗口下边界,或窗口下沿、后沿
  • 每当从网络层得到一个数据包,将其组成帧发出后,发送窗口的上边界+1
  • 发送窗口下边界的帧被接收方确认后,下边界+1

接收方

  • 接收窗口内的序列号代表它可以接收的帧
  • 收到的帧序列号等于窗口下边界时,将该帧上交网络层,并返回确认帧,同时整个窗口向前移动1个位置
  • 如果收到帧序列号落在接收窗口之外,则将其丢弃
  • 接收窗口总是保持固定大小

**ARQ协议:**窗口最大尺寸为1的滑动窗口协议称为1位滑动窗口协议

后退N帧的滑动窗口协议(Go back N)

当某帧出错时,该帧之后的帧全被丢弃,从出错帧开始重新发送

在这里插入图片描述

在后退N帧协议中,发送方可以连续发送若干个数据帧,如果收到接收方的确认帧,则可以继续发送。若某个帧出错,接收方只是简单地丢弃该帧及其后所有的后续帧,发送方超时后需重传该数据帧及其后续的所有数据帧。 这里要注意,连续ARQ协议中,接收方一般采用累积确认的方式,即接收方对按序到达的最后一个分组发送确认,因此题目中收到3的确认帧就代表编号为0、1、2、3的帧已接收,而此时发送方未收到1号帧的确认只能代表确认帧在返回的过程中丢失了,而不代表1号帧未到达接收方。因此需要重传的帧为编号是4、5、6、7的帧

选择性重传的滑动窗口协议(selective repeat)

当某帧出错时,只选择性地重发该帧,该帧之后发送的帧由接收方数据链路层缓冲,收到重发的出错帧后上交给网络层

当接收方检测到出错帧时,发送一个否定的确认(NAK, Negative Acknowledgement)

ACKn表示n及n以前的帧均已被正确接收

在这里插入图片描述

点对点协议 PPP

PPP (Point-to-Point Protocol):一种数据链路层协议,广泛应用于点到点链路的数据传输

组成部分

  • 将 IP 数据报封装到串行链路的方法
  • 链路控制协议 LCP (Link Control Protocol)
  • 网络控制协议 NCP (Network Control Protocol)
PPP的帧格式

PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节

  • 标志字段F:=0x7E (二进制:01111110)
  • 地址字段A:置为 0xFF,实际上不起作用
  • 控制字段C:通常置为 0x03
  • 协议字段:2字节,用于识别信息字段(又称为载荷,payload)的类型
    • 0x0021:PPP 帧的信息字段是IP 数据报
    • 0xC021:信息字段是 PPP 链路控制数据(LCP)
    • 0x8021:信息字段是网络控制数据(NCP)
  • 校验字段FCS:2字节的CRC校验

在这里插入图片描述

  • PPP的透明传输问题(帧边界识别)
    • 同步传输:零比特填充(发送端:只要发现有 5 个连续 1,则立即填入一个 0)
    • 异步传输:字符填充
PPP 协议的工作状态

PPP支持两种身份认证协议

  • PAP(Password Authentication Protocol)
  • CHAP(Challenge-Handshake Authentication Protocol)

在这里插入图片描述

介质访问控制

局域网的数据链路层

局域网的主要特点:网络为一个单位所拥有,且地理范围和站点数目均有限

局域网要解决的重要问题:介质访问控制技术

  • 问题缘由:局域网通常使用广播信道
CSMA/CD协议

Carrier Sense Multiple Access with Collision Detection
载波监听多点访问/碰撞检测

以太网的核心,非常重要

是一种随机访问协议

核心概念

  • 载波监听
    • 结点在发送数据之前先检测一下总线上是否有其他结点正在发送数据,如有则暂时不要发送数据,以免发生碰撞。
  • 碰撞检测
    • 结点边发送数据边检测信道上是否发生了碰撞(监听总线上传输的信号)
    • 由于线路的传播时延,单纯靠载波监听并不能完全避免碰撞
    • 在发生碰撞时,两个或更多的信号在总线上相互叠加,导致无法识别
  • 碰撞强化
    • 发送方检测到碰撞后,立即停止发送,并发送32或48bit的人为干扰信号(jamming signal),以便让所有用户都知道已经发生了碰撞
  • 碰撞退避
    • 碰撞后,结点等待一段时间,重新开始载波检测和发送操作
    • 为避免退避后再次碰撞,冲突各方的等待时间应各不相同
    • 以太网采用截断二进制指数退避算法
      • 退避时间:T = 2τ×倍数
      • 倍数:在0, 1, …, 2k中取随机数,k = min(重传次数, 10)
      • 重传次数超过16后,丢弃该帧,并向上层报告

争用期

  • 一个站点开始发送数据后,最多经过时间 2τ(两倍的端-端时延)就可知道
    是否发生了碰撞
  • 以太网的端到端往返时延 2τ称为争用期,或碰撞窗口。如果经过争用期还没有检测到碰撞,就可以肯定这次发送不会发生碰撞
  • 以太网的争用期
    • 以太网的争用期长度:51.2 us
    • 对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节。在发送数据时,若前 64 字节未发生碰撞,就不会发生碰撞。据此规定以太网帧长≥ 64 字节,长度小于 64 字节的帧为无效帧

优缺点

  • 网络负载较轻时效率高
  • 硬软件实现简单、灵活
  • 网络负载较重时,碰撞发生概率增大,网络效率较低
  • 由于存在多次冲突的可能,数据从发送方到达接收方的时间没有保证 → 实时性较差
局域网技术标准

IEEE802标准将局域网的数据链路层分为两个子层:

  • LLC(Logic Link Control)逻辑链路控制子层
  • MAC(Media Access Control)介质访问控制子层

在这里插入图片描述

以太网

  • 采用便宜和灵活的非屏蔽双绞线,使用集线器(HUB)连接各个结点,物理上呈星
    形结构,此种技术称为10Base-T。使用集线器的以太网在逻辑上仍是一个总线网。集线器很像一个多接口的转发器,工作在物理层。

    • 10:10Mbps

    • Base:基带传输

    • T:双绞线(Twisted pair)

  • 采用曼彻斯特(Manchester)编码

  • 采用CSMA/CD介质访问控制协议

    • MAC地址
      • 结点发送数据时,以太网总线结构,总线上的所有结点都能收到帧
      • 按照IEEE802.3标准,给每个结点分配唯一的MAC地址
      • MAC地址为48 bit,高24bit为厂商标识符,低24位由厂商自行分配,须保
        证每个网络接口具有全球唯一的MAC地址
    • 适配器每收到一个帧就检查帧中的目的MAC地址,如果是发往本
      站的帧则进行处理,否则丢弃
      • 单播(unicast)帧(一对一)
      • 广播(broadcast)帧(一对全体),MAC地址为全1表示广播
      • 组播/多播(multicast)帧(一对多)

帧格式

  • 目的地址、源地址:各6字节的MAC地址

  • 类型:2字节,标明上层协议类型,例:0x0800表示IP包

  • 数据:网络层数据报,长度46 ~ 1500字节

  • FCS:4字节,帧校验序列,采用CRC校验

    在这里插入图片描述

局域网互连

在物理层扩展局域网

使用中继器(repeater)或集线器(HUB)可实现局域网在物理层的互连

  • 优点:可以方便地实现网络的扩展,且成本较低
  • 缺点:碰撞域增大,碰撞发生概率增大,可能影响网络性能

在数据链路层扩展局域网

使用网桥(bridge)可实现局域网在数据链路层的互连

  • 优点:过滤通信量、增大吞吐量;各网段是独立的碰撞域;扩大了物理范围;提高了可靠性;可互连不同物理层、不同 MAC 子层和不同速率的局域网
  • 缺点:存储转发增加了时延;在MAC 子层并没有流量控制功能;网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网

网桥的基本工作原理

  • 根据 MAC 帧的目的地址对收到的帧进行转发
  • 具有过滤帧的功能:当收到一个帧时,检查该帧的目的 MAC 地址,确定将该帧转发到哪一个接口但并不向所有的接口转发帧

多接口网桥——交换机

其内部工作原理为网桥,每一个网络接口被视为一个网段,因此交换机是一种多接口网桥

交换机工作在数据链路层,每个接口为一个网段(碰撞域),可以大幅提高网络性能

集线器由所有接口共享传输介质的带宽,而交换机为每个接口独享带宽

交换机按照自学习算法(self-learning)建立转发表

  • 原理:若从 A 发出的帧从接口 x 进入了某网桥,那么从这个接口出发沿相反方向一
    定可把一个帧传送到 A

生成树算法

互连在一起的网桥彼此通信后,能找出网络拓扑的一个子集。在该子集中,整个连通的网络中不存在回路,即在任何两个站之间只有一条路径。考虑到网络拓扑动态变化,生成树需定期更新

虚拟局域网(VLAN)

VLAN(Virtual LAN),在现有局域网基础上,通过将网络站点分组,构成若干逻辑上独
立的虚拟局域网。帧不会在两个VLAN之间自动转发,包括广播帧

第四章 网络层

网络层提供的两种服务

  • 面向连接的服务,即虚电路(virtual circuit)

  • 无连接的服务,即数据报(datagram)

    • TCP/IP采用数据报服务

在这里插入图片描述

方面虚电路数据报
思路可靠通信由网络保证可靠通信由用户主机保证
连接建立必须有不需要
终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址
分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发
当结点出故障所有通过出故障的结点的虚电路均无法工作出故障的结点可能会丢失分组,一些路由可能发生变化
分组的顺序总是按照发送顺序到达终点到达终点不一定按照发送顺序
端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责

网际协议IP

与 IP 协议配套使用的还有四个协议:

  • 地址解析协议ARP
    (Address Resolution Protocol)
  • 逆地址解析协议RARP
    (Reverse Address Resolution Protocol)
  • 网际控制报文协议ICMP
    (Internet Control Message Protocol)
  • 网际组管理协议IGMP
    (Internet Group Management Protocol)

在这里插入图片描述

分类的IP 地址

IP地址被分为A, B, C, D, E五类,每一类地址都包含网络号(net-id)和主机号(host-id)两个字段,不同类的IP地址区别主要是网络号、主机号的长度不同。

在这里插入图片描述

全0、全1的IP地址有特殊含义

  • 全0表示本网络或本主机

  • 全1表示广播地址

ip地址是网络层及以上各层使用的地址,是一种逻辑地址

ARP与RARP协议

在这里插入图片描述

ARP协议

  • 主机设有一个ARP高速缓存(ARP cache),存有本地局域网上各主机和路由器的 IP 地址与硬件地址的映射表
  • 当主机 A 欲向本局域网上的主机B发送IP包时
    • 先在其ARP高速缓存中查看有无主机B的IP地址
    • 如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,通过局域网发送
    • 如无,则在网络中广播一个ARP请求
    • 当主机B收到ARP请求后,向主机A返回一个ARP应答,告知自己的物理地址
  • 注意:
    ARP解决同一局域网中的主机或路由器的 IP 地址和硬件地址的映射问题
    如果目的主机不在本局域网内,IP包需经由路由器转发
    此时在局域网内要完成的是路由器IP与物理地址的映射
IP数据报格式

一个 IP包由头部和数据两部分组成。头部:20字节的固定字段 + 0到多个可选字段

字段大小含义
version4bitIP协议版本号
IHL4bitIP包 头长度
type of service8bit服务类型
total length16bitIP包总长度(头部+数据)
identification16bit计数器,产生IP包标识
DF1bitDF=0允许分片
MF1bitMF=1后面还有分片;MF=0最后一个分片
fragment offset13bit片位移
time to live(TTL)8bit生存时间
protocol8bit上层协议类型
header checksum16bit包头校验和
source address32bit源IP地址
destination address32bit目的IP地址
OPtions以4字节为单位,最长40字节

划分子网和构造超网

**目的:**一个网络可划分为若干个子网(subnet),常按物理网络或单位组织机构划分子网,直观且易于管理

  • 子网掩码是一个网络或一个子网的重要属性,在路由寻址中发挥着重要作用
  • 对目的IP地址和子网掩码执行“按位与”操作,即得到子网地址
使用子网掩码的分组转发过程

① 从收到的分组的首部提取目的IP地址D
② 先用与该路由器直接相连各网络的子网掩码和D逐位相“与”,看是否和相应的网络地址匹配,若匹配,则将分组直接交付;否则就是间接交付,执行③
③ 若路由表中有目的地址为D的特定主机路由,则将分组传送给指明的下一跳路由器;否则执行④
④ 对路由表中的每一行的子网掩码和 D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则执行⑤
⑤ 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则执行⑥
⑥ 报告转发分组出错

无分类编址 CIDR

CIDR的主要特点

  • 消除传统A类、B类和C类地址以及划分子网的概念
  • 使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号
  • IP地址从三级编址(使用子网掩码)又回到了两级编址
    $IP地址 ::= {<网络前缀>, <主机号>} $
  • CIDR还使用“斜线记法”(slash notation),又称为CIDR记法。IP地址后加一个斜线“/”,后跟网络前缀所占的位数

路由聚合(route aggregation)

  • 一个 CIDR 地址块可以表示很多地址,这种地址的聚合称为路由聚合

  • 路由聚合的好处:路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由,可以减少路由表中表项个数,并减少路由器间交换的路由信息量

  • CIDR不使用子网,但仍使用“地址掩码”这一名词

最长前缀匹配

使用CIDR时,路由表中的表项中的“目的网络地址”由固定长度变成了变长的“网络前缀”。在查找路由表时可能会得到不止一个匹配结果

  • 从匹配结果中选择具有最长网络前缀的路由
  • 网络前缀越长,其地址块就越小,因而路由就越具体(more specific)
  • 最长前缀匹配又称为最长匹配或最佳匹配

网际控制报文协议ICMP

ICMP 报文有9种,可分为差错报告报文询问报文两类

  • 差错报告报文
    • Destination unreachable:终点不可达,路由器或主机无法传输报文时向源主机发送此报文
    • Time exceeded:超时,当报文的TTL字段为0时,路由器丢弃报文,并向源主机发送此报文
    • Parameter problem:参数问题,路由器或主机收到的报文中头部有非法字段时,丢弃数据包,并向源主机发送此报文
    • Source quench:源点抑制,路由器或主机由于拥塞丢弃报文时,向源主机发送此报文,使其放慢发送速度
    • Redirect:重定向,路由器向主机发送此报文告知路由改变,主机下次发送数据报给另外的路由器
  • 询问报文
    • Echo request / reply:回声探测,用于测试网络连通性
    • Timestamp request / reply:请求时间,可用于时间同步

应用

  • Ping:用来测试两个主机之间的连通性
    • 采用ICMP echo request / reply报文
    • 向目的主机发送ICMP echo request报文,对方收到后会回应ICMP echo reply,根据能否收到应答后判断两台主机之间是否连通
  • tracert:用来测试到另一台主机所经过的路由信息
    • 采用ICMP超时报告报文
    • 逐个发出UDP报文,其IP包头中的TTL字段分别设为1, 2, 3, …,直到到达目的主机
    • 报文路由路径上的路由器会返回ICMP超时报文,从该报文即可得知路由器IP地址

路由算法及协议

路由算法简介

在网络中,路由器依据路由信息(路由表)转发分组,路由信息是路由协议生成的,路由算法是路由协议的基础和核心

静态路由与动态路由

  • 静态路由选择策略
    • 非自适应路由选择
    • 简单和开销较小,但不能及时适应网络状态的变化
    • 适用于小规模且变化较少的网络,由人工设置路由
  • 动态路由选择策略
    • 自适应路由选择
    • 能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大
    • 适用于较大规模、频繁变化的网络,通过专门的算法和协议进行路由的计算

自治系统

在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。

在自治系统背景下,Internet路由协议可以分为两类:

  • 内部网关协议 IGP(Interior Gateway Protocol)
  • 外部网关协议EGP(External Gateway Protocol)

自治系统之间的路由选择又称为域间路由选择(interdomain routing);自治系统内部的路由选择又称为域内路由选择(intradomain routing)

在这里插入图片描述

距离向量路由与RIP协议

每个路由器维护一张表,表中给出了到每个目的地的已知最佳距离和线路,并通过与相邻路由器交换距离信息来更新表。路由器周期性地向所有相邻路由器发送它的距离表,同时它也接收每个邻居结点发来的距离表。

**优点:**实现简单,开销较小
缺点:

  • 当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路
    由器(距离向量路由的固有缺点)
  • 支持的网络规模有限,最大距离为 15(16 表示不可达)
  • 路由器之间交换的路由信息是路由器中的完整路由表,随着网络规模的
    扩大,开销随之增加
链路状态路由与OSPF协议
外部网关路由协议BGP

BGP发言人(speaker)

  • 每个AS要选择至少一个路由器作为“BGP speaker”
  • 两个BGP发言人通过一个共享网络连接在一起
  • BGP发言人一般是AS的边界路由器,但也可以不是
  • BGP 发言人与其他自治系统中的BGP发言人交换路由信息
  • 路由信息的交换通过TCP协议进行,两个发言人在TCP连接上交换BGP报文以建立BGP会话(session),利用 BGP 会话交换路由信息
  • BGP发言人除了运行BGP协议外,还要运行AS的内部网关路由协议

信息交换与路由生成

  • BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS称为路径向量(path vector)
  • BGP 发言人互相交换了网络可达性的信息后,就根据所采用的策略从其中
    找出到达各 AS 的较好路由

BGP-4使用四种报文
① OPEN报文:用来与相邻的另一个BGP发言人建立关系
② UPDATE报文:用来发送某一路由的信息,以及列出要撤消的多条路由
③ KEEPALIVE报文:用来确认打开报文和周期性地证实邻站关系
④ NOTIFICATION报文:用来发送检测到的差错

  • BGP发言人通过OPEN报文与另一发言人建立会话,对方如同意则回应KEEPALIVE报文
  • 双方周期性交换KEEPALIVE报文,以确认会话未中断
  • 路由信息变化时,发送UPDATE报文
路由器

路由器:具有多个输入/输出端口的专用计算机,其任务是转发分组

组成:

  • 路由选择部分:按照路由选择协议工作,构建路由表
  • 分组转发部分:交换结构(switching fabric) + 一组输入/端口

衡量路由器性能的指标:pps(packet per second)

网络的控制平面与数据平面

控制平面(control plane):生成路由表和转发表

数据平面(data plane):进行分组的快速转发

IP组播

组播(multicast)又称为多播,用于实现一点对多点的数据传输。对于一些网络应用,采用组播可大大减少网络流量

使用D类IP地址作为组播地址:224.0.0.0—239.255.255.255

组播数据报:IP包头中的目的地址为D类地址,协议类型为2(IGMP协议)

组播可分为两种:

  • 在局域网中的硬件组播
  • 在Internet中的组播

网络地址转换NAT和虚拟专用网VPN

专用地址

RFC1918中定义了一系列专用地址(private address)。这些地址只能用于机构的内部,Internet中的路由器不转发目的地址为专用地址的包

  • 10.0.0.0 ~ 10.255.255.255 (CIDR记法: 10/8)
  • 172.16.0.0 ~ 172.31.255.255 (CIDR记法: 172.16/12)
  • 192.168.0.0 ~ 192.168.255.255 (CIDR记法: 192.168/16)

当内部网络使用专用地址时,与Internet的通信需要通过NAT

虚拟专用网VPN

多个企业/机构的内部网络之间互连的实现方法:

  • 租用专用线路,形成专用网,成本高昂
  • 基于公用网络(如Internet),形成VPN

第五章 传输层

传输层协议概述

进程之间的通信

网络层实现主机之间的逻辑通信
传输层实现应用进程之间的逻辑通信——真正的端到端通信;复用(multiplexing)和解分(demultiplexing)

  • 应用层多个应用进程通过传输层发送数据 → 复用
  • 传输层收到的数据必须交付给指明的应用进程 → 分用

传输层主要协议

  • TCP 协议:可靠传输协议
  • UDP协议:不可靠传输协议

传输层的端口:区分上层应用进程的手段

在这里插入图片描述

用户数据报协议 UDP

UDP概述

UDP 只在 IP 的数据报服务之上增加了端口和差错检测

UDP协议的特点
(1) 无连接,即发送数据之前不需要建立连接
(2) 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制
(3) 是面向报文的。没有拥塞控制,很适合多媒体通信的要求
(4) 支持一对一、一对多、多对一和多对多的交互通信
(5) 首部开销小,只有 8 个字节

UDP首部格式

在这里插入图片描述

  • UDP数据报包括2个字段:首部和数据字段(伪首部仅在计算校验和时使用,不实际传输)
  • 首部共4个字段,8字节
    • 源端口: 源端口号
    • 目的端口: 目的端口号
    • 长度: UDP数据报长度
    • 校验和: UDP数据报的校验和

传输控制协议 TCP 概述

TCP的主要特点
(1) TCP 是面向连接的传输层协议。传输数据前必须先建立连接,数据传输完毕后要释放连接
(2) 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一)
(3) TCP 提供可靠交付的服务。无差错、不丢失、不重复、按序到达
(4) TCP 提供全双工通信。在一个连接上,通信双方可同时向对方传输数据
(5) 面向字节流。
认为在TCP连接上传输的是字节流,应用程序以数据块为单位与TCP交互,但TCP将其视为无结构的字节流。结果:发送方应用进程发出的数据块与接收方应用进程收到的数据块可能没有一一对应关系,但数据保证一致。

TCP 的连接

  • TCP把连接作为最基本的抽象

  • 每一条TCP连接有两个端点

  • TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口,TCP 连接的端点叫做套接字(socket)或插口。

  • 端口号拼接到(contatenated with) IP 地址即构成了套接字 套接字 s o c k e t : : = ( I P 地址 : 端口号 ) 套接字 socket ::= (IP地址: 端口号) 套接字socket::=(IP地址:端口号)

  • 每一条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定。即: T C P 连接 : : = { s o c k e t 1 , s o c k e t 2 } = { ( I P 1 : p o r t 1 ) , ( I P 2 : p o r t 2 ) } TCP 连接 ::=\{socket1, socket2\} = \{(IP1: port1), (IP2: port2)\} TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}

TCP报文段的首部格式

在这里插入图片描述

  • 源端口和目的端口字段:各2字节
  • 序号字段:4字节
    • 在TCP连接中传送的数据流中的每一个字节都有序号
    • 序号字段指本报文段所发送的数据的第一个字节的序号,以字节为单位
  • 确认号字段:4字节,期望收到对方的下一个报文段的数据的第一个字节的序号
  • 数据偏移(首部长度):4bit,TCP报文段的数据起始位置的偏移,也就是首部的长度,单位是32位字(4字节)
  • 保留字段:6bit,保留
  • 紧急URG:1bit,为1时,紧急指针字段有效,表明有紧急数据,应尽快传送
  • 确认ACK:1bit,为1时,确认号字段有效;为0时,确认号无效
  • 推送PSH:1bit,为1时,接收方将尽快向应用进程交付此报文段,而不是等到整个缓存填满
  • 复位RST:1bit,为1时,表明TCP连接出现严重差错(如由于主机崩溃),释放连接后重新建立连接
  • 同步SYN:1bit,为1时,表示这是一个连接请求或连接接受报文
  • 终止FIN: 1bit,为1时,表示要求释放TCP连接
  • 窗口大小:2字节,用来让对方设置发送窗口的依据,单位为字节
  • 检验和:2字节,伪首部+首部+数据的校验和,伪首部(pseudoheader)格式与UDP的伪首部相同

在这里插入图片描述

  • 紧急指针:2字节,指出本报文段中紧急数据共有多少个字节(紧急数据放在数据的最前面)
  • 选项:长度可变,最长40字节
    • 最早定义的一种选项:最大报文段长度MSS(Maximum Segment Size),告知对方报文段中数据最大长度,双方可使用不同的MSS,缺省MSS=536字节
    • 后续增加的选项:窗口扩大选项 、时间戳选项、选择确认选项
  • 填充字段:为了使整个首部长度是4字节的整数倍

TCP可靠传输的实现

以字节为单位的滑动窗口

  • TCP基于滑动窗口协议实现可靠传输和流量控制,滑动窗口以字节为单位
  • 发送窗口
    • 窗口大小的确定:对方发来的窗口大小、拥塞控制
  • 接收窗口

超时重传时间的选择

TCP的可靠传输通过校验和+超时重传实现

  • TCP每发送一个报文段,就对这个报文段设置一次计时器。如果计时器设置的重传时间到,但还没有收到确认,就要重传该报文段
  • 自适应算法计算超时重传时间
    • 加权平均往返时间$RTT_S $(注:RTT—Round Trip Time)。
      • TCP 保留了RTT的一个加权平均往返时间$RTT_S $((又称为平滑的往返时间),第一次测量到RTT样本时, $RTT_S $(就取为该值
      • 以后每测量到一个新的RTT样本,按下式重新计算: 新的 R T T S = ( 1 − α ) ∗ 旧的 R T T S + α ∗ 新的 R T T 样本 新的RTT_S = ( 1 − \alpha ) * 旧的RTT_S + \alpha * 新的RTT样本 新的RTTS=(1α)旧的RTTS+α新的RTT样本,其中 0 < α < 1 0<\alpha<1 0<α<1 α \alpha α越小,RTT值更新越慢, α \alpha α越大,RTT值更新越快
    • 超时重传时间RTO(Retransmission Time-Out)
      • RTO应略大于RTTS, R T O = R T T S + 4 ∗ R T T D RTO = RTT_S + 4 * RTT_D RTO=RTTS+4RTTD,其中 R T T D RTT_D RTTD是RTT的偏差加权平均值
      • 第一次测量时, R T T D RTT_D RTTD值取为测量到的RTT样本值的一半。在以后的测量中,使用下式计算加权平均的 R T T D RTT_D RTTD 新的 R T T D = ( 1 − β ) ∗ 旧的 R T T D + β ∗ ∣ R T T S − 新的 R T T 样本 ∣ 新的RTT_D = ( 1 −\beta ) * 旧的RTT_D + \beta * | RTT_S −新的RTT样本| 新的RTTD=(1β)旧的RTTD+βRTTS新的RTT样本

TCP的流量控制

利用滑动窗口实现流量控制

  • TCP连接建立过程中,将自己的接收窗口大小告知对方
  • TCP报头中都携带有窗口大小字段,告知对方自己接收窗口的剩余大小(即可接收的字节数)
  • 发送方的发送窗口应不大于对方的接收窗口

持续计时器(persistence timer)

  • TCP为每一个连接设有一个持续计时器 ,要一方收到对方的零窗口通知,就启动持续计时器
  • 若持续计时器设置的时间到,就发送一个零窗口探测报文段(仅携带1字节的数据),而对方在确认这个探测报文段时给出当前窗口值
  • 若窗口仍然是零,则收到这个报文段的一方就重新设置持续计时器
  • 若窗口不是零,则死锁的僵局就可以打破了

传输效率

  • 缓存数据达到一定量就发送
    • TCP维持一个变量,它等于最大报文段长度MSS
    • 只要缓存中存放的数据达到MSS字节时,就组装成一个TCP报文段发送出去
  • 应用进程控制
    • 由发送方的应用进程指明要求发送报文段,即推送(push)操作
  • 定时发送
    • 发送方的一个计时器期限到了,这时就把当前已有的缓存数据装入报文段(但长度不能超过 MSS)发送出去

TCP的拥塞控制

在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,从而产生拥塞

四种拥塞控制方法

  • 慢启动(slow-start),又称为慢开始
  • 拥塞避免(congestion avoidance)
  • 快重传(fast retransmit)
  • 快恢复(fast recovery)

慢启动(slow-start)和拥塞避免

试探性地从小到大逐渐增大发送窗口

  • 慢启动的工作过程
    • 开始发送报文段时,设置拥塞窗口cwnd = 1,即设置为一个最大报文段MSS的数值
    • 每收到一个对新的报文段的确认后,将拥塞窗口加 1,即增加一个 MSS 的数值
    • 用这样的方法逐步增大发送端的拥塞窗口cwnd,可以使分组注入到网络的速率更加合理
  • 为防止拥塞窗口cwnd增长过大导致拥塞,设置一个慢启动门限ssthresh
    • cwnd < ssthresh时,使用慢启动算法
    • cwnd > ssthresh时,停止使用慢启动算法而改用拥塞避免算法
    • cwnd = ssthresh时,可使用慢启动算法或拥塞避免算法
  • 拥塞避免算法的思路
    • 让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥
      塞窗口cwnd加 1,而不是加倍,使拥塞窗口cwnd按线性规律缓慢增长
  • 拥塞发生时的处理
    • 无论在慢启动阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(没有按时收到确认),就要把慢启动门限ssthresh改为出现拥塞时的发送方窗口值的一半(但不能小于2)
    • 然后把拥塞窗口cwnd重新设置为 1,执行慢启动算法
    • 这样做的目的:迅速减少注入到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕

快重传和快恢复

  • 快重传(fast retransmit)算法思路
    • 如果发送方在超时时间内未收到确认报文,说明网络中发生了拥塞,此时发送方应尽早地减小窗口宽度
    • 每当接收方收到一个失序的报文段,就发出重复确认,以便使发送方及早知道有报文段没有到达接收方
    • 发送方只要接连收到三个重复确认就应当立即重传对方尚未收到的报文段
  • 快恢复(fast recovery)算法思路
    • 当发送端收到连续三个重复的确认时,就进行“乘法减小”,把慢启动门限ssthresh减为当前拥塞窗口宽度的一半
    • 接下来不执行慢启动算法,而是设置为慢启动门限ssthresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大
    • 发送方认为现在网络很可能没有发生拥塞(仅有拥塞征兆),因为拥塞时不会有连续多个报文段到达接收方

TCP的连接管理

TCP传输连接三个阶段

  • 连接建立

    • TCP 连接的建立都是采用客户/服务器方式
    • 采用三次握手

    在这里插入图片描述

  • 数据传送

  • 连接释放

    • 在这里插入图片描述

    • TCP连接必须经过时间2MSL后才真正释放掉

      • 为了保证A发送的最后一个ACK报文段能够到达B
      • 防止“已失效的连接请求报文段”出现在本连接中
        A在发送完最后一个ACK报文段后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段

第六章 应用层

应用层协议是为了解决某一类应用问题。应用层的许多协议都是基于客户/服务器方式

套接字编程接口

  • 网络子系统作为操作系统的一部分,以应用编程接口(API—Application Programming Interface)的形式向应用程序提供调用接口

  • 套接字(socket)是最常用的应用层编程接口。经典的socket编程接口采用同步调用方式(又称阻塞式)

    • 例:调用recv()时,调用进程将被阻塞,直到收到数据为止

    在这里插入图片描述

域名系统 DNS

DNS基于UDP协议实现

  • 应用进程需要进行域名解析时,就调用域名解析程序(resolver),它成为DNS的一个客户
  • 向本地域名服务器发送域名解析请求(UDP报文),其中包含待解析的域名
  • 本地域名服务器在查找域名后,返回应答报文,其中包含对应的IP地址

Internet采用层次树状结构的命名方法

  • 域名不区分大小写
  • 域名长度不超过255字符

域名服务器

在这里插入图片描述

  • 根域名服务器
  • 顶级域名服务器
  • 权限域名服务器
  • 本地域名服务器

主机向本地域名服务器的查询一般采用递归查询

本地域名服务器向根域名服务器的查询通常是采用迭代查询

文件传送协议

  • FTP使用客户/服务器方式
    • 一个FTP服务器进程可同时为多个客户进程提供服务
    • FTP的服务器进程由两大部分组成
      • 一个主进程,负责接受新的请求
      • 若干个从属进程,负责处理单个请求
  • 主进程的工作步骤
    • 打开熟知端口(端口号为21),使客户进程能够连接上
    • 等待客户进程发出连接请求
    • 启动从属进程处理客户进程发来的请求
      • 从属进程对客户进程的请求处理完毕后即终止
      • 从属进程在运行期间根据需要还可能创建其他一些子进程
    • 回到等待状态,继续接受其他客户进程发来的请求
    • 主进程与从属进程的处理是并发地进行
  • FTP使用2个TCP连接
    • 控制连接
      • 在整个会话期间一直保持打开,FTP客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来传送文件。
    • 数据连接
      • 收到FTP客户发送来的文件传输请求后,服务器端的控制进程创建“数据传送进程”和“数据连接”。数据传送进程实际完成文件的传送,传送完毕后关闭“数据传送连接”并结束运行

万维网WWW

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

URL是对Internet上资源位置和访问方法的一种简洁表示

URL的一般形式:<协议>://<主机>:<端口>/<路径>

  • ftp —— 文件传送协议 FTP
  • http —— 超文本传送协议 HTTP
  • News —— USENET 新闻

URL不区分大小写

超文本传送协议HTTP

基于TCP协议,是面向事务的客户/服务器协议,HTTP是无状态的(stateless)——服务器不记录客户端的访问状态

工作原理

  • Web服务的熟知端口号是80,服务器通常在该端口上监听
  • 客户端需要请求某个页面时,与服务器建立TCP链接,之后请求传送文件,并进行文件的传送,传送完毕后释放TCP连接

HTTP/1.1协议使用持续连接

HTTP的报文类型:两类报文

  • 请求报文——从客户向服务器发送请求报文
  • 响应报文——从服务器到客户的回答
  • HTTP是面向正文的(text-oriented),报文中的字段都是 ASCII 码串,因而每个字段的长度都是不确定的

报文由三个部分组成,即开始行、首部行和实体主体

在这里插入图片描述

  • HTTP应答报文的开始行是状态行,状态行包括三项内容:HTTP的版本、状态码、解释状态码的
    简单短语
    • 1xx:表示通知信息的,如请求收到了或正在进行处理
    • 2xx:表示成功,如接受或知道了
    • 3xx:表示重定向,表示要完成请求还必须采取进一步的行动
    • 4xx:表示客户的差错,如请求中有错误的语法或不能完成
    • 5xx:表示服务器的差错,如服务器失效无法完成请求
万维网的文档

HTML定义了许多用于排版的命令,即标签(tag)

浏览器从服务器读取 HTML文档后,按照其中嵌入的各种标签,根据显示器尺寸和分辨率显示页面。仅当 HTML 文档是以.html 或 .htm 为后缀时,浏览器才对此文档的各种标签进行解释。

安全的HTTP协议:HTTPS

HTTPS:安全的HTTP协议,建立在SSL基础上

  • SSL/TLS已被浏览器广泛支持,很多Web应用利用HTTPS协议实现安全传输
  • HTTPS的熟知端口号为443,而不是80

SSL简介

– Secure Socket Layer,为TCP协议提供信息加密和完整性

在这里插入图片描述

电子邮件

概述

发送邮件的协议:SMTP

读取邮件的协议:POP3和IMAP

在这里插入图片描述

电子邮件系统的两种实体

  • 用户代理UA(User Agent)
    • 用户与电子邮件系统的接口,即电子邮件客户端软件
  • 邮件服务器
    • 一个邮件服务器既可以作为客户,也可以作为服务器

简单邮件传送协议 SMTP

SMTP使用客户/服务器方式

  • 负责发送邮件的SMTP进程就是SMTP 客户
  • 负责接收邮件的SMTP进程就是SMTP服务器

SMTP通信的三个阶段

  • 连接建立:连接在发送主机的SMTP客户和接收主机的SMTP服务器之间建立,不使用中间邮件服务器
  • 邮件传送
  • 连接释放:邮件发送完毕后,SMTP释放TCP 连接

电子邮件的信息格式

首部中的主要字段

  • To:后面填入一个或多个收件人的e-mail地址
  • Subject:邮件的主题,反映了邮件的主要内容
  • Cc:抄送(Carbon copy),表示给某人发送一个邮件副本
  • From:发信人的电子邮件地址
  • Date:发信日期
  • Reply-to:对方回信地址

MIME

MIME新增了5种头部字段

在这里插入图片描述

第七章 IPv6协议

概述

解决IP地址耗尽问题的措施:

  • 采用无类别编址CIDR,使IP地址的分配更加合理
  • 采用网络地址转换NAT方法以节省全球 IP地址
  • 采用具有更大地址空间的新版本的IP协议 IPv6

IPv6引入的主要变化:

  • 更大的地址空间
  • IPv6将地址从IPv4的32位增大到了128位
  • 扩展的地址层次结构
  • 灵活的首部格式
  • 改进的选项
  • 协议继续扩充
  • 支持即插即用(即自动配置)
  • 支持资源的预分配

IPv6地址

目的地址

  • 单播(unicast):传统的点对点通信
  • 组播/多播(multicast):一点对多点的通信
  • 任意播(anycast):IPv6增加的类型,任意播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个

IPv6地址为128位,采用冒号十六进制记法

  • 零压缩(zero compression),即一连串连续的零可以为一对冒号所取代(一个地址只能用一次)
  • CIDR的斜线表示法仍然可用

IPv6首部

IPv6数据报结构

  • 首部长度固定40字节,称为基本首部(base header)

  • 取消了不必要的功能,首部字段数减少到 8个

  • 取消了首部的校验和字段,加快了路由器处理数据报的速度

  • 在基本首部的后面允许有零个或多个扩展首部

  • 所有的扩展首部和数据合起来叫做数据报的有效载荷(payload)

    在这里插入图片描述

基本首部

  • 版本(version):4 位,协议版本,对IPv6该字段为6

  • 流量类别(traffic class):8位,用于区分IPv6数据报的类别或优先级

  • 流标号(flow label):20位,“流”是从特定源点到特定终点的一系列数据报,“流”所经过路径上的路由器都保证指定的服务质量,所有属于同一个流的数据报具有相同的流标号

  • 有效载荷长度(payload length):16 位,表示数据报除基本首部以外的长度(字节数),最大值为64KB

  • 下一个首部(next header):8位,相当于IPv4的协议字段或可选字段

  • 跳数限制(hop limit):8 位,数据报发出时设定跳数限制,路由器在转发数据报时将该字段值减1,当其为零时,将此数据报丢弃

  • 源地址:128位,数据报的发送方的IP地址

  • 目的地址:128位,数据报的接收方的IP地址

扩展首部

  • 原IPv4首部中的选项功能都放在IPv6扩展首部中

  • 数据报途中经过的路由器不处理扩展首部(除逐跳选项扩展首部以外),扩展首部由源和目的站的主机处理,路由器的处理效率大大提高

  • 六种扩展首部

    在这里插入图片描述

IPv4向IPv6过渡

向IPv6过渡只能采用逐步演进的办法,还必须使新安装的IPv6系统能够向后兼容
IPv6系统必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由

目前实现IPv4/IPv6互操作的技术主要有两种:

  • 双协议栈(dual stack)
    主机(或路由器)装有两个协议栈,一个IPv4和一个IPv6,根据需要使用不同的协议栈进行通信
  • 隧道技术(tunneling)
    将IPv6数据报重新封装后通过IPv4网络传输,即IPv6数据报作为IPv4数据报的数据部分
    • 重新封装为IPv4数据报后,IPv4包头中协议类型字段为41

第8章 无线局域网(WLAN)

概述

两种使用模式

  • 基础设施模式/有架构模式(Infrastructure mode)
    • 每个客户端与一个接入点(AP—Access Point)连接,接入点与其他网络连接
    • 几个接入点可通过有线网络连接形成扩展的802.11网络
  • 自组织网络模式(ad hoc mode)
    • 多台计算机相互连接形成网络,相互间发送帧
    • 无接入点

基础设施模式/有架构模式

  • 基本服务集(BSS, Basic Service Set):一个基站(即AP) + 若干个移动站
    • BSS内的站之间可通信,与BSS外的通信需通过基站进行
    • 每个AP分配一个≤32 字节的服务集标识符SSID和一个信道
      SSID: Sevice Set Identifier :相当于该基本服务集的名字
  • 关联(association):移动站与AP建立连接,加入该基本服务集
    • 移动站与AP建立关联的方法
      ① 被动扫描
      移动站等待接收AP周期性发出的信标帧(beacon frame),信标帧中包含有若干系统参数(如服务集标识符 SSID 以及支持的速率等)
      ② 主动扫描
      移动站主动发出探测请求帧(probe request frame),等待 AP 发回的探测响应帧(probe response frame)
  • 重新关联(Reassociation):移动站改变其首选AP,即加入另一BSS
    移动站从一个BSS漫游至另一个BSS时

802.11协议栈

  • 客户端和AP的协议相同
  • MAC子层决定如何分配信道
  • LLC子层屏蔽IEEE802协议之间的差异,同时承上启下

IEEE802.11的物理层

无线频段

  • 多数无线频段由政府管理和分配,需license才可使用
  • 预留了无需许可即可免费使用的频段

802.11物理层的几种实现方法:

在这里插入图片描述

IEEE802.11的MAC层

WLAN使用CSMA/CA协议
CSMA/CA: Carrier Sense Multiple Access / Collision Avoidance

  • 由于无线网络的特性,难以像有线网络那样检测冲突,因此着眼于避
    免冲突
  • 比CSMA/CD复杂得多

802.11的MAC层提供两种服务

  • 分布协调功能 DCF:各站按照CSMA/CA协议竞争使用信道
  • 点协调功能 PCF:集中控制方法,由AP逐个轮询各站发送数据,避免了碰撞的产生

帧间间隔(InterFrame Space)

目的:让高优先级帧抢先发送

所有站完成发送后,需要等待一段时间,任何站才可以发送帧,要发送的帧类型不同,等待的时间间隔也不同

  • SIFS: Short IFS,短帧间间隔,用于CTS、ACK等帧
  • DIFS: DCF IFS,DCF帧间间隔,用于DCF模式下数据帧
  • AIFS1/AIFS4: Arbitration IFS,不同优先级的帧
  • EIFS: Extended IFS,收到坏帧时报告问题

高优先级帧的等待时间较短,可以抢先发送;低优先级帧的等待时间较长,等待完毕后如信道忙,则重新等待

两种常用的帧间间隔:

  • SIFS:短 (Short) 帧间间隔,长度28μs,用于ACK、CTS等控制帧
  • DIFS:分布协调功能帧间间隔,长度128 μs,用于DCF方式下发送数据帧和管理帧

802.11的载波监听机制
① 物理载波监听:简单地检查信道看是否存在有效的信号
② 虚拟载波监听:802.11特有的机制——减少移动站的能耗,有利于电池供电设备

  • 发送站将它要占用信道的时间放在发送帧中,其他站在收到该信息后,将不在这一段时间内发送数据 → 冲突概率大大减少
  • 该时间放置在MAC帧 “持续时间(Duration)”字段
  • 本帧结束后还要占用信道多少时间(单位: μs),包括确认帧所需时间
  • “虚拟载波监听”的意思是:其他站并没有监听信道,而是在收到发送站的通知后才不发送数据

发送前退避机制

  • 站点要发送数据帧,不仅要等待DIFS帧间间隔,还进入争用窗口,退避一段时间后再次检测信道,信道空闲才发送
  • 目的:避免多个站点同时检测到信道空闲后发送导致碰撞
  • 仅当站点检测到信道空闲且发送第一个数据帧时,才不退避

在这里插入图片描述

IEEE802.11的帧结构

802.11的帧分为三种类型:数据帧、控制帧、管理帧

管理帧格式与数据帧相同,数据内容依管理帧类型而不同;控制帧较短,只有一个地址,没有数据

  • 帧控制(Frame control):包含11个子字段

    • Version: 协议版本

    • Type和Subtype: 帧类型(数据、控制、管理)和子类型(如RTS、CTS等)

    • To DS和From DS: 该帧是发送到或是来自于AP连接的网络

    • More Fragment: 分片传输用

    • Retry: 是否是重传帧

    • Power management: 指明发送方进入节能模式

    • More data: 发送方还有更多的帧需要发送

    • Protected frame: 该帧数据部分是否被加密

    • Order: 告诉接收方高层是否按顺序处理帧序列

  • 持续时间(Duration)

    • 本帧及ACK帧将占用信道时间(单位:微秒)

    • 其它站根据该字段调整NAV,进行虚拟载波监听

  • 地址(Address):

    • 连续3个字段,802标准地址(即MAC地址)

    • 网内两个站之间通信需通过AP,涉及三个地址

  • 帧序号(Sequence):2字节,用于重复帧的检测

  • 数据(Data):帧的有效载荷
    帧中数据最多2312字节,一般小于1500字节

  • 帧校验(Frame check sequence):32位CRC校验

IEEE802.11的安全性


总结and复习

在这里插入图片描述

网络体系结构多层次?

各个层次相互独立,灵活性高,结构易分割。同时有利于实现和维护,促进了标准化工作。

osi七层体系结构和tcp/ip体系结构对应

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

应用层、传输层、网际层、网络接口层
在这里插入图片描述

数据链路层=逻辑链路控制层+介质访问控制

主机IP封装成帧,将帧发送给谁

同网段:直接发送

不同网段:发送给网关

为什么要地址聚合?

用一个地址块表示多个地址,减少路由器的路由表项,同时减少了路由交换的信息量,提高了路由查找的效率。

链路状态路由和距离向量路由/ospf和rip的比较

链路状态路由是在链路状态发生改变时,路由器向所有节点发送邻居路由器的链路状态信息。

距离向量路由是每隔30s,路由器向直接相连的节点发送到所有节点的最短花费和路径信息。

TCP拥塞窗口的相关计算

当慢开始下一次的拥塞窗口大小大于ssthresh时,只增长到ssthresh。

如果有超时,至少会有有一条重传的报文,所有轮次的数量相加要减掉这个部分。

TCP发送窗口的确定

  • 发送窗口的大小取决于接收端的接收窗口大小和发送端的网络拥塞程度
  • 发送窗口的上限=min{cwnd, rwnd}
  • 每当接收到一个接收端发送的报文时,根据TCP报文头部的接收窗口值重新计算,以决定是否需要更新发送窗口大小
  • 每经过一个传输轮次,根据cwnd的大小重新计算以决定是否需要更新

如何看出主机进行了地址翻译nat

看ip地址是否是专用地址。

RFC1918中定义了一系列专用地址(private address)
① 10.0.0.0 ~ 10.255.255.255 (CIDR记法: 10/8)
② 172.16.0.0 ~ 172.31.255.255 (CIDR记法: 172.16/12)
③ 192.168.0.0 ~ 192.168.255.255 (CIDR记法: 192.168/16)

如何看出传输层报文类型/传输层起始位置

类型字段:
0x06(6):tcp
0x11(17):udp

ICMP (1)、IGMP (2)

IHL:4bit,IP包头长度,最小5,最大15,单位为word(32bit)。因此 IP包头最长60 字节

在这里插入图片描述

交换机转发表内容

如果交换机没有该ip对应的信息,会广播。

多路复用

最常见:时分多路复用、频分多路复用

波分复用(频分)、码元复用

传输介质

双绞线:广泛用于以太网(10Base-T)

光纤:单模光纤/多模光纤 FTTH

基于电话线的xDSL(双绞线)

基于有线电视线的HFC,主干线路采用光纤

TCP/IP向应用层的接口:套接字 socket=ip+端口

应用层

FTP(File Transfer Protocol):传输层TCP,端口号21,2个TCP连接:控制连接和数据连接

DNS(Domain Name System):UDP,域名服务端口号:53

WWW—World Wide Web

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

HTTP—HyperText Transfer Protocol:端口号是80,服务器通常在该端口上监听
请求文档所需时间=文档传输时间+2倍RTT时间

HTML—HyperText Markup Language

Simple Mail Transfer Protocol

IP地址和物理地址的区别和使用原因

IP地址是网络层及以上各层使用的地址,是一个逻辑地址,用于统一地址格式和寻址

物理地址是物理层和数据链路层使用的地址,是硬件地址

全球不同的网络使用不同的物理地址,要使异构网络进行通信,必须进行硬件地址转换工作,IP地址解决了这一问题。

TCP协议为什么一定要建立连接

因为需要保证双方都能确知对方的存在,允许双方协商参数并对运输实体资源进行分配。

ppp协议

可以支持不同的网络层协议,支持同步和异步链路,在建立lcp链路后进行身份鉴别

ICMP

ping的原理:echo request/reply,tracert原理:ttl

• 差错报告报文
– Destination unreachable:终点不可达,路由器或主机无法传输报文时向源主机发送此报文
– Time exceeded:超时,当报文的TTL字段为0时,路由器丢弃报文,并向源主机发送此报文
– Parameter problem:参数问题,路由器或主机收到的报文中头部有非法字段时,丢弃数据包,并向源主机发送此报文
– Source quench:源点抑制,路由器或主机由于拥塞丢弃报文时,向源主机发送此报文,使其放慢发送速度
– Redirect:重定向,路由器向主机发送此报文告知路由改变,主机下次发送数据报给另外的路由器
• 询问报文
– Echo request / reply:回声探测,用于测试网络连通性
– Timestamp request / reply:请求时间,可用于时间同步

传输层的可靠传输

差错检测:利用差错编码实现数据包传输过程的比特差错检测

确认:接收方向发送方反馈接受状态,确认是否正确接收数据

重传:发送方重新发送没有正确接收的数据

序号:发送方对数据包编号,确保数据按序提交给接收方

计时器:发送方引入解决数据丢失问题

ospf使用IP协议进行传输,rip使用udp传输(520端口)bgp使用TCP传输

接收窗口最大尺寸

序号位数n位

有序: 2 n − 1 2^n-1 2n1 ,接受窗口+发送窗口 >= 2 n 2^n 2n,发送窗口最少为1

无序: 2 n − 1 2^{n-1} 2n1,接受窗口+发送窗口 >= 2 n 2^n 2n,接收窗口大于等于发送窗口

帧中的mac如何得到

查询本机的ARP缓存有无相应ip,如果有取出其mac地址;本机没有就发送广播arp报文,当对方收到请求后发送应答报文告知自己的mac地址

时分复用

在这里插入图片描述

局域网标准

IEEE802.3以太网标准

IEEE802.11无线网标准

外部网关

BGP-4

协议数据单元

物理层:比特

数据链路层:帧

网络层:IP数据报

传输层:报文段、用户数据报

应用层:数据

以太网交换机如果在转发表未找到目的mac地址

将以太网帧转发到除本端口以外的所有端口

CSMA/CD

检测冲突:载波监控/碰撞检测/碰撞强化/碰撞退避

在这里插入图片描述

计算机网络

可以没有数据库,但计算机网络=硬件+软件(最基本:操作系统)+协议。一定有客户机和服务器

数据传送时,不参与数据封装工作的是?

物理层不参与,传输层、网络层、数据链路层都要参与

电路交换

电路交换不是物理线路交换

虚电路

虚电路的连接是临时的,但会话结束不一定会释放连接。

到达顺序与发出顺序相同

数据报

不保证分组有序到达

数据链路层差错检测

数据链路层不仅可以提供差错检测,还可以提供一些差错纠正功能,例如使用一些差错纠正编码,如海明码等

CRC 校验

通信双方在使用 CRC 校验时需要商定使用的多项式编码。

一些特殊的多项式因为其良好的性质而成为国际标准,用于数据通信中的 CRC 校验。

CRC 校验通常可以使用硬件来完成

最短帧

发送一帧的时间大于等于信号沿信道来回一趟的时间

以太网

以太网地址就是通常所说的 MAC 地址
以太网参考模型一般只包括物理层和数据链路层
以太网地址通常存储在网卡中

UDP

伪首部不发送

无法保证传输的可靠性,基于网络层ip,无法再网络层和数据链路层提供可靠传输。只能通过应用层协议实现。

HTTP

http、pop3、IMAP都可以从邮件服务器接收邮件

IP分组

重组只能在目标主机上晚上,分片可以在主机和路由器进行

IP路由器

检测到拥塞合理丢弃ip分组

生成路由表

转发报文

差错校验

总时延

发送时延、传播时延、处理时延、排队时延

路由器分组转发部分

一组输出端口、一组输入端口、交换结构

csma/cd与传统时分复用的优缺点

CSMA/CD在网络负荷轻时效率高,碰撞概率小;但网络负荷大时会引起碰撞,重传次数增加,降低效率。

时分复用在负荷轻时效率低,负荷大时效率高

ppp协议为什么不使用帧的编号和确认机制来实现可靠传输

数据链路层出错可能不大,同时数据链路层的可靠传输不能保证网络层的可靠传输,使用了crc检验可以保证无差错传输

网络层尽最大努力交付

  • 不保证源主机发送的数据报移动无差错交付目的主机
  • 不保证源主机发送的数据报都在规定时间内交付目的主机
  • 不保证源主机发送的数据报按照顺序交付给目的主机
  • 不保证源主机发送的数据报不重复交付到目的主机
  • 不故意丢弃数据报(除非检验和有错误、路由器目的主机缓存无空闲空间)

UDP和IP

同:UDP和IP都是不可靠无连接的协议。其首部均有校验和,校验和出差错时会被丢弃

不同:但UDP会检验首部和数据部分,同时增加了伪首部。
IP仅检验数据报首部

ARP和DNS

同:主机发出请求,服务器回应

不同:ARP是网络层(数据链路层),采用广播的方式将ip地址解析为mac地址
DNS是应用层协议,请求域名服务器将某个域名解析为ip地址。

TCP和虚电路

TCP是传输层的逻辑连接,连接信息保存和维护在端系统

虚电路是网络层的逻辑链接,状态信息保存和维护在沿途所有路由器中

从主机 A 把 1000 个分组传送到主机 B 需要多少时间?

由于是连续发送分组,后续分组的传输可以在前一个分组到达下一个节点时开始。

第一个分组的总时间 Ttotal=0.015Ttotal=0.015 秒

接下来每个分组的传输时间 Tpacket=0.005Tpacket=0.005 秒

1000 个分组的总时间:

Ttotal_1000=Ttotal+(999×Tpacket)=0.015+999×0.005=0.015+4.995=5.01Ttotal_1000=Ttotal+(999×Tpacket)=0.015+999×0.005=0.015+4.995=5.01 秒

所以,从主机 A 把 1000 个分组传送到主机 B 需要 5.01 秒。

报文交换和分组交换

优点:简单,易于实现。不需要维护分组顺序和重组信息。

缺点:整个报文必须完整接收后才能进行转发,导致总传输时间较长。如果出现错误,需要重传整个报文,导致效率低下。

划分多个分组传送的优缺点:

优点:可以并行处理多个分组,减少端到端的总传输时间。分组出现错误时,只需要重传出错的分组,提高了传输效率。适应性强,能更好地处理网络中的拥塞和错误。

缺点:需要额外的开销来维护分组的顺序和重组信息。实现复杂度较高。可能增加网络中的控制信息量。

点击url到显示文档总时间

假定要解析到所要找的 URL 的 IP 地址共经过 m 个 DNS 服务器,所要经历的时间分别为 RTT1,RTT2,…,RTTm。假定从要找的网页上只需要读取一张很小的文档(可忽略文档的传输时间)。从本地主机到这个网页的往返时间为 RTTw。

T = RTT1+RTT2+…+RTTm+2*RTTw

三次握手是1.5个RTT,第三次可以携带请求文档,然后0.5RTT返回数据

确认报文段(ACK)丢失,并不一定会引起与该确认报文段对应的数据的重传

TCP使用累计确认机制,这意味着一个确认报文段确认了所有在此之前已收到的所有数据。例如,如果接收方收到数据段1到数据段5,并且发送了一个确认报文段确认接收到数据段5(即确认号为6),即使该确认报文段丢失,只要接收方继续接收后续的数据并发送新的确认报文段(例如确认号为7的确认报文段),发送方就会知道接收方已经收到了数据段1到数据段5。

(还未重传就收到了更高序号的确认)

访问网站,从应用层到网络层都用到了哪些协议

应用层:HTTP/HTTPS(SSL:进行加密传输,端口443),用于Web内容的请求和传输。DNS,将域名解析为IP地址。
传输层:TCP,提供可靠的连接和数据传输。
网络层:IP,负责数据包的路由和传输。ARP,将IP地址解析为MAC地址

TCP三次握手简化为两次

可能会出现失效的连接请求在服务器占用资源

达到最高信道利用率

发送窗口宽度=时延带宽积

路由器直连的下一跳为直接交付

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值