第四章
第4章 网络层
4.1 导论
网络层服务
网络层的关键功能
网络层: 数据平面,控制平面
(分布式,不容易更改协议)
(集中式,可编程,易更改)
连接建立
网络层服务模型
4.2 路由器组成
结构概况
真实情况中输入端口和输出端口是混用的,每个端口既是输入端口又是输出端口
输入端口缓存
即可能出现某个时刻输出的速度更慢,需要一个队列来平衡这个速度
交换机构
通过内存交换
就是通用计算机的工作模式,用软件的方式实现路由器(效率较低)
通过总线交换
所有的输出端口都能在bus读到数据,如果是自己的数据,就传输,否则丢弃(只用经过一次总线,所以效率更高)
通过互联网络(crossbar等)的交换
将数据包分为固定长度的信元—传输时间固定,更方便调度
输出端口
数据报(分组)可能会被丢弃
先来的分组不一定先传,要依据调度策略
输出端口排队
调度机制
传完红的传绿的,传完绿的传蓝的,传完蓝的传红的…
即上一种考虑权值的优化
4.3 IP Internet Protocol(IP协议)
IP数据报格式
IPv4数据报格式
type of service:早期通过该字段确定优先级
16-bit identifier,flgs,fragment offset:分片/重组使用
upper layer:TCP,UDP,ICMP等等
Internet checksum:头部校验和(数据部分不参与校验)
IP分片和重组
(如果某分片被丢弃,则其他分片也被丢弃)
IP编址:引论
子网(Subnets)
子网内各主机之间一跳可达,不需借助路由器(可能要借助交换设备)
IP地址分类
A:一共有2^7-2=126个网络(全0和全1不使用),2^24-2个主机(全0和全1不使用)
B:2^14-2=16382个网络,2^16-2个主机
C:两百多万网络,254个主机
A,B,C统称为单播地址
D类称为主播地址
互联网路由以网络为单位进行传播和计算(不是以单个主机的地址)
即全0和全1的IP地址有起特殊用途
ping 127开头的IP地址,实际上是ping本身(loopback)
即不会被分配的IP地址,同样有其特殊用途
B类主机数太多,C类主机数又太少,故使用无类域间路由,任意划分子网的部分
使用子网掩码来区分子网部分和主机部分,即1代表是子网部分,0代表是主机部分(提取子网—与掩码取与)
转发表和转发算法
将目标IP地址与Mask取与,然后检查与Destination Subnet Num作匹配,若对得上则进行转发,否则对下一项进行匹配
如何获得一个IP地址
DHCP:从服务器动态获得上网所需要的信息—IP地址,掩码,local name server,default gateway
DHCP
初始时主机无地址,使用全0的本机地址,主机不知道DHCP server的地址,使用全1的广播地址
transaction ID:事务号
DHCP offer中给主机提供223.1.2.4的地址,租期为3600s
(可能存在多个DHCP server,故需要第二次握手)
DHCP是建立在UDP之上的服务
如何获得一块地址
向ICANN申请地址
从大的地址中再细分出小的子网
层次编址:路由聚集
即IP0告诉IPX,只要目标IP地址前缀为200.23.16.0/23的,我都是它的下一跳
IP1到IP3同理,然后IPX聚合这些信息,告诉互联网,只要目标IP地址前缀为200.23.16.0/20,我都是它的下一跳
IPX获得了8个中的7个路由信息,其也可以对信息进行聚集,此时200.13.18.0对两个转发表信息都能匹配上(此时取匹配长度较大的23位进行匹配—匹配长度越长,代表结果越精确)
NAT: Network Address Translation
内网的地址是无法被互联网识别,路由的,所以通过网络地址转化(NAT)将源地址转化为一个统一地址,当收到数据报时,同样对该地址进行转化
NAT的好处:
出去是ok的,但外网的设备想要主动地与内网设备建立连接时,就会有问题
NAT穿越问题的解决方法:
方法1和方法2都是在路由器配置端口映射(或静态或自动)
IPv6
IPv4的诟病:1.每次TTL-1,校验和都要重新计算;2.分片操作
加重了路由器处理的负担
IPv6中,如果数据报长度过大,就丢掉该数据报,然后发送ICMP信息告知源主机数据报过大(将负担转移到源主机)
IPv6数据报格式
hop limit即TTL
next header指明将数据交给哪个协议来处理,采用TLV格式(type ,length ,value)
4.4 通用转发和SDN
传统方式:路由器上实现协议实体,自己计算路由表,作路由通告
SDN:逻辑上集中的控制平面
流表可以匹配很多东西,源地址,目标地址,TCP/UDP协议,甚至可以更改头字段中的一些信息,对数据报进行block等等
SDN的主要思路
SDN的优势: