获取中...

-

Just a minute...

《计算机网络自顶向下方法》第四章读书笔记

网络层概述

1.每台路由器的数据平面 的主要作用是从其输入链路向其输出链路转发数据报。

2.控制平面的主要作用是协调这些本地的每路由器转发动作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送。

3.路由器(不运行应用层网络层协议)的主要作用是将数据从入链路转发到出链路。

4.A,B两主机通信: A中网络层取得于A运输层的报文段,每个报文段封装成数据报,向相邻路由器发送。

转发和路由选择(数据平面和控制平面)

网络层作用: 将分组从一台发送主机发送到另一台接受主机。IP协议:编址规则,数据报格式,分组处理规则。

需要两种功能:转发和路由选择

  • 转发: 分组从(路由器)输入链路接口转移到适当输出链路接口的路由器本地动作

  • 路由选择: 分组从发送方发往接收方时,网络层须决定分组采用的路由或路径

转发是路由器本地动作,路由选择是网络范围过程。 比如开车从北京到上海,转发相当于在某个路口选择某一条岔路,路由选择相当于规划从北京到上海所有线路的过程

路由选择算法: 计算采用的路径的算法,决定了插入路由器的转发表中的值

每台路由都有一张 转发表。路由器检查分组首部字段值(可能是目的地址或所属连接,看网络层协议)来转发分组,使用该值在转发表索引查询。该值指出了该分组将被转发的路由器输出链路接口

控制平面:传统的方法

路由选择算法决定了插入路由器转发表中的值(两种算法)

  • 集中式
  • 分布式

控制平面:SDN方法

远程控制器计算和分发转发表以供每台路由器使用

控制平面路由 选择功能物理路由器 是分开的,选择设备执行转发,远程控制器计算并分发转发表 ,这种控制平面方法是 软件定义网络(Soft-ware-Defined Networking,SDN) 的本质

网络服务模型

网络服务模型: 定义了分组在发送与接收端系统之间的端到端运输特性

网络层提供的服务(IP没有的服务):

运输层向网络层传递分组时:

①确保交付: 确保分组最终达到目的地

②具有时延上界的确保交付: 确保分组交付和主机到主机时延上界内交付
为给定源和目的地之间的分组流提供服务时

③有序分组交付

④确保最小带宽: 模仿发送方和接收方之间一条特定比特率传输链路的行为。发送速率低于该速率,分组不会丢失,且会在预定时延内到达

⑤ 安全性: 使用仅由源和目的地主机知晓的密钥,加密数据报,源加密,目的主机解密。此外还有数据完整性和源鉴别服务

因特网的网络层IP协议提供单一服务,尽力而为服务,无带宽保证,无丢包保证,无顺序保证,不定时,无拥塞指示

分组交换机 是指一台通用分组交换设备,它根据分组首部字段中的值,从输入链路接口到输出链路接口转移分组。某些分组交换机称为 链路层交换机 ,基于链路层帧中的字段值做出转发决定,这些交换机因此被称为链路层设备。其他分组交换机称为 路由器 ,基于网络层数据报中的首部字段值做出转发决定。路由器因此是网络层设备

路由器是网络层设备

路由器工作原理

路由器有4个主要组件:

①输入端口: 路由器中执行终结入物理链路的物理层功能。与位于入链路远端的数据链路层交互来执行数据链路层功能。执行查找功能。通过查询转发表决定路由器的输出端口,到达的分组通过路由器的交换结构转发到输出端口。控制分组从输入端口转发到路由选择处理器。

②交换结构: 交换结构将路由器的输入端口连接到它的输出端口。这种交换结构完全包含在路由器之中

③输出端口: 输出端口存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组。

④路由选择处理器: 路由选择处理器执行控制平面功能。它执行路由选择协议,维护路由选择表与关联链路状态信息,并为该路由器计算转发表。在软件定义网络(Software-Defined Networking, SDN)路由器中,路由选择处理器负责与远程控制器通信,目的是接收由远程控制器计算的转发表项,并在该路由器的输入端口安装这些表项。

输入端口处理和基于目的地的转发

