网络原理自顶向下四网络层

网络层

网络层核心功能:转发与路由

转发:将分组从路由器的输入端口转移到合适的输出端口

转发表确定在本路由器如何转发分组

路由:确定分组从源到目的经过的路径。

  • 路由算法:确定通过网络的端到端路径。

某些网络的重要功能:连接建立

数据分组传输前需要建立连接,和运输层不一样的是所有网络设备路由器都会参与建立连接。

网络层是两个主机建立连接

运输层是两个应用进程建立连接

无连接服务

  • 不事先为分组确定传输路径
  • 每个分组独立路径
  • 不同分组可能传输路径不同
  • 数据报网络

连接服务:

  • 首先为分组确定传输路径
  • 沿这个路径传输
  • 系列分组传输路径相同
  • 传输结束后拆除
  • 虚电路网络

数据报网络虚电路网络是典型两类分组交换网络。

类似UDP和TCP。但是网络层是主机到主机.网络核心实现.

虚电路

一条从源主机到目的主机,类似于电路的路径。

  • 分组交换
  • 每个分组的传输利用链路的全部带宽
  • 源主机到目的主机的所有网络设备完成虚电路连接和功能

通信过程:

  • 呼叫建立(call setup) -》 数据传输 -》 拆除呼叫
  • 每个分组携带虚电路标识(VC ID),而不是目的主机地址
  • 虚电路经过的每个网络设备,维护每条经过他的虚电路连接状态
  • 链路,网络设备资源可以面向VC进行预分配
    • 预分配资源 = 可预期服务性能
    • 如ATM的电路仿真(CBR)

每条虚电路包括:

  • 从源主机到目的主机的一条路径
  • 虚电路号(VCID),沿路每段链路一个编号
  • 沿路每个网络层设备,利用转发表记录经过的每条虚电路

分组携带虚电路号VCID,而不是目的地址。
同一条VC,在每段链路上的VCID通常不同。

  • 路由器转发分组时依据转发表改写/替换虚电路号
虚电路信令协议

用于VC的建立,维护与拆除

  • 路径选择

应用于虚电路网络

  • 如ATM

目前的internet不采用

数据报网络

  • 无连接
  • 每个分组携带目的地址
  • 路由器根据分组的目的地址转发分组
    • 基于路由协议/算法构建转发表
    • 检索转发表
    • 每个分组独立选路
  • Internet网络是数据报网络
  • 路由算法
    • 根据地址范围进行转发
    • 最长前缀匹配优先

对比

Internet(数据报网络)

  • 计算机之间的数据交换
    • 弹性服务,没有严格要求
  • 链路类型众多
    • 特点性能各异
    • 同一服务困难

ATM(虚电路网络)

  • 电话网络演变而来
  • 核心业务是实时对话
    • 严格的时间,可靠性需求
    • 需要有保障的服务
  • 非智能端系统
    • 电话机
    • 传真机

IP协议

路由协议

  • 路径选择
  • RIP OSPF BGP

IP协议

  • 寻址规约
  • 数据报格式
  • 分组处理规约

ICMP协议

  • 差错报告
  • 路由器“信令”

IP数据报

  • 首部
    • 版本号 4比特 ipv4就是4
    • 首部长度 4比特 首部的长度,以4字节为单位 默认是5 表示20字节
    • 服务类型 8比特 期望获得哪种类型的服务 只有在网络提供区分服务时使用 通常是0
    • 总长度 16比特 IP数据报的长度(首部 + 数据),以字节为单位, 最大IP分组总长度 65535B 最小分组首部 20B IP分组数据最大可以是 65515B
    • 标识 16比特 ID,计数器+1
    • 标志位 3比特 保留1比特 DF = 1禁止分片 0 允许分片 MF = 1非最后一片 0 最后一片或未分片
    • 片偏移 13比特 IP分组分片封装原IP分组数据的相对偏移量 以8字节为单位
    • 生存时间 8比特 IP分组在网络中可以通过的路由器数(跳步数)
    • 协议 8比特 指示IP分组封装的是哪个协议的数据包 6是TCP或者17是UDP
    • 首部校验和 16比特 IP分组首部的差错检测 逐步计算
    • 源IP地址 32比特
    • 目的IP地址 32比特
    • 选项字段 变长 范围 1 - 40B 携带安全,源选路径,时间戳和路由记录等内容 实际很少被使用
    • 填充字段 变长 范围 0 - 3B 补齐整个首部,保证32位对齐
  • 数据

IP分片

链路最大数据单元MTU。如果现在的IP分组大于下个链路的MTU就可以进行分片。

  • 如果进行分片就分片,然后重组
  • 如果不可以分片则丢弃分组

分片过程:
假设IP分组长L,带转发MTU为M
若L > M且DF = 0,则可以分片
分片时每个分片的标识复制原IP分组的标识
通常分片时,除最后一个分片,都为MTU允许的最大分片
一个最大分片可封装的应该是 8 的倍数。
d = M - 20 / 8 * 8
n = L - 20 / d
分片偏移量
Fi = d / 8 * (i - 1)
每片总长度
d + 20
最后一个
L - (n - 1)d

