计算机网络自顶向下方法第4章 网络层:数据平面 (Network layer)
4.1 网络层概述
网络层主要功能为转发(将数据从路由器输入接口转移到合适的输出接口)和路由选择(端到端的路径选择),每台路由器都有一张转发表,用最长前缀匹配规则来转发。
4.1.1 转发和路由选择:数据平面和控制平面
- 转发(forwarding) 是指将分组从一个输入链路转移到适当的输出链路接口的路由器本地动作。
- 路由选择(routing) 是指确定分组从源到目的地所采取的端到端路径的网络范围处理过程。
4.1.2 网络服务模型
- 因特网的网络层IP协议提供单一服务,尽力而为服务,无带宽保证,无丢包保证,无顺序保证,不定时,无拥塞指示。也即差不多根本无服务。
4.2 路由器工作原理
路由器的组成部分:
1) 输入端口
- 执行将一条输入的物理链路与路由器相连接的物理层功能
- 执行与位于入链路远端的数据链路层交互的数据链路层功能
- 查找功能,查询转发表决定路由器的输出端口,将分组转发到输出端口
2) 交换结构
- 将路由器的输入端口与输出端口相连
- 分组通过交换结构转发到输出端口
3) 输出端口
- 存储从交换结构接收的分组,执行必要的链路层和物理层功能在输入链路上传输这些分组。
4) 路由选择处理器
- 执行路由选择协议
5) 路由转发平面
6) 路由控制平面
4.2.1 输入端口处理和基于目的地转发
4.2.2 交换
三种交换技术。
1.经内存交换。
2.经总线交换。
3.经互联网络交换。
4.2.3 输出端口处理
4.2.4 何处出现排队
- 输入、输出都会出现排队。
4.2.5 分组调度
三种路由器中的排队规则
1. 先进先出
2.优先权排队
3.循环和加权公平排队
4.3 网际协议 : IPv4、寻址、IPv6及其他
4.3.1 IPv4 数据报格式
- 版本号:包括IPv4、IPv6。
- 首部长度:通常20字节。
- 服务类型:区分不同类型数据报,如实时流量(IP电话)和非实时流量(FTP)。
- 数据报长度:首部+数据长度,很少超过1500字节。
- 标识、标志、片偏移:用于分组分片。IPv6不分片
- 寿命(Time-To-Live, TTL):经过一台路由器,TTL减一。
- 上层协议:数据报交付给哪个应用层协议。
- 首部检验和:只对首部校验,TCP/UDP与IP不一定属于同一协议栈(如ATM代替IP)。
- 源和目的IP。
- 选项:IPv6不使用。
- 数据:交付给运输层的数据,也可能是ICMP报文等其他类型。
4.3.2 IPv4 数据报分片
- 链路层MTU限制数据报长度,不同链路使用不同的协议,MTU不同,所以一个数据报可能分成数个小的数据报,称为分片(fragment)。
- 数据报在端系统中重新组装,然后上传传输层。
- 标识标记初始IP数据报。
- 最后一个片的标志为0,其余为1。
- 偏移字段指定该片在初始IP数据报的位置。
4.3.3 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个其他组织,每个组织有自己的子网
在CDIR出现之前,采用分类编址,A、B、C类网络,分别具有8、16、24比特子网地址
- C类(/24)仅能容纳2^8-2=254台主机(其中两个用于特殊用途)
- B类(/16)支持65534台主机,一个组织分配一个B类地址却只用2000个接口,造成巨大浪费
- A类
- IP广播地址
- 当一台主机发出目的地址为255.255.255.255的数据报时,报文会交付给同一个网络的所有主机,可用于DHCP发现报文的发送,广播最小生成树
动态主机配置协议(Dynamic Host Configuration, DHCP),允许主机自动获取一个IP地址,还有其他信息,例如子网掩码、第一条路由器地址(默认网关)、本地DNS服务器地址。
DHCP是C-S协议,客户是新到达的主机,服务器是子网中的DHCP服务器或者是DHCP中继代理(通常是路由器)。
4个步骤 :
1.DHCP服务器发现。使用广播目的地址255.255.255.255和源地址0.0.0.0,进行链路层广播。
2.DHCP服务器提供。使用广播发送推荐IP、地址租用期等信息。
3.DHCP请求。从一个或多个服务器提供的选择中响应,回显配置参数。
4.DHCP ACK。对请求报文响应,证实要求的参数。
4.3.4 网络地址转换
- 网络地址转换(Network Address Translation, NAT),通过NAT转换表管理小型子网络,对外隐藏网络细节。
- 子网络中的主机使用专用地址(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16),该地址只有在该网络中才有意义,不能用于因特网。
- NAT路由器将因特网的IP和端口号、子网的IP和端口号进行转换,对外行为就像具有单一IP的单一设备。
4.3.5 IPv6
1.IPv6 数据报格式
- 地址:由32比特增加到128比特。任播地址将数据报交付给一组主机中的任意一个(例如GET一组镜像站点中的某个)。
- 下一个首部:与IPv4**协议**字段相同,表示数据字段交付上层哪个协议。
取消的字段
- 分片:如果数据报太长,发送ICMP差错报文。
- 首部校验和,TCP和UDP、以太网已经校验。
2.从IPv4到IPv6的迁移,两种双栈(dual-stack)方法。
- 接受结点和发送节点如果都是IPv6,则使用v6,否则使用IPv4。
- 将IPv4路由器集合作为隧道(tunneling),将IPv6数据报放入IPv4的数据字段。
4.4 通用转发和 SDN
4.4.1 匹配
4.4.2 动作
4.4.3 匹配加动作操作中的OpenFlow例子
参考:
https://blog.csdn.net/A657997301/article/details/78452092