【计算机网络】网络层

网络层

  • 4.1 introduction
  • 4.2 virtual circuit and datagram networks
  • 4.3 what’s inside a router
  • 4.4 IP: Internet Protocol
    • datagram format
    • IPv4 addressing
    • ICMP
    • IPv6
  • 4.5 routing algorithms
    • link state
    • distance vector
    • hierarchical routing
      4.4-4.5 重点
  • 4.6 routing in the Internet
    • RIP
    • OSPF
    • BGP
  • 4.7 broadcast and multicast routing

网络层概述

  • 网络层实现从发送主机向接收主机传送数据段(segment)的服务
    • 发送主机负责将数据段封装到数据报(datagram)中
    • 接收主机负责向传输层交付数据段(segment)
  • 每个主机和路由器都运行网络层协议
    • 路由器不运行之前的应用层协议和传输层协议

网络层功能和服务

  • 转发和路由选择
    • 转发 (forwarding): 将分组从单一路由器的输入端口转移到合适的输出端口
    • 路由(routing): 确定分组从源到目的经过的路径,主要包括路由算法 (routing algorithms)
  • 连接建立
    • TCP需要三次握手,连接建立
    • 网络层的某些体系结构,数据传输之前也需要首先建立虚拟/逻辑连接
      • 某些体系结构:ATM, 帧中继(frame relay), X.25
      • 网络设备(如路由器)同时参与连接的建立
    • 传输层与网络层连接建立的的对比
      • 传输层连接:应用进程之间,对中间网络设备透明
      • 网络层连接:主机之间,路径上的路由器等网络设备参与其中
  • 网络层服务模型
    • 在这里插入图片描述

虚电路网络和数据报网络

虚电路网络VC

  • 虚电路网络的特征
    • 数据传输之前,连接建立
    • 分组交换
      • 每个分组携带VC号
    • 每个分组的传输利用链路的全部带宽
      • 与之前的电路交换不同,电路交换占用的是部分资源
    • 源到目的路径经过的网络层设备共同完成虚电路功能
      • VC路径上每个路由器都需要维护VC连接的状态信息!
  • 每条虚电路包括
    • 从源主机到目的主机的一条路径
    • 虚电路号(VCID),沿路每段链路一个编号
    • 沿路每个网络设备(如路由器),利用转发表记录经过的每条虚电路
  • 整体理解
    • 虚电路网络其实就是说网络层先建立连接,再传输数据,最后连接拆除
      • 连接建立:就是为了确定一条源主机到目的主机的路径
        • 路由器的转发表添加新表项,包含进出接口与进出VCID,从而实现建立路径
      • 数据传输
        • 所有分组都从刚刚建立的连接路径中传输
      • 连接拆除
        • 路由器删除该虚电路所添加的表项
    • 虚电路网络的应用
      • 应用在ATM, frame-relay, X.25中

数据报网络

  • 数据报网络的特征
    • 数据传输之前,无连接建立
    • 分组交换
      • 每个分组携带目的主机地址
    • 路由器根据分组的目的主机地址转发分组
      • 路由器基于路由算法构建转发表
      • 检索转发表来转发数据报分组
      • 每个分组独立选路
  • 最长前缀匹配规则
    • 如果采用前缀匹配时转发表匹配目的地址,如果目的地址存在多个匹配项,则采用此规则
  • 整体理解
    • 数据报网络就是说我不需要确定分组从哪条路径传输,分组怎么传输取决于我的路由转发算法
    • 数据报网络的应用
      • 当今互联网

数据报网络 VS 虚电路网络

在这里插入图片描述

路由器的工作原理

  • 路由器体系结构
    在这里插入图片描述
  • 输入端口
    • 线路前部阻塞(HOL):如果两个分组竞争同一个输出端口,则必然有一个会被阻塞,而排队
    • 由于HOL阻塞,只要输入链路上的分组到达速率达到其容量的58%,在某些假设前提下,输入队列长度将无限制增大,也就是出现大量丢包与时延
  • 交换结构(fabrics 结构)
  • 输出端口
  • 路由选择控制平面
    • 分布式的
      • 不同部分(例如路由选择算法)执行在不同的路由器上并且通过彼此发送控制报文进行交互

IP协议

  • 网络层的内部视图
    在这里插入图片描述

