您的位置:首页 > 理论基础 > 计算机网络

第四章 网络层 4.2网际协议IP

2014-01-27 19:47 531 查看
与IP协议配套使用的还有四个协议:

地址解析协议ARP(Address Resolution Protocol)

逆地址解析协议RARP(Reverse Address Resolution Protocol)

网际控制报文协议ICMP(Internet Control Message Protocol)

网际组管理协议IGMP(Internet Group Management Protocol)



如图所示:IP要用到RARP和ARP

                    ICMP IGMP要用到IP

虚拟互联网络:

将网络互连到一起,需要中间设备。

1.物理层:转发器,集线器

2.数据链路层:网桥,交换机

3.网络层:路由器

4.网络层以上:网关

其中1,2仅仅是把一个网络扩大了,从网络层的角度看,仍然是一个网络,不能称之为网络互连

我们现在讨论网络互连都是指用路由器进行网络互连和路由选择。

由于历史原因,很多文献曾把路由器称为网关,需要注意区分

参加互连的计算机网络都使用相同的网际协议IP,因此可以把互连以后的计算机网络看成是一个虚拟互联网,也就是逻辑互连网络,即互连的各种物理网络的异构性是客观存在的,但是利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。











如果我们只考虑网络层问题,那么IP数据报就可以想象是在网络层中传送。这样就不必画出许多完整的协议栈。讨论问题更加简单



分类的IP地址

IP地址的编址方法共经过了三个历史阶段:

1.分类的IP地址

2.子网的划分

3.构成超网:无分类编址的方法,现在用的较多!

首先介绍1.分类的IP地址

需要指出的是,近年来已经广泛使用无分类IP地址进行路由选择,A,B,C类地址的区分已成为地址。但大部分文件还是按照传统IP地址分类进行的介绍。





其中:A,B,C为单播地址,D为多播地址,E保留

把IP地址划分为A,B,C三个类别,当初是这样考虑的,各网络差异很大,有的网络拥有很多主机,有的少,分为A,B,C是为了更好的满足不同用户的需求。

当某个单位申请到一个IP地址时,只要做到在该单位管辖的范围内无重复的主机号即可。



如图

A:网络号可用的为7位,故可指派的网络号为

。减2的原因是全0的网络字段表示这个IP地址是保留地址,意思是本网络。全1的网络号用来做本地软件的环回测试,即这样的IP地址不会被发送到任何网络上。

       主机号可用的为3个字节,故A类网络中的最大主机数为

。减2的原因是全0的地址字段字段表示该主机所在的网络地址,全1的主机号表示该网络上的所有主机。



B:网络号可用的为14位,故可指派的网络号为

。减1的原因是由于网络段前两位为10,不会出现全0,全1的网络号。但实际上B类地址128.0.0.0是不指派的。

       主机号可用的为2个字节,故B类网络中的最大主机数为

。减2的原因是全0的地址字段字段表示该主机所在的网络地址,全1的主机号表示该网络上的所有主机。

占整个IP空间的25%。

C:网络号可用的为21位,故可指派的网络号为

。减1的原因是由于网络段前三位为110,不会出现全0,全1的网络号。但实际上C类地址192.0.0.0是不指派的。

       主机号可用的为1个字节,故C类网络中的最大主机数为

。减2的原因是全0的地址字段字段表示该主机所在的网络地址,全1的主机号表示该网络上的所有主机。

占整个IP空间的12.5%。



表4-3中第三个就是255.255.255.255广播地址

IP地址具有的一些特点:

1.IP地址由网络号和主机号组成,好处:路由器仅根据目的主机所连接的网络号来转发分组,大大减小路由表条目。

2.实际上IP地址是标识一个主机(或路由器)和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的。这种主机叫做多归属主机。由于一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的IP地址。

图中小圆圈代表需要一个IP地址



注意:

当两个路由器直接相连时,在连线两端的接口处,可以分配也可以不分配IP地址。如果分配了IP地址,则这一段连线就构成了一种只包含一段线路的特殊“网络”。现在也常常不分配IP地址。称为无编号网络或无名网络

IP地址与硬件地址






IP地址是网络层和以上各层使用的地址

物理地址是数据链路层和物理层使用的地址

