首页 > 编程知识 正文

网络层,数据链路层和物理层,网络层 数据链路层

时间:2023-05-06 09:04:29 阅读:234358 作者:2334

1.网络层和链路层关系 2.网络层 路由器

其实计算机本身就有路由器的功能,路由器可以理解成专用的特化简化型计算机,因此数据包的第一次转发发生在计算机本身。这也是为什么在不用路由器,纯交换机组局域网的时候,IP地址也会被需要的原因,因为当前的互联网实现下,不可能没有路由器,计算机就实现了路由器功能。

路由器承担的功能非常多,而且还会担当着不同的角色:

路由选择。算法上主要是dijskra算法和DV算法,需要用到路由选择协议;转发。在网络层的转发,在人理解的层面上主要用到路由表(主要是实现上会做优化,所以有相应的给机器看的其他表);网关。路由表的下一跳也乘坐网关,内网到外网的路由器也称为网关,AS之间的交接路由器也称为网关,感觉概念有点模糊就是了;DHCP。用于局域网内自动分配ip地址;NAT。用于内网IP地址和外网IP地址的相互转换,名字上就表明了其功能,NAT = 网络地址转换; 相关表和协议 路由选择协议。 每个AS(自治系统)内都可以有不同的路由选择协议,所以有AS内部路由选择协议、AS间路由选择协议之分,其中AS之间的网关路由器是两种协议都需要,并作转接之用;ARP协议。 由于网络层是工作在链路层的基础上,所以IP地址需要转换为MAC地址,否则就不能工作。ARP协议就是这种转换所用到的,主要是将下一跳IP地址(路由表中的gateway字段)转换为下一跳的MAC地址。具有学习功能,如果ARP表已学习到了表项则直接转换,否则会进行广播而得到应答后再在ARP表中增加相应表项;路由表。 且先不论复杂的路由选择协议是如何运作的,最终的结果就是生成了路由表,路由的格式大致如下。我之前思考过,为什么路由表需要下一跳地址? 原因我还没完全理顺逻辑,暂时的理解就是封装出一层网络层之后,我们用户传输中手动指定的就是IP地址了,目标MAC地址对于用户来说是隐藏的,路由器之间的传输更是如此,这个下一跳IP地址是给路由通过ARP协议转换成MAC地址的。以下为路由表大致格式,摘自百度文库:
ARP表。 在相同网段的局域网,也就是同一子网中,将IP地址转换为MAC地址用到的表,大致格式为:IP地址、MAC地址、TTL。计算机本身就有路由器功能,所以PC本身就具有ARP表,所以当只有交换机组局域网的时候,IP到MAC的映射就是PC本身完成的,因此这种组网方式需要把局域网内IP都配置成同一子网例如(192.168.0.1/24、192.168.0.2/24、192.168.0.3/24)。以下为win上的输出,但和内部的字段略不同:
PPPoE。 其实一般被认为工作在数据链路层的。是以太网的点对点链路传输协议,其实还具有例如获取IP地址之类的功能;RIP、OSPF。 AS内部路由选择协议。RIP算法部分可以理解成采用DV算法,而OSPF则是采用了Dijstra算法;BGP。 AS间的路由选择协议;DHCP。 用于局域网内自动分配IP地址;

摘录两个传输的简单例子:

局域网内传输:
假设主机222.222.222.220要向222.222.222.223发送数据包,由于是相同子网内,实际就是在ARP表中查找出MAC地址,再通过路由器的MAC表进行转发即可:
1、 数据包在主机222.222.222.220的ARP模块中查找222.222.222.223的对应MAC地址;
2、发出数据包;
3、经由交换机转发(在相关协议中是隐形的);
4、到达主机222.222.222.223;跨局域网传输:
假设主机111.111.111.111要向主机222.222.222.221发送数据包,大致会执行如下步骤:
1、主机111.111.111.111,在其路由表中查询目的地址222.222.222.221的表项,并获得下一跳地址111.111.111.110;
2、主机111.111.111.111,在其ARP表中查询目的地址111.111.111.110的表项,并获得下一跳MAC地址E6-E9-00-17-BB-4B;
3、发送数据包,并隐形地经由相连交换机到达路由器;
4、路由器,在其路由表中查询目的地址222.222.222.221的表项,并获得下一跳地址目的地址222.222.222.221,以及转发接口x;
5、路由器,在其ARP表中查询目的地址222.222.222.221的表项,并获得下一跳MAC地址88-B2-2F-54-1A-0F;
6、发送数据包,并隐形地经由相连交换机到达主机222.222.222.221; 其他相关点 IP地址;自治系统AS;网关;内网与外网;VPN; 3.链路层

to be continued…

Vue报错SyntaxError:TypeError:this.getOptionsisnotafuPrometheus-第一部分-docker安装步骤Pycharm报错Non-zero exit code (2)如何解决vue不能用index做为唯一标识的原因是什么

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。