计算机网络之网络层

 

 

一 网络层ip协议相关

1.ip协议

虚拟互联网络:物理设备使用ip协议屏蔽了物理设备之间的细节,使复杂的物理网络变为了虚拟互联网络,当网络中的主机使用IP协议连接时,则无需关注网络细节。

ip协议解决了虚拟网络中数据报传输路径的问题。

IP地址长度为32位,常分成4个8位
IP地址常使用点分十进制来表示(0~255.0~255.0~255.0~255)
 

 

 

ip协议=ip协议首部+ip数据报数据

 

版本:占4位,指的是IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6
首部位长度:占4位,最大数值为15,表示的是IP首部长度,单位是“32位字”(4个字节),也即是IP首部最大长度为60字节
总长度:占16位,最大数值为65535,表示的是IP数据报总长度(IP首部+IP数据) 
TTL:占8位,表明IP数据报文在网络中的寿命,每经过一个设备,TTL减1,当TTL=0时,网络设备必须丢弃该报文
协议:占8位,表明IP数据所携带的具体数据是什么协议的(如:TCP、UDP等)
首部校验和:占16位,校验IP首部是否有出错
 
 
2 简单路由过程
ip协议使用的是逐跳的方式进行数据传递。
路由表中含有MAC地址对应的网络接口地址,目的ip地址与下一跳的ip地址
那么如何确定下一跳的地址呢,即路由表是怎么来的呢?
 
路由算法必须具备的特性:
算法是正确的、完整的
算法在计算上应该尽可能的简单 
算法可以适应网络中的变化
算法是稳定的和公平的
ARP与RARP协议
ARP地址解析协议:
网络层ip协议与MAC地址有一个对应关系,这个转化是通过ARP协议实现的,通过ARP缓存表可以看出ip地址与MAC地址对应的关系:

 

◆ ARP缓存表缓存了IP地址到硬件地址之间的映射关系 ◆ ARP缓存表是ARP协议和RARP协议运行的关键 ◆ ARP缓存表中的记录并不是永久有效的,有一定的期限

RARP协议就是ARP协议的逆向协议,可以看出MAC地址和ip地址的对应关系

 ◆ ARP和RARP的操作对程序员是透明的 ◆ (R)ARP协议是TCP/IP协议栈里面基础的协议 ◆ 理解(R)ARP协议有助于理解网络分层的细节

计算机或者路由器中都含有路由表。比如A传递数据到C的过程,结合数据链路层来描述就是 A发出目的地为C的IP数据报,先查看路由表发现下一跳为E A将IP数据报交给链路层 并告知E的MAC地址 链路层填充目的地MAC和源MAC封装成帧再通过物理层发送给E,E接收后把帧交给网络层在通过查询路由表同理交给F ,最后交到C。
 
数据帧的每一跳的MAC地址都不变
ip数据报的每一跳的ip地址始终不变
 
 
3.ip地址的子网划分
规划和分配ip地址非常麻烦,所以产生了子网划分。
分类的ip地址
A类:A类地址规定前8位是网络号,后24位是主机号。网络号以0位开头的通通叫做A类地址。比如127.xxx.xxx.xxx 就是A类地址 127转换成2进制是01111111
B类:B类地址规定前16位是网络号,后16位是主机号。网络号以10为开头的是B类地址。比如191.255.xxx.xxx
C类:  C类地址规定前24为是网络号,后8位师主机号。网络号以110开头的是C类地址
 
其中有一些特殊的主机号:
主机号为全0的是当前网络段,不可分配主机,
主机号为全1的是广播地址向当前网络段所有的主机广播消息
特殊的网络号:
A类地址网络段全0(00000000)表示特殊网络
A类地址网络段后7位全1(01111111:127)表示回环地址
B类地址网络段(10000000.00000000:128.0)是不可使用的
C类地址网络段(192.0.0)是不可使用的 
 
