网络层的路由与IP协议概览

in #cn26 days ago

网络层服务

image.png

  • 在发送主机和接收主机对之间传送段(segment)
  • 在发送端将段封装刀数据报中
  • 在接收端,将段上交给传输层实体
  • 网络层协议存在于每一个主机和路由器
  • 路由器检查每一个经过它的IP数据报的头部

关键功能

  • 转发
    将分组从路由器的输入接口转发到合适的输出接口

  • 路由
    使用路由算法来决定分组从发送主机到目标接收主机的路径(路由选择算法,路由选择协议)

网络层平面

  • 数据平面
  1. 本地的,没有路由器自身功能
  2. 决定从路由器输入端口到达的分组如何转发到输出端口
  3. 转发功能:
    传统方式:基于目标ip地址 + 本地路由转发表
    SDN方式:基于多个字段+流表
  • 控制平面
  1. 网络范围内的逻辑
  2. 决定数据报如何在路由器之间路由,决定数据报从源到目标主机之间的端到端的路径
  3. 控制平面算法
    传统路由算法:在路由器中实现
    软件定义网络:在远程的服务器中实现
    image.png

路由器

通用路由器体系架构:

  1. 路由: 运行路由选择算法,路由协议(RIP,OSPF,BGP) 生成路由表。(按照ip地址网络号进行单条路由
  2. 转发:从输入到输出链路交换数据报-根据路由表进行分组的转发。
    image.png
Destination Subnet NumMaskNextInterface
202.38.73.0255.255.255.192IPXLan1
202.38.64.0255.255.255.192IPYLan2
....
Default-IPZLan0
  1. 获得IP数据报的目标地址
  2. 对于转发表中的每一个表项
    按照规则(IP Des Adds) & (mask) == destination 匹配,按照表项对应的接口转发该数据报。
    如果都没有找到,则使用默认表项转发数据报。

输入端的功能
在不同底层的数据功能支持下的,将处理好的数据在网络层的路由器中进行分布式交换信息。

从基础物理信号转成数字信号的比特流数据,在链路层将数据封装好成帧,在向上传给网络层。
image.png

当交换机的速率小于输入端口的速率时,在输入端口的数据报可能要排队。根据不同的策略进行调度分配。

交换结构
将分组从输入缓冲区传输到合适的输出端口。
交换速率:分组可以按照不同的速率从输入传输到输出。
交换结构:
image.png

输出端的功能

image.png

  1. 党数据报从交换机的到达速率比传输速率快,就需要输出端口缓存
  2. 由调度规则选择排队的数据报进行传输。(选择下一个要通过链路传输的分组)
    常用调度机制:FIFO,优先权调度,多类等。

IP概论

IP数据报格式

image.png

IP分片和重组

  • 网络链路有MTU(最大传输单元): 链路层帧所能携带的最大数据长度
    不同的链路类型(比如以太网, ATM网络..) 有不同的MTU标准。

  • 大的IP数据报在网络上被分片
    一个数据报被分割成若干个小的数据报(在IP数据报格式字段中:有相同的ID,不同偏移量,分片标记)
    重组智能在最终的目标主机上进行
    IP头部的信息被用于标识,排序相关的分片

image.png


IP分片和重组的例子

image.png

IP地址

  • IP地址
    32位标识,对主机或者路由器的接口地址

  • 接口(主机/路由器和物理链路的连接处)
    路由器通常拥有多个接口
    主机也可以有多个接口
    ip地址和每一个接口关联

  • 一个IP地址和一个接口相关联

IP子网(subnet)

  1. 一个子网内的节点(主机或者路由器),它们的IP地址高位部分相同(网络号)。
  2. 无需路由器介入,子网内的各主机可以在物理上互相直接到达。

内网IP地址

  1. 专用地址: 地址空间的一部分供专用地址使用
  2. 不会被当作公网地址分配,不会与公网地址重复
  3. 路由器不对目标地址是专用地址的分组进行转发
  4. 专用地址范围(内网地址范围)
    A类: 10.0.0.0 ~ 10.255.x.x
    B类: 172.16.0.0 ~ 172.31.255.255
    C类: 192.168.0.0 ~192.168.255.255

IP编地址:CIDR(classless inter domain routing)

  1. 子网部分的划分可以在任意的位置
  2. 地址格式 a.b.c.d/x , 其中x是地址中子网号的长度。
    image.png

NAT: network address translation

NAT(Network Address Translation,网络地址转换)是一种网络技术,它允许一个整个网络中的多个设备共享一个或一组公共IP地址。NAT主要用于在私有网络(如家庭或企业内部网络)和公共网络(如互联网)之间进行通信时,转换数据包的源地址和目的地址。

image.png

NAT的类型主要有三种:

  • 静态NAT:为内部网络中的每个设备分配一个固定的公共IP地址。
  • 动态NAT:为内部网络中的设备动态分配公共IP地址,通常来自一个地址池。
  • 端口地址转换(PAT):也称为NAT过载,允许多个设备共享单个公共IP地址,通过改变源端口号来区分不同的会话。

实现: NAT的路由器必须:

  1. 外出的数据包: 替换源地址和端口号位NAT IP地址和新的端口号,目标IP和端口不变。远端的C/S 将会用NAT IP地址,新端口号作为目标地址。
  2. 需要记住每个转换替换对(NAT的转换表的端口映射)
  3. 进入的数据包: 替换目标IP地址和端口号,采用存储在NAT表中的mapping 表项,用源IP,端口。

image.png

Coin Marketplace

STEEM 0.29
TRX 0.13
JST 0.033
BTC 63035.00
ETH 3022.97
USDT 1.00
SBD 3.82