网络层

知识结构

  • 网络层的功能:异构网络互连、路由与转发、拥塞控制
  • 路由算法
    • 静态路由与动态路由
    • 距离向量算法、链路状态算法、层次路由
  • IP数据报格式
  • ARP、IP
  • DHCP、ICMP
  • 三种路由协议
  • IPv6

路由算法

  • 距离向量算法;

主要用在RIP中;
每隔一段时间,路由器将它到所有其他结点的信息发送给所有邻居结点,他也接收每个邻居结点发来的信息;整个过程使用的Bellman求最短路(这个算法的一个特点是可以处理含负权的图),显然它需要不断地更新,即使一条边,可能更新多次,这使得他有个缺点:慢收敛(好消息传的快,坏消息传的慢);并且它还存在路由环路地问题;

  • 链路状态路由算法;

用于OSPF
每个路由器将它到其周围链路状态向全网的其他路由器进行广播;只有链路变化时,路由器才向所有路由器发送消息;与网络规模无关,可用于大型的或路由信息变化聚敛的网络环境;
当一个结点从所有其他结点接收到报文时,它在本地计算正确的通路(Dijkstra),一步汇聚;易于查找故障

  • 层次路由

整个互联网被划分为很多小的自治系统,每个自治系统内使用自己的路由选择协议,而自治系统间通信就需要另外的自治系统间的协议;

1. 域内路由选择:OSPF、RIP
2. 域间路由选择:BGP

IP数据报格式

网络层_第1张图片

首部长度:以4B为单位,最大值为60B;常用20B,此时可选择字段长度0;
总长度:首部和数据之和,数据报最长为65535B,单位1B;
标识:当对一个数据报分片时,属于同一个数据报每个分片拥有一个一样的标识,用来重组;
标志:最低位为MF,第二位为DF;
片偏移:单位8B,分片后,每个分片在原数据报中的相对位置;
首部校验和:只检验分组的首部,不检验数据部分;
生存时间(TTL):数据包在网络中可通过的路由器数的最大值,以保证分组不会永远在网络中循环;
协议:分组的数据部分应该交给哪个传输层协议,6表示TCP,17表示UDP;

ARP、IP

网络层路由器转发分组的流程

假如一主机A要向主机B发送数据报,他们不在同一个网段;

  1. A发现它们IP不在同一网段,A就需要将数据报发给网关C,它需要查找ARP缓存查找C的MAC地址,如果ARP缓存不存在,那么它就会广播一个ARP包(包中含目的IP、源IP、源MAC);

  2. 路由器收到数据包,发现MAC地址为广播地址,接受包,解开包,发现数据报目的IP为自己IP,然后就会发送一个ARP响应包(目的地址、源地址、源MAC地址、目的MAC地址)(单播);

  3. A收到数据报,就得到了网关C的IP地址,然后就发送一个数据报(源IP地址为A,目的IP地址为B、源MAC地址为A,目的MAC地址为网关C);

  4. 网关收到数据报后,发现IP地址不是自己,然后它就进行路由选择,得到下一跳IP,并且它还需要更改源MAC和目的MAC,如果ARP缓存没有目的IP对应的目的MAC地址,那么类似的还需要进行ARP解析;之后都类似;

还有一个问题是,如果网关C连接着一个交换机D,D连接两台主机A、E,那么C是如何准确的将数据发给A的,而不是发给E;网关查找自己的MAC地址表,根据目的MAC地址,得到对应端口,然后它就从这个端口转发出去,然后发给交换机,而之前ARP广播包的时候,经过了交换机,交换机知道目的MAC地址A对应的端口;因此数据报到达交换机,交换机就指定从那个端口发出去;

可以将MAC地址表理解成是MAC地址与端口对应的关系表;

DHCP、ICMP

DHCP是应用层的协议,基于UDP;

IP协议没有差错控制、主机和网络管理查询机制,而由ICMP处理;ICMP(网际控制协议)是网络层协议,作用是让目的主机或目的主机路径上的路由器像源主机报告差错和异常情况;
ICMP报文有两种,ICMP差错报告报文、询问报文;

差错报告报文有以下几种:

  • 终点不可达
  • 源点抑制:当路由器或主机因阻塞而丢弃数据时,就像源点发送源点抑制报文,已让源点发送数据包速率减慢;
  • 时间超过:路由器收到TTL为0的数据报,丢弃数据报,向源点发送时间超过报文;
  • 参数问题:路由器或目的主机收到数据报首部字段不正确;
  • 改变路由(重定向):路由器发给源主机,让主机将数据发送给更好的路由器;

不应发送ICMP差错报告报文的情况:

  • 对ICMP差错报告报文,不再发送ICMP差错报告报文;
  • 对第一个分片的数据报片的所有后续数据报片都不发送;
  • 对具有组播地址的数据报不发送;
  • 对具有特殊地址(127.0.0.0或0.0.0.0)的数据报不发送;

比如PING(工作在应用层,Traceroute工作在网络层)就是一个ICMP时间超过报文的应用;

ICMP询问报文:

  • 回送请求和回答报文
  • 时间戳请求和回答报文
  • 掩码地址请求和回答报文
  • 路由器询问和通告报文;

三种路由协议

  • RIP
    • 与相邻路由器交换,自己的所有信息;
    • 跳数最少
    • 每30秒广播一次(两个使用RIP路由器之间)
    • 最大距离16表示不可达
    • 网络规模越大,开销越大
    • 坏消息传得慢
    • 应用层协议,使用UDP传输(端口520)
    • 不支持子网掩码的RIP广播,RIP中每个网络子网掩码必须相同;但RIP2中,支持变长子网掩码和CIDR
  • OSPF
    • 与所有路由器交换,本路由器相邻的所有路由器的链路状态;
    • 链路状态变化时,才使用洪泛法更新
    • 网络层协议,使用IP数据报传输
    • 可以实现多路负载平衡
    • 适用于大规模网络
    • 路径代价最低
    • 支持可变长度子网划分、无分类编址CIDR
  • BGP
    • **应用层协议、基于TCP **
    • 路由表包含目的网络前缀、下一跳路由器、及到达目的网络经过的自治系统序列;
    • 发生变化时,更新有变化的部分;
    • 支持CIDR

OSFP分组类型

  • 问候分组:发现和维持邻站的可达性
  • 数据库描述分组
  • 链路状态请求分组
  • 链路状态更新分组
  • 链路状态确认分组

IPv6

\ 地址位数 校验和字段 IP报头 分片 首部长度
IPv4 4B 20-60B可变 4B整数倍
IPv6 16B 40B固定 8B整数倍

你可能感兴趣的:(计算机网络,计算机网路)