本地回环地址:127.0.0.1,通常被称为本地回环地址(Loopback Address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。
 
划分子网
子网号:通常以第25位作为子网号码划分子网,(0代表一个子网,1代表一个子网)
子网掩码:子网掩码和IP地址一样,都是32位,子网掩码由连续的1和连续的0组成,某一个子网的子网掩码具备网络号位数个连续的1,比如255.255.255.0代表的就是11111111.11111111.11111111.00000000 是C类地址。
子网划分的另一种方式:cidr无分类编址
CIDR将网络前缀相同的IP地址称为一个“CIDR地址块”
比如:
193.10.10.129/25
地址数就是4*8-25=7 2^7=128
 
在cidr网络前缀下划分子网,上一级被称为超网
使用/18的子网掩码获得超网的网络号
使用/20的子网掩码获得二级超网的网络号
使用/24的子网掩码获得子网的网络号 
 
NAT技术:
网络地址转换技术,为避免ip地址的极大浪费,所以提出了NAT技术,内网地址避免与外网地址重复,外网地址全球唯一。NAT技术用于多个主机通过一个公有IP访问互联网的私有网络中。NAT表通过与端口号结合,找到对应的新ip地址和端口号,
减缓了IP地址的消耗,但是增加了网络通信的复杂度。
 
ip协议的子协议:ICMP协议
icmp协议可以报告错误信息或者异常情况。
ICMP协议=ICMP首部+ICMP报文数据

 

ICMP报文数据分为两种,一种是差错报告报文,一种是询问报文。

 

 

其中ping命令和traceroute命令(Traceroute可以探测IP数据报在网络中走过的路径)分别利用了ICMP协议中的询问报文类型和终点不可达检测报文,当TTL减小为0的时候,就认为此网络不可达,丢弃此报文。

 

自治系统的概念:

一个自治系统(AS)是处于一个管理机构下的网络设备群

AS内部网络自行管理,AS对外提供一个或者多个出(入)口

自治系统内部路由的协议称为:内部网关协议(RIP、OSPF) 

自治系统外部路由的协议称为:外部网关协议(BGP)

 

 

内部网关协议RIP

1.原理:距离矢量算法(DV)

◆ 每一个节点使用两个向量𝐷𝑖和S𝑖 ◆ 𝐷𝑖描述的是当前节点到别的节点的距离 ◆ S𝑖描述的是当前节点到别的节点的下一节点

◆ 每一个节点与相邻的节点交换向量𝐷𝑖和S𝑖的信息 ◆ 每一个节点根据交换的信息更新自己的节点信息

 

 简而言之就是求不出自己的就求别人的,通过别人的距离加自己到这个设备的距离求出目的距离。

2.RIP协议的过程

RIP协议把网络的跳数(hop)作为DV算法的距离

RIP协议每隔30s交换一次路由信息

RIP协议认为跳数>15的路由则为不可达路由

 

1. 路由器初始化路由信息(两个向量𝐷𝑖和S𝑖 )

2. 对相邻路由器X发过来的信息,对信息的内容进行修改(下一跳地址设置为X,所有距离加1)

i. 检索本地路由,将信息中新的路由插入到路由表里面

ii. 检索本地路由,对于下一跳为X的,更新为修改后的信息

iii. 检索本地路由,对比相同目的的距离,如果新信息的距离更小,则更新本地路由表 3. 如果3分钟没有收到相邻的路由信息,则把相邻路由设置为不可达(16跳)

 
RIP协议的优点与缺点
◆ RIP协议:实现简单,开销很小
◆ RIP协议:限制了网络的规模
◆ RIP协议:“坏消息传的慢”,更新收敛时间过长
 
 
LS协议与LS协议的具体实现协议ospf协议
ls协议特点:
◆ 向所有的路由器发送消息(消息描述该路由器与相邻路由器的链路状态)
◆ 消息描述该路由器与相邻路由器的链路状态
◆ 只有链路状态发生变化时,才发送更新信息(与RIP不同)
 
ospf协议的过程:
◆ OSPF(Open Shortest Path First:开放最短路径优先)
◆ OSPF协议的核心是Dijkstra算法
Dijkstra算法
 
1. 初始化两个集合(S, U)(S为只有初始顶点点A的集合,U为其他顶点集合)
2. 如果U不为空, 对U集合顶点进行距离的排序,并取出距离A最近的一个顶点D i. 将顶点D的纳入S集合
ii.更新通过顶点D到达U集合所有点的距离(如果距离更小则更新,否则不更新)
iii. 重复2步骤 3. 知道U集合为空,算法完成
 
向所有路由器发送消息,使得每一个路由器都获得完整的网络拓扑,也称为链路状态数据库。
消息描述该路由器与相邻路由器的链路状态。
链路状态发生变化时,才发送更新信息。
 
ospf协议的五种消息类型
问候消息
链路状态数据库描述信息
链路状态请求信息
链路状态更新信息
链路状态确认信息
整个过程:

 

 

 

 

 

外部网关路由BGP协议

◆ BGP(Border Gateway Protocol: 边际网关协议)

◆ BGP协议是运行在AS之间的一种协议

 

 ◆ BGP协议能够找到一条到达目的比较好的路由

◆ AS之间通过BGP发言人来进行路由信息的交换

◆ BGP并不关心内部网络拓扑

◆ AS之间通过BGP发言人交流信息

◆ BGP Speaker可以人为配置策略

posted @ 2022-06-29 16:51  wangao96  阅读(230)  评论(0编辑  收藏  举报