计算机网络学习笔记第四章(网络层)超详细整理,Java开发者跳槽必备

image-20210422212310228

一般不使用的特殊IP地址

image-20210422212435527

习题3

image-20210422213152754

需要注意的是,所分配的IP地址应该互不相同,并且其主机号部分不能出现全0,因为这是网络地址。也不能出现全1,因为这是广播地址。网络地址或广播地址都不能分配给主机或路由器的各接口,因为他们无法唯一标识一台主机或路由器的某个接口。

2.2、总结

IP 地址的指派范围

image-20201017152911541

一般不使用的特殊的 IP 地址

image-20201017152959586

IP 地址的一些重要特点

(1) IP 地址是一种分等级的地址结构。分两个等级的好处是:

  • 第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。

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

(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口

  • 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机 (multihomed host)。

  • 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址

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

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

image-20210422213435145

3、划分子网的IPv4地址


3.1、为什么要划分子网

在 ARPANET 的早期,IP 地址的设计确实不够合理:

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

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

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

如图所示。某单位有一个大型的局域网需要连接到英特网。如果申请一个C 类网络地址,其可分配的IP 地址数量只254个,不够使用。因此,该单位申请了一个B 类网络地址,其可分配的IP 地址数量达到了65534个。给每台计算机和路由器的接口分配一个IP 地址后,还有大量的IP 地址剩余。这些剩余的IP 地址只能由该单位的同一个网络使用。

image-20201017154645198

如果想要将原来的网络划分成三个独立的网路。假设子网一仍然使用原先申请到的B 类网络地址,那么就需要为子网二和子网三各自申请一个网络地址。

image-20201017154852896

如果可以从IP 地址的主机号部分借用一些位作为子网号来区分不同的子网,就可以利用原有网络中剩余的大量IP 地址,而不用申请新的网络地址。

image-20201017155026814

但是如果未在图中标记子网号部分,那么我们和计算机又如何知道分类地址中主机号有多少比特被用作子网号了呢?

所以就有了划分子网的工具:子网掩码

  • 从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址
  • 这种做法叫做划分子网 (subnetting) 。
  • 划分子网已成为互联网的正式标准协议。

3.2、如何划分子网

基本思路

  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。

  • 从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。

image-20201017155930011

  • 凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。

  • 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。

  • 最后就将 IP 数据报直接交付目的主机。

划分为三个子网后对外仍是一个网络

image-20201017160116239

  • 优点
1.  减少了 IP 地址的浪费
2.  使网络的组织更加灵活
3.  更便于维护和管理
  • 划分子网纯属一个单位内部的事情,对外部网络透明,对外仍然表现为没有划分子网的一个网络。

3.3、子网掩码

例如对于本例,我们可以借用16位主机号中的8位作为子网号。假设我们给子网1分配的子网号为0,给子网2分配的子网号为1,给子网3分配的子网号为2,之后就可以给各子网中的主机和路由器接口分配IP地址了。

image-20210423112157426

这样我们就引出了一个划分子网的工具,它就是子网掩码。当我们从主机号部分借用一些位作为子网号时,IP地址从两级结构的分类IP 地址变成了三级结构的划分子网的IP 地址。

image-20210530155549723

(IP 地址) AND (子网掩码) = 网络地址 重要,下面很多相关知识都会用到

接下来我们来举例说明划分子网的细节

习题1

image-20201017161651058

习题2

image-20201017161719339

习题3

image-20210423115132933

将网络号和子网号保持不变,而将主机号的十个比特全部取零,就可以得到该主机所在子网的网络地址。将网络号和子网号保持不变,而将主机号的十个比特全部取一,就可以得到该主机所在子网的广播地址。

image-20210423115223691

默认子网掩码

image-20201017162807076

3.4、总结

image-20201017162938612

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

4、无分类编址的IPv4地址


1、为什么使用无分类编址

无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。

image-20201017164031532

CIDR 最主要的特点

  • CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
  • IP 地址从三级编址(使用子网掩码)又回到了两级编址

2、如何使用无分类编址

image-20201017165037268

举例

image-20201017165113442

聚合C类网,就是把多少个C类网聚合到一起来使用。

练习

image-20210423164122246

3、路由聚合(构造超网)

image-20201017165615915

习题1

image-20210423164954070

习题2

image-20210423165501070

总结

image-20201017170552495

5、IPv4地址的应用规划


给定一个IPv4地址块,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址

两种方式image-20210423165733675

1、定长的子网掩码FLSM(Fixed Length Subnet Mask)

image-20201018143550103

划分子网的IPv4就是定长的子网掩码

举例

image-20201018140809079

image-20201018140916631

image-20210423170343980

依次类推,我们便可以得到划分子网的全部细节

image-20201018141132446

通过上面步骤分析,就可以从子网1~ 8中任选5个分配给左图中的N1~N5

采用定长的子网掩码划分,只能划分出2^n个子网,其中n是从主机号部分借用的用来作为子网号的比特数量,每个子网所分配的IP地址数量相同

但是也因为每个子网所分配的IP地址数量相同,不够灵活,容易造成IP地址的浪费

2、变长的子网掩码VLSM(Variable Length Subnet Mask)

image-20201018143632352

无分类编址的IPv4就是变长的子网掩码

举例

image-20210423171216252

image-20210602083202725

分配原则

image-20210602083223882


3、小结

image-20210423172209977

4.4、IP数据报的发送和转发过程

====================================================================================

image-20201018144335297

举例

image-20201018151314019

image-20201018150151171

我们知道同一个网络中的主机之间可以直接通信,这属于直接交付。不同网络中的主机之间的通信需要通过路由器来中转,这属于间接交付。那么原主机如何判断出目的主机是否与自己在同一个网络中呢?

image-20201018150223497

可以通过目的地址IP源地址的子网掩码进行逻辑与运算得到目的网络地址

  • 如果目的网络地址源网络地址 相同,就是在同一个网络中,属于直接交付
  • 如果目的网络地址源网络地址 不相同,就不在同一个网络中,属于间接交付,传输给主机所在网络的默认网关(路由器——下图会讲解),由默认网关帮忙转发

主机C如何知道路由器R的存在?

image-20201018145501063

用户为了让本网络中的主机能和其他网络中的主机进行通讯,就必须给其指定本网络中的一个路由器,由该路由器帮忙进行转发,所指定的路由器也被称为默认网关。对于本例,我们可以将路由器接口0的IP 地址指定给该接口,所直连网络中的各个主机作为默认网关。同理,可将路由器接口1的IP 地址指定给该接口,所直连网络中的各个主机作为默认网关。这样当本网络中的主机要和其他网络中的主机进行通信时,会将IP 数据报传输给默认网关,由默认网关帮主机将IP数据报转发出去。

例如。路由器的接口0的IP地址192.168.0.126做为左边网络的默认网关

image-20201018150029179

主机A会将该IP数据报传输给自己的默认网关,也就是图中所示的路由器接口0

路由器收到IP数据报后如何转发?

  • 检查IP数据报首部是否出错:

  • 若出错,则直接丢弃该IP数据报并通告源主机

  • 若没有出错,则进行转发

  • 根据IP数据报的目的地址在路由表中查找匹配的条目:

  • 若找到匹配的条目,则转发给条目中指示下一跳

  • 若找不到,则丢弃该数据报并通告源主机

假设IP数据报首部没有出错,路由器取出IP数据报首部各地址字段的值

image-20201018151108989

接下来路由器对该IP数据报进行查表转发

image-20201018151528027

逐条检查路由条目,将目的地址与路由条目中的地址掩码进行逻辑与运算得到目的网络地址,然后与路由条目中的目的网络进行比较,如果相同,则这条路由条目就是匹配的路由条目,按照它的下一条指示,图中所示的也就是接口1转发该IP数据报

image-20201018151956275

路由器是隔离广播域的

image-20201018152040610

路由器是隔离广播域的,这是很有必要的。试想一下,如果英特网中数量巨大的路由器收到广播IP 数据报后都进行转发,则会造成巨大的广播风暴,严重浪费因特网资源。


image-20210424162327847

1、习题练习


习题1

image-20210424162438163

习题2

image-20210424162614069

2、小结


4.5、静态路由配置及其可能产生的路由环路问题

==========================================================================================

1、概念


image-20201018155702081

2、多种情况举例


静态路由配置

举例

image-20201018160349375

默认路由

举例

默认路由可以被所有网络匹配,但路由匹配有优先级,默认路由是优先级最低的

image-20201018160906284

由于英特网中包含了众多的网络,如果我们给R添加针对这些网络的每一条路由条目,则会给人工配置带来巨大的工作量,并且使的路由表变得非常大,降低了查表转发的速度。实际上,对于具有相同下一跳的不同目的网络的路由条目,我们可以用一条默认路由条目来替代。默认路由条目中的目的网络地址为0.0.0.0

特定主机路由

有时候,我们可以给路由器添加针对某个主机的特定主机路由条目

一般用于网络管理人员对网络的管理和测试

image-20201018161440257

多条路由可选,匹配路由最具体的

静态路由配置错误导致路由环路

举例

image-20201018161542579

假设将R2的路由表中第三条目录配置错了下一跳

这导致R2和R3之间产生了路由环路

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3euJGR6F-1622594379836)(https://gitee.com/zhao-xiaolong1/cloudeimage/raw/master/img/image-20201018162041966.png)]

聚合了不存在的网络而导致路由环路

举例

正常情况

image-20201018162333671

image-20201018162759562

错误情况

image-20201018163323343

解决方法

image-20201018163933715

image-20201018164453398

黑洞路由的下一跳为null0,这是路由器内部的虚拟接口,IP数据报进入它后就被丢弃

网络故障而导致路由环路

举例

image-20201018164811811

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KmWRSwXJ-1622594379839)(计算机网络第4章(网络层).assets/image-20201018164913684.png)]

