【计算机网络】第五章:网络层

我搜集到的资料:

IP地址计算器、子网掩码计算器、网络主机计算器:http://ip.chacuo.net/ipcalc

如何理解子网掩码?:https://www.zhihu.com/question/56895036

题目1:有一B类网络,其子网掩码为 255.255.240.0,求每个子网的最大主机数

求解过程:
子网掩码 255.255.240.0
化成二进制得 11111111 11111111 11110000 00000000
子网号里面的1代表网络号 0代表主机号 所以有 12位为0
即最大主机号为 2的12次方
又因为全0和全1的不能分配给主机地址(主机位全为0是网络地址,全为1是广播地址)
所以实际的主机数为 2的12次方减去2
即最大主机数为 4096-2=4094个

题目2:192.168.1.33/27 他的子网掩码是多少


27代表网络位,转换为2进制 11111111 11111111 11111111 11100000

再转换为10进制就是掩码255.255.255.224

 

题目3: 网段192.168.0.0/16最多能容纳多少主机?

16是网络号,主机号是32-16=16,除去一个网络地址和一个广播地址,即2的16次方-2=65534

题目4:有一个网段192.168.0.0/23,请问它的网络地址,广播地址,可用ip地址范围分别是多少?

网络地址等于ip的二进制与子网掩码的二进制的与运算(0&0=0;0&1=0;1&0=0;1&1=1 )

192.168.0.0:  11000000.10101000.00000000.00000000

子网掩码23: 11111111  11111111  11111110 00000000

与运算后网络地址:11000000.10101000.00000000.00000000  =  192.168.0.0 

广播地址等于子网掩码取反后和ip地址的二进制进行或运算(0+0=0、0+1=1、 1+0=1、1+1=1)

子网掩码取反:(00000000  00000000  00000001 11111111)

IP地址:11000000.10101000.00000000.00000000

或运算后广播地址:11000000.10101000.00000001.11111111 =  192.168.1.255

可用地址数:2的9次方-2=512-2=510个。

可用地址范围:192.168.0.0  到  192.168.1.255。 除去首尾的网络地址和广播地址。

题目5:求10.100.122.2/24的网络号(网络号用来判断两个ip地址是否处于同一网段)

将子网掩码和 IP 地址按位计算 AND,就可得到网络号。

1 和任何数值AND运算,都是原来数值。

0 和任何数值AND运算,都是 0。

即 10.100.122.0

题目六: 求16.158.165.91/22这个网络的第一个地址、子网掩码和广播地址

/22 不是 8 的整数倍,不好办,只能先变成二进制来看。16.158 的部分不会动,它占了前 16 位。中间的 165,变为二进制为‭10100101‬。除了前面的 16 位,还剩 6 位。所以,这 8 位中前 6 位是网络号,16.158.<101001>,而 <01>.91 是机器号。

第一个地址是 16.158.<101001><00>.1,即 16.158.164.1。子网掩码是 255.255.<111111><00>.0,即 255.255.252.0。广播地址为 16.158.<101001><11>.255,即 16.158.167.255。

前言

1.网络层关注如何将数据分组从源端送到接收方

2.运输数据分组可能需要经过多跳(路由器)中间路由器

3.网络层是处理端到端数据传输的最低层。

5.1

5.1.1存储转发数据包交换

1.在网络层,数据分组是通过中间路由器一跳接一跳的转发,路由器采用存储转发的方式传输数据分组。

2.数据分组传递给距离该主机最近的路由器(默认路由器),路由器在链路层完成对数据分组的校验后存储在路由器,然后沿着路径转发到下一个路由器,直到到达它的目的地

5.1.2提供给网络层的服务

1.目标:①向上提供的服务应该独立于路由器技术。

②应该向传输层屏蔽路由器的数量、类型和拓扑关系。

③传输层可用的网络地址应该有一个统一编址方案,甚至可以跨越LAN和WAN。

2.①无连接服务: (Datagram数据报)

➢网络本质上不可靠

➢主机完成差错和流量控制

➢eg: IP protocol;

②面向连接服务: (虚电路 VC,virtual circuit )

➢网络提供可靠服务

➢Quality of service is the dominant factor. QoS保证

➢eg: X.25; Frame Relay; ATM; MPLS;

5.1.3 无连接服务的实现

1.分组被称为数据报。

