计算机网络精炼笔记(三)网络层——数据平面
文章目录
一、概述
- IP层所提供的服务:在TCP/IP的架构下,在主机和主机之间传送TCP段/UDP数据报。
- 转发:将分组从路由器的输入接口转发到合适的输出接口(是一个局部的功能,属于数据平面)
- 路由:使用路由算法来决定分组从发送主机到目标接收主机的路径(是一个全局的功能,属于控制平面)
- 数据平面:决定从路由器输入端口到达的分组如何转发到输出端口
- 控制平面:决定数据报如何在路由器之间路由,决定数据报从源到目标主机之间的端到端路径
- 路由表连接起数据平面和控制平面
-
传统方式(路由器中实现数据平面):两个平面紧耦合,分布式地做路由
-
缺点:不灵活
-
SDN方式(远程服务器中实现数据平面,集中式)
-
CA(控制代理)上报状况
-
控制器计算流表
-
分组交换设备将流表进行装载,对到来的分组进行多字段的匹配,按照匹配的结果对分组进行各种动作(转发/block/泛洪/改变字段)
-
通过改变控制器可以更加灵活地实现各种行为逻辑,可编程
-
网络服务模型
网络层和传输层连接服务区别:
- 网络层: 在2个主机之间,涉及到路径上的一些路由器
- 传输层: 在2个进程之间,很可能只体现在端系统上(TCP连接)
- IP网路不具有连接建立的功能
二、 路由器组成
1、路由器的结构和功能概述
-
传统路由器
-
输入端口功能
-
为什么输入可能要排队?因为输出端口可能存在竞争、可能发生HOL blocking
-
缓冲区大小的经验公式
2、三种交换方式(重点)
-
通过内存交换
-
要经过两次总线,转发速率收到内存带宽的限制
-
通过总线交换
-
通过crossbar的交换
3、调度
- 调度: 选择下一个要通过链路传输的分组
- 更多调度详见PPT
三、IP: Internet Protocol
- IP协议主要实现数据平面的转发功能
1、数据报格式
2、分片
- 为什么要分片
body 太大,超过了MTU(最大传输单元)
如何分片? - ID相同属于同一数据报
- fragflag = 0 表示最后一个
- offset以8个字节为单位
3、NAT:Network Address Translation(重点)
- NAT的不足
4、IPV6(重点)
- 隧道技术:IPV6封装在IPV4中,到达之后再解封装
四、IP地址
1、子网,IP地址分类,特殊的IP地址
- 32位标示,对主机或者路由器的接口编址(并不是用来标识主机的)
- 主机可以有多个IP地址
- 子网:IP地址前缀相同。
- 无需路由器介入,子网内各主机可以在物理上相互直接到达(通过交换机)
下图有六个子网
- 小数量大规模,已经分配完了
- 大数量小规模,例如C类地址是我们经常获取的
- A, B, C 单播地址,D类多播地址
- 广播一般发生在计算机局域网内部
- 路由一般按照子网进行计算,以网络进行计算,而不是单个的IP地址
- 特殊的IP地址(重要)
2、CIDR
- CIDR: C类地址的主机数量少,不能满足某些要求,怎么办?
- 这样host数量就不是固定的8位二进制数量254,可以达到10位二进制数,上千个了
- 子网号,子网掩码,下一跳,接口
3、DHCP
DHCP 返回四个信息:
- IP 地址
- 第一跳路由器的IP地址(默认网关)
- DNS服务器的域名和IP地址
- 子网掩码(指示地址部分的网络号和主机号)
4、最长前缀匹配和路由聚集(重点)
- 为什么要聚集?减少通告数量
- 下图的八个子网可以聚集
- 根据最长前缀匹配,只发送200.23.16.0/20就可以匹配前二十位
- ISP会收到200.23.16.0/20 和 200.23.18.0/23
- 根据最长前缀匹配,200.23.18.7会走下面的网络