解决方法

添加故障的网络为黑洞路由

image-20201018165122023

image-20201018165153517

假设。一段时间后故障网络恢复了

R1又自动地得出了其接口0的直连网络的路由条目

针对该网络的黑洞网络会自动失效

image-20201018165328319

如果又故障

则生效该网络的黑洞网络

image-20201018165521938

3、总结


image-20201018165709294


4.6、路由选择协议

=============================================================================

1、概述


image-20201019134827343

因特网所采用的路由选择协议的主要特点

image-20201019134946971

因特网采用分层次的路由选择协议

  • 自治系统 AS:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。

image-20201019135122326

自治系统之间的路由选择简称为域间路由选择,自治系统内部的路由选择简称为域内路由选择

image-20201019135328925

域间路由选择使用外部网关协议EGP这个类别的路由选择协议

域内路由选择使用内部网关协议IGP这个类别的路由选择协议

网关协议的名称可称为路由协议

常见的路由选择协议

image-20201019140009740

路由器的基本结构

路由器是一种具有多个输入端口,和输出端口的专用计算机,其任务是转发分组

image-20201019140234652

路由器结构可划分为两大部分:

1、分组转发部分

由三部分构成

  • 交换结构

  • 一组输入端口:

信号从某个输入端口进入路由器

image-20201019141149194

