计算机网络笔记-第四章-网络层

[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的交换速率通过互联网络

(六)输出端口

不是所有的数据报(分组)都能成功从输出端口输出,因为会存在数据报丢失的情况,由于拥塞,缓存区没有空间。

  1. 当数据报从交换机构的到达速度比传输速率快就需要输出端口缓存
  2. 由调度规则选择排队的数据报进行传输
  3. 输出端口排队

(七)调度机制

调度即选择下一个要通过链路传输的分组

调度方式:

FIFO(队列 先到先得)

丢弃策略:如果分组到达一个满的队列,哪个分组将会被抛弃?

  • tail drop:丢失刚到达的分组
  • priority:根据优先权丢失/移除分组
  • random:随机的丢失/移除

优先权:

按照分组的优先权选择发送下一个要通过链路传输的分组

三、IP:Internet Protocol

害,这里就放图了(你知不知道插图的过程虽然简单但是真的很烦耶)

(一)数据报格式

(二)分片与重组

(三)IPV4地址以及相关概念

这一部分的话我觉得想学明白还是得多看看书,多查阅资料我就简单的放图了。

四种IP地址分类:

A类IP地址

A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是”0”;

1
2
3
地址的表示范围为:0.0.0.0~127.255.255.255
默认子网掩码为:255.0.0.0 或 /8
255.0.0.0 =>11111111.00000000.00000000.00000000
1
2
3
4
5
6
7
网络号全为1的IP:127.x.x.x/8表示保留,用于本机回环测试用。
主机号全为0代表本主机所在的网络地址;主机号全为1代表该网络上的所有主机.故不能分配。

即:
A类地址可用的网络数为2^7-2=126个;
每个网络能容纳的主机数为2^24-2=16777214(上千万台);
一般分配给规模比较大的网络使用。

B类IP地址

B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是”10”;

1
2
地址范围是128.0.0.0191.255.255.255
默认子网掩码为:255.255.0.0或/16;
1
2
3
4
5
6
主机号全为0代表本主机所在的网络地址;主机号全为1代表该网络上的所有主机.故不能分配。

即:
B类地址可用的网络数为2^14-1=16383个;
每个网络能容纳的主机数为2^16-2=65534(上万台);
一般分配给中型的网络使用。

C类IP地址

C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是”110”;

1
2
地址范围是192.0.0.0223.255.255.255
默认子网掩码为:255.255.255.0或/24
1
2
3
4
5
6
主机号全为0代表本主机所在的网络地址;主机号全为1代表该网络上的所有主机.故不能分配。

即:
C类地址可用的网络数为2^21-1=2097151个;
个网络能容纳的主机数为2^8-2=254台;
一般分配给小型的网络使用。

特殊的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
    • 路由器中的流表定义了路由器的匹配+行动规则(流表由控制器计算并下发)

这个上课的时候其实我也没怎么弄明白,得查阅资料学习一下。

五、中间设备(补充)

从一般的概念来讲,将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备:

①物理层使用的中间设备叫 转发器

②数据链路层使用的中间设备叫作网桥桥接器,以及交换机

③网络层使用的中间设备叫作路由器

④在网络层以上使用的中间设备叫作网关。用网关连接两个不兼容的系统需要在高层进行协议的转换。


计算机网络笔记-第四章-网络层
https://crwei996.github.io/2022/10/11/计算机网络笔记-第四章/
Author
Crwei996
Posted on
October 11, 2022
Licensed under