OSI网络层基本功能
OSI网络层基本功能
网络层需要执行4个基本任务——用IP地址编址、封装、解封装、路由。其中前三项都很容易理解,路由是最复杂的部分,也是最有技术含量的部分。
一、将主机分组
网络很像社会的,为了便于管理会按一定的特点将主机进行分组。分组的时候参考三个方面:
1、地理位置
2、 特定用途——不同用途的主机对网络的要求是不一样的,例如电子商务和艺术设计。
3、 所有权——处于安全性方面的考虑。
二、将主机划分为网络的好处
随着网络规模的壮大,也会产生一些列的问题,例如:性能下降、安全问题、地址管理。将网络划分为多个相互连接的小型子网至少可以部分缓解这些问题。
1、 提高性能——例如将不同属性的主机分为不同的小网络,利于实现广播。
2、 安全性——就是按权限划分网络带来的好处。
3、 实现层次编址——地址分为两部分,网络地址和主机地址,其中网络编址又可分为3层,层次编址也提高了路由的效率。
三、(默认)网关:网络的出口
可以类比海关。作为设备参数,每台主机都有指定的默认网关地址。网关实质上是一个网络通向其他网络的IP地址(有路由功能的机器的IP地址)。当进行数据包传输的时候,网络中的主机认识自己网络中得设备的地址,如果需要向外网传输数据包,那么主机不认识目的地址,所以将数据包发给默认网关。
主机具备一个网卡只能有一个网关。
四、路由
路由定义:路由器负责对到达网关接口的每个数据包做出转发决定。这个转发过程就成为路由。
路由器路由表:路由表中的路由有三个主要特点:目的网络、下一跳、度量(跃点数)。可以通过路由器的控制台使用show ip route命令查看路由表。
主机路由表:命令route print或netstat –r可以查看主机的路由表。
五、数据包转发
路由是逐个数据包逐跳(数据包由一个路由发往另一个路由)完成的。在每一跳路由器都要检查包的目的地址,然后检查路由表,查找转发信息。路由器将对数据包执行以下三种操作之一:
1、转发下一跳路由
2、转发到目的主机
3、丢弃
路由器执行以下步骤来决定如何操作。
1、 作为中间设备,路由器在网络层处理数据包。但是,到达路由器接口的数据包已封装成数据链路层PDU。路由器首先要丢弃第2层封装才能检查数据包。
2、 检查IP地址。
3、 查找路由表中的匹配项。
4、 选择下一跳。
5、 然后,路由器执行下列操作之一。
场景A:路由器转发数据包。如果与数据包的目的网络匹配的路由是远程网络,则将数据包转发到该路由指示的接口,由第2层协议封装,然后发送到下一跳地址。如果目的网络是直连网络,数据包首先由第2层协议封装,然后发到正确的本地网络接口。
场景B:路由器使用默认路由。如果路由表中没有更具体的路由条目使用于抵达的数据包,则将该数据包转发至默认路由所指示的接口。
场景C:路由器丢弃数据包。如果数据包被丢弃,IP并未规定数据包返回前一路由器。这种功能会降低协议的效率增加开销。报告此类错误要使用其他协议。
六、路由器如何学习路由
路由器需哟其他网络的信息以构建可靠的路由表。而网络和路由是经常变化的。路由器学习路由分为两种方式:
静态路由——手工配置路由信息。
优点:1、没有处理数据包的开销;2、通常情况下是可靠的。
缺点:不能字段更新,需要持续的管理成本。
动态路由——在同一个网际网络中,路由器可以从其他路由器中动态学习路由信息。
优点:没有管理成本。
缺点:需要路由器的处理开销:交换路由信息增加了带宽的开销,由协议接受的更新需要经过复杂的算法计算才能被路由表所适用。
上一篇: python获取百度热榜链接的实例方法
下一篇: bestorm fuzz软件破解