网络层(一)

来源:互联网 发布:安卓串口助手源码 编辑:程序博客网 时间:2024/04/29 05:02

网际协议IP 配套使用协议

      1. 地址解析协议(ARP Address Resolution Protocol)      2. 逆地址解析协议(RARP)      3. 网际控制报文协议(ICMP)      4. 网际组管理协议(IGMP)

虚拟互联网络

网络互联起来要使用一些中间设备

      1.物理层使用的中间设备叫转换器      2.数据链路层使用的中间设备叫做网桥或桥接器      3.网络层使用的中间设备叫做路由器(把网络扩大了)      4.在网络层以上使用的中间设备叫做网关

路由器就一台专用电脑

由于历史原因,许多有关TCP/IP文献曾经把网络层使用的路由器称为网关

两个主机通信:

互联网中的源主机H1要把一个IP数据报发送给目的主机H2,根据分组交换的存储转发的概念,主机先要查找自己的路由表,看目的主机是否在本网络上。如是,则不需要经过任何路由器而直接交付,任务就完成了。如不是,则必须把IP数据报发送的某个路由器R1,R1在查找了自己的路由表后知道应当把数据报转发给R2进行间接交付。这样一直转发下去,直到Rn和H2在同一个网络上就直接交付

分类的IP地址

文档RFC 791IP地址及其表示方法     1.整个的英特网就是一个单一的,抽象的网络。Ip地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符 Ip地址的编码方式    1.分类的IP地址        - 就是将IP地址划分为固定类,每一类地址都有两个固定长度的字段组成             1.第一个字段就是网络号,它标志者主机(或路由器)所连接到的网络,一个网络号在整个因特网范围内必须是唯一的            2.第二个字段是主机号,它标志着该主机(或路由器),一个主机号在他前面的网络号所指明的网络范围内必须是唯一的。            3.由1.2.知一个IP地址在整个因特网范围内是唯一的。            4.IP可以记为 IP地址::={<网络号>.<主机号>}            5.A类,B类,C类地址的网络号前面分别为0,10, 110 主机号分别为3, 2, 1个字节长, D类地址1110用于多播地址 E类前面是1111备用。            6.IP地址都是32位的二进制代码 点分十进制记法。        -常用的3中类别的IP地址            1.A类地址第一位为0 网络号:128-2 减2表示网络号全0的表示保留地址即本网络 01111111保留作为本地软件环回测试本主机的进程之间的通信只用 网络号为127的地址根本不是一个网络地址 主机号:2^24 - 2 减2表示全0表示本机全1表示所有连接在该网络上的所有主机。 IP地址空间共有2^32 A类地址2^31 利用率50%            2.B类地址网络号有2个字节固定 -2同A类 主机号:同A类 利用率25% 实例:                            B类地址128.7.255.255表示“在网络128.7.0.0上的所有主机” 而A类地址0.0.0.35则表示在这个网络上主机为35的主机。            3.C类地址网络号有3个固定 -2同A类 主机号:同A类 利用率12.5%    2.子网的划分    3.构成超网 

IP地址具有以下特点

1.每一个Ip地址都由网络号和主机号两个部分组成,从这个意义上说,IP地址是一种分等级的地址结构。分两个等级的好处有:    1. Ip地址管理机构在分配IP地址是指分配网络号,而剩下的主机号则有得到改网络号的单位自行的分组,这样就方便了IP地址的管理。    2. 路由器仅根据网络号来转发分组(而不用考虑目的主机),这样就可以是路由表中的项目数大幅度减少从而减少了路由表所占的存贮空间以及查找路由表的时间2.实际上IP地址是标志一个主机(或路由器)和一条链路的接口,当一个主机连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的,这种主机称为多归属主机。由于一个路由器至少应当连接到两个不同额网络,因此一个路由器至少有两个不同的IP地址。3.按照因特网的特点:一个网络是指具有相同网络号的net-id的主机的集合,因此用转发器或网桥连接起来的若干局域网仍然为一个网络,应为这些拥有同一个网络,具有不同网络号的局域网必须通过路由器来进行互联4.在IP地址中,所有分配到网络号的网络都是平等的。

有图应当注意:

1. 在同一个局域网上主机或路由器的IP地址中的网络号必须是一样的2. 用网桥(它只在链路层工作)互联的网段仍然是一个局域网,只能有一个网络号3. 路由器总是具有两个或两个以上的IP地址,即路由器上的每一个接口都有一个不同  的网络号的IP地址4. 当两个路由器直接相连时(例如通过一条租用线路),在连线两端的接口处,可以分配也可以不分配Ip地址。如分配了Ip地址,则这段线路就构成了一种只包含一段线路的特需“网络”。之所以叫特需网络是因为他有IP地址,但为了减少IP地址资源,也常不分配IP地址,通常把这样的网络叫做无编号网络或无名网络。 

