罗泽兵 发表于 2024-4-15 08:43:23

08.第08节课第4章网络层

接下来我们看一下地址解析协议ARP。在实际应用中,我们经常会遇到这样的一个问题,就说已经知道了一个机器的IP地址,需要找出其硬件地址。那么,地址解析协议ARP呢?就是用来解决这样一个问题。那么,我们接下来呢,介绍一下地址解析协议lr p。那么,我们知道网络层使用的是IP地址,但在实际网络的链路上传输数据真实了,最终还必须使用该网络的硬件地址。

但IP地址和下面的网络的硬件地址之间,由于格式不同而不存在简单的映射关系,那么我们的IP地址啊,是32位。局域网的硬件地址呢,是48位,那么此外呢?在一个网络中呢,可能会有新的IP主机加新的主机加入进来,或者撤走一些主机。更换网络适配器呢,也会使网易主机的硬件地址改变,地址解析,协议ARP解决这个问题的方法呢,是在主机ARP高速管程中呢,

存放一个IP地址到硬件地址的映射表。而且这个映射表呢,还是经常动态更新的。每一台主机呢,都设有一个ARP高速缓存,里面呢,有本局网和。各主机,各路由器的IP地址到硬件地址的映射表,这些呢,都是该主机目前知道的,这样一些地址。那么我们看一下它是如何来量折?了解这些地址的这样一些部分,当主机呢a要向本局域网的某台主机b发送IP数据报时。

就应该先在其ARP高速缓存中查看有没有主机b的IP地址,如果有了就在ARP高速缓存中查出其对应的硬件地址。再把这个硬件地址呢写入mac帧,然后呢,通过局域网呢,把该mac帧呢发往此硬件地址。那么当然了,也有可能查不到主机bip地址的项目,这有可能是b主机b呢,才入网,也可能是主机a呢。才刚加才刚刚打开的这样一个部分,那么高速缓冲还是空的,那么这种情况下呢?主机a呢?

就自动运行ARP。然后呢,按照这样一些步骤,找出b的IP硬件地址,那么首先呢,主机a。广播。在局域网上广播一个ARP请求分组。ARP请求分组的主要内容呢?就是说它的这样一个IP地址是多少?硬件地址是多少?他想知道IP地址为这样一个部分的主机的硬件地址。在本局域,网上的所有主机运行的ARP进程呢,都收到了这样一个词ARP请求分组。

那么,主机b的IP地址呢?与ARP请求分组中要查询的IP地址一致,就收下这个IP地IP ARP请求分组。并向主机a呢发送ARP响应分组,同时在这个ARP响应分组中呢,写入自己的硬件地址。那么,其余的主机的IP地址呢?都与lr p请求分组,要查询的IP地址不一致,因此呢,都不都不都不用运用。使用这样一个ARP请求分组,那么ARP响应分组的主要内容呢?

是它的IP地址是多少?硬件地址是多少?那么我们的ARP请求分组呢?虽然是广播发送的,但是ARP响应呢,是一个单播,是从一个原地址呢,发送到一个目的地址。那么,接下来主机a收到主机b的ARP响应之后,就在其ARP高速缓存中呢?写入主机b的IP地址到硬件地址的映射。那么,当主机a向主机b呢发送数据报时,有可能很久以后呢?

主机b还要向a发送数据报,因此呢,主机b也可能向a发送ERP请求分组。为了减少网络上的通信量,主机在a在发动机ARP分组时就把自己的IP地址和到硬件地址的映射呢,写入了ARP请求分组。当主机b收到a的ARP请求分组的时候呢,就把主机a的这一地址呢写入主机b自己的这样一个要素缓存中,以后呢,主机呢就可以b呢,就可以向a发送分组了,就有这样一个运用的这样一个使用的部分。那么,我们来看一下。那么,

如果呢?不使用ARP高速缓存,那么呢,任何一台主机只要进行一次通信就必须呢?在网络上呢,用广播形式发送ARP请求分组。这使得了主机。和网这网络上的通信量呢,大大增加ARP呢,把已经得到的ARP地址呢,映射保存在高速缓存中,这样就使得该主机的下次再和具有同样的目的地。驻局通信时,可以直接从高速缓冲中呢,找到所需的硬件地址,

而不必再用广播发射了,发送我们的ARP请求分组。那么ARP呢?对于。保存在高速缓存中的每一个映射地址项目呢,都有生成时间,凡是超过生成时间的项目呢,就从高速缓存中删除掉。那么ARP呢?是解决同一个局域网上组织或路由器的IP地址和硬件地址的映射问题。这里大家要注意。ARP是解决同一个局域网上主机或路由器的IP地址和硬件地址的映射问题。那么,如果呢,原要找的主机和原主机不在一个同同一个主局域网上?

那么主机呢,就无法解析出另一个局域,网上主机按照硬件地址。那么呢,就要通过ARP找到一个位于本局域网上某个路由器的硬件地址,然后把分组呢发送给这个路由器。让这个路由器呢?把组分组呢转化给下一个网络,那么剩下的由下一个网络呢来进行,这样一个部分。那么,比如说我们看一下这个部,看一下这样一个部分。从IP地址了到硬件地址的解析了,是自动进行的,

主机的用户呢?对这种地址解析过程呢?是不知道的。只要主机或路由器呢,要和本网络上的另一个已知IP地址或主机或路由器进行通信ARP呢,就会自动的将该IP地址呢解析为链路层所需要的硬件地址。我们来看一下使用ARP的四种情况,第一种情况发送方式,主机要把IP数据报发送到同一个主机上的同一个网络上的另一台主机。这是主机h,这是我主机了h1发送我们的ARP请求分组,然后呢,在我们的目的主。目的网找了目的主机HR的硬件地址,这是第一种情况,

第二种情况如果发送方式主机。要把IP数据报发送到另一台网,另一个网络上的一台主机。比如说h1,比如要发生了另一个网络上的这样一个主机,那么这个时候呢,启动ARP请求分组在网上呢?在网络上呢,找到一个路由器的进电地址,剩下的工作呢,由路由器来进行。那么,路由器要进行的工作呢?就是如果发送方式,路由器要把IP数据报转发到与我们这样一个路由器相连的同一个网络上的主机,

那么这个时候路由器呢?发送ARP请求分组。找到与目的主机的硬件地址。那么,第四种情况呢?是发送方式,路由器要把IP数据报呢转发到另一个网上的这一台主机,那么另一个另一台主机呢?不是与我们的路由器呢?连接在同一个网络上的。这是AR,就是我们的路由器呢,发送ARP请求分组找到连接在网另一个网上的这样一个路由器r。路由器的硬件地址,那么剩下的工作呢?

那么由由这个路由器来进行运运用,这样一个部分,那么在许多情况下呢?需要多次使用ARP,那么也就是说就是我们也是了这几种情况的反复使用。那么,为为什么?既然呢?在网络上传送的帧呢?最终要按照硬件地址查找的目的主机,那么为什么还要使用IP地址,而不使用硬件地址直接通信呢?那么因为呢,全世界存在着各式各样的网络,他们使用不同的硬件地址,

要使这些异构网络呢,能够互相通信,必须进行这样一个硬件地址转换工作,因此呢,由用户和主机来完成这项工作的那么比较复杂。啊,但IP编制了,那么可以运用使用这样运用这样一个部分,连接到互联网的主机了,只需各自拥有一个唯一的IP地址。它们的通信呢,就像连接在一个互联网上那样一个情况,那么因为在这样一个调用ARP的过程呢,都是用自动计算机软件的自动进行的。那么,

对用户来说,看不见这样一个调用过程,因此呢,在虚拟的IP网络上使用IP地址来进行通信。给这样一个计算机用户呢?带来这样一个方便。那么,这是让我们的这样一个部分。那么,接下来我们看一下IP数据包的格式I一个IP数据包的由首部和数据两部分组成。首部的前一部分呢,是固定长度共20字节,这是所有IP数据报了所必须有具有的。在手部的固定部分的后面呢,是一些可选字段,

那么其长度是可变的,那么我们看一下这个部分。首部呢,它占了20字节那么。数据在我们的首部呢?固定部分的后面呢?有一些可选字段,那么其长度是可变的。那么,首先我们来看一下。我们的这样一个。版本部分。版本这样一个字段呢,占了四位。指IP协议的版本,

通信双方所使用的IP协议呢?版本必须是一致的。目前呢,广泛采用的IP协议版本号为四,那么也就是IP为四。那么接下来呢,是我们的手部长度,手部长度呢?占了四位可表示的最大十进制数呢,是15。因因为呢?IP首播的固定长度呢,是20字节。因此呢?此手部长度呢?

最小值呢?是五,而当手部长度最大值呢?为15的时候呢?就表明手部长度呢?达到。60字节当IP数据报的首部分长度呢?不是四字节的整数的时候呢?必须用后面的这样一个填充字段呢?加以填充。因此IP数据包的数据部分呢,永远是四的整数倍字节开始。这样呢,在实现IP协议时呢,比较方便。

那么,首部的这样一个固定长度呢?是20字节,因此呢?此字段的。长度呢?最小值呢是五。那么,首部长度字段所表示的单位呢?是32位字,那么也就是说四个字节,因此呢?IP因为因此呢IP手机报的固定长度是20字节,所以呢,这个字段最小值呢是五,

那么最大值呢是15。接下来我们看一下区分服务。区分服务的占了八位,那么用来获得更好的服务。这个服务这个字段呢,在旧标准中呢,叫做服务类型。那么,只有呢,在区分服务时呢,这个字段呢,才起作用。那么,一般情况下呢,都不使用这个字段。

那么,接下来我们看一下总长度,总长度占了16位,它指的是首部与数据部分的长度之和单位为字节。那么,总长度呢?为16位,因此呢?数据包的总最大长度呢?是二的16次方减一等于六五五三五字节,那么这是我们是IP数据包的最大长度。那么,在IP层下面的每一种数据链路层呢?都规定了一个数据帧的数据字段的最大长度,这称为了最大传送单元m to。

当一个IP数据包封装成数据,电路层的帧的时候呢?此时数据报的最大长度就首部,加上数据部分一定不能超过下面的数据,电路层所规定的m to的最大传统单元值。比如说最常用的以太网呢,就规定其mtu呢,为1500字节,若所传送的数据包呢,常过mtu值就必须把过长的IP数据包呢进行分片。那么,在进行分片时呢?数据包中的总长度呢?指的是分片后每一个分片。手部长度。

与该分片的数据长度之和。那么,我们来看一下标识。标识了占16位IP软件呢,在存储器中维持一个计计数器,每产生一个数据报,那么计数器就加一。并将此值呢,赋给标识字段。那么但这个标识呢,并不是序号,因为IP呢,是无连接服务数据,报了不存在按需接收的问题。当数据报或是由于长度超过网络的m to呢,

必须分片时,这个标识字段的值呢,就被复制到所有的数据分片的这样一个。标识字段中。相同的标识字段值呢?使得分片后的各数据报片呢?能够最后的组装成为原来的数据报,那么我们举一个例子什么意思呢?比如说我们一个学校。那么去出去出去春出去郊出去春游出去出去这样一个游玩,那么这些学生呢?我们呢?有许多个班,每个班呢都是一个整体的,这样一个部分,

但是我们的。要坐车去了,这个车呢,每次呢装不下一一个班的学生,只能装一部分学生,但是呢,我们又要要求学生呢,按照班级组织在一起,那么怎么办呢?我们比如说某个班级要去做这个车,他们呢,就把自己的编班级呢,比如说都是。四都是五班的,那么都是五都是第五班的,

这个学生呢,他们就设置一个标识了嘛,标识自认为这样一个记录自己是五班的学生,然后他们呢,这些学生呢,上了不同的这样一个汽车。那么到了站,到了目的地之后呢?按照这个标识都标识是五班的学生呢,然后呢,再组织在一起,那么形成一个整体的这样一个班级的这样一个部分,那么这样呢,就是我们标识的。字段的相同,

标识的字段呢?那么这样一个。全年的标识字段的值呢?使得分片后的各数据报的片呢?最后能被主张成为原来的数据报,那么这是我们的标识。那么,接下来我们再看一下标志,标志呢,占了三位,目前呢,只有两位有意义。标识中的d为了记为MF MF=1呢,表示后面还有分片的这样一个数据包。MF=0呢表示,

这是若干数据爆片的最后一个标识字。段中的中间一位的即为df,意思是不能分片。只有当df=0时了,才允许分片。接下来我们看一下片片移,片片移占了13位。线偏移了,指出较长的分组呢,在分片后某片呢,在原分组中的相对位置,也就是说相对于用户字段的起点。该片从何处开始?片片移了以八个字段呢,八个字节为片片移单位。

也就是说,每个分片的长度呢,一定是八字节。64位的这样一个整倍数。那么,我们举一个例子IP数据包分片,那比如说我们的数据部分呢?共分为了3800字节。我们呢,把它按照零到1399进行分片,1400到2799进行分片,然后剩下的进行分片。那么,我们来看一下。我们第一个数据爆片呢,

它的片偏移了,那么是零,也就说我们的这样一个数据爆片呢?它的这样一个片片移呢,是是指的是我们的分组呢?在分片后,某片在原分组中的相对位置,也就是说相对于用户字段起点。那么这个时候呢,它的片片移第一个数据报片的片片移呢就是零÷8=0,第二个数据报片呢就是1400÷8=175,它的片片移呢就是175。那么p第三个复制爆片呢?就是2800÷8,那么就是350,

但片偏移了,就是350,那么这是我们的IP数据爆分片的这样一个情况。接下来我们看一下生存时间,那么生存时间呢?即为ttl指数据报呢?在数网络中可通过的最大路由器的最大最大值。那么也就是说,由出发。发出数据包的原点呢,是这个字段,其目的呢,是防止无法交付的数据包呢,无限制的在网络中呢发送。而白白的浪费这样一个网络资源。

每经过一个路由器呢,就把ttl减去数据包在路由器中消耗的一段时间,那么若路由器在。数据包呢,在路由器中消耗的时间呢,小于一秒就把ttl- 1,当ttl值呢,为零时就丢弃这个数据包。那么,那么随着这样一个技术的进步呢?数路由器呢?处理数据包的时间在不断缩短,一般都是小于一秒,那么后来呢?就把ttl的字段呢?

功能改为跳数限制,也就是说路由器在每次转发数据报之前呢,就把ttl值减一,如果ttl值小到零,那么就尤其这个数据报不再转发。呃,这是我们跳出的这样一个部分。接下来我们看一下协议。协议呢,占八位,它是我们的协议字段呢,指出此数据报携带的数据呢,是何种协议?以便呢,使目的主机的IP层应当知道将数据部分呢上交给哪个协议呢进行处理。

接下来我们就是我们的协议部分,那么首部校验核呢16位这样一个字段呢,只检验数据包的首部,而不检验数据部分,那么这里呢,不采用cre校验码,而检采用简单的计算方法。接下来我们再看一下原地址和目的地址,原地址呢?和目的地址呢?都各占42,都各占四四字节,也就是说占了三十三十二位。而我们的IP地址呢?可变部分呢?

是一个选项字段用来支持排错。测量以及安全措施选项字段的长度可变,从一个字节到40个字节不等,取决于所选择的项目。增加首部的可变部分呢,是为了增加IP数据的功能,但同时呢,这也使得IP数据包的首都常会成为可变的,这就增加了每一个路由器呢,处理数据包的开销。那么,我们来看一下IP层转化分组的流程。那么,我们来看一下,比如说。

