【学习笔记-CS144 计算机网络】网络层

Birderr / 2023-08-01 / 原文

概述

主要功能:

  1. 寻址和路由选择

  2. 建立和维护连接

  3. 差错和纠错功能

  4. 流量和拥塞控制

  5. 数据分片和重组技术

网络层协议

IP有关协议

IPv4:32bits, a,b,c,d,0~255。有数字划分规范,ABCD类。

IPv6:128bits, 能解决IPv4网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。

网络(子网)掩码:它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。

类别子网掩码的二进制数值子网掩码的十进制数值
A 11111111 00000000 00000000 00000000 255.0.0.0
B 11111111 11111111 00000000 00000000 255.255.0.0
C 11111111 11111111 11111111 00000000 255.255.255.0

 

网络地址:子网掩码与IP地址按位与运算后的地址

CIDR划分法:用于给一些特定区域内的用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。用于弥补A类的浪费和BC的膨胀不足。

eg: 128.14.35.7/20 = 10000000 00001110 00100011 00000111

即前20位是网络前缀,后12位是主机号,那么我们通过令主机号分别为全0和全1就可以得到一个CIDR地址块的 最小地址和最大地址,即

最小地址是:128.14.32.0 = 10000000 00001110 00100000 00000000 最大地址是:128.14.47.255 = 10000000 00001110 00101111 11111111 子网掩码是:255.255.240.0 = 11111111 11111111 11110000 00000000

IP报头格式:

  1. 版本(Version):4bits ,有IPv4和IPv6这两个版本。

  2. 报头长度(Header Length):4bits ,表示 IP报文头部的长度,以32比特(4字节)为单位递增,该字段的最小值为5

  3. 服务类型(Type of Service):8bits。该字段指出应该如何处理数据报文。

  4. 总长度(Total Length):16bits,表示该IP报文的总大小,包括报头和携带的数据。

  5. 标识(Identification):16bits,唯一标识原始IPv4数据包的数据分片。

  6. 标志位(Flag):3bits,主要用于指出是否进行分片以及是否有更多分片。

  7. 分片偏移(Fragment Offset):13bits,当一个报文过大不能够在一个数据帧中传输时,可以使用分片和重组功能,这里主要是用于表示偏移量,即将一个报文分开封装,分别发出,到达目的地再根据偏移量进行重组。

  8. 存活时间(Time To Live,TTL):8bits,表示报文在网络中可以生存的时间,当计时器到期时该报文将被网络丢弃。

  9. 协议(Protocol):8bits,标识承载数据使用什么协议

  10. 报头校验和(Header Checksum):16bits,是对报头进行循环冗余校验(CRC)的结果

  11. 源 IP地址(Source Address):32bits,表示发送者的 IP地址

  12. 目的 IP地址(Destination Address):32bits,表示接收者的 IP地址

  13. 选项(Options):用于安全、测试等目的。

  14. 填充(Padding):长度可变


ICMP协议

主要功能:

  1. 确认IP包是否成功到达目标地址

  2. 通知在发送过程中IP包被丢弃的原因


DHCP协议

子网内,由DHCP服务器动态分配IP地址


路由算法与路由协议

RIP协议【距离-向量路由算法】

RIP路由协议的工作流程主要包括路由表生成和路由表更新维护两部分,并基于距离矢量算法计算路由,且遵循度量值越小则越优的路由选取原则。

距离矢量协议:每个节点只与它的直接邻居交换信息。

  1. 生成路由表

    1. 对相邻设备发送请求全部路由信息

    2. 接受相邻设备的相应信息,并更新自己

    3. 将更新后的数据发送给相邻设别

  2. 更新维护路由表

    1. 更新定时器:一段时间发送更新报文

    2. 无效计时器:决定一条线路信息有效时长

    3. 清除计时器:决定清除无效路由的时间

    4. 抑制定时器:无效后暂缓接收请求,减少目的设备震荡产生的影响

  3. 路由表计算

    1. 根据距离矢量算法进行路由计算

  4. 防环路机制

    1. 环路:

      A-B-C,C无效,A申请连接C。数据流从A到B,但B此时连接不到C,而在A中仍然保存了A-B-C的未更新路径,从而又跳到了A,形成环路。

    2. 解决方案:

      1. 水平分割

        1. 从哪个接口学习到的RIP路由信息,就禁止从该接口发送出去

        2. 不允许将从某一邻居学习到的路由信息再发送回该邻居(NBMA)

      2. 毒性逆转

        对于从某一接口学习到的路由信息,当从该接口发出去时将该路置为16(即路由不可达)

      1. 触发更新

        1. 当路由信息发生变化,邻居及时更新并向外不断传递。


OSPF协议【链路状态路由算法】

链路状态协议:通过广播的方式和所有节点交换信息,存储网状图。

  1. 存在Router ID:标识路由器

  2. 进入链路状态:洪泛到其他邻居节点,并接受来自邻居的信息。存储完毕后跑最短路计算,构建数据库。

  3. 使用COST(开销)作为度量值。


BGP协议【区域间路由协议】

概念:区域间路由联系协议。当BGP运行于同一AS内部时,被称为IBGP;当BGP运行于不同AS之间时,称为EBGP

工作方式:

  1. 通过报文驱动

  1. 对等体进行TCP连接,通过Open报文协商

  2. BGP连接后交换整个BGP路由表,并发送keepalive维持连接,不定期更新

  3. 发送Notification报文进行报错,BGP连接中断

路由聚合:BGP路由表十分庞大,向对等BGP通告时可以发送聚合后路由