2 网络层
2.1 网络层服务
- 网络层不再是端到端的服务,在每一个网络设备(例如路由器)都需要运行网络协议;
- 路由器也将拆分网络层的数据报,进行下一步的路由和转发;
- 1、网络层核心功能-转发和路由
- 路由器根据数据报,将数据报转发到正确输出端口;
- 每个路由器要维护一个转发表;
- 2、网络层核心功能-连接建立
- 网络层连接:两个主机之间(路径上所有路由器等网络设备参与其中);
- 传输层连接:两个应用进程之间(对中间网络设备透明);
- 3、网络层服务模型
- Internet的网络服务就是尽力而为服务;
- ATM在网络层提供四种服务,分别是CBR\VBR\ABR\UBR;
- 提供两种网络层服务模型
- 无连接服务(不预先确定路径,不同分组不同路径,—数据报网络)
- 连接服务(路径实现确定,相同路径,—虚电路网络)
2.1.1 连接服务-虚电路网络
- 网络层是主机到主机(网络核心),传输层是端系统到端系统的;
- 1、连接服务与无连接服务
- 2、虚电路(Virutal circuits)
- 分组交换但是,建立连接,并且占用全部带宽;
- 携带相同虚电路标识的(VCID)就会沿着相同的路径(每一个路由器都需要建立维护)进行传输;
- 3、VC的具体实现
- 由于每一段链路的带宽不同,可以提供的虚电路的数量不同,因此每一条虚电路不是全局统一的一个编号,而是沿路每段链路一个编号;
- 因此需要转发表记录经过的每条虚电路;
- 4、VC转发表
- 5、虚电路信令协议(signaling protocols)
2.1.2 无连接服务-数据报网络
- Internet网络中,采用的是数据报网络(无连接);
- 1、数据报网络
- 每个分组都要携带目的地址;
- 如果路由算法,更新可能会导致相同目的地址的分组走不同的路径;
- 2、数据报转发表
- 记录所有的IP地址是不可能的,因此转发表记录的是目的地址范围;
- 3、最长前缀匹配优先
- 4、数据报网络 vs 虚电路网络
2.2 IP协议
2.2.1 IP数据报
- 1、Internet网络层
- 2、IP数据报(分组)格式
- 版本号字段占4位:IP协议的版本号;4 -> IPv4;6 -> IPv6;
- 首部长度字段占4位:IP分组首部长度;(4bit的话最大15),但是视为4字节为单位;
- 例如:5->IP首部长度为20(5*4)字节;
- 服务类型(TOS)字段占8位:指示期望获得哪种类型的服务
- 1998年改名为区分服务;
- 只有在网络提供区分服务(DiffServ)时使用;
- 一般情况下并不使用,通常IP分组的该字段(第2字节)的值为00H;
2.2.2 IP数据报分片
- 1、最大传输单元(MTU)
- 2、IP分片与重组
- 路由器只管分,不管装,都是统一在目的地进行重组;
- IP首部需要有字段来标识分片以及确定分片相对顺序;
- 说明前面分片的数据大小就是8字节为单位;
- 3、IP分片过程
- 一个最大分片可封装的数据,向下取整后乘以8,因为片偏移量是8的倍数;
- 总片数是向上取整;(尽可能分最大片);
- 4、例子
2.2.3 IP编址(addressing)
- 1、IP地址
- IP编址是针对于实现网络层功能的,交换机不在网络层而在链路层是不编址的,主要是对路由器和端系统进行IP编址;
- IP地址每8bit为一组,转换为十进制表示;
- 随意分配IP地址,会给路由转发表造成不能承受的负担;
- 2、IP子网(Subnets)
2.2.4 有类IP地址
- 采用二分法(一共32位);
- DE类就不区分主机号,就是一组主机,只作为目的地址;
- 以下分类都是对于ABC类的(有些特殊地址);
- 1、特殊IP地址
- 2、私有(Private)IP地址
2.2.5 IP子网划分与子网掩码
- 1、子网划分
- 2、子网掩码
- 子网掩码,借用主机号的前两位Bit划分为4个子网,128+64=192;
- 3、子网掩码的应用
- 可分配地址范围去掉主机域全0和主机域全1的IP地址;
- 4、一个C类网络划分子网举例
- 当划分子网时,会造成头尾两个IP地址不能表示主机,前面红色是每个子网的子网地址,绿色是每个子网的网络地址;
- 划分子网会有一定IP地址损失,但是性能提升;
2.2.6 CIDR与路由聚合
- 子网地址+子网掩码可以准确描述一个子网;
- 1、CIDR
/26表示网络前缀长度是26;
- CIDR提高地址的利用效率;
- 更大作用在于提高路由效率(将多个子网合并为较大的子网);
- 路由聚合
- 2、路由聚合
- 路由表大大简化;
- 左侧小子网应该是连续的,且是2的次方倍数,
- 但是,有一个组织1,历史原因,有单独的子网在别的地方,如下方就会增加一个最长前缀匹配优先原则,避免路由黑洞的问题;
2.3 DHCP(动态主机配置协议)
- 主机如何获取IP地址?
- 默认网关:这个子网的数据报要离开子网的时候,应该送往的接口地址
- 图中所示的路由器接口就是这个子网的默认网关;
- 1、动态主机配置协议(DHCP)
- 2、DHCP工作示例
0.0.0.0
表示本机IP地址;255.255.255.255
是广播地址;- 第一次主机发出的广播(发现报文),所有主机都可以接收到,但是只有DHCP服务器才会进行响应(提供报文);
- 为该主机分配IP地址;
- yladdr就是DHCP服务器给该主机分配的IP地址;
- 这个提供报文也是通过广播地址发出去的;
- 第二次主机发出的仍然是广播,也是告知其他的DHCP服务器已经跟现在的这个链接上了;(请求报文);
- 在DHCP服务器第二次回应之后,就确认绑定该IP地址的了;
- IP分配是有使用时间限制的;
2.4 网络地址转换(NAT)
- IPv4可用于公共网络的IP地址已经分配殆尽,因此是有主机使用私有地址,这些私有地址需要通过网络地址转换NAT来进入公共互联网;
- 1、NAT转换过程
- 2、NAT存在问题
- 端口号是16bit,最多可以支持60,000多并行连接
- 3、NAT穿透问题
2.5 互联网控制报文协议(ICMP)
- IP协议如果发生错误,就会丢弃该分组,同时通过ICMP向主机发送差错报告;
- 1、ICMP报文
- 2、例外情况
- 3、ICMP报文的格式
- ICMP报文也是要封装到IP数据报中传输的;
- ICMP的头部共8个字节,前4个字节是相同(类型、代码、检验和);
- 4、ICMP差错报告报文数据
- 5、ICMP的应用举例:Traceroute
- 利用一个不存在的端口号,进行短期的路径探测;
2.6 IPv6简介
- 1、IPv6:动机
- IPv4的首部长度一般是20字节,但有可选项,所以理论上不确定;
- 路由器只需要处理基本首部,而不需要管选项中的扩展首部;
- 2、IPv6数据报格式
- "流"从一个特定主机发出到一个目的主机的一系列数据报;
- 3、其他改变 vs IPv4
- 4、IPv6地址表示形式
- 一共是8组16进制数;冒号:连接;
- URL为了防止发生歧义,用[]之后再+端口号;
- 5、IPv6基本地址类型
- 6、IPv4向IPv6过渡
- 7、隧道(tunneling)
2.7 路由算法
2.7.1 路由与转发
- 路由算法(协议)求解确定去往目的地网络的最佳路径;
- 1、网络抽象:图
- 2、图抽象:费用(Costs)
- 3、路由算法分类
2.7.2 链路状态路由算法
- 1、Dijkstra算法
- 2、Dijkstra算法:例1
- 3、Dijkstra算法:例2
- 4、Dijkstra算法:讨论
- 由于动态更新,有可能有一个数据报从B刚到D,结果路径改变,有传回B,来回反复,形成震荡;最终形成TTL变成0,分组被丢弃;
2.7.3 距离向量路由算法
- 不需要全局信息,知道局部信息就行路由选择;(迭代)
- 1、Bellman-Ford举例
- 2、距离向量路由算法
- 不是一起迭代更新,异步迭代;
-
3、距离向量路由算法:举例
-
4、距离向量DV:链路费用变化
5、距离向量DV:无穷计数问题
- 以y和z到达x的距离。注意并没有直接变成60,因为根据之前的递推式,z到达x为5,那么min就会选择为y达到x的最小距离为5+1=6;来回反复很多次;
- 如果有环路,会出现无穷计数的问题;
- 解决方案如下:
- 1、毒性逆转
- 2、定义最大度量
2.7.4 层次路由
- 一种路由策略;
- 1、层次路由
- 网关路由器就是连接交换不同AS之间的路由信息;
- 分为内部路由和AS之间的路由;
- 2、互连的AS
-
2、自治系统间(Inter-AS)路由任务
-
3、路由器1d的转发表设置
- 4、在多AS间选择
- Internet网络就是采用层次路由的方式;
2.8 Internet网络中的路由协议
- 采用层次路由的方式;
2.8.1 RIP协议(距离向量路由)
- 1、AS内部路由
- 2、RIP协议
- 3、RIP:举例
- 这里都是字母表示,实际中是IP地址+掩码;
- 4、RIP:链路失效、恢复
- 设置为16还是小网络,RIP更多适用于小型网络;
- 5、RIP路由表的处理
- 应用层进程实现的协议;是根据功能划分层,路由是网络层功能,因此是网络层协议;
- 路由器运行由应用层进程实现的RIP协议,那也会运行有UDP/TCP运输层协议,但是网络参考模型中,路由器只到网络层,因为上面层次的协议也是为了完成网络层的功能;路由器本身并不是端系统到端系统的;
2.8.2 OSPF协议(链路状态路由)
- OSPF(Open Shortest Path First)开放:公共可用
- 链路状态路由算法;
- 直接封装到IP数据报,没有经过TCP协议;
- 1、OSPF优点(RIP不具备)
- 2、分层的OSPF
- 区边界路由器同时是一个区域的路由器也是主干网络的路由器;
2.8.3 BGP(边界网关协议)
- RIP协议是距离向量路由算法,OSPF协议是链路状态路由算法;
- Internet是采用层次化路由,而BGP就是AS(自治系统间)的路由协议
- Border Gateway Protocol,BGP,标准域间路由协议;
- 1、Internet AS间路由协议:BGP
- 2、BGP基础
- BGP协议也通过应用层协议TCP进行实现;
- 尽可能的进行路由聚合;
-
3、BGP基础:分发路径信息
-
4、路径属性与BGP路由(route)
AS:自治系统
- 就像AS2下一个其他网络,有2c和2b两个方式,这个AS路径是相同的,但是下一跳的端口就不同,指示了具体走那一条链路;
- 5、BGP路由选择
- BGP协议是Interet中层次路由自治系统间的路由协议;
- 6、BGP路由选择策略
- 提供商网络只为其客户x提供相关路径;
- 7、为什么采用不同的AS内与AS间路由协议?
- intra-AS,AS内的路由,纯计算最优策略,不需要考虑很多因素;
- inter-AS就需要控制如何被路由,谁路由的问题;