2.尽最大努力传输,每个分组独立注入网络且独立路由,传输前无连接。

3.每个独立的数据报根据路由表在数据报子网中路由。

对照表,A到F初始走C-E,稍后走B-D-E-F

4.每个数据报有完整的地址信息,且相同地址的数据报无需走相同的路由。

5.1.4 面向连接服务的实现

1.数据传输前,先建立虚电路。建立一个连接时,从源机器到目标机器之间的一条路径就被当作这个连接的一部分确定了下来,并且保存在这些中间路由器的表中。所有需要在这个连接上通过的流量,都使用这条路径。

2.虚电路信息保存在中间路由器的路由表中。

3.所有流量沿虚电路传播,数据传输完成,电路释放。

4.数据分组携带虚电路标识而不是目的地址。

5.A路由表第一行说明若一个标示了连接标识符1的数据包来自H1,则它将被发送到路由器C,并且赋予连接标识符1。C路由表第一行将该数据包路由到E,也赋予连接标识符1。

若H3也与H2建立连接,H3选择连接标识符1 (因为H3发起连接,且是H3唯一的连接),并且告诉网络要建立虚电路,因此路由表增加了第二行。A给第二个连接的出境流量分配一个不同的连接标识符2来避免冲突。路由器需要具备替换出境数据包中连接标识符的能力。这个过程称为标签交换( label switching)。

5.1.5 虚电路与数据报网络的比较

eg:下面哪些方面数据报网络比虚电路网络优越(AD)

A.链路建立时间  不需建立链路

B.地址解析时间  包含全部源、目标地址,长

C.对路由器存储空间的要求  每个包都有个表项 / 只为每条虚电路提供表项

D.网络中某台路由器宕机

E.Qos保证

5.2路由算法

1.路由算法是网路层软件的一部分,负责确定一个入境数据分组应该被发送到哪一条输出线路上。

Forwarding转发:对到达的数据分组进行处理

Routing路由:确定选择哪条路由

2.两种路由算法:静态路由,自适应/动态路由

3.路由算法应该具备的特性:Correctness正确,Simplicity简单,Robustness健壮/鲁棒,Stability稳定,Fairness公平,Optimality优化/有效

4.最优路径准则:若路由器J在从路由器I到K的最优路径上,则从J到K的最优路径必

定遵循同样的路由。

5.最短路径算法:要求: 给一张图(无向图)根据Dijkstra算法找出最短路径(书P282)

依次检查每一个与A相邻的节点,用它们与A的距离重新标记,找到一个最短路径,该标记就变成永久

6.距离矢量算法:要求: 给一张图,用Bellman-Ford算法找出最佳路径

①每个路由器维护一张表(即一个矢量),表中列出了当前已知的到每个目标的最佳距离,以及所使用的链路。这些表通过邻居之间相互交换信息而不断被更新,最终每个路由器都了解到达每个目的地的最佳链路。

②每个路由器维护一张路由表,以网络每个路由器为索引,且每个路由器对应一个表项。该表项包含两部分:到达该目标路由器的首选出境线路,及到达该目标路由器的距离估计值。

eg:J计算它到路由器G的新路径。经过A到G的延迟为18(A-G)+8(J-A)=26,经过I为41 (即31+10),H为18 (即6+12),K为37 (即31+6),所以选从H到G,延时18。同理计算其他目标地址,得到的新路由表如图中最后一列所示。

7.链路状态路由算法:要求清晰的说明算法的实现步骤(书P288)

(1)发现邻居:发现它的邻居节点,并了解其网络地址。

(2)设置链路成本:设置到每个邻居节点的距离或者成本度量值。

(3)构造链路状态包:构造一个包含所有刚刚获知的链路信息包。

(4)分发链路状态包:将这个包发送给所有其他的路由器,并接收来自所有其他路由器的信息包。

(5)计算新路由:计算出到每个其他路由器的最短路径。

5.3拥塞控制算法

1.拥塞:网络中存在太多数据分组导致数据分组被延迟太多或丢失,从而降低了传输性能。对资源需求的总和>可用资源

2.拥塞控制一般由网络层和传输层共同完成。

3.拥塞控制和流量控制区别:拥塞控制的任务是确保网络能够承载所有到达网络的流量,是全局问题,涉及各方面行为,包括所有主机和所有路由器。流量控制的任务是确保一个快速的发送方不会持续地以超过接收方接收能力的速率传输数据,只与点到点的流量有关。

