分享

网络层协议原理

 拿破仑小子 2017-12-30

头条号转正啦~出差比较多没有更新,非常感谢大家的支持,之前有分开写过TCP/IP、ARP、ICMP等协议,今天再统一更新一篇网络层协议原理,希望能够帮到大家!

TCP/IP协议栈的网络层位于网络接口层和传输层之间,其主要协议包括IP、ARP、RARP、ICMP、IGMP等。其中IP协议是TCP/IP网络层的核心协议,它规定了数据的封装方式和网络节点的标识方法,用于网络上数据的端到端的传递。

TCP/IP的网络层主要定义了以下协议:

(1)IP:负责网络层寻址、路由选择、分段及包重组;

(2)ARP:负责把IP地址解析成物理地址。在实际进行通信时, 物理网络所使用的是物理地址,IP地址是不能被物理网络识别的。对于以太网而言,当IP数据包通过以太网发送时,以太网设备是以MAC地址传输数据的,ARP协议就是用来将IP地址解析成MAC地址的;

(3)RARP:负责把物理地址解析成IP地址,常用于无盘工作站通过其MAC地址从服务器处解析对应的IP地址;

(4)ICMP:定义了网络层控制和传递消息的功能,可以报告IP数据包传送过程中发生的错误、失败等信息,提供网络诊断功能。ping和tracert两个使用极其广泛的测试工具就是ICMP消息的应用;

(5)IGMP:负责管理IP组播组。用于支持在主机和路由器之间进行组播传输数据,它让一个物理网络上的所有路由器知道当前网络中有哪些主机需要组播。组播路由器需要这些信息以便知道组播数据包应该像哪些接口转发。

1.IP

1.1 IP的作用

IP是尽力传输的网络协议,其提供的数据传送服务是不可靠的、无连接的。IP协议不关心数据包的内容,不能保证数据包是否能成功地到达目的地,也不维护任何关于前后数据包的状态信息,面向连接的可靠服务有上层的TCP协议来实现。

IP将来自传输层的数据段封装成IP包并交给网络接口层进行发送,同时将来自网络接口层的帧解封装并根据IP协议号提交给相应的传输层协议进行处理。(TCP协议号为6,UDP协议号为17)IP协议的主要作用如下:

(1)标识节点和链路:IP为每个链路分配一个全局唯一的网络号以标识每个网络;为每个节点分配一个全局唯一的32位IP地址,用以标识每一个节点;

(2)寻址和转发:IP路由器根据掌握的路由信息,确定节点所在网络的位置,进而确定节点所在的位置,并选择适当的路径将IP包转发到目的节点;

(3)适应各种数据链路:为了工作在多样化的链路和介质上,IP必须具备适应各种数据链路的能力,例如根据链路的MTU(最大传输单元)对IP包进行分片和重组,可以建立IP地址到数据链路层地址的映射以通过实际的数据链路传递信息。

1.2 IP地址分类

在现实的网络中,各个网段内具有的IP节点数各不相同,为了更好的管理和使用IP地址资源,IP地址被划分为5类——A类、B类、C类、D类、E类。每类地址的网络号和主机号在32位地址中占用的位数各不相同,因而其可以容纳的主机数量也有很大区别。

网络层协议原理

(1)A类IP地址的第一个八位段以0开始,网络号取值范围为1~126(127留作它用)。A类地址的主机号为后面的3个八位段,共24位。A类地址的范围为1.0.0.0~126.255.255.255,每个A类网络中有2^24个A类IP地址;

(2)B类IP地址的第一个八位段以10开始,网络号取值范围为128~191。B类地址的主机号为后面的2个八位段,共16位。B类地址的范围为128.0.0.0~191.255.255.255,每个A类网络中有2^16个B类IP地址;

(3)C类IP地址的第一个八位段以110开始,网络号取值范围为192~223。C类地址的主机号为后面的1个八位段,共8位。C类地址的范围为192.0.0.0~223.255.255.255,每个C类网络中有2^8=256个C类IP地址;