数据报格式

在这里插入图片描述

  • IP数据报格式
    • 首部长度:确定IP数据报数据部分从哪里开始
    • 服务类型:区分不同类型的IP数据报
      • 例如,区分实时数据报(如用于IP电话应用)与非实时流量(如FTP)
    • 数据报长度:IP数据报总长度,首部+数据
    • 标识,标志位,片偏移:与IP分片有关
    • TTL:确保数据报不会永远在网络中循环。经过一台路由器TTL减1,若TTL减为0,则丢弃该数据报
    • 协议:协议号指明IP数据报数据部分交给TCP还是UDP。
    • 校验和:差错校验
    • 选项:扩展IP首部
    • 数据(有效载荷):包含要交付给目的地的运输层报文段
  • IP分片(fragmentation),组装(reassembly)
    • 网络链路存在MTU (最大传输单元)
      • 不同链路的MTU不同 ,因此就限制了IP分组的长度
    • 大IP报文向较小MTU链路转发时,可以被“分片”
      • 1个IP分组分为多片IP分片
      • IP分片到达目的主机后进行“重组”
      • IP首部相关字段用于标识分片以及确定分片的相对顺序
        • 总长度,标识,标志位,片偏移
  • IP分片与重组例子
    在这里插入图片描述

IPV4 编址

  • 介绍
    • IP地址
      • 点分十进制记法
      • 32位,32位标识主机,路由器的接口
    • 接口:主机/路由器与物理链路的连接
      • 路由器通常有多个接口
      • 主机通常只有一个或两个接口
        • e.g.,有线的以太网接口,无线的802.11接口
    • IP地址与每个接口关联
      • 有线以太网接口通过以太网交换机连接
      • 无线WIFI接口通过WIFI基站连接
    • 怎么为接口分配IP地址呢?
      • 采取的方法为IP子网
  • IP子网(subnets)
    • IP地址组成
      • (高位)网络号+(低位)主机号
    • 什么是子网呢?
      • IP地址具有相同网络号的设备接口
      • 不跨越(interventing)路由器可以彼此物理联通的接口
  • IP子网掩码
    • 什么是子网掩码?
      • IP地址中网络号和子网号比特位全1,主机号比特位全0
    • 如何确定子网的大小?或者说确定子网内所能容纳的主机数?
      • 子网地址+子网掩码—>准确确定子网的大小
        • 其实就是按位与运算,刚好屏蔽掉了主机号得到的就是网络号
  • CIDR与路由聚合
    • CIDR
      • 无类域间路由
        • 提高了IPV4地址空间分配效率
        • 提高路由效率(将多个子网聚合为一个较大的子网,构造超网(supernetting))
      • 在这里插入图片描述
    • 路由聚合
      • 将多个子网合成一个大网
      • 或者说一个大网划分成了多个子网,这些子网构成一张大网
  • 获取IP地址
    • 一个组织如何得到一个地址块呢
      • 直接从ICANN获取
      • 直接从ISP获取,ISP的地址块也来自于ICANN
    • 一台主机又是如何从地址块中分配到一个地址的呢
      • DHCP协议
  • DHCP协议:主机获取IP地址的协议
    • DHCP协议四步走
      • DHCP服务器发现
        • 新到的主机首要任务是发现一个要与其交互的DHCP服务器,通过发送DHCP发现报文
      • DHCP服务器提供
        • DHCP服务器用一个DHCP提供给报文向客户机回应
      • DHCP请求
        • 选择一个服务器发送DHCP请求报文响应,回显配置参数
      • DHCP ACK
        • 服务器用DHCP ACK报文响应,证实所要求的参数
    • DHCP
      • 从服务器端动态获取
        • IP地址
        • 子网掩码
        • 默认网关地址(客户端第一跳的路由器的地址)
        • DNS服务器名称与IP地址
      • 即插即用
      • 允许地址重用
      • 支持在用地址续租
      • 支持移动用户加入网络
  • NAT协议:网络地址转换
    • 动机以及优势
      • 只需/能从ISP申请一个IP地址,仅仅一个IP地址对于所有主机(IPv4地址耗尽)
      • 本地网络设备IP地址的变更,无需通告外界网络
      • 变更ISP时,无需修改内部网络设备IP地址
      • 内部网络设备对外界网络不可见,即不可直接寻址(安全)
    • 争论
      • 端口号是进程编址的,而不是主机编址的。而NAT路由器使用了端口号
      • 妨碍P2P应用程序