4.控制拥塞方法的时间尺度

5.4服务质量QoS(暂略)

5.5网络互连

5.5.1 网络如何不同

1.

5.5.2 如何连接网络

1.两种方式:①制造特殊设备完成不同网络数据包格式的转换

②不用网络中构造一个公共层——IP

2.IP提供了一种通用的数据包格式,所有路由器都认识这种数据包,因而这种数据包几乎可以通过所有的网络传递。

3.①一般来说不同的网络有不同形式的地址,数据包携带一个网络层地址,它可以标示这三个网络上的主机。当一个数据包从802.11网络被发送到MPLS网络时,首先到达第一个网络边界。802.11提供了无连接服务,但MPLS提供了面向连接的服务。必须建立一条穿过该网络的虚电路。只要数据包沿此虚电路传输,就能到达以太网网络。在第二个网络边界,数据包可能太大以至于无法通过,因为802.11可以使用比以太网大得多的帧。为了解决这个问题,数据包被拆分为段,每个段单独发送。这些段达到接收方后被重新组合在一起。

②如图,源端接受来自传输层的数据,并生成一个带有公共网络层的头,这个例子采用IP协议。网络层的头包含了最终的接收方地址,被用来确定数据包应该通过第一个路由器发送。因此,包被封装在802.11帧内并且被发送出去,帧的目标地址是第一个路由器的地址。在路由器,数据包从帧的数据字段中被提取出来,802.11帧头被丢弃;现在路由器检查数据包中的IP地址,并查询其路由表,根据这个地址,路由器决定将数据包发送到第二个路由器。对于路径中的这部分,路由器必须建立一条到第二个路由器的MPLS虛电路,且必须用MPLS报头封装该数据包。在远端,MPLS头被丢弃,并在此检查网络地址,以便寻找下一跳网络层。这下一跳就是目标网络本身。由于数据包太长无法通过以太网发送,它被拆分为两部分。每一部分被放入以太网帧的数据字段,并被发送到目的地的以太网地址。在接收方,剥掉每个帧的以太网帧头,将帧的数据内容重新组合。至此,数据包终于到达了它的目的地。

4.网桥(交换机)主要在链路层连接同类网络,路由器在网络层连接不同的网络

5.5.3 隧道

1.两个不同网络互联很困难,有源和目的主机所在的网络类型一样,中间隔着不同类型的网络的情况,解决技术是隧道。使用多协议路由器。

2.VPN (虚拟专用网络)就是采用隧道技术,它是一个提供安全措施的简单覆盖网络。

5.5.4 互联网的路由

1.在每个网络中,使用一个域内( intradomain)或内部网关协议(interior gateway protocol)进行路由(“网关”是“路由器”的旧称)。为了让数据包跨越构成互联网的网络,就需要用到域间(interdomain)或外部网关协议(exterior gateway protocol)。网络可能全部使用不同的域内协议,但它们必须使用相同的域间协议。在Internet上,域间路由协议称为边界网关协议(BGP, Border Gaterway Protocol)。

5.5.5 数据包分段

1.原因:网络(或链路层)允许传输的分组大小限制

       分组本身的长度不同

       硬件要求不同(如以太网的长度限制)

       操作系统(如所有缓冲区都是512字节)

       协议(如数据包长度字段中的位数)

       遵循某个国家或国际标准

       减少差错引起的重传

       防止数据包长时间占用信道

2.主机愿意传大数据,可以降低开销,如浪费在头字节上的带宽

3.防止大数据包超过了网络支持的最大尺寸:源端感知能够穿透网络的最大分组尺寸,从而避免分组的尺寸超过该数值。或允许路由器对到来的分组拆分成分片(fragments),每个分片作为独立的分组数据。

4.分片:不同网络允许的最大分组尺寸不同,需要分片。

5.重组:透明分片:中间路由器完成分片和重组。

非透明分片:目的路由器完成重组

6.网络互联需要解决的问题有:异构网络如何互联,如何选择路由,是否支持分片(没有交换机如何配置)

5.6 互联网的网络层

1.设计原则:保证工作,保持简单,明确选择,模块开发,期望异构性,避免静态选项和参数,寻找好的而不是完美的设计,严格发送宽容接收,考虑可扩展性,考虑性能和成本