(4)D类地址第一个八位段以1110开头,因此D类地址的第一个八位段取值为224~239。D类地址通常为组播地址。

(5)E类地址第一个八位段以1110开头,保留用于研究。

1.3特殊用途的IP地址

IP地址用于唯一标识一台网络设备,但并不是每一个IP地址都用于这个目的。一些特殊的IP地址被用于各种各样的其他用途。

网络层协议原理

主机号部分全为0的IP地址称为网络地址。网络地址用于标识一个网段,例如1.0.0.0/8、10.0.0.0/8、192.168.1.0/24等。

主机号部分全为1的IP地址是网段广播地址。这种地址用于标识一个网络内的所有主机。例如,10.255.255.255是网络10.0.0.0内的广播地址,表示网络内的所有主机。一个发往10.255.255.255的IP包将会被该网段内的所有主机接收。

网络号为127的IP地址用于环路测试,例如127。0.0.1通常表示“本机”。

IP地址为0.0.0.0代表“所有的网络”,通常用于指定默认路由。而IP地址255.255.255.255是全网广播地址,代表“所有的主机”,用于向网络的所有节点发送数据包。

如上所述,每一个网段都会有一个网络地址和一个网段广播地址,因此实际可用于主机的地址数等于网段内的全部地址数减2。例如B类网段172.16.0.0有16个主机位,因此有2^16个IP地址,去掉一个网络地址172.16.0.0和一个广播地址172.16.255.255不能用于标识主机,实际共有2^16-2个可用地址。

各类IP地址的实际可用地址范围如下所示:

网络层协议原理

网络层协议原理

注意:转发网段广播和全网广播会对网络性能造成严重的不利影响,因此几乎所有的路由器在默认情况下均不转发广播包。

2.ARP和RARP

作为网络中主机的身份标识,IP地址是一个逻辑地址,但在实际进行通信时,物理网络所使用的依然是物理地址,IP地址是不能被物理网络识别的。ARP给出了将主机的网络地址动态映射为MAC地址的方法,而RARP给出了一种允许工作站动态获得其协议地址的方法。

2.1 ARP的功能

对于以太网而言,当IP数据包通过以太网发送时,以太网设备并不识别32位IP地址,它们是以48位的MAC地址标识每一设备并根据此地址传输以太网数据的。因此在物理网络中传送数据时,需要在逻辑IP地址和物理MAC地址之间建立映射关系。地址之间的这种映射叫做地址解析。

ARP就是用于动态地将IP地址解析为MAC地址的协议。主机通过ARP解析到目的MAC地址后,将在自己的ARP缓存表中增加相应的IP地址到MAC地址的映射表项,用于后续到同一目的地报文的转发。

网络层协议原理

如图所示,ARP的作用如同问路一样,IP地址好比是目的地的名称,MAC地址好比是目的地的物理位置。

2.2代理ARP

当主机不了解网关信息,或主机无法判断目的主机是否处于本网段时,某些主机会对处于其他网段的目的主机IP地址直接进行ARP解析。此时,路由器可以运行代理ARP协助主机实现通信。

2.3 RARP的功能

在20世纪年代中期,有一种组网方式十分流行,叫做“无盘”网络。这种网络中的大部分工作站是无盘工作站。无盘工作站本身不需要硬盘,操作系统文件放在网络中某台指定的文件服务器中。无盘工作站启动时从服务器获取操作系统文件并进行引导。这种组网方式大大节约了网络建设的成本。

工作站的IP地址在操作系统中配置,而无盘工作站的操作系统软件都存放在服务器中,其启动时不具有IP地址。但无盘工作站从服务器下载操作系统软件时需要通过IP与服务器通信。这就形成了一个矛盾——要获得系统文件就需要IP地址,要获得IP地址就需要系统文件。