路由器用分组目的地址的前缀与转发表中的表项进行匹配。如果存在一个匹配项,则路由器向与该匹配项相关联的链路转发该分组。当有多个匹配时,该路由器使用 最长前缀匹配规则 ,即在表中寻找最长的匹配项,并向与最长前缀匹配相关项的链路接口转发分组。

输入端口

①线路端接

②数据链路处理(协议、拆封)

③查找

  • 查找必须在纳秒级别执行,不仅要用硬件执行查找,而且要对大型转发表使用快速查找算法,而且需要更快的内存访问速度(DRAM、SRAM)。

  • 三态内容可寻址存储器TCAM常被用于查找。使用TCAM,一个32bit的IP地址放入内存,TCAM在基本常数时间内返回转发表项内容

④转发

  • 转发表由路由选择处理器计算和更新,从路由选择处理器经过独立总线复制到(输入)线路卡

  • 有了转发表副本,转发决策能在每个输入端口本地做出,无须调动路由选择处理器,避免集中式处理

⑤排队

  • 查找确定了某分组输出端口,分组就能发送进入交换结构。一个被阻塞的分组必须在输入端口处排队

查找采取的动作

①物理层和链路层的处理

②检查分组的版本号,检验以及寿命字段,并重写后两个字段

③更新用于网络管理的计数器

交换

交换结构位于路由器的核心部位。

交换的三种方式

①经内存交换

  • 一个分组到达输入端口时,该端口会先通过中断方式向路由选择处理器发出信号
  • 分组从输入端口复制到处理器内存中(现代路由器查找交换进内存,是由输入线路卡处理的)
  • 早期路由选择处理器从首部提取目的地址,在转发表查找输出端口,将分组复制到输出端口

②经总线交换

  • 输入端口经一根共享总线将分组直接传送到输出端口,无需路由选择处理器的干预
  • 路由器的交换带宽受总线速率限制

③经互联网络交换

  • 纵横式交换机,2N条总线组成网络,连接N各输入端口和N个输出端口
    每条垂直的总线与每条水平的总线交叉,交叉点通过交换结构控制器开启闭合
  • 某分组到达端口A,需要转发到Y,交换机控制器闭合总线A和Y的交叉点,A在其总线上发送分组,仅由Y接收;同时B也能发分组到X,因为没有公用总线。纵横式网络能并行转发多个分组

输出端口处理

①排队(缓存管理)

②数据链路处理(协议、拆封)

③线路端接

排队

输入、输出端口都能形成分组队列,取决于流量负载、交换结构
随着队列增长,路由器缓存空间会耗尽,出现丢包

需要路由器缓存吸收流量负载波动,需要多少缓存?

  • 少量TCP流:RTT * C(链路容量)
  • 大量TCP流:RTT* C/ (N^1/2)

输出端口排队,需要分组调度程序选出一个分组发送。提供服务质量保证

主动队列管理:

  • 缓存填满前丢弃(或首部加个标记)一个分组,向发送方提供一个拥塞信号
  • 随机早期检测算法:平均队列长度在某个范围内时,以某种概率被丢弃/标记

分组调度

先进先出(First-In-First-Out, FIFO):
链路调度规则按照到达输出链路队列的相同次序来选择分组在链路上传输。

优先权排队: 到达输出链路的分组被分类放入输出队列中的优先权类。在非抢占式优先权排队规则下,一旦分组开始传输,就不能打断。

循环排队: 分组像使用优先权排队那样被分类。然而,在类之间不存在严格的服务优先权,循环调度器在这些类之间轮流提供服务。保持工作排队规则在有分组排队等待传输时,不允许链路保持空闲。加权公平排队(Weighted Fair Queuing, WFQ)规则下,每个类在任何时间间隔内可能受到不同数量的服务。具体而言,每个类i被分配一个权wi。使用WFQ方式,在类i有分组要发送的任何时间间隔中,第i类将确保接受到的服务部分等于wi/(∑wj),分母中的和是计算所有分组排队等待传输的类别得到的。对于一条传输速率为R的链路,第i类总能获得至少为R ∙ wi/(∑wj)的吞吐量。