有四个A类网络呢,通过三个路由器连在一起,每个网络上都可能有成千上万个主机,那么如果按目的主机号来制作路由表了。那么,这得出的路由表呢?则会过于庞大,但若按主机所在的网络地址来作为路由表呢?每个路由器的路由表呢?就只包含四个项目,那这样呢?可以使路由表大大简化。那么,在路由表中呢?每一条路由呢?

最主要是两个信息,一个呢?是目的网络地址,一个呢?是下一条地址。那么,我们来看一下这样一个路由,路由表。比如说我们路由器r2的路由表呢,就用我们二点零零零这样一个目的组织所在的网络下一跳地址呢,那么就是直接交付。那么,三零点零点零点零那么也是直接交付一零点零点零点零那么这个时候呢,我们就要将它转发给。下一条地址呢,

是我们的这样一个路由器r1的这样一个地址,那么四零点零点零点零呢,这个时候呢,我们就要将它。转发给我们的路由器r3,那么让它呢?作为下一条地址。这样根据目的地址呢,就能确定下一条路由器,根据目的网络地址呢,就能确定下一条路由器。IP数据报了,最终一定可以找到目的主机所在,目的主机所在网络上的路由器呢?可能要通过多次的间接交付。

只有到达最后一个路由器的时候呢,才试图向目的主机呢进行直接交付。那么我们再看一下特定主机路由。特定主机路由呢?这种路由呢?是为特定的目的主机呢?指明一个路由采用特定主机路由呢?可以使网络管理人员呢?能够更方便的控制网络和测试网络。同时也可以要考取某考虑某种安全问题时呢,采用这样一个特定网络主,特定网络,特定主机路由。路由器呢,还可以采用默认路由。

来减小路由表所占用的空间和搜索路由表所用的这样一个时间。那么,实际上呢?默认路由呢?在主机发送IP数据报的时候呢?那么有这样一个产能够呢?产生出这样一个作用的,这样一个部分。那么,主机在发送每一个IP数据报时呢?都要查找自己的路由表,如果每一台主机连接在一个小网络上。这个网络呢,只用一个路由器和因特网相连,那么在这种情况下就可以使用默认路由,

那么使用了这样一个部分。那么,比如说我们看一下这个图,那么我们的路由器r1呢?那么充当。主机。充当网络n1的这样一个默认路由。那么,只要目的网络呢?不是n1和n2就一律呢?采用默认路由。让数据包呢,先交付主先交付路由器r1,再让r1呢转发给下一个路由器。那么就是我们的默认路由的这样一个方式。

那么,这是我们的默认路由的这样一个运用的这样一个。那么IP数据报。那么,在IP数据报呢?没有地方可以用来指明下一条路由器的地址,当路由器呢?收到,待转发的数据报不是将下一条路由器的IP地址呢?填入IP数据报。而是交送交下层的网络软件,网网络接口软件,网络接口软件呢?使用a prp负责将下一条路由器的IP地址呢?转换成硬件地址。

并将此硬件地址呢放在链路层的mac针首部,然后根据这个硬件地址呢,找到找到下一条路由器。那么也就是说,当路由器收到一个待转发的数据包的时候呢?由路由表得出下一跳路由器的IP地址后。不是把这个地址呢填入IP数据报,而是交送给。数据电路层的网络接口软件,网络接口软件呢?负责把下一条路由器的IP地址呢?转换成硬件地址。并将此硬件地址呢放在链路层的麦克风首部,然后根据这个硬件地址呢,找到下一条路由器,

由此可见呢,当发送一连串的这样一个数据报时,上这样一个查找路由表呢。用rarp得到硬件地址了,把硬件地址写成mac,这样的手玻璃过程当中呢,将不断的重复,那么有一定这样一个开销。那么,我们来看一下。那么根据呢?我们刚才讲过的这样一个内容呢?那么这些部分呢?那么可以归纳出分组转化的算法,那么首先呢?