无盘工作站已经具有一块网卡,拥有全球唯一的物理地址;另外在其ROM中还有一个基本的引导系统,能依赖物理地址进行简单的局域网通信。因此,无盘工作站可以采用RARP获取IP地址。

2.4广播风暴的概念

路由转发广播将导致全网充斥广播。很多协议需要通过广播包完成公告、发现等任务。以ARP为例,每台主机对网段内其他任何主机通信时都需要广播ARP请求。如果路由转发广播包,每个广播包将传遍整个互联网,大大浪费了网络资源。并且由于广播包将会被提交到每一台主机的网络层进行处理,每一台主机的资源都会遭到无谓的浪费。这种情况发展到一定程度,整个网络会由于广播而瘫痪,这种情况称为广播风暴。

网络层协议原理

为了避免广播风暴的发送,路由器在默认情况下不转发广播包。

3. ICMP

3.1 ICMP协议介绍

在无可靠性保证的IP通信中,IP设备需要互相交换一定的控制信息,以便互相沟通通信环境状况,报告发生的错误。ICMP正是为这一目的设计的。

ICMP是一个网络层协议,定义了错误报告和其他回送给源点的关于IP数据包处理处理情况的消息,可以用于报告IP数据包传递过程中发生的错误、失败等信息,提供网络诊断功能。

IP是尽力传输的网络协议,其提供的数据传送服务是不可靠的、无连接的,不能保证IP数据包能成功地到达目的地。正是因为IP不能提供可靠的服务,所以在某些情况下,路由器或目的主机可能需要与源主机进行直接通信,以便交互某种信息。例如,假定一个中途路由器没有去往目的网络的路由,该路由器可能需要向源主机报告这个信息。ICMP正是为这个目的而设计的。

ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。如果在传输过程中发生某种错误,设备便会向信源端返回一条ICMP消息,告知他发生的错误类型。

ICMP基于IP运行,但ICMP实际上是集成于IP中的一部分,并且必须被IP实现。ICMP的设计目的并非是使IP称为一种可靠协议,而是对通信中发生的问题提供反馈。ICMP消息的传递同样得不到任何可靠性保证,因而可能在传递中丢失。根据不同的消息,ICMP消息分为不同的类型,总体上分为两大类,即ICMP差错消息和ICMP查询消息。

3.2 ICMP的应用

(1)ping

ping是ICMP的一个最常见的应用,主机可通过它来测试网络的可达性。用户运行ping命令时,主机向目的主机发送 ICMP Echo Request消息。Echo Request消息封装在IP包内,其目的地址为目的主机的IP地址。目的主机都到Echo Request消息后,向源主机回送一个ICMP Echo Reply消息。源主机如果收到Echo Reply消息,即可获知该目的主机是可达的。假定某个中间路由器没有到达目的网络的路由,便会向源主机端返回一条ICMP Destination Unreachable消息,告知源主机目的不可达。源主机如果在一定时间内无法收到回应,则认为目的主机不可达,并返回超时信息。

(2)tracert

利用ping工具只能测试到目的主机的连通性,不能了解数据报的传送路径,因而在不能连通时也难以判断问题发生在网络的哪个位置。使用tracert工具可以追踪数据包的转发路径,探测到某一个目的主机的途中经过哪些中间转发设备。

4. DHCP

此处主要简单介绍一下DHCP协议的优点,主要有以下几个优点。

(1)即插即用性:在一个通过DHCP实现IP地址分配和管理的网络中,终端主机无须配置即可自动获得所需要的网络参数,网络管理人员和维护人员的工作压力得到了很大程度上的减轻。

(2)统一管理:在DHCP协议中,由服务器对客户端的所有配置信息进行统一管理。服务器通过监听客户端的请求,根据预先配置的策略给予相应的回复,将设置好的IP地址、子网掩码。默认网关等参数分配给用户。

(3)有效利用IP地址资源:在DHCP协议中,服务器可以设定所分配IP地址资源的使用期限。使用期限到期后的IP地址资源可以由服务器进行回收。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多