网络协议

网络层三个组件 :

  • IP协议
  • 路由选择协议
  • 控制报文协议(ICMP) :报告数据报中的差错、对某些网络层信息请求进行响应的设施

IPv4数据报格式

网络层分组被称为数据报

版本号(IPv4、IPv6): 不同版本对数据报不同解释,4比特规定了数据报的IP协议版本

首部长度: 数据报可包含可变数量的选项。不过大部分没有,首部固定20字节

服务类型: 区分不同类型的IP数据报

数据报长度: 首部+数据的长度。该字段16bit,然而一般数据报很少超过1500字节

标识、标志、片偏移: IP分片相关。不过IPv6不允许在路由器上对分组分片

寿命TTL: 确保数据报不会永远在网络中循环。每被一个路由器处理时,值-1。若值减到0,丢弃数据报

协议号: 到达最终目的地才有用,指示了IP数据报的数据部分应该交给哪个运输层协议。如6交给TCP,如17交给UDP

协议号是将网络层与运输层绑定到一起的粘合剂;端口号是将运输层和应用层绑定的粘合剂

首部检验和: 帮忙路由器检测收到IP数据报中首部的比特错误,有错一般丢弃

源和目的IP地址: 源主机通过DNS查找目的地址

选项:IPv6已抛弃选项字段

数据(有效载荷): 包含运输层报文段(TCP或UDP),或ICMP报文段

  • 一个IP数据报有长为20的首部,如果数据报承载一个TCP报文段,则每个无分片数据报承载总长40的首部(还有TCP的20)以及应用层报文

IPv4数据报分片

  • 并不是所有链路层协议都能承载相同长度的网络层分组,如以太网帧能承载不超过1500字节的数据,某些广域网链路帧不超过576字节
  • 一个链路层帧承载的最大数据量:最大传送单元MTU
  • 限制了IP数据报的长度,且发送方与目的路径上的每段链路可能使用不同的链路层协议,有不同的MTU
  • 将IP数据报中的数据分片成多个较小的IP数据报,用单独的链路层帧封装这些小IP数据报,每个小数据报叫片
  • 数据报的重新组装放在端系统中,而不是路由器中
  • 标识、标志、片偏移字段,帮助主机执行重组任务
  • 一个4000字节的数据报(20+3980)到达一台路由器,转发到一条MTU为1500子节的链路上。必须分配3个独立的片,假设初始数据报的标识号是777,则前两片字节都为20+1480,第三层为20+1020

安全性

  • 分片被用于Dos攻击,如Jolt2,攻击者向目标主机发送小片的流,没有一个片的偏移量是0,目标试图重组时可能会崩溃
  • 发送交迭偏移量的IP片,不能被适当排列,可能会崩溃
  • IPv6废除了分片,简化了IP分组的处理

IPv4编址

主机与路由器连入网络的方法

①一台主机通常只有一条链路连接到网络,主机IP发送数据报从该链路发送

②主机与物理链路的边界叫接口,一台路由器有多个接口

③IP要求每台主机和路由器都有自己的IP地址,因此一个IP地址实际上是与每一个接口相关联的

每个IP地址长度32bit(4字节),总共2^32个可能的IP地址,约40亿个,用点分十进制记法 ,如193.32.216.9

一个接口的IP地址的一部分需要由其连接的子网决定

  • 如互联3个主机接口与1个路由器接口的网络形成一个子网,IP编址为这个子网分配一个地址:223.1.1.0/24,/24记法称为子网掩码,指示了32bit中的最左侧24bit定义了子网地址
  • 为了确定子网,分开主机和路由器的每个接口,产生几个隔离的网络岛,使用接口端接这些隔离的网络的端点,这些隔离的网络中每一个都叫做一个子网

因特网地址分配策略: 无类别域间路由选择CDIR

a.b.c.d/x的地址的x最高比特构成IP地址的网络部分,称为该地址的前缀,一个组织通常被分配一块连续的地址,即具有相同前缀的一段地址。BGP路由选择协议中,该组织网络外的路由器仅考虑x,减少了转发表的长度,因为形式为a.b.c.d/x单一表项足以将数据报转发到该组织内的任何目的地