ICMP协议:控制报文协议

  • ICMP协议
    • ICMP协议主要被主机和路由器用来彼此沟通网络层的信息
    • 两类ICMP报文
      • 差错报告报文
        • 目的不可达
        • 源抑制
        • 超时/超期
        • 参数问题
        • 重定向
      • 网络探询报文
        • 回声(echo)请求与应答报文(reply)(被用在ping里)
        • 时间戳请求与应答报文
    • ICMP报文格式
      • 在这里插入图片描述
    • ICMP在tracert中的使用
      • 实验1中有写

IPV6

  • 为什么需要开发新的协议IPV6?
    • 32比特的IP地址空间即将用尽
    • 首部格式有助于加快处理/转发速度
    • 更改报头以提高服务质量
  • IPV6报文格式
    • 固定的40字节的首部
    • 分片不被允许
    • 在这里插入图片描述
  • IPV6相比IPV4产生的变化
    • 分片组装不再出现
    • 首部校验和不再出现
    • 选项字段不再出现
  • IPV4数据报(data中携带IPV6报文)可通过IPV4路由器

路由算法

  • 路由选择的工作是:确定从发送方到接收方通过路由器网络的路径
    • 关键问题:源到目的的最小费用路径是什么?
    • 路由算法:寻找最小费用路径的算法
  • 转发表:确定在本路由器中如何转发分组
  • 路由算法分类(classification)
    • 全局式(global)路由和分散式(decentralized)路由
      • 全局信息
        • 所有路由器掌握完整的网络拓扑(topology)和链路费用信息
        • 例如:链路状态路由算法LS
      • 分散信息
        • 路由器只掌握物理相连的邻居以及链路费用
        • 邻居间的信息交换,运算的迭代过程
        • 例如:距离向量路由算法DV
    • 静态路由和动态路由
      • 静态路由
        • 手工配置
        • 路由更新慢
        • 优先级高
      • 动态路由
        • 路由更新快
          • 定期更新(periodic update)
          • 及时响应链路费用或网络拓扑变化

链路状态算法LS

Dijkstra算法

  • 算法前提
    • 在这里插入图片描述
  • 算法步骤
    • 在这里插入图片描述
  • 举个栗子
    • 在这里插入图片描述
  • u节点(路由器)的转发表
    • 在这里插入图片描述
  • 算法讨论
    • 链路在最坏情况下,算法复杂度是O(n^2)
      • 因为最坏情况下,第一次迭代搜索n个节点,第二次搜索n-1个…
    • 容易发生振荡
      • LS算法在每个路由器上运行不同步,产生了拥塞敏感的路由选择的震荡

距离向量路由算法DV

  • 动态规划算法主要思想
    • 在这里插入图片描述
    • 在这里插入图片描述
  • 维护与更新的过程
    • 在这里插入图片描述
  • DV算法的特点:异步迭代与分布式
    • 在这里插入图片描述
  • 存在的问题
    • 无穷计数问题:某链路费用增加,同时邻居的某链路数据错误,导致路由选择环路(不断迭代)
      • 解决方案
        • 毒性逆转:如果z通过y路由选择到目的地x,则z通告y,它到x的距离是无穷大(善意的谎言)
        • 定义最大度量

LS与DV的比较

  • 报文复杂性
    • LS:n个节点,E条链路,发送O(n*E)个报文
      • 每个节点都知道网络中每条链路的费用
      • 任意一条链路费用改变,都要向所有节点发送新的链路费用
    • DV:邻居间交换报文
      • 链路费用改变时,仅当与该链路相连的节点最低费用路径改变时,才传播已改变的链路费用
  • 收敛(convergence)速度
    • LS:O(n*E)个报文的O(n^2)阶算法
    • DV:收敛较慢
      • 可能遇到路由选择环路
      • 无穷计数问题
  • 健壮性
    • 如果一台路由器故障或者受到破坏,会发生什么?
      • LS
        • 路由器能够向其连接的一条链路广播不正确费用
        • 每个节点仅计算自己的转发表
      • DV
        • 一个节点可向任意或者所有目的节点通告不正确的最低费用路径
        • 每个节点的表也被其他节点使用
          • 错误扩散到整个网络