在发送数据时,数据从高层到底层,然后才到通信链路上传输。数据报在链路层被封装成MAC帧,连接在通信链路上的设备(主机,路由器)在接收MAC帧时,其根据是MAC帧首部的硬件地址,在数据链路层看不见隐藏在MAC帧中的IP地址,只有把帧收尾剥掉,交到网络层后,才能看到数据中的IP地址。

















注意:

1.在IP层抽象的互联网上只能看到IP数据报,虽然IP数据报要经过路由器转发,但是其源地址和目的地址始终不变。

2.虽然IP数据报中有源,目的地址,但路由器只根据目的地址进行路由选择

3.在局域网的链路层,只能看见MAC帧,其MAC帧首部的源地址,目的地址要发生变化

那么主机或路由器怎样知道应当在MAC帧的首部填入什么样的硬件地址呢?!!------>ARP协议

地址解析协议ARP:

逆地址解析协议RARP:(DHCP协议中包含RARP功能,故现在已经不再使用)



网络层使用IP地址,但在实际网络的链路上传送数据时,最终爱上必须使用该网络的硬件地址。如何由IP地址获得硬件地址,ARP解决的方法是主机(路由器)ARP告诉缓存中应存放一个从IP地址到硬件地址的映射表,并且该表经常动态更新

每一个主机都有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是主机目前知道的一些地址,那么主机怎么知道这些地址的呢,由例子说明







注意:

ARP请求分组是广播发送的,但ARP响应分组是普通的单播,即从一个源地址发送到一个目的地址。

A向B请求同时,B也将A的地址写入到自己的ARP高速缓存中。

生存时间表:ARP高速缓存中每一个映射地址项目都设置生存时间

ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的影身问题

如果目的主机和源主机不在同一个局域网上,该如何解决?由例子说明。





归纳使用ARP协议的四种典型情况



IP数据报的格式






首部长度:该字段占4位,其数值代表有几个首部单元,一个首部单元是四个字节。固首部长度最大是当该字段为1111时,达到15*4=60字节。

                      最常用的首部长度是20字节,即该字段的值是0101

区分服务:一般不用

总长度:该字段16位,指的是首部和数据长度之和,故数据报的最大长度为2的16次-1,即65535字节。

                 帧格式中数据字段的最大长度,称为MTU,容易知道,数据报长度一定不能大于下层数据链路层的MTU值,若大于,进行分片,此后数据报长度指的就是分片后的每一个分片的首部长度与数据长度的总和。

                实际上数据报长度很少有超过1500字节的,且不得少于576字节。

标识(identification):16位,IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并赋给标识字段。这样即使分片了的数据报片,因为标识字段值相同,还能重组。

标志(flag):三位但只用到后两位:最低位记为MF:MF=1,后面还有分片。MF=0,数据报片中的最后一个

                                                                中间为记为DF:DF=1,不能分片。DF=0,可以分片。

片偏移:某片在原分组中的相对位置。片偏移以8字节为单位,也就是说某个分片长度一定是8字节的整数倍。








生存时间TTL:单位是跳数,路由器转发数据报之前把TTL减1,若TTL值为0则丢弃,TTL最大初值为255,若TTL设为1,则表示该数据报只能在本局域网中传输

协议:





首部检验和:只针对首部的检验,每经过一个路由器都要重新计算首部检验和,出错丢弃



可选字段(长度可变):用来支持排错,测量以及安全等措施,长度取决于所选择的项目,最后用0补齐成4字节的整数倍。实际上这些选项很少用,不用此部分的首部长度为20字节。IPV6更是把首部长度做成固定的。

IP层转发分组的流程:图例



IP数据报一定可以找到目的主机所在目的网络上的路由器

只有到达最后一个路由器时,才试图向目的主机进行直接交付。

特定主机路由:因特网所有分组转发都是基于目的主机所在的网络,但在大多数情况下,都允许有这样的特例,即对特定的目的主机指明一个路由。这种路由叫做特定主机路由。

默认路由:适合于一个只有很少的对外连接的网络

如图所示,路由表中的直接和默认字符被标记为0.0.0.0



注意:IP数据报首部中并没有指明“下一跳路由器的IP地址”,那么待转发的数据报如何找到下一跳呢

当路由器收到一个待转发的数据报,在从路由表得出下一跳路由器的IP地址后,不是把它填入IP数据报首部,而是交到下层的网络接口软件。网络接口软件负责把下一跳路由器的IP地址转换成硬件地址(使用ARP),并将此地址放到链路层的MAC帧首部,然后根据这个硬件地址到达下一跳路由器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息