地址聚合(路由聚合): 使用单个网络前缀通告多个网络的能力
一个ISP将8个组织连接到因特网。该ISP向外界通告:向我发送以200.23.16.0/20开始的任何内容。外部无需知道在该地址块内还有8个其他组织,每个组织有自己的子网

一个地址的剩余32-x比特可认为是用于区分该组织内部设备的。组织内部路由器转发分组时,才会考虑这些比特

在CDIR出现之前,采用分类编址,A、B、C类网络,分别具有8、16、24比特子网地址

C类(/24) 仅能容纳2^8-2=254台主机(其中两个用于特殊用途)。 C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。192.168.X.X是私有地址。

(192.168.0.0-192.168.255.255)

⑵ C类地址范围:192.0.0.0—223.255.255.255。

B类(/16) 支持65534台主机,一个组织分配一个B类地址却只用2000个接口,造成巨大浪费。B类地址范围:128.0.0.0—191.255.255.255

A类: A类地址第1字节为网络地址,其它3个字节为主机地址。,A类地址范围:1.0.0.0—127.255.255.255。A类地址中的私有地址和保留地址:

① 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。范围(10.0.0.0.0-10.255.255.255)

② 127.X.X.X是保留地址,用做循环测试用的

IP广播地址

当一台主机发出目的地址为255.255.255.255的数据报时,报文会交付给同一个网络的所有主机,可用于DHCP发现报文的发送,广播最小生成树

获取一块地址

  • 子网获取IP地址:由ISP从它大块地址中分配
  • ISP获取IP地址:IP地址由因特网名字和编号分配机构ICANN管理(也管理DNS根服务器、AS标识号)。ICANN向区域性因特网注册机构分配地址,处理本地域内的地址分配/管理

获取主机地址

  • 组织获得一块地址,就可为组织内的主机、路由器接口逐个分配IP地址
  • 主机地址能手动配置,也能自动配置,即动态主机配置协议DHCP

动态主机配置协议DHCP

  • DHCP允许主机自动获取一个IP地址

  • DHCP可配置,可以使主机每次连网获得相同IP地址,也可每次分配一个临时IP地址(比如ISP给你家分配了一个IP地址,你想多台主机同时连网时,需要配置路由器。一般电信这种会给你家分配临时IP地址,这样节省IP地址。也有的每次连接都是固定地址比如公寓的ISP,这时需要手动在路由器设置里输入,可以ipconfig查看)

  • DHCP还允许主机查看子网掩码、默认网关(第一跳路由器地址)、本地DNS服务器地址

  • DHCP能将主机连接进一个网络的自动能力,常被称为即插即用协议

  • DHCP是一个客户-服务器协议。新来的主机要获得自使用的IP地址等网络配置信息

1.每个子网都有一台DHCP服务器

2.若子网没有DHCP服务器,则由一个路由器做DHCP中继代理,该代理知道该网络的DHCP服务器地址

DHCP协议的四个步骤

DHCP服务器发现

新到的客户通过广播DHCP发现报文,发现一个要与其交互的DHCP服务器
客户在UDP分组中向端口67发送该发现报文,此时必须用广播地址255.255.255.255,源地址是0.0.0.0

DHCP服务器提供

DHCP收到DHCP发现报文后,响应一个DHCP提供报文,仍然使用广播地址,因为此时新客户并没有IP地址

可能有多台DHCP服务器,每台服务器提供的报文中,有向客户主机推荐的IP地址、网络掩码以及IP地址租用期(一般几天或几小时)

DHCP请求

客户从提供中选一个,向选中的服务器提供一个DHCP请求报文进行响应,回显配置参数

DHCP ACK

收到DHCP请求报文后,用DHCP ACK报文对其记性响应,证实所传参数
客户收到ACK后,交互完成,在租期内使用DHCP分配的IP地址。DHCP提供了机制允许客户更新对一个IP地址的租用

网络地址转换

当ISP已经为SOHO网络当前地址范围分配过一块连续地址,而SOHO内主机越来也多时,需要用到NAT(比如电信给你家分配一个动态IP地址,家里要好几台手机电脑联网用一个IP地址,需要用NAT)