层次路由策略

  • 自治系统
    • 路由聚合成一个区域,就叫自治系统
    • 每个自治系统通常由在相同控制下的路由器组成(例如,有相同的ISP运营或者属于相同的公司网络)
    • 同一AS中的路由器运行同样的路由选择算法—>也叫自治系统内部路由选择协议(intra-AS)
    • 网关(gateway)路由器
      • 位于AS 边缘
      • 通过链路连接其他的AS的网关路由器
    • 自治系统的转发表
      • 在这里插入图片描述
  • 自治系统间的路由任务
    • 在这里插入图片描述
    • 举个例子
      • 在这里插入图片描述
      • 在这里插入图片描述

因特网中的路由选择

  • Internet采用层次路由
  • AS内部路由协议用于确定在一个AS内执行路由选择的方式,也称内部网络协议IGP
    • RIP
    • OSRF
    • IGRP

RIP协议:路由选择信息协议

  • RIP协议是一种距离向量协议,其中是沿着从源路由器到目的子网(包括目的子网)的最短路径所经过的子网数量
  • 距离向量路由算法
    • 在这里插入图片描述
  • RIP:链路失效(failure),恢复(recovery)
    • 在这里插入图片描述
  • RIP路由表
    • 在这里插入图片描述
    • RIP是一个运行在UDP上的应用层协议

OSRF协议:开放最短路径优先协议

  • OSRF的介绍
    • 开放:路由选择协议规范是公众可用的
    • 采用链路状态路由算法LS
      • LS分组扩散(dissemination)—>通告
      • 每个路由器构造完整的网络(AS)拓扑图
      • 利用Dijkstra算法计算路由
    • OSRF通告(advertisement)中每个入口对应一个邻居
    • OSPF通告在整个AS范围泛洪
      • OSRF报文直接封装在IP数据报中(而不是TCP或者UDP)
    • 与OSRF极其相似的一个路由协议:IS-IS路由协议
  • OSRF的优点
    • 安全
      • 使用鉴别(authenticate),仅有受信任的路由器能参与一个AS内的OSRF协议
    • 允许多条相同费用的路径(在RIP里仅一条路径)
    • 对单播与多播路由选择的综合支持
    • 支持在单个路由选择域的层次(hirarchical)结构
  • 分层的OSRF
    • 在这里插入图片描述

BGP协议:边界网关协议

  • BGP为每个AS提供了一种手段:

    • eBGP: 从邻居AS获取子网可达性信息.
    • iBGP: 向本AS内部所有路由器传播子网可达性信息.
    • 基于可达性信息与策略,确定到达其他网络的 “好” 路径.
    • 容许子网向Internet其余部分通告它的存在:“我在这儿!”
  • BGP基础

    • BGP会话:两台路由器(对等方)交换BGP报文
      • 在BGP中,目的地不是主机而是CDIR化的前缀,每个前缀表示一个子网或一个子网的集合
      • 通过半永久TCP连接来交换路由选择信息
    • 分发前缀可达性信息 distributing path information
      • 在这里插入图片描述
  • 路径属性与BGP路由

    • 在这里插入图片描述
    • 当一台网关路由器接收到一台路由器通告以后,它使用输入策略去决定是否接收或过滤该路由,是否设置某属性
  • BGP路由选择

    • 网关路由器可能获得了到达同一前缀的多条路由,从多条路由中选择一条路由的过程就是BGP路由选择
      • 本地偏好值属性
      • 最短AS-PATH
      • 最靠近NEXT-HOP的路由器:热土豆路由选择
      • BGP标识符
    • 注意:BGP顺序调用以上消除规则,直到留下一条路由
    • 举个小例子
      • 在这里插入图片描述
  • BGP报文

    • 在这里插入图片描述
  • 表项是如何进入路由器的转发表的

    • 在这里插入图片描述
    • 在这里插入图片描述
  • 路由选择策略

    • 图例
      在这里插入图片描述
      在这里插入图片描述
  • 为什么会有不同的AS间和AS内部路由选择协议?

    • 在这里插入图片描述
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寂寞烟火~

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值