计算机网络笔记-第四章-网络层
[TOC]
一、导论
网络层服务:
- 在发送主机和接收主机对之间传送段(segment)
- 在发送端将段封装到数据报中
- 在接收端,将段上交给传输层实体
- 网络层协议存在于每一个主机和路由器
- 路由器检查每一个经过它的IP数据报的头部
网络层关键功能:
- 转发:将分组从路由器的输入接口转发到合适的输出接口
- 路由:使用路由算法来决定分组从发送主机到目标接收主机的路径
- 路由选择算法
- 路由选择协议(RIP,OSPF,BGP)
- 转发是通过单个路口的过程
- 路由是从源到目的的路由规划过程
(一)网络层:数据平面
数据平面:决定从路由器输入端口到达的分组如何转发到输出端口
转发方式:
传统方式:基于目标地址+转发表(控制平面:路由算法决定端到端的路径,数据平面:IP协议根据转发表决定了IP数据报在此路由器上的局部转发)
SDN方式:基于多个字段+流表
(二)网络层:控制平面
控制平面:决定数据报如何在路由器之间路由,决定数据报从源到目标主机之间的端到端路径
两个控制方面方法:
传统的路由算法:在路由器中被实现(分布式)
SDN:在远程的服务器中实现(集中式)
网络服务模型:
问:从发送方主机到接收方主机传输数据报的“通道” ,网络提供什么样的服务模型?
对于单个数据报的服务:可靠传输+延迟保证(例如 少于40ms的延迟)
对于数据报流的服务:保序数据报传送+保证流的最小带宽+分组之间的延迟差
二、路由器组成
(一)路由器结构概述
看书。
(二)输入端口功能
根据数据报头部的信息:目的地址在输入端口缓存中的转发表中查找合适的输出端口(匹配+行动)
基于目标的转发:仅仅依赖于IP数据报的目标IP地址(传统方法)
通用转发:基于头部字段的任意集合进行转发
(三)最长前缀匹配
当给定目标地址转发表时,采用最长地址前缀匹配的目标地址表项
最长前缀匹配:在路由器中经常采用TCAMs( ternary content addressable memories)硬件来完成
作用:方便查询路由表,提高效率
(四)输入端口缓存
当交换机构的速率小于输入端口的汇聚速率时, 在输入端口可能要排队->排队延时->输入缓存溢出->数据丢失
(五)交换结构
将分组从输入缓冲区传输到合适的输出端口
交换速率:分组可以按照该速率从输入传输到输出
说明:此次的运行速度是输入/输出链路速率的若干倍,例如N个输入端口:交换机构的交换速度是输入线路速度的N倍比较理想,才不会成为瓶颈
三种典型交换结构:memory bus crossbar
memory:
- 在CPU直接控制下的交换,采用传统的计算机
- 分组被拷贝到系统内存,CPU从分组的头部提取出目标地址,查找转发表,找到对应的输出端口,拷贝到输出端口
- 转发速率被内存的带宽限制 (数据报通过BUS两遍)
- 一次只能转发一个分组
bus:
- 数据报通过共享总线,从输入端口转发到输出端口
- 总线竞争: 交换速度受限于总线带宽
- 1次处理一个分组
- 1 Gbps bus, Cisco 1900; 32 Gbps bus, Cisco 5600;对于接入或企业级路由器,速度足够(但不适合区域或骨干网络)
- 数据报通过BUS一遍
crossbar:
- 同时并发转发多个分组,克服总线带宽限制
- Banyan(榕树)网络,crossbar(纵横) 和其它的互联网络被开发,将多个处理器连接成多处理器
- 当分组从端口A到达,转给端口Y;控制器短接相应的两个总线
- 高级设计:将数据报分片为固定长度的信元,通过交换网络交换
- Cisco12000:以60Gbps的交换速率通过互联网络
(六)输出端口
不是所有的数据报(分组)都能成功从输出端口输出,因为会存在数据报丢失的情况,由于拥塞,缓存区没有空间。
- 当数据报从交换机构的到达速度比传输速率快就需要输出端口缓存
- 由调度规则选择排队的数据报进行传输
- 输出端口排队
(七)调度机制
调度即选择下一个要通过链路传输的分组
调度方式:
FIFO(队列 先到先得)
丢弃策略:如果分组到达一个满的队列,哪个分组将会被抛弃?
- tail drop:丢失刚到达的分组
- priority:根据优先权丢失/移除分组
- random:随机的丢失/移除
优先权:
按照分组的优先权选择发送下一个要通过链路传输的分组
三、IP:Internet Protocol
害,这里就放图了(你知不知道插图的过程虽然简单但是真的很烦耶)
(一)数据报格式
(二)分片与重组
(三)IPV4地址以及相关概念
这一部分的话我觉得想学明白还是得多看看书,多查阅资料我就简单的放图了。
四种IP地址分类:
A类IP地址
A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是”0”;
1 |
|
1 |
|
B类IP地址
B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是”10”;
1 |
|
1 |
|
C类IP地址
C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是”110”;
1 |
|
1 |
|
特殊的IP地址
IP地址 | 说明 | 备注 |
---|---|---|
0.0.0.0 | 表示整个网络 | 可表示本机源地址,也可表示某个特定主机 |
255.255.255.255 | 一个特殊的广播地址,意味着所有的主机 | x.255.255.255/x.x.255.255/x.x.x.255 |
127.x.x.x | 回环测试地址,默认127.0.0.1 | 127.0.0.2 127.1.1.1都可以代表本机回环地址 |
(四)DHCP:Dynamic Host Configuration Protocol
允许主机在加入网络的时候,动态地从服务器那里获得IP地址….这一块还得重新学习一下,有一个关于子网的问题。
(五)NAT:Network Address Translation
感觉不重要…
(六)IPV6
为什么有IPV4还要IPV6?
因为IPV4用完了,并且IPV6对IPV4的不足做了优化。
IPv6数据报格式:固定的40 字节头部,数据报传输过程中,不允许分片
四、通用转发和SDN
(一)网络层
网络层功能:
- 转发:对于从某个端口到来的分组转发到合适的输出端口
- 路由:觉得分组从源端到目标端的路径
- 网络层包括数据平面和控制平面。
路由器的网络层功能:
- IP转发:对于到来的分组按照路由表决定如何转发,数据平面
- 路由:决定路径,计算路由表;处在控制平面
还有其他种类繁多网络设备(中间盒):
- 交换机;防火墙;NAT;IDS;负载均衡设备
网络设备控制平面的实现方式特点:
互联网网络设备:传统方式都是通过分布式,每台设备的方法来实现数据平面和控制平面功能
- 垂直集成:每台路由器或其他网络设备,包括
- 硬件、在私有的操作系统
- 互联网标准协议(IP,RIP,IS-IS,OSPF,BGP)的私有实现
- 从上到下都有一个厂商提供*代价大,被设备上“绑架”)
- 每个设备都实现了数据平面和控制平面的事情
- 控制平面的功能是分布式实现的
- 设备基本上只能(分布式升级困难)按照固定方式工作, 控制逻辑固化。不同的网络功能需要不同的
- 数据+控制平面)集成>(控制逻辑)分布->固化
- 代价大;升级困难;管理困难等
传统方式实现网络功能的问题
- 垂直集成>昂贵、不便于创新的生态
- 分布式、固化设备功能==网络设备种类繁多
- 无法改变路由等工作逻辑,无法实现流量工程等高级特性
- 配置错误影响全网运行;升级和维护会涉及到全网设备:管理困难
- 要增加新的网络功能,需要设计、实现以及部署新的 特定设备,设备种类繁多
- ~2005: 开始重新思考网络控制平面的处理方式
- 集中:远程的控制器集中实现控制逻辑
- 远程:数据平面和控制平面的分离
(二)SDN
SDN:逻辑上集中的控制平面 实现了控制平面和数据平面的分离。
一个不同的(通常是远程)控制器和CA交互,控制器决定分组 转发的逻辑(可编程),CA所在设备执行逻辑。
SDN的实现思路:
- 网络设备数据平面和控制平面分离
- 数据平面-分组交换机
- 将路由器、交换机和目前大多数网络设备的功能进一步抽象成:按照流表(由控制平面设置的控制逻辑)进行PDU (帧、分组)的动作(包括转发、丢弃、拷贝、泛洪、阻塞)
- 统一化设备功能:SDN交换机(分组交换机),执行控制逻辑
SDN控制平面和数据平面分离的优势
- 水平集成控制平面的开放实现(而非私有实 现),创造出好的产业生态,促进发展
- 分组交换机、控制器和各种控制逻辑网络应用app可由不同 厂商生产,专业化,引入竞争形成良好生态
- 集中式实现控制逻辑,网络管理容易
- 集中式控制器了解网络状况,编程简单,传统方式困难
- 避免路由器的误配置
- 基于流表的匹配+行动的工作方式允许“可编程的”分组交换机
- 实现流量工程等高级特性
- 在此框架下实现各种新型(未来)的网络设备
- 流量工程:传统路由比较困难
不想贴图了,呜呜,看书看书。
(三)OpenFlow
OpenFlow数据平面抽象
- 流:由分组(帧)头部字段所定义
- 通用转发:简单的分组处理规则
- 模式: 将分组头部字段和流表进行匹配
- 行动:对于匹配上的分组,可以是丢弃、转发、修改、 将匹配的分组发送给控制器
- 优先权Priority: 几个模式匹配了,优先采用哪个,消除歧义
- 计数器Counters:#bytes 以及#packets
- 路由器中的流表定义了路由器的匹配+行动规则(流表由控制器计算并下发)
这个上课的时候其实我也没怎么弄明白,得查阅资料学习一下。
五、中间设备(补充)
从一般的概念来讲,将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备:
①物理层使用的中间设备叫 转发器
②数据链路层使用的中间设备叫作网桥或桥接器,以及交换机。
③网络层使用的中间设备叫作路由器
④在网络层以上使用的中间设备叫作网关。用网关连接两个不兼容的系统需要在高层进行协议的转换。