计算机网络-SDN基本概念
网络层
该层向上提供简单灵活的,无连接的,尽最大努力交付的数据报服务,向下屏蔽异构网络的差异
需要注意的是:
-
该服务是不可靠的
-
异构网络:物理层,数据链路层,网络层协议可以不同,而网络层以上的高层协议必须相同。
-
网络层主要任务是转发和路由选择
-
工作在网络层的设备–路由器的主要功能是路由选择(匹配)和分组转发(动作)
传统路由器
一种具有多个输入和输出端口的专用计算机
路由器交换信息的种类:
-
数据分组
-
路由信息分组(RIP或OSPF分组)
需要注意的是:
-
当输入端口进来是数据分组,交给交换结构处理;若进来的是路由信息分组,交给路由选择处理机处理。
-
路由器根据路由算法,和相邻的路由器周期性交换路由信息才能得出路由表,再根据路由表得出转发表。
-
转发过程中IP数据报首部中的源地址和目的地址是固定的,不会出现中间经过的路由器的IP地址。无论是间接交付还是直接交付,都需要用到ARP,即根据硬件地址交付目的主机。
-
所有的分组转发都是基于目的主机所在的网络,但是可以采用特定主机路由进行测试。
-
路由器还可以采用默认路由以减小路由表占用的空间和搜索路由表使用的时间。
-
软件实现路由表,硬件实现转发表。
-
路由器隔离了广播域
方框中的1,2,3分别代表物理层,数据链路层和网络层的处理模块。
控制层面(路由选择)和数据层面(分组转发)是集成在一个设备里面的。
每个输入端口都有转发表的副本,交换处理机负责更新这些副本。
分组丢失往往发生在路由器的输入或输出队列产生溢出的时候。
软件定义网络SDN(Software Defined Network)
新型网络体系结构
SDN的四大特征:
-
基于流的转发
-
数据层面和控制层面的分离(不在同一个设备中)
-
位于数据层面分组交换机之外的网络控制功能
-
可编程的网络
远程控制器
SDN控制器(网络操作系统)+网络控制应用程序
OpenFlow协议
SDN体系结构中控制层面和数据层面之间的通信接口。
控制层面的控制器通过OpenFlow协议对数据层面的物理设备进行直接访问和控制。
每个OpenFlow交换机必须有一个或多个流表,每个流表含多个流表项。
计数器是一组计数器:
-
记录已经与该流表项匹配的分组数量的计数器
-
记录该流表项上次更新到现在经历时间的计数器
动作字段是一组动作:
-
把分组转发到指明的端口
-
丢弃分组
-
把分组进行复制后再从多个端口转发出去
-
重写分组的首部字段(包括数据链路层,网际层及运输层的首部)
两者对比
控制层面
前面提到传统的路由器根据路由算法,和相邻的路由器周期性交换路由信息才能得出路由表,由路由表得到转发表。
在SDN中,远程控制器掌握各主机和整个网络的状态,能够为每一个数据分组计算出最佳的路由并为每一个路由器生成正确的转发表(实际上是流表)。因此不需要再进行路由信息分组的转发。
数据层面
传统路由器的分组转发:
-
进行“匹配”:查找转发表中的网络前缀,并进行最长前缀匹配
-
执行“动作”:把分组从匹配结果指明的接口转发出去
SDN的广义转发:
-
进行“匹配”:能够对网络体系中各层(数据链路层,网络层,运输层)首部中的字段进行匹配
-
执行“动作”:不仅转发分组,还可以负载均衡,重写IP首部(类似NAT路由器中的地址转发),人为阻挡或丢弃一些分组(类似防火墙)
在SDN的广义转发中,完成“匹配+动作”的设备并不局限在网络层工作,因此不再称为路由器,而称为“OpenFlow交换机”或“分组交换机”。在交换机中,既可以处理数据链路层的帧,也可以处理网际层的IP数据报,还可以处理运输层的TCP或UDP报文。
相应的路由器中的转发表变为流表。SDN远程控制器通过一个安全信道使用OpenFlow协议来管理OpenFlow交换机中的流表。
该笔记参考网络资源如下:
-
计算机网络第七版[谢希仁]