物理层将信号转换成比特流,送交数据链路层处理

image-20201019141210774

数据链路层识别从比特流中识别出帧,去掉帧头和帧尾后,送交网络层处理

image-20201019141242246

如果送交网络层的分组是普通待转发的数据分组

image-20201019141305650

则根据分组首部中的目的地址进行查表转发

image-20201019141327380

若找不到匹配的转发条目,则丢弃该分组,否则,按照匹配条目中所指示的端口进行转发

  • 一组输出端口

网络层更新数据分组首部中某些字段的值,例如将数据分组的生存时间减1,然后送交数据链路层进行封装

image-20201019141745375

数据链路层将数据分组封装成帧,交给物理层处理

image-20201019141838032

物理层将帧看成比特流将其变换成相应的电信号进行发送

路由器的各端口还会有输入缓冲区和输出缓冲区

  • 输入缓冲区用来暂存新进入路由器但还来不及处理的分组
  • 输出缓冲区用来暂存已经处理完毕但还来不及发送的分组

image-20201019143040253

路由器的端口一般都具有输入和输出功能,这些实例分出了输入端口和输出端口是更好演示路由基本工作过程

2、路由选择部分

  • 路由选择部分的核心构件是路由选择处理机,它的任务是根据所使用的路由选择协议。周期性地与其他路由器 进行路由信息的交互,来更新路由表

如果送交给输入端口的网络层的分组是路由器之间交换路由信息的路由报文,则把这种分组送交给路由选择处理机

image-20201019142228360

路由选择处理机根据分组的内容来更新自己的路由表

image-20201019142415055

路由选择处理机还会周期性地给其他路由器发送自己所知道的路由信息

image-20201019142924889

2、路由信息协议RIP


image-20201019144915687

image-20201019145247606

RIP的基本工作过程

举例

image-20201019145510947

RIP的路由条目的更新规则

举例1

image-20201019145627339

路由器C的表到达各目的网络的下一条都记为问号,可以理解为路由器D并不需要关心路由器C的这些内容

假设路由器C的RIP更新报文发送周期到了,则路由器C将自己路由表中的相关路由信息封装到RIP更新报文中发送给路由器D

image-20201019150120900

路由器C能到达这些网络,说明路由器C的相邻路由器也能到达,只是比路由器C的距离大1,于是根据距离的对比,路由器D更新自己的路由表

image-20201019150412666

举例2

image-20210425202533919

解答

image-20201019150525711

习题练习

image-20210425202803871

RIP存在“坏消息传播得慢”的问题

image-20201019151041492

image-20201019151135255

image-20201019151332767

解决方法

image-20201019151639181

但是,这些方法也不能完全解决“坏消息传播得慢”的问题,这是距离向量的本质决定

习题练习

image-20210425203702760

image-20210425204138140

image-20210425203807602

总结

image-20201019152526098

RIP 协议的优缺点

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后

现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。

所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。

习题练习

image-20210425203702760

image-20210425204138140

image-20210425203807602

总结

image-20201019152526098

RIP 协议的优缺点

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-0Vf1h9Z2-1711192128713)]
[外链图片转存中…(img-MC4SGOLp-1711192128713)]
[外链图片转存中…(img-gkuTEtsH-1711192128714)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-acjW0oWc-1711192128714)]

最后

现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。

所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。

[外链图片转存中…(img-FsPK6NYk-1711192128714)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值