2.连接子网:Internet是互相连接的许多网络

3.互联网络与虚拟互连网络

5.6.1 IPV4协议

1.一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。

2.版本:占4位,指IP协议的版本,目前的IP协议版本号为4(即IPv4)

3.首部长度:占4 位,可表示的最大数值是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。

4.区分服务:占8位,用来获得更好的服务。前6位标记数据包的服务类型(可靠与加速的可能组合),后2位用来携带显示拥塞通知。只有在使用区分服务(DiffServ) 时,这个字段才起作用。一般情况下不使用这个字段

5.总长度:占16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU。

6.标识(identification):占16位,计数器,每产生一个新的数据报,计数器加1。属于同一个数据包的各个分片的标识都相同。

7.标志(flag):占3 位,目前只有后两位有意义。标志字段的最低位是MF (More Fragment)。

MF=1表示后面“还有分片”。MF=0表示最后一个分片。标志字段中间的一位是DF (Don’t Fragment)只有当DF=0时才允许分片。

8.片偏移:12位,指出较长的分组在分片后某片在原分组中的相对位置,以8个字节为偏移单位。

9.生存时间TTL (Time To Live):8位,数据报在网络中可通过的路由器数的最大值。

10.协议:8位,指出此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个处理过程。ICMP:01   IGMP:02   TCP:06   UDP:17   OSPF:89

11.首部检验和:16位,只检验数据报的首部不检验数据部分。不采用CRC检验码而采用简单的计算方法。

12.源地址和目的地址都各占4字节

13.IP数据报首部的可变部分:IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施。选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。增加首部的可变部分是为了增加IP 数据报的功能,但这同时也使得IP 数据报的首部长度成为可变的,增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。

5.6.2 IP地址

1.IP地址有32位(比特),写成#.#.#.#

2.一个IP地址并不真正指向一台主机,而是指向一个网络接口,所以如果一台主机在两个网

络上,它必须有两个IP地址。然而,大多数主机都连在一个网络, 因而只有一个IP地址。路由器有多个接口,从而有多个IP地址。

3.IP地址及其表示方法:我们把整个因特网看成为一个单一、抽象的网络。IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。IP地址现在由因特网名字与号码指派公司ICANN 进行分配

4.点分十进制法:

5.IP地址的编址方法:

①分类的IP地址。这是最基本的编址方法,在1981年就通过了相应的标准协议。

②子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在1985年通过。

③构成超网。这是比较新的无分类编址方法,1993年提出后很快就得到推广应用。

6.分类IP地址:每一类地址都由两个固定长度的字段组成,其中一个字段是网络net-id,标志主机(或路由器)所连接到的网络,另一个字段则是主机号host-id,标志该主机(或路由器)。两级的IP 地址可以记为:

7.IP地址中的网络号字段和主机号字段:

8.3种常用的IP地址:

A类: 126(2^7-2),是因为IP地址中全0表示本网络;而0111 111=127,保留为本地软件

环回测试使用;A类拥有231个IP地址,占有50%的IPV4地址

B类: 16,383(2^14- 1),是因为网络号不会出现全0或全1的情况,而且128.0.0.0是不指派的

因此最小的网络地址为128.1.0.0

C类: 2,097,151 (2^21- 1),192.0.0.0也不指派,最小的网络地址是192.0.1.0

eg:IP地址10.2.1.0属于A类地址,其网络号为10 , 主机号为2.1.0。IP地址130.2.1.100属于B类地址 ,其网络号为130.2,主机号为1.100。IP地址201.222 5.64属于C类地址,其网络号为201.222.5,主机号为64 。

9.IP地址的重要特点:

(1) IP地址是一种分等级的地址结构。

好处:①IP地址管理机构在分配IP地址时只分配络号,而剩下的主机号则由得到该网络号的单位自行分配。方便了IP地址的管理。

②路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小路由表所占的存储空间。

(2) 实际上IP地址是标志一个主机(或路由器)一条链路的接口。当一个主机同时连接到两个网络上时,该主机必须同时具有两个相应的IP 地址,其网络号net-id必须是不同的。这种主机称为多归属主机(multihomed host)。由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址,每一个接口都有一个不同网络号的IP地址。

(3)用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网具有同样的网络号net-id。

(4)在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。