从数据报的首部提取目的主机的IP地址第一。得出目的网络地址为n若网络n呢?与此路由器直接相连,则把数据报了直接交付给主机d。否则呢,是间接交付。那么就是下面一个步骤,若路由表中呢,有目的地址为d的特定主机,路由则把数据报了传送给我们,路由表中所指明的下一条路由器,否则呢,执行下一个步骤。若路由器呢,有到达网络n的路由,

则把数据报呢传送给路由器指明的下一条路由器,否则呢,执行下一个步骤。若路由器呢,有一个指明的默认路由,则把数据报告传送给数据路由表中所指明的路由器,否则呢,报告分转化分组出错,那么这是我们的分组转化算法。接下来我们看一下划分子网和构造超网。那么从。那么,在arpanet的早期呢?IP的地址呢?不够合理。

第一个呢是IP地址空间的利用率很低。第二个呢,给每一个物理网呢,分配一个网络号呢,会使路由表变得太大,而使网络性能变坏。第三个呢,是两级的IP地址呢,不够灵活。比如说有些时候紧急,有些单位呢,需要在新的地点呢,马上开通一个新的网络,但申请一个新的IP之前呢,新加入的网络呢,

是不能连到互联网上工作的。那么我们希望呢,能使一个单位呢,随时灵活的增加本网单位的网络,而不必先到网络管理机构呢,申请新的网络号。那么,为了解决这样一个问题呢,我们在IP地址中呢,又增加了一个子网号字段,使两级IP地址呢变为了三级IP地址,那么它能够很好的解决这样一个问题。而且送起来也很灵活,这样的方法呢,叫做划分子网或者子网,

寻子或者子网路由选择。那么,我们来看一下。划分子网呢,那么是一个单位内部的事情,单位对外呢,仍然表现为没有划分子网的网络。那么,划分子网的方法呢?是从主网络的主机号借用若干位作为子网号?当然了,我们的主机号,我们的主机号呢,也就减少了同样的位数。于是呢,

两级IP地址呢,就变在在本单位内部呢,就变为了三级IP网络号子网号以及呢主机号。凡是从其他网络发给本单位的某台IP的数据包呢?仍然是根据IP数据包的目的网络号。找查找到连接到本单位上的路由器,但是此路由器在收到IP数据报时呢,在目的网络号和子网号。找到目的子网,再把我们的IP数据包呢交给我们的目的主机。比如说我们看一下这个例子。比如说我们呢,有这样一个。IP地址,网络地址呢?

是我们的。这样一个一四五点一三点零零,那么凡是目的地址呢?为一四五点一三开头的数据报呢?都被送到这个网络上的路由器r1。那么我们呢?把我们的这样一个网络呢,划分为三个子网,这里的。比如说有我们的这样一个。划分为三个子网,比如说这三个子网呢,我们。比如说子网号呢?我们把它。

占用八位。那么因此呢,增加了子网号之后呢?主机号呢?就只有八位所划分的三个子网呢?那么就是我们的这这三个子网。在划分子网后,整个网络呢,对外表现仍是一个网络,其网络地址呢,仍为一四五点一三点零零。但网络一四五点三点零零上的路由器r1在收到外来的数据报呢,那么再根据数据报的目的地址呢?把它放。把它转化到相应的子网。

那么也就是说,当没有划分子网的时候呢?IP地址呢?是两级结构划分的子网的IP地址呢?变成了三级结构划分子网,只是把IP地址的主机号这部分呢?再进行划分而不改变IP地址。地址原来的网络号。接下来我们看一下子网掩码,从一个IP数据报。的手部。无法看出原主机。或目的主机所连接的网络呢?是否进行了子网的划分?那么,

我们使用子网掩码这个方式呢?可以找出IP地址中的子网部分。那么?


页: [1]
查看完整版本: 08.第08节课第4章网络层