IP 层:The Data Plane
SDN: software defined network:软件定义网络和软件定义一切.
本章重点 4.3节
- network layer service models
- forwarding versus routing
- how a router works
- Generalized forwarding
网络层在第四章的内容是数据平面,第五章的内容是控制平面.(宏观上调度逻辑)
Network layer
终端系统上TCP/IP是5层的协议栈.
TCP协议是不会运营在路由器上的.
Two key network-layer functions
转发:forwarding
路由器是一个硬件.
把一个packet从路由器的哪个路口到哪个出口.输入转发到相应的输出.
路由
从源端到目的端找到一条路由.找到最优的代价最小的路径.
数据平面和控制平面
数据平面
微观的,路由器内部的.
控制平面
宏观的,全网络的.
传统实现方式:路由选择算法,明确图的结构和代价以后寻找到最优的.
非传统实现方式:SDN
SDN 专门的服务器控制各个路由器来进行路由选择.
此时我们对于整个硬件即是透明的.
单个路由器的控制平面
路由器内部会有一个转发表.
各个路由器之间直接数据交换(无组织无距离)与Remote controller的对比(locally centralized control plane)
Network service model
网络层到底提供了什么样的服务呢?
即网络层的service model是什么呢?
examples services for individual datagrams
对单个数据报文提供的服务模型
- guaranteed delivery
- guaranteed delivery with less than 40 msec delay
examples services for a flow of datagrams
对报文流提供的服务模型
- In-order datagram delivery
- guaranteed minimum bandwidth to flow
- restrictions on changes in inter-packet spacing
Internet: best efforts(Servce model)
Internet的服务模式是尽力而为.
What’s inside a router?
Overview
路由器就是做一个转发,路由器有很多个入口也有很多个出口.
physical layer->data link layer->network layer:IP层的转发表.
- 32位的Ip地址,即每8bit转化为一个字节.
转发表:最长前缀匹配
最长前缀匹配算法.
无论转发表多大,在一个时钟周期内总能完成寻址.
但路由器的寻址需要它快,这是可以用硬件的相关协助
Switching fabrics
Transfer packet from input buffer to appropriate
- memory
- Bus
- Crossbar
First generation routers
memory
Switching via a bus
总线的争用,受制于总线的存取速度.
Cross bar
两两连接克服总线.
Input port queuing
到达路由器的速度和路由器转发的速度的不匹配.
所以路由器需要乱冲去
输入缓冲
在进入路由器外进行等待
输出缓冲
到的速度比处理的传输速度快
当缓冲区不够时,丢包:
- 尾部丢包/随机丢包
- Scheduling:选择性的丢包
队列排序
How much buffering?
RTT
$\frac{RTT.c}{\sqrt{N}}$
Scheduling policies:priority
维护优先级队列
Round Robin(RR) scheduling
WFQ
类比选课的意愿值
Internet Protocol
路由器的转发表是由路由算法算出来的.
网络层的协议:routing protocols/IP protocols/ICMP protocols.
IPV4:版本:32位4字节的地址
fragment:分片
IP层下的链路层已经跟链路层相关了.
用offset将这些片拼起来.
Flgs:来标示这一片是最后一片.
MTU
mtu:最大传输单元
链路层:相邻的路由器之间的通讯,每个链路的MTU可能会不同.
IP是两台主机之间的通讯.
“片”的组装是位于端系统的组装.
一个IP的报文被链路层切成了3块.因为MTU是1500,而头部也占了20字节
IP寻址
无线网卡等借口的地址
有线的地址
点分十进制
子网(subnets)
前边的位是一样的.
高位相同/低位区分
将路由器去掉,去看有几个各自连接的孤岛.
子网掩码:前多少位是一样的.
如何理解子网掩码中的“子网”? - Dion的回答 - 知乎 https://www.zhihu.com/question/21064101/answer/17056026
网关:第一条的路由器。
内部地址
不经过路由器(HUB)
CIDR–IP地址的表达方式
无类别域间路由选择
主机是如何得到IP地址的?
How doesr a host get IP address?
当前24位,则子网中由多少的IP地址,全0和全1(255.255….)部可以算,故算出来的结果需要-2.即255.255.255.255是一个广播地址.
硬编码hard-coded
DHCP–动态获取IP地址
有一个租约:3600secs:即到期可以续约.
DHCP不光只能拿到IP地址,它还可以配置很多信息.
没有IP时,全零代表源,全一代表广播,所以计算的时候要去掉这两个不能计算。
DHCP这些在我们动态获取IP时都给了我们。
网关:第一跳的路由器.first hop router
DNS server
network mask(子网掩码)
NAT,内部转换成外部的IP地址.
作业:明确自己电脑的IP 地址是什么,再查询本地的子网掩码,默认网关.DNS 服务器
如果看到的是10.开头的,查询家里是否有一个对外的(ISP分配给我的)
再查询我的DHCP服务器在哪