当ISP已经为SOHO网络当前地址范围分配过一块连续地址,而SOHO内主机越来也多时,需要用到NAT(比如电信给你家分配一个动态IP地址,家里要好几台手机电脑联网用一个IP地址,需要用NAT)

UPnP

  • NAT穿越由通用即插即用(UPnP)提供
  • UPnP是一种允许主机发现并配置邻接NAT的协议,要求主机和NAT都是UPnP兼容
  • 使用UPnP,在主机上运行的应用程序能为某些请求的公共端口号请求一个NAT映射(专用IP地址,专用端口号 — 公共IP地址,公共端口号)。如果某NAT接收请求并生成映射,来自外部的结点能发起到(公共IP地址,公共端口号)的TCP连接

IPv6

IPv4地址耗尽,IPv6也可强化IPv4某些方面

IPv6数据报格式

①扩大的地址容量

32bit —> 128bit

r除了单播多播地址,引入任播地址,使数据报交付给一组主机中的任意一个

②简化高效的40字节首部

③流标签与优先级

如音频流、视频流、高优先级用户承载的流量

IPv6定义的字段:

①版本

②流量类型

③流标签

④有效载荷长度

⑤下一个首部

⑥跳限制

⑦源地址和目的地址

⑧数据

IPv6中不存在的IPv4数据报字段

①分片/重新组装:只能在源与目的地进行

②首部检验和

③选项:放到了下一个首部位置,使得IP首部定长40字节

IPv4到IPv6的迁移

4到v6的迁移,两种双栈(dual-stack)方法。

1.接受结点和发送节点如果都是IPv6,则使用v6,否则使用IPv4。

2.将IPv4路由器集合作为隧道(tunneling),将IPv6数据报放入IPv4的数
据字段

通用转发和SDN

将基于目的地转发的特征总结为两个步骤:查找目的IP地址(“匹配”),然后将分组发送到有特定输出端口的交换结构(“动作”)。现有一种更有意义的通用“匹配加动作”范式,其中能够对协议栈的多个首部字段进行“匹配”,这些首部字段是与不同层次的不同协议相关联的。

匹配

匹配加动作转发表在OpenFlow中成为流表,它的每个表项包括:

1.首部字段值的集合。入分组将与之匹配。匹配不上流表项的分组将被丢弃或发送到远程控制器做更多处理。

2.计数器集合。这些计数器可以包括已经与该表项匹配的分组数量,以及自从该表项匹配的分组数量,以及自从该表项上次更新以来的时间。

当分组匹配流表项时所采取的动作集合。这些动作可能将分组转发到给定的3.输出端口,丢弃该分组、复制该分组和将它们发送到多个输出端口,和/或重写所选的首部字段。

动作

1.转发

2.丢弃。没有动作的流表项表明某个匹配的分组应当丢弃

3.修改字段

相关文章
评论
分享
  • 计算机网络中的安全

    《计算机网络自顶向下方法》第八章读书笔记 什么是网络安全安全通信具有下列所需要的特性: 机密性。仅有发送方和希望的接收方能够理解传输报文的内容。因为窃听者可以截获报文,这必须要求报文在一定程度上进行加密,是截取的报文无法被截获者所...

    计算机网络中的安全
  • 无线网络和移动网络

    《计算机网络自顶向下方法》第七章读书笔记 概述 基站 是无线网络基础设施的一个关键部分。基站在有线网络中没有明确的对应设备,它负责向与之关联的无线主机发送数据和从主机那里接收数据。基站通常负责协调与之相关联的多个无线主机的传输。当...

    无线网络和移动网络
  • 链路层和局域网

    《计算机网络自顶向下方法》第六章读书笔记 链路层信道分为两种: 广播信道:局域网,无限LAN,卫星和混合光纤 点对点的通信链路 链路层的概念运行链路层协议的任何设备称为节点。把沿着通信路径连接相邻节点的通信信道称为链路 链路层采取...

    链路层和局域网
Please check the parameter of comment in config.yml of hexo-theme-Annie!