4. 1 导论

网络层功能: ? 转发: 将分组从路由器的输入接口转发到合适的输出接口 ? 路由: 使用路由算法来决定分组从发送主机到目标接收主机的路径 ?路由选择算法 ?路由选择协议 旅行的类比: ? 转发: 通过单个路口的过程 ? 路由: 从源到目的的路由路径规划过程

数据平面
 
控制平面

网络服务模型 Q: 从发送方主机到接收方主机传输数据报的“通道”,网络提供什么样的服务模型? 对于单个数据报的服务: ? 可靠传送 ? 延迟保证,如:少于40ms的延迟 对于数据报流的服务: ? 保序数据报传送 ? 保证流的最小带宽 ? 分组之间的延迟差
连接建立 ? 在某些网络架构中是第三个重要的功能 ? ATM, frame relay, X.25 ? 在分组传输之前,在两个主机之间,在通过一些路由器所构成的路径上建立一个网络层连接 ? 涉及到路由器 ? 网络层和传输层连接服务区别: ? 网络层: 在2个主机之间,涉及到路径上的一些路由器 ? 传输层: 在2个进程之间,很可能只体现在端系统上(TCP连接)

4.2 路由器组成
           
    
4.3 IP: Internet Protocol
互联网的网络层 
数据报格式

分片

IPv4地址
 
子网
 
IP 地址分类
  

子网掩码(subnet mask)
 
如何获得一个IP地址
Q: 主机如何获得一个IP地址? ? 系统管理员将地址配置在一个文件中 ?Wintel: control-panel->network->configuration->tcp/ip->properties ?UNIX: /etc/rc.config ? DHCP: Dynamic Host Configuration Protocol: 从服务器中动态获得一个IP地址 ?“plug-and-play”
DHCP: Dynamic Host Configuration Protocol
目标: 允许主机在加入网络的时候,动态地从服务器那里获得IP地址: ? 可以更新对主机在用IP地址的租用期-租期快到了 ? 重新启动时,允许重新使用以前用过的IP地址 ? 支持移动用户加入到该网络(短期在网) DHCP工作概况: ? 主机广播“DHCP discover” 报文[可选] ? DHCP 服务器用 “DHCP offer”提供报文响应[可选] ? 主机请求IP地址:发送 “DHCP request” 报文 ? DHCP服务器发送地址:“DHCP ack” 报文
 
DHCP: 不仅仅是IP addresses DHCP 返回: ? IP 地址 ? 第一跳路由器的IP地址(默认网关) ? DNS服务器的域名和IP地址 ? 子网掩码 (指示地址部分的网络号和主机号)       IP 编址: 如何获得一块地址 Q: 一个ISP如何获得一个地址块? A: ICANN: Internet Corporation for Assigned Names and Numbers ? 分配地址 ? 管理DNS ? 分配域名,解决冲突
NAT:网络地址转换
 ? 动机: 本地网络只有一个有效IP地址: ?不需要从ISP分配一块地址,可用一个IP地址用于所有的(局域网)设备–省钱 ?可以在局域网改变设备的地址情况下而无须通知外界 ?可以改变ISP(地址变化)而不需要改变内部的设备地址 ?局域网内部的设备没有明确的地址,对外是不可见的–安全
实现: NAT 路由器必须: ?外出数据包:替换源地址和端口号为NAT IP地址和新的端口号,目标IP和端口不变 …远端的C/S将会用NAP IP地址,新端口号作为目标地址 ?记住每个转换替换对(在NAT转换表中) … 源IP,端口 vs NAP IP ,新端口 ?进入数据包:替换目标IP地址和端口号,采用存储在NAT表中的mapping表项,用(源IP,端口)
 ? 16-bit端口字段: ? 6万多个同时连接,一个局域网! ? 对NAT是有争议的: ? 路由器只应该对第3层做信息处理,而这里对端口号(4层)作了处理 ? 违反了end-to-end 原则 ? 端到端原则:复杂性放到网络边缘 ? 无需借助中转和变换,就可以直接传送到目标主机 ? NAT可能要被一些应用设计者考虑, eg, P2P applications ? 外网的机器无法主动连接到内网的机器上 ? 地址短缺问题可以被IPv6 解决 ? NAT穿越: 如果客户端需要连接在NAT后面的服务器,如何操作
  
IPv6
IPv6:动机
? 初始动机: 32-bit地址空间将会被很快用完 ? 另外的动机: ? 头部格式改变帮助加速处理和转发 ? TTL-1 ? 头部checksum ? 分片 ? 头部格式改变帮助QoS IPv6 数据报格式: ? 固定的40 字节头部 ? 数据报传输过程中,不允许分片      
4.4 通用转发和SDN
网络层功能为例的数据平面和控制平面 网络层功能: ?转发: 对于从某个端口到来的分组转发到合适的输出端口 ?路由: 决定分组从源端到目标端的路径 ? 路由算法 类比: 旅行 ? 转发: 一个多岔路口的进入和转出过程 ? 路由: 规划从源到目标的旅行路径  
数量众多、功能各异的中间盒 ? 路由器的网络层功能: ? IP转发:对于到来的分组按照路由表决定如何转发,数据平面 ? 路由:决定路径,计算路由表;处在控制平面 ? 还有其他种类繁多网络设备(中间盒): ? 交换机;防火墙;NAT;IDS;负载均衡设备 ? 未来:不断增加的需求和相应的网络设备 ? 需要不同的设备去实现不同的网络功能 ? 每台设备集成了控制平面和数据平面的功能 ? 控制平面分布式地实现了各种控制平面功能 ? 升级和部署网络设备非常困难   
匹配
SDN的主要思路
? 网络设备数据平面和控制平面分离 ? 数据平面-分组交换机 ? 将路由器、交换机和目前大多数网络设备的功能进一步抽 象成:按照流表(由控制平面设置的控制逻辑)进行PDU (帧、分组)的动作(包括转发、丢弃、拷贝、泛洪、阻塞) ? 统一化设备功能:SDN交换机(分组交换机),执行控制逻辑 ? 控制平面-控制器+网络应用 ? 分离、集中 ? 计算和下发控制逻辑:流表
SDN控制平面和数据平面分离的优势 ? 水平集成控制平面的开放实现(而非私有实现),创造出好的产业生态,促进发展 ? 分组交换机、控制器和各种控制逻辑网络应用app可由不同厂商生产,专业化,引入竞争形成良好生态 ? 集中式实现控制逻辑,网络管理容易: ? 集中式控制器了解网络状况,编程简单,传统方式困难 ? 避免路由器的误配置 ? 基于流表的匹配+行动的工作方式允许“可编程的”分组交换机 ? 实现流量工程等高级特性 ? 在此框架下实现各种新型(未来)的网络设备
   
行动
   

OpenFLow有关“匹配+行动”的运行实例
 
  
|