IP编址

32比特(IPv4) 11011111 00000001 00000001 00000001 = 233.1.1.1
IP地址与每个接口关联

  • 网络号:高位比特
  • 主机号:低位比特

IP子网

IP子网:

  • IP地址具有相同的网络号
  • 不跨越路由器可以彼此物理联通
  • 233.1.1.0/24

有类编址
A类地址:

  • 网络号 8比特 主机号 24比特 50% 0.0.0.0 - 127.255.255.255
    B类地址:
  • 网络号 16比特 主机号 16比特 25% 128.0.0.0 - 191.255.255.255
    C类地址:
  • 网络号 24比特 主机号 8比特 12.5% 192。0.0.0 - 223.255.255.255
    D类地址:
  • 6.25% 224.0.0.0 - 239.255.255.255
    E类地址:
  • 6.25% 240.0.0.0 - 255.255.255.255

私有IP地址:

  • A类:网络号10开头的 10...*
  • B类:172.16 - 172.31 16个
  • C类:192.168.0 - 192.168.255

IP地址:

  • 网络号:高位比特
  • 子网号:原主机号的部分
  • 主机号:地位比特

子网掩码:网络号和子网号取255,主机号取0

  • A类网络子网掩码 255.255.255.0

子网地址 + 子网掩码 = 准确确定子网大小

例子:

子网 201.2.3.0 子网掩码 255.255.255.0,划分为4个等长的子网。

  • 201.2.3.0 = 201.2.3.00000000 255.255.255.11000000 = 255.255.255.192
  • 201.2.3.64 = 201.2.3.01000000 255.255.255.11000000 = 255.255.255.192
  • 201.2.3.128 = 201.2.3.10000000 255.255.255.11000000 = 255.255.255.192
  • 201.2.3.192 = 201.2.3.11000000 255.255.255.11000000 = 255.255.255.192

将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址。
目的IP:172.32.1.112 = 10101100.00100000.00000001.01110000
子网掩码:255.255.254.0 = 11111111.11111111.11111110.00000000
子网地址:10101100.00100000.00000000.00000000 = 172.32.0.0
地址范围:172.32.0.0 - 172.32.1.255
可分配地址范围:172.32.0.1 - 172.32.1.254
广播地址:172.32.1.255

CIDR与路由聚合

无类域间路由CIDR

  • 消除传统的A类,B类,C类地址划分
  • 网络号 + 子网号 = 网络前缀 可以任意长度
  • 融合子网地址和子网掩码,方便子网划分
    • 无类地址格式:a.b.c.d/x 其中x为网络前缀长度
  • 提高IPv4地址空间分配效率
  • 提高路由效率
    • 将多个子网构成一个大的子网
    • 构造超网
    • 路由聚合

例如:
前23位是网络前缀,后9位是主机号
11001000 00010111 00010000 00000000
200.23.16.0/23

11001000.00010111.00010010.00000000
200.23.18.0/23

11001000.00010111.00010100.00000000
200.23.20.0/23
聚合成超网:
11001000 00010111 00010000 00000000
200.23.16.0/20

如果有一个子网不在也没事,路由记录两条信息。根据最长前缀匹配优先。不会出错。

DHCP

动态分配路由协议:
客户:DHCP discover

  • src:0.0.0.0:68
  • dest:255.255.255.255:67 广播
  • yiaddr:0.0.0.0
  • transactionID:654

DHCP服务器:DHCP offer

  • src:223.1.2.5:67 DHCP服务器的IP
  • dest:255.255.255.255:68 广播
  • yiaddr:223.1.2.4 分配的IP
  • transactionID:654
  • lifetime:3600 secs

客户:DHCP req

  • src:0.0.0.0:68
  • dest:255.255.255.255:67 广播
  • yiaddr:223.1.2.4 分配的IP
  • transactionID:655
  • lifetime:3600 secs

DHCP服务器:DHCP ACK

  • src:223.1.2.5:67 DHCP服务器的IP
  • dest:255.255.255.255:68 广播
  • yiaddr:223.1.2.4 分配的IP
  • transactionID:655
  • lifetime:3600 secs

网络地址转换NAT

子网使用一个公共IP。发送网络数据的时候路由器替换源IP地址。

动机:

  • 只需从ISP申请一个IP地址
    • IPv4地址耗尽
  • 本地网络地址是私有的,局部的,IP地址变更根外界没有影响
  • 变更ISP时候,无需修改内部网络IP
  • 内部网络设备对外界网络不可见,更加安全

实现:

  • 替换
    • 利用(NAT IP地址,新端口号)替换每一个外出IP数据报的(源IP地址,源端口号)
  • 记录
    • 将每对(NAT IP地址,新端口号)和(源IP地址,源端口号)记录在NAT转换表
  • 替换
    • 根据NAT转换表,利用(源IP地址,源端口号)替换(NAT IP地址,新端口号)

猜你喜欢

转载自blog.csdn.net/Thepatterraining/article/details/113525119