我们一起学网络(五)——网络层(子网划分和构成超网)

来源:互联网 发布:凯酷 mac 编辑:程序博客网 时间:2024/05/16 09:46

在开始本节的重点之前,我们先来了解一下IP数据报的格式

Ip数据包你由两部分组成,首部和数据。首部又由两部分组成,分别是20字节的固定长度和固定部分后的可选字段, IP数据报的首部长度可变。上图,直观的看IP数据报格式

                           

首部中的固定字段的含义:

版本: 指IP协议的版本,通信双方版本必须一致,现在一般用的IPv4,以后会用到IPv6

首部长度: 占4位,最长60字节,最小20字节,不要问为什么,,,,不要深究,当时我以深究就陷进去了,简单的这个地方纠结了好几天。

区分服务: 只有在区分服务的时候,这个字段才起作用。貌似这个字段现在没什么用。。。。。

总长度:  指首部和数据的总和,占16位,最长可达65535(二进制16个1),但IP在数据链路层规定了数据帧中 数据字段的最大长度,一般称为【最大传送单元MTU】

标识: 具有相同标识的数据报片段最后能正确的组装在一起。标识是这样生成的 →  IP软件中有个计数器,一旦生成数据报,计数器就+1并且将值赋给标识字段。数据报太长而要分片时,这个值就被赋给所有标识字段。

标志: 有3位,只有两位有意义。 最低位(最后一位)是MF, MF=1 表示后面“还有分片” MF=0表示这是若干个数据报片中的最后一个。中间位是DF,意思是“不能分片”。 DF=0才允许分片

片偏移: 较长分组分片后,某片在原分组中的位置。即 相对于用户数据报字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。(后面给大家一个书上的例子讲解一下)

(上面这段主要来自 谢希仁的《计算机网络》一书,这一系列的博客,都是我自学此书得来的知识,小部分来自网络,希望能和大家一起学习。此书很棒。)

 

【例子】数据报总长3820字节,数据部分3800字节长,分片长度不能超过1420字节。再加上固定首部长度20字节,每个数据报片长度不超过1400字节。于是分为3个数据报片,数据部分长度为1400字节,1400字节,1000字节,请计算各分片的 片偏移 量。(这就是题目了)

                     解:  数据报片1:    片偏移=0/8=0

                               数据报片2:    片偏移=1400/8=175

                               数据报片3:    片偏移=2800/8=350

              

生存时间:  表明数据报在网络中的寿命,现在以“跳数”为单位,没跳过一个路由器跳数-1,跳数为0则数据部被丢弃

协议:  指出该数据报携带的数据是使用何种协议

首部检验和:  这个字段只检验数据部首部,不包括数据部分。      具体检验方法是这样的:(网上拔得图)

                                                 

如果你不懂反码,不懂补码,请自行百度~~~~!!!!

IP报头的固定部分就这么多,IP报头还有一部分是可变部分,可变部分可以选择用或者不用,长度从1到40字节不等(首部长度最长是60字节,上面说过,60-20=40.最大40)

 

【IP层转发分组的流程】

好多东西都是书上直接照搬,我有点懵圈,不知道该怎么化成自己的讲出来~~~~~~

IP层转发分组的规则其实很简单,  分组从一个路由转发到另一个路由,最后一个路由向目的主机交付

什么是最后一个路由?就是你分组转发的某个路由,而路由连接到分组要去的网络,然后这个路由就直接把分组交付了

                               

路由表里的信息很简单,主要就是(目的网络地址,下一跳地址)

这样,路由器根据分组的IP地址查找对应的目的网络地址,得出下一跳地址(目的地址对应的下一跳地址是根据路由选择协议自行计算出来的)。

还有特定主机路由,特定主机路由即指某一台主机直接指定一个路由,我的分组就从这个路由转发出去

还有默认路由,对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由

 

啊,好多啊~~~~~~-

------------------------------------------------------------------------------------------------------------我是节操分割线------------------------------------------------------------------------------------------------------

【划分子网】

划分子网的原因就是,IP地址不够用了,现在的分配方式比较浪费IP地址。所以,现在就“划分子网”了。

划分子网的思路:

(1)划分子网是一个单位的网络内部的事情(比如一个大学内部),整个大学的网络对外人任然表现为一个网络

(2)从主机号,借若干位作为子网号(借用以后,主机号就少了,借多少就少多少)。然后二级IP就变成了三级IP

                                IP地址::= {<网络号>,<子网号>,<主机号>}

(3)发送分组的时候任然和以前一样,就是最后的一个路由(即到了本单位网络上的路由),通过目的地址和子网掩码得到 子网号,然后发送分组~~

子网中最重要的东西【子网掩码】

【子网掩码】的作用就是为了让本单位中的路由器找到所划分的子网。如果没有划分子网,默认的子网掩码就是下面这样

A类地址的默认子网掩码是255.0.0.0     换算成二进制,就是11111111 00000000 00000000 00000000

B类地址的默认子网掩码是255.255.0.0    换算成二进制,就是11111111 11111111 00000000 00000000

C类地址的默认子网掩码是255.255.255.0      换算成二进制,就是11111111 11111111 11111111 00000000

 

如果是划分了呢?那就是这样的,比如现在划分A类的子网

子网号的位数2位(即借用主机号2位)     11111111 11000000 00000000 00000000(二进制就是这样的) 换成10进制255.192.0.0(子网掩码) 

 子网号的位数3位(即借用主机号3位)     11111111 11100000 00000000 00000000(二进制就是这样的) 换成10进制255.224.0.0(子网掩码) 

具体就是这样的………………,一直划分下去就好了,

子网数和每个子网中主机数的确认是这样的~~~举例:假如子网号有两位,则可能的子网数共为2²,但是全0和全1不可用,所以子网数为2²-2=2,主机数2^22-2

 

那通过子网掩码和IP地址如何计算出网络地址呢?很简单啊,做个简单的与运算……

举例:IP地址为141.14.72.24    子网掩码为255.255.192.0 网络地址就这样求

目的地址(十进制):10001101 00001110 01001000 00011000

子网掩码(十进制):11111111 11111111 11000000 00000000

进行与运算,最后得到:10001101 00001110 01000000 00000000,换算成10进制就是141.14.64.0(这个就是网络地址了~)

 

---------------------------------------------------------------------------------------------------------我是无节操分割线------------------------------------------------------------------------------------------------------

【无分类编址CIDR】

CIDR消除了传统的A类,B类,C类地址以及子网划分的概念,而用网络前缀和主机号来划分网络

具体记法就是         IP地址::= {<网络前缀>,<主机号>}         CIDR还有另一种记法,就是“斜线记法” 在IP地址后面加上“/”,写上网络前缀所占的个数,

就像这样 128.14.35.7/20 这个就表明前20位是网络前缀,后12位是主机号,记作二进制就是这样的   10000000 00001110 00100011 00000111 下划线部分就是网络前缀,由此可以方便的得出这个地址块的

最大地址 10000000 00001110 00101111 11111111(128.14.47.255)

最小地址 10000000 00001110 00100000 00000000(128.14.32.0)

 

 

就这么多吧,基础的就这么多~~~

阅读全文
0 0
原创粉丝点击