data-plane role: forward datagrams from input links to output links
control plane: coordinate the local ,per-router forwarding actions so that datagrams are ultimately transferred end -to end
https://allenwu.itscoder.com/ji-suan-ji-wang-luo
知识点总结
Control Plane
SDN Approach
由远程服务器来决定以及分配转发表的值。
远程服务器与路由器通过交换含转发表以及其他路由信息来进行信息交换
traditional Approach
由路由算法来做决定以及分配转发表的值
网络层的三个主要功能
1.连接建立
2.转发
3.路由选择
路由器作用: 把数据报从入链路转到出链路
转发与路由选择
转发是把分组从一个输入链路接口转移到适当的输出链路接口的路由器基本动作。
路由选择是网络范围的过程,决定分组从源到目的地所采取的端到端路径。
分组交换机
定义: 一台通用分组交换设备,根据分组首部字段中的值,从输入链路接口到输出链路接口转移分组。
如果基于链路层字段做转发决定,为链路层交换机
如果基于网络层字段的值做转发决定,为路由器
虚电路和数据报网络
与运输层的UDP和TCP相似,网络层也能在两台主机之间提供无连接服务或者连接服务。无连接不需要建立握手,而连接在主机和主机之间需要进行握手
虚电路: 仅在网络层提供链接服务的计算机网络
数据报网络: 提供无连接服务的计算机网络
运输层面向连接服务是在网络边缘的端系统实现的,而网络层的连接服务除了在端系统,还会在网络核心的路由器中实现。
虚电路网络
虚电路的组成:
1.源和目的主机之间的路径(一系列链路和路由器)
2.VC号 沿着该路径的每段链路的一个号码
3.每台路由器中的转发表表项
虚电路建立的三个阶段:
虚电路建立:发送运输层与网络层联系,指定接收方地址,等待网络建立虚电路
网络层决定发送方与接收方之间的路径,即该虚电路的所有分组要通过的一系列链路与路由器。网络层也为沿着该路径的每条链路决定一个VC号。最后,网络层在沿着路径的每台路由器的转发表中增加一个表项。
数据传送:一旦创建了虚电路,分组就可以沿着虚电路流动
运输层的链接建立仅仅涉及两个端系统,但在网络层链接建立期间,端系统路径上的路由器也要参与虚电路的建立。
数据报网络
每当端系统要发送分组,就为该分组加上目的端系统的地址,然后把分组推进网络中。不维护任何虚电路的状态信息。
路由器每台都使用分组的目的地址来转发该分组,每台路由器有一个将目的地址映射到链路接口的转发表,当分组到达路由器的时候,路由器使用该分组的目的地址在转发表中查找合适的输出链路接口,然后路由器会把分组向该输出链路接口转发。
路由器通过用分组的目的地址的前缀与转发表中的表项进行匹配,如果匹配的话路由器则向与该匹配项想联系的链路转发分组。有相同前缀的,选择前缀最长对应的链路接口,并且使用最长前缀匹配规则。
数据报网络中路由器不维持连接状态信息,但是转发表维持。
路由器工作原理
路由器体系结构:
输入端口
交换结构
输出端口
路由选择处理器
路由器负责转发功能:把分组从入链路传送到出链路。
输入输出分组,交换结构实现的转发功能:路由器转发平面,用硬件来实现。
控制功能,即执行路由选择协议,路由器控制平面,由软件来实现
输入端口
输入端口的线路端接功能与链路层处理实现用于各个输入链路的物理层和链路层,路由器在输入端口用转发表来查找输出端口,使得到达的分组能够经过交换结构转发到输出端口。
转发表是由路由选择处理器设计和更新的。
交换结构
路由器的核心部位
正是通过这种交换结构,分组才能实际地从一个输入端口交换到一个输出端口中。
- 经内存交换
端口会先通过中断方式向路由选择处理器发出信号,分组会被复制到内存当中,路由选择处理器会从首部中提取目的地址,然后再转发表中找出适当的输出端口,并把分组复制到输出端口的缓存中。
如果内存带宽为每秒写进或者读内存B个分组,那么总的转发吞吐量必然小于B/2
- 经总线交换
不需要路由选择处理器的干预,输入端口经过一个共享总线把分组直接传送到输出端口,但一次只有一个分组能够跨越总线
- 经互联网络交换
某个时刻经过给定总线仅有一个分组能够发送。
主动队列管理
在缓存填满之前随机丢弃或者在首部加标记一个分组,以便向发送方提供一个拥塞信号。
RED:随机早期检测。
详情看课本
网际协议
网络层的三个主要组件:
1.IP协议 完成网络层的编址与转发
2.路由选择部分,决定了数据报从源到目的地所流经的路径
3.报告数据报中的差错和对某些网络层信息请求进行相应的设施(ICMP)控制报文协议
IPv4 数据报格式
链路层frame能够承载的最大数据量:最大传送单元MTU
如果MTU比IP数据包长度要小,如何把这个过大的IP分组压缩到链路层帧的有效载荷字段?
IP数据报分片,把数据报中的数据分片成两个或者更多个较小的IP数据报,用单独的链路层封装这些较小的IP数据报,然后向输出链路上发送这些帧,这些较小的数据报叫做片。
同时IPv4设计者把标志,标识,片偏移字段放在了IP数据报首部中。
发送主机会为它发送的每个数据报的标识号加1,每个数据报具有初始数据报的源地址,目的地址和标识号。IP是一种不可靠服务,因此为了让目的主机绝对相信他已经收到了初始数据包的最后一个片,最后一个片的标志比特设为0.
一台主机通常只有一条链路连接到网络,当主机的IP想发送一个数据报的时候,他就在该链路上发送。主机与物理链路之间的边界叫做接口,路由器的任务是从链路上接收数据报并且从某些其他链路转发出去,因此路由器必须拥有两条或者多条链路与它链接。
每台主机和路由器都能发送和接收IP数据报,IP要求每台主机和路由器接口有自己的IP地址,因此一个IP地址技术上是和一个接口相关联的.
每个IP地址长度为32bit,eg
193.32.216.9 可以表示为
11000001 00100000 11011000 00001001
用IP术语来说,互联若干个主机接口和路由器接口的网络形成一个子网。
这些主机接口与路由器接口形成一个子网。
eg 223.1.1.0/24 /24 称为子网掩码
指示了32个bit最左侧的24个bit定义子网地址 任何要连接到223.1.1.0 /24的主机都要求其地址具有223.1.1.xxx的形式
a.b.c.d/x 前x最高比特构成了IP地址的网络部分,称为网络前缀。
该子网内部设备的IP地址将共享前缀,这样可以减少路由器中转发表的长度
IP广播地址 255.255.255.255 主机发出一个目的地址为广播地址的数据报的时候,报文会交付给同一个网络中的所有主机。路由器会有选择的向临近子网转发该报文。
主机如何获得IP地址
1.获取一块地址
可以从ISP获取。
2.获取主机地址,动态主机配置协议
当有主机加入时候,DHCP服务器从当前可用地址池分配任意一个地址给它,每当一台主机离开的时候,地址会被收回到这个池中。除了主机IP地址的分配,还允许主机知道他的子网掩码,第一跳路由器地址与本地DNS服务器的地址。
DHCP 服务器发现
DHCP客户主机生成包含DHCP发现报文的IP数据报,其中使用广播目的地址255.255.255.255并且使用本主机的源地址0.0.0.0,DHCP客户将该IP数据报传递给链路层,链路层然后把该帧广播到所有与该子网连接的子网
DHCP 服务器提供
DHCP服务器收到一个DHCP发现报文的时候,用一个DHCP提供报文向客户作出相应。
仍然使用255.255.255.255 广播地址。报文提供了IP地址租用期,网络掩码,IP地址等信息
DHCP 请求
新到达的客户从一个或多个服务器中提供选择一个,并向选中的服务器提供一个DHCP请求报文响应。
DHCP ACK
用DHCP ACK 报文对DHCP请求报文进行响应。
3.网络地址的转换
NAT路由器通过NAT转换表来指导应该把某个分组转发给哪个内部主机,NAT转换表包含了端口号和IP地址。
ICMP
因特网控制报文协议
用于主机与路由器彼此沟通网络层的信息。典型用途是差错报告。
工作原理:
源主机向目的主机发送一系列普通的IP数据报,这些数据报每个携带了一个具有不可到达UDP端口号的UDP报文段,数据包的TTL逐个增加。第N个数据报到达第N台路由器的时候,第n台路由器观察到这个数据包的TTL刚好过期。路由器会丢弃该数据报并发送一个ICMP告警报给源主机,这个告警报包含了路由器的名字以及IP地址。
IPV6
dual stack 使得该方法的IPV6还会有完整的IPV4实现。