一、网络层概述
1.1 网络层功能概述
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。
- 功能一:路由选择与分组转发(最佳路径)
- 功能二:异构网络互联
- 功能三:拥塞控制(若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞)。
1.2 SDN的基本概念
1.2.1 路由器功能:转发&路由选择
转发:达到路由器输入链路之一的数据报如何转发到该路由器的输出链路之一。
路由选择:控制数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。
数据平面(对应转发):数据平面对于数据处理过程中各种具体处理转发过程。(时间短,通常硬件解决)
控制平面(对应路由选择):控制平面用于控制和管理网络协议的运行,比如OSPF协议、RIP协议、BGP协议。(时间长,通常软件解决)
1.2.2 数据平面
数据平面执行的主要功能是根据转发表进行转发,这是路由器的本地动作。
1.2.3 控制平面(传统方法/每路由器法)
控制平面(传统方法):
路由选择算法运行在每台路由器中,并且在每台路由器中都包含转发和路由选择两种功能。
具体方法:
在一台路由器中的路由选择算法与其他路由器中的路由选择算法通信(通过交换路由选择报文),计算出路由表和转发表。
1.2.4 控制平面(SDN方法:Software-Defined Networking)
控制平面(传统方法):
控制平面从路由器物理上分离。路由器仅实现转发,远程控制器计算和分发转发表以供每台路由器所使用。
具体方法:
路由器通过交换包含转发表和其他路由选择信息的报文与远程控制器通信。因为计算转发并与路由器交互的控制器是用软件实现的,所以网络时“软件定义的”。
1.2.4.1 控制平面中的路由选择处理器
传统方法:
路由选择处理器执行控制平面功能。在传统的路由器中,它执行路由选择协议,维护路由选择表关于关联链路状态信息,并为该路由器计算转发表。
SDN方法:
在SDN路由器中,路由选择处理器负责与远程控制器通信,目的是接收远程控制器计算的转发表项。
1.2.4.2 SDN控制平面
1.SDN控制器:维护准确的网络状态信息(远程链路、交换机和主机的状态);为运行在控制平面中的网络控制应用程序提供这些信息(逻辑集中,在多台服务器上实现)。
2.网络控制应用程序:根据SDN控制器提供的方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备。
1.2.4.3 SDN控制器的三个层次
对于网络控制应用程序的接口:
SDN控制器通过“北向接口”与网络控制应用程序交互。该API允许网络控制应用程序在状态管理层之间读写网络状态。
网络范围状态管理层:
由SDN控制平面作出的最终控制决定,将要求控制器具有有关网络的主机、链路等最新状态信息。
通信层:
SDN控制器与受控网络设备之间的通信(OpenFlow协议),包含"南向接口"
1.2.5 总结
二、路由算法及路由协议
2.1 路由算法
2.1.1 路由算法的分类
2.2 路由协议
2.2.1 分层次的路由选择协议
(1)因特网规模很大
(2)许多单位不想让外界知道自己的路由选择协议,但还想连入因特网
自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。
一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
2.2.2 RIP协议和距离向量算法
2.2.2.1 RIP协议
2.2.2.2 距离向量算法
2.2.2.3 RIP协议的报文格式
2.2.2.4 总结
2.2.3 OSPF协议和链路状态算法
2.2.3.1 OSPF协议
2.2.4 BGP协议
2.2.5 三种协议比较
3.1 IP数据报格式
3.2 IP数据报分片
3.3 IPV4地址(IP地址)
3.3.1 IP编址的历史阶段
3.3.2 分类的IP地址
3.4 网络地址转换NAT
路由器对目的地址是私有IP地址的数据报一律不进行转发。
网络地址转换NET(Network Address Translation):在专用网连接到因特网的路由器安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。
3.5 子网划分与子网掩码
3.5.1 子网划分
3.5.2 子网掩码
3.6 无分类编址CIDR
3.6.1 构成超网
3.6.2 最长前缀匹配
3.7 ARP协议
同一局域网中发送数据:
不在同一个网段发送数据:
由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址
ARP协议:完成主机或路由器IP地址到MAC地址的映射(解决下一跳走哪的问题)
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)
ARP协议4种典型情况:
- 1.主机A发给本网络上的主机B:用ARP找到主机B的硬件地址
- 2.主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址
- 3.路由器发给本网络的主机A:用ARP找到主机A的硬件地址
- 4.路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
ARP是自动运行的
3.8 DHCP协议
主机如何获得IP地址?
静态分配与动态分配
动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。
DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址。允许地址重用,支持移动用户加入网络,支持在用地址续租。
1.主机广播DHCP发现报文
2.DHCP服务器广播DHCP提供报文
3.主机广播DHCP请求报文
4.DHCP服务器广播DHCP确认报文
3.9 ICMP协议
为了更有效地转发IP数据报和提高交付成功的机会…
ICMP协议支持主机或路由器:
- 差错(或异常)报告
- 网络探询
然后发送特定ICMP报文
3.9.1 ICMP差错报告报文
1.终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。无法交付
2.源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。拥塞丢数据(已取消这种报告报文)
3.时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。TTL=0
4.参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。首部字段有问题
5.改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器。可通过更好的路由。
3.9.2 差错报告报文数据字段
3.9.3 不应发送ICMP差错报文的情况
1.对ICMP差错报告报文不再发送ICMP差错报告报文。
2.对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
3.对具有组播地址的数据报都不发送ICMP差错报告报文。
4.对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
3.9.4 ICMP询问报文
1.回送请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解相关状态。
2.时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。
3.掩码地址请求和回答报文
4.路由器询问和通告报文
3.9.5 ICMP的应用
PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。
Traceoute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
四、IPv6
4.1 IPv6与IPv4的差别
1.IPv6将地址从32位(4B)扩大到了128位(16B),更大的地址空间
2.IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间
3.IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查,大大提高了路由器的处理效率。
4.IPv6支持即插即用(即自动配置),不需要DHCP协议
5.IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
6.IPv6 只能在主机处分片 ,IPv4可以在路由器和主机处分片。
7.ICMPv6:附加报文类型“分组过大”
8.IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。
9.IPv6取消了协议字段,改成下一个首部字段
10.IPv6取消了总长度字段,改用有效载荷长度字段
11.IPv6取消了服务类型字段
4.2 IPv6地址表示形式
4.3 IPv6基本地址类型
4.5 IPv6向IPv4过渡的策略
4.6 总结
五、IP组播
六、移动IP
七、网络层设备——路由器
八、第四章总结