IP地址与硬件地址

1.从层次角度看:物理地址是数据链路层和物理层用的地址,而IP地址是网络层和以上的个层使用的地址,是一种逻辑地址(称IP是逻辑地址因为IP地址是用软件实现的)2.硬件地址:在局域网中,由于硬件地址已经固化在了网卡上,因为在局域网的MAC帧的源地址和目的地址都是硬件地址因此硬件地址有称MAC地址 3.IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。在网络层和网络层以上的使用时IP地址而数据链路层及以下使用的是物理地址 当IP数据报放入数据链路层的MAC帧中后,整个的IP数据报就成为Mac帧的数据因而在数据链路层看不见数据报的IP地址

例:a画的是三个局域网用两个路由器R1和R2互连起来。现在主机H1要和主机H2通信。这两个主机的IP地址分别是IP1和IP2,而它们的硬件地址分别是HA1和HA2(HA表示hardware address)。通信路径是:
H1->经过R1转发->再经过R2转发->H2。路由器R1因同时连接到两个局域网上,因此它由两个硬件地址,即HA3和HA4。同理,路由器R2也有两个硬件地址HA5和HA6。

 这里注意:    1. 在IP层抽象的互联网上只能看到IP数据报。虽然IP数据报要经过路由器R1和R2的两次转发,但在它的首部中的源地址和目的地址始终分别是IP1和IP2。图中的数据报上写的从IP1到IP2就表示前者是源地址而后知是目的地址。数据报中间经过的两个路由器的IP地址并不出现在IP数据报的首部中。    2. 虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择。    3. 在局域网的链路层,只能看见MAC帧。IP数据报被封装在MAC帧中。MAC帧在不同网络上传送时,其MAC帧首部中的源地址和目的地址要发生变化。    4. 尽管互连在一起的网络的硬件地址体系各不相同,单IP层抽象的互联网却屏蔽了下层这些很复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的,抽象的IP地址研究主机和主机或路由器直接的通信。

4.2.4地址解析协议ARP和逆地址解析协议RARP

在实际中,我们经常会遇到这样的问题,已经知道了机器(主句和路由器)的IP地址,需要找出相应的物理地址,或反过来,已知知道物理地址需要找出相应的IP地址 地址解析协议和逆地址解析协议就是解决这样的问题


ARP地址解析协议和RARP地址解析协议

1.逆地址解析协议RAPR在过去曾经起到了重要的作用。但现在d的DHCP协议已经包含了RARP协议的功能,我们只需要了解,逆地址解析协议RArp协议的作用是只知道自己的硬件地址就可以知道主机的IP地址2.APR协议的要点:    1.网络层使用的IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址。但IP地址和下面的网络的硬件地址之间由于格式不同而不存在简单的映射关系(IP地址有32位,而物理地址是48位)。此外在一个网络上可能经常会有新的主机加入进来,或撤走一些主机。地址解析协议ARP解决这个问题的方法是在主机ARP高速缓存中应存放一个从IP地址到硬件地址的映射表,而且这个映射表经常动态更新(新增或动态删除),每一个主机都设有一个ARp高速缓存,里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些地址是该主机目前知道的一些地址。        ARP:地址解析协议:            对于以太网,数据链路层上是根据48bit的以太网地址来确定目的接口,设备驱动程序从不检查IP数据报中的目的IP地址。ARP协议为IP地址到对应的硬件地址之间提供动态映射。        工作过程:            在以太网(ARP协议只适用于局域网)中,如果本地主机想要向某一个IP地址的主机(路由表中的下一跳路由器或者直连的主机,注意此处IP地址不一定是IP数据报中的目的IP)发包,但是并不知道其硬件地址,此时利用ARP协议提供的机制来获取硬件地址,具体过程如下:                1. 本地主机在局域网中广播ARP请求,ARP请求数据帧中包含目的主机的IP地址。意思是“如果你是这个IP地址的拥有者,请回答你的硬件地址”。                2. 目的主机的ARP层解析这份广播报文,识别出是询问其硬件地址。于是发送ARP应答包,里面包含IP地址及其对应的硬件地址。                3. 本地主机收到ARP应答后,知道了目的地址的硬件地址,之后的数据报就可以传送了。            点对点链路不使用ARP协议。

