网络层, since 2020-08-27

(2020.08.27 Thur)

  • 网络中每一台主机和路由器都有一个网络层部分。

  • 网络层的作用: 将分组从一台发送主机移动到一台接收主机。有两种重要的路由功能,转发和路由选择。

  • 网络层可分解为两部分: 数据平面控制平面

    • 数据平面: 即网络中每台路由器的功能,该平面功能决定到达路由器输入链路之一的数据报(即网络层的分组)如何转发到该路由器的输出路由之一。包括传统的IP转发(基于数据报的目的地址)和通用转发(可使用数据报首部中的不同域的值执行转发和其他功能)。转发(forwarding)是数据平面实现的唯一功能。转发的发生尺度比较短,通常是纳秒级别。
    • 控制平面: 网络范围的逻辑,该平面控制数据报沿着源主机到目的主机的端到端路径中路由器之间的路由方式。路由选择(routing)发生的时间尺度是秒级。
  • 转发表(forwarding table): 每台网络路由器都有转发表。router检察到达分组首部的一个或多个字段值,进而使用这些首部值在其转发表中索引,通过这种方法来转发分组。这些值对应存储在转发表中的值,指出了该分组将被转发的路由器的输出链路接口。

  • 网络服务模型(network service model): 定义了分组在发送与接收端系统之间的端到端运输特性。模型包括:确保交付;具有时延上界的确保交付;有序分组交付;确保最小带宽;安全性。网络层提供的单一服务称为尽力而为服务(best-effort service),传送的分组既不能保证以他们发送的顺序被接收,也不能保证他们最终交付,既不能保证端到端时延,也不能保证有最小的带宽。
    (2020.08.29 Sat)

  • 分组交换机(switch):一台通用分组交换设备,它根据分组首部字段中的值,从输入链路接口到输出链路接口转移分组。有的交换机称为链路层交换机(link-layer switch),基于链路层帧中的字段值做出转发决定。其他的交换机称为路由器(router),基于网络层数据报的首部字段值做出转发决定。

路由器工作原理

  • 输入组件: 输入端口(input port),交换结构,输出端口,路由选择处理器。前三个组件几乎总是用硬件实现。端口指的是路由器的物理输入和输出接口,不同于应用程序和套接字相关的软件接口。输出端口存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组。
  • 基于目的地转发和通用转发: 前者直接发到目的地,后者层层过滤ip信息,转给不同的路由。可类比环形交叉路口和高速公路的例子。

输入端口

最简单情况:路由器的若干链路接口每个对应了特定的IP地址范围,每个范围对应了相同的目的地址的前缀,使用前缀与转发表中的表项进行匹配,若存在匹配项,则由匹配的链路接口转发分组。当一个IP地址有多个匹配时,使用最长前缀匹配规则(longest prefix matching rule),即在该表中寻找最长的匹配项,并向与最长前缀匹配相关联的链路接口转发分组。

交换

交换方式:经内存交换,经总线交换,经互联网络交换。

排队

输入和输出端口都可能形成分组队列,随着这些队列的增长,路由器的缓存空间最终将会耗尽,当无内存可用于存储到达的分组时会出现丢包(packet loss)

  • 输入排队
    FCFS (First Come First Serve).

  • 输出排队
    出现排队时的策略:弃尾(drop-tail),即新到达的分组;或者删除一个或多个已经排队的分组为新来的分组提供空间。在某些情况下,在缓存填满之前便丢弃一个分组,或在首部加上标记,的做法也是有利的,这可以向发送方提供一个拥塞信号。这些策略都被称为主动队列管理 (Active Queue Management, AQM) 算法。

    • 缓存的设置
      经验方法:缓存数量 (B) 等于平均往返时延 (RTT,比如250ms)乘以链路的容量 (C)。比如一条具有250ms RTT的10Gbps连续需要的缓存量等于 。而最近的理论和试验研究表明,当有大量的TCP流 (N条) 流经一条链路时,数量是。
  • 分组调度 (packet scheduler)
    确定次序,即排队的分组如何经输出链路传输。
    (2020.08.31 Mon)

    • 先进先出First in First out, FIFO
    • 优先排队 (priority queuing)。非抢占式优先权排队(non-preemptive priority queuing),一旦一个分组开始传输,就不能打断。
    • 循环和加权公平排队 (round robin queuing discipline)。循环排队,分组像使用优先权排队那样被分类,在类之间不存在严格的服务优先权,循环调度器在这些类之间轮流提供服务。保持工作排队(work-conserving queuing)规则在有(任何类的)分组排队等待传输时,不允许链路保持空闲,当寻找给丁磊的分组但是没有找到时,保持工作的循环规则将立即检察循环序列中的下一个类。加权公平排队(weighted fair queuing, WFQ)。

网际协议:IPv4、寻址、IPv6 and others