(5)所有分配到网络号net-id的网络,范围很小的局域网或是可能覆盖很大地理范围的广域网,都是平等的。

(6)两个路由器直接相连的接口处可指明/不指明IP地址。若指明,则这一段连线就构成了一种只包含一段线路的特殊“网络”(无编号/无名网络)。一般不指明

10.IP地址与硬件地址:

11.在IP层抽象的互联网上只能看到IP数据报图中的IP1→IP2,表示从源地址IP1到目的地址IP2,两个路由器的IP地址并不出现在IP数据报的首部中,路由器只根据目的站的IP地址的网络号进行路由选择。在具体的物理网络的链路层只能看见MAC帧而看不见IP数据报,IP层抽象的互联网屏蔽了下层很复杂的细节,在抽象的网络层上讨论问题,就能够使用统一的、抽象的IP地址研究主机和主机或主机和路由器之间的通信。

从H1 -> H2主机经过R1, R2 Router

➢R1,R2的每个网络接口,都有自己的IP地址(与net_ id有关)和MAC地址

➢在R1, R2上,分组的源地址IP1 ,目标地址IP2不变

➢但在R1, R2上,源、目标的MAC地址要改变(加入路由器的MAC地址)

12.地址解析协议ARP   逆向地址解析协议RARP

让主机或路由器知道应当在MAC帧中的首部中填入什么样的硬件地址

地址解析协议ARP:

①不管网络层使用的是什么协议,在实际网络的链蹈上传送数据帧时,最终还是必须使用硬件地址。

②每一个主机都设有一个ARP高速缓存(ARP cache),里面有所在的局域网.上的各主机和路由器的IP地址到硬件地址的映射表。

③当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址。若没有则广播。

ARP高速缓存的作用:

为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组。当主机B收到A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。这对主机B以后向A发送数据报时就更方便了。

应当注意的问题:

①ARP是解决同一个局域网上的主机或路由的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,就要通过ARP找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分转发给下一个网络。剩下的工作就由下一个网络来做。

②从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。

只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。

为什么不直接使用硬件地址进行通信:

由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。连接到因特网的主机都有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用ARP来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。

13.划分子网(Subnets)

(1)从两级IP地址到三级IP地址:在ARPANET的早期,IP地址的设计确实不够合理。

①IP地址空间的利用率有时很低。

②给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。

③两级的IP地址不够灵活。

从1985年起在IP地址中又增加了一个子网号字段,使两级的IP地址变成为三级的IP地址。

这种做法叫作划分子网(subnetting)。划分子网已成为因特网的正式标准协议。

(2)基本思路:划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。从主机号借用若干个位作为子网号subnet-id,主机号host-id相应减少若干位。凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号net-id,

先找到连接在本单位网络上的路由器,此路由器在收到IP数据报后,再按目的网络号net-id和子网号subnet-id找到目的子网。最后将IP数据报直接交付目的主机。

划分子网只是把IP地址的主机号host-id这部分进行再划分,而不改变IP地址原来的网络号net-id。

14.子网掩码:从一个IP数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。使用子网掩码(subnetmask)可以找出IP地址中的子网部分。

(IP地址) AND (子网掩码)=子网的网络地址

默认子网掩码:

若使用默认的子网掩码,则没划分子网

子网掩码是一个重要属性:

路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

eg:已知IP地址是141.14.72.24,子网掩码是255.255.192.0。试求网络地址,子网地址。按照这种子网掩码的位数,可以划分多少个子网?

答:128<141<191,故为B类,网络地址为前2位,141.14

IP地址与子网掩码相与,得到子网地址64

192化成二进制占2位,划分4个子网

eg:Internet上一个网络的子网掩码为255.255.240.0,则它最多容纳2048台主机

15.IP数据报的首部中没有地方可以用来指明“下跳路由器的IP地址”。当路由器收到待转发的数据报,不是将下一跳路由器的IP地址填入IP数据报,而是送交下层的网络接口软件。网络接口软件使用ARP负责将下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。

16.无分类编址CIDR(Classless Inter-Domain Routing):划分子网在一定程度上缓解了因特网在发展中遇到的困难。但整个IPv4的地址空间最终将全部耗尽。解决:使用变长子网掩码VLSM,后来又使用无分类域间路由选择CDIR

© 版权声明
THE END
喜欢就支持以下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容