帧格式:

    1. 以太网目的地址:目的主机的硬件地址。目的地址全为1的特殊地址是广播地址。    2. 以太网源地址:源主机的硬件地址。    3. 帧类型:对于ARP协议,该字段为0x0806。对于RARP协议,该字段为0x8035。    4. 硬件类型:表示硬件地址的类型。值为1时表示以太网地址。也就是说ARP协议不仅仅应用于以太网协议,还可以支持别的链路层协议。    5. 协议类型:表示要映射的协议地址类型。值为0x0800时表示IP协议。    6. 硬件地址长度:与硬件类型对应的硬件地址的长度,以字节为单位。如果是以太网,则是6字节(MAC长度)。    7. 协议地址长度:与协议类型对应的协议地址长度,以字节为单位。如果是IP协议,则是4字节(IP地址长度)。    8. 操作类型(op):四中操作类型。ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4)。    9. 发送端硬件地址:如果是以太网,则是源主机以太网地址,此处和以太网头中的源地址对应。    10. 发送端协议地址:如果是IP协议,则表示源主机的IP地址。    11. 目的端硬件地址:如果是以太网,则是目的以太网地址,和以太网头中的目的地址对应。    12. 目的端协议地址:如果是IP协议,则表示源主机要请求硬件地址的IP地址。    13. 对应ARP请求包来说,目的端的硬件地址字段无须填充,其他字段都需要填充。对于ARP回复包来说,所有字段都需要填充。APR请求包是广播的,但是ARP应答帧是单播的。以太网数据报最小长度是60字节(14字节的以太网头,不包含4字节的FCS),ARP数据包长度为42字节(14字节的以太网头和28字节的ARP数据),需要加入填充字符到以太网最小长度要求:60字节。

ARP高速缓存

1. 每个主机都有一个ARP高速缓存表,这样避免每次发包时都需要发送ARP请求来获取硬件地址。默认老化时间是20分钟。利用arp -a命令可以查看显示系统中高速缓存的内容。2. Windows下“arp -d”命令可以清除arp高速缓存表。3. 有时候需要手动清除arp缓存,曾经就是因为arp缓存没有做清理,导致迷惑了很久。遇到的问题:    1. 制作了一个写路由器MAC地址的工具,每次写完MAC地址,重启路由器,会发现无法telnet登陆路由器。IP地址没变,但是MAC地址更改了,而ARP缓存表中IP地址映射的仍然是旧的MAC地址。    2. 类似的问题,有两个路由器具有相同的IP地址。先连接一个路由器,登陆成功后,再去连接另一台路由器,却发现登陆不了。

ARP代理

如果ARP请求时从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器可以回答该请求,这个过程称作委托ARP或者ARP代理。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机。

RARP:逆地址解析协议

1.  将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。RARP协议广泛应用于无盘工作站引导时获取IP地址。2.  RARP允许局域网的物理机器从网管服务器ARP表或者缓存上请求其IP地址。    工作原理:        1. 主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址。        2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址。        3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用。        4. 如果不存在,RARP服务器对此不做任何的响应。        5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

ARP四种典型情况

1. 发送方是主机,把IP数据包发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件MAC地址。   www.2cto.com  2. 发送方是主机,要把IP数据报发送到另一个网络上的主机。这时用ARP找到本网络上的一个路由器(网关)的硬件MAC地址。剩下的工作由这个路由器来完成。 3. 发送方是路由器,要把IP数据报转发到本网络上的一个主机。这时用ARP找到目的主机的硬件MAC地址 4. 发送方是路由器,要把IP数据报转发到另一个网络的一个主机。这时用ARP找到本网络上的一个路由器(网关)的硬件地址。剩下的工作有这个路由器来完成。    主机和路由器表现的行为是一致的,区别在于,路由器可以作为网关,而PC不可以。当要把IP数据报转发另一个网络的一个主机时,ARP找到本网络上的一个网关的硬件MAC地址,这个网关可以是路由器,也可以是三层交换机。    纯二层交换机是没有ARP表项的。交换机是否有ARP表项取决于交换机是否作为三层设备(配置三层路由接口或SVI接口)    网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终必须使用该网络的硬件地址。     每一个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和网关的IP地址到硬件地址的映射表。也就是说,一个主机可以通过ARP到本局域网的其他主机,到达其他网络主机的工作交给网关完成。    同一子网 源目mac地址都不会改变     不同子网 源目IP地址都不会改变,改变源目MAC地址

例子:为什么我们不直接使用硬件地址进行通信而是使用抽象的IP地址并调用ARP协议来寻找相应的硬件地址。

    由于全世界存在着各式各样的网络,他使用不同的硬件地址。要是这些异构网络能够互相通信就必须进行非常复杂的硬件地址转化工作,因此由用户或用户主机来完成这项工作几乎是不可能的事,但统一的IP地址吧这个工作解决了。连接到因特网的主机只需要拥有统一的IP地址,他们之间的通信就像连接在同一个网络上那样简单方便,应为上边调用ARP的复杂过程都是通过计算机软件来实现的,对用户来说是看不见这种调用过程的。

4.2.5 IP数据报的格式 (各种数据格式常常以32位(即4个字节)位单位来描述)


待续…….

0 0