IPv4数据报格式

  • 网络层的分组称为数据报。head部分长度大于等于20字节。首部包含如下部分:
    • 版本(号),4 bits
    • 首部长度,4 bits
    • 服务类型,TOS,8 bits
    • 数据报长度,首部加数据部分,16 bits,因此数据报的理论最大长度是65535字节,而实际上很少有超过1500字节的,该长度使得IP数据报能容纳最大长度以太网帧的载荷字段
    • 寿命,Time-to-live, TTL,用来确保数据在网络中不会永远循环。每当一台路由器处理数据报时,该字段数值减1,TTL=0,则该数据报必须丢弃
    • 标识、标志、 片偏移。
    • (上层)协议,8 bits,6对应TCP,17对应UDP
    • 首部检验和,16 bits,计算方法:将手不中的每2个字节当做一个数,用反码算数对这些数求和,路由器一般都丢弃检测出错误的数据报。为什么TCP/IP在运输层和网络层都执行差错检测?1,注意到在IP层支队IP首部计算了检验和,而TCP/IP检验和是对整个TCP/UDP报文段进行的;2,TCP/UDP与IP不一定都必须属于同一个协议栈。
    • 源和目的IP地址,各32 bits
    • 选项,可有可无

(2020.09.01 Tues)

IPv4数据报分片

不是所有链路层协议都能承载相同长度的网络层分组。以太网帧能承载不超过1500字节的数据,而某些广域网链路的帧可承载不超过576字节的数据。一个链路层能承载的最大数据量叫做最大传送单元(maximum transmission unit, MTU),链路层的MTU严格限制着IP数据报的长度。而问题的核心在于收发两端路径上的每段链路可能使用不同的链路层协议,而每种协议可能具有不同的MTU。

如果链路层MTU小于IP数据报长度,则对数据报分片(fragment)。

在接收端执行组装工作,应用数据报首部中的标识、标志和片偏移字段。发送主机通常将发送的数据报的标识号加1。为了让目的主机绝对的相信已经收集到了初始数据报的最后一个片,最后一个片的标识被设置为0,而其他片的该字段被设置成1。偏移字段制定了该片应该放在初始IP数据报的哪个位置。

IPv4编址

  • 主机与物理链路之间的边界叫做接口(interface)。从技术上讲,一个IP地址与一个接口相关联,而不是与包括该接口的主机或路由器相关联。
  • IP地址长度是32 bits,等价为4字节,总共有个可能的地址,也就是40亿个。采用点分十进制(dotted-decimal notation)书写。
  • 每个主机和路由器上的每个接口 ,都有独一无二的IP地址,并且不能自由选择,IP地址的一部分需要由其连接的子网来决定。
  • 接口通过不包含路由器的网络连接,这样的网络称为子网(sub-net)。IP编址为某个子网分配一个地址比如223.1.1.0/24,其中的/24记法优势成为子网掩码(subnet mask),指示着32比特中的最左侧24比特定义了子网地址,任何连接该子网的主机都妖气其地址具有223.1.1.xxx的形式。
  • 子网的另一个定义:分开主机和路由器的每个接口,产生几个隔离的网络岛,使用接口端接到这些隔离网络的端点,这些隔离网络中的每个都叫做一个子网。
  • a.b.c.d/x形式地址的最高x比特构成了地址的网络部分,称为该地址的前缀(prefix)。当组织外部的一个路由器转发一个数据报,且该数据报的目的地之位于该组织的内部时,仅需要考虑该地址的前面x比特,这可以极大的减小路由器中转发表的长度。
  • 子网可以嵌套子网。
  • 分类编址(classful addressing),8、16、24比特子网分别称为A、B、C类网络。A类网络容量是个,其中的-2是拍出了两个预留用于特殊用途的地址。
  • IP广播地址255.255.255.255,当目的地IP是该地址,则该信息会发送给同一网络中的所有主机。

获取主机地址:动态主机配置协议(Dynamic Host Configuration, DHCP)

DHCP: 在加入的子网中获取一个IP的协议,它允许主机都自动获取(被分配)一个IP地址,还允许一台主机得知其他信息,比如他的子网掩码,第一跳路由器地址(称为默认网关)与它的本地DNS服务器的地址。DHCP具有将主机连接进一个网络的网络相关方面的自动能力,故被称为即插即用协议(plug-and-play protocol),或零配置(zeroconf)协议。

  • 更多信息,略。

网络地址转换(Network Address Translation, NAT)

同一子网的设备不在具有多个IP地址,对外界网络来说,子网内的设备如同单一设备。所有离开子网刘翔更大网络的报文都有同一个源IP地址,进入该网络的报文都拥有同一个目的IP地址。NAT使得罗尤其对外界隐藏了网络的细节。而该地址是罗尤其从ISP的DHCP服务器得到,并且路由器运行一个DHCP服务器。

  • NAT路由器上有一张NAT转换表(NAT translation table, NAT tt),对端口号做了映射。一个NAT tt中的端口号map了LAN中的一个主机IP和端口号,这里的主机IP是NAT给的。

IPv6

  • 与IPv4的差别
    • 扩大的地址容量,IP地址长度从32bits增加到128bits,即4bytes-->16bytes.
    • 简化高效的40字节首部
    • 引入标签流
  • IPv4到IPv6的迁移:隧道(tunnel)。

路由选择算法

Bellman-ford算法(dynamic programming)和Dijsktra算法

你可能感兴趣的:(网络层, since 2020-08-27)