OSI模型之网络层概述

来源:互联网 发布:万能搞笑证件制作软件 编辑:程序博客网 时间:2024/06/05 23:52

网络层所处的位置是模型的第三层,第三层的功能和任务是实现数据分组从源主机发送到目的主机,网络层是实现网络的基础。在TCP/IP模型中,IP协议实现了各种异构网络的互联,从而向上一层传输透明的、跟异构网络无关的、与硬件无关的数据包。实现异构网络互联的网络设备就是路由器。

那么数据分组是如何穿过网络从源主机到达目的主机的呢?

编址与寻址。首先,作为网络中的一个节点,要想让别的节点找到我或者要找别的节点,就要网给网络中所有节点编址。我们日常生活中就有很多编址方案,比如电话号码的编址、邮政编码的编址。之前的章节也有编址的内容如MAC地址,只不过MAC地址属于平面编址,何为平面编址呢?即编码与站点位置无关。而IP地址是个结构地址,编码是与站点位置有关的,从IP地址的格式就可以看出来:aaa.bbb.ccc.ddd,32bit,分为网络号和主机号。即IP地址=子网号+主机号,这就是基于子网结构的编址技术。结构地址为网络协议提供了寻找站点所在位置的部分线索,但这对于寻找网络站点还远远不够!举例说明:要从站点A向站点B传递数据报文,则要先将数据报文送至路由器Route1,然后由Route1 寻找靠近站点B的Route2,数据包到达Route2 后由Route2转发给B。所以说寻址的关键是各个Route如何找出目的Route在何处、及确定传输路径的问题,与源网络或目的网络关系不大。

路由是如何寻址的呢?每个节点的路由器会根据路由协议(Route Protocol)计算出某个节点到目的节点的最佳路径,形成路由信息即路由表(Routing Table)。同时,路由表也会生成转发表(Forwarding Table),是为了更有效的进行数据转发。路由表的大体格式如下: 

路由选择。每个节点的路由表/转发表都保存着从本节点到目的节点的最短路径,当然不同节点的转发表和路由表是不同的。由于IP协议的子网编址方式,所以转发方式就因是否共在一个子网内而变化。若在子网内,则直接经由物理网络将数据报从源主机送至目的主机。若不在同一子网内,则需要路由器中继来完成通信。如何判断是否在同一子网内?子网又是啥?让我们来研究研究这个IP地址:IP地址采用点分制表示,例192.168.5.38 即192*256^3 + 168*256^2 + 5*256 +38.  子网的表示:引入IP掩码(Mask)辅助计算,Mask为32bit,前面M个bit全为‘1’(网络号的bit数)后面bit全为‘0’。—IP地址与掩码可简单表示成 “IP/M”,例—192.168.5.38,255.255.255.0简化表示为192.168.5.28/24,24表示Mask中1的个数。—子网号=IP地址⊙Mask  (按位与)、—主机号=IP地址⊙/Mask利用Mask,可以从任意IP地址计算出子网的地址范围。例IP=192.168.5.38  Mask=255.255.255.224  则子网号=192.168.5.32   主机号=0.0.0.6  子网地址范围,共32个IP地址192.168.5.32~192.168.5.63。如此一来,我们就可以通过子网掩码Mask来调整子网的地址范围大小,Mask中1越多子网范围越小,Mask越短子网范围越大。

 存储转发。当有数据从上一层传下来需要发送出去时,就需要根据IP协议做相应的数据发送处理流程。当IP层接收到上层数据时,首先根据上层协议类型将数据添加对应的IP首部(包括源IP和目的IP)<固定的20byte+可选部分>,然后查转发表寻找目标节点所在的接口,接下来就从指定接口继续向下发送数据报。接收过程可以看成是发送过程的逆过程IP分组经路由器中继时,分组所有内容保持不变(除了TTL1),路由器直接利用原分组实现中继。TTL是IP首部设置的一个防止路由环无限中继的变量。将一个数据包送到一台电脑或路由器,需要链路层的MAC地址。因此,我们必須在IP地址和MAC地址之间建立一种对应关系,这就是位址解析協定(Address Resolution Protocol, ARP) 。ARP将一个IP地址关联到它的MAC地址。当需要同一链路的目标主机的MAC地址时,他以广播的方式送出一个ARP Query Packet,这条链路上的每一台电脑或路由器都会收到这个咨询数据包,但只有特定主机才会回应这个咨询,发回ARP Response Packet,应答数据包包含该目标主机的IP地址和MAC地址。


到这里,大概的IP分组执行过程大概跟大家分析了下,本人水平有限,欢迎指正!

0 0
原创粉丝点击