计网学习笔记十三.网络层(上)

目录

网络层

网络层核心功能-转发与路由

网络层服务模型

虚电路(Virtual circuits)

数据报网络

数据报转发表

最长前缀匹配优先

数据报网络 or VC网络?

IP协议

IP数据报

Internet网络层

IP数据报(分组)格式

IP分片

最大传输单元(MTU)

IP分片与重组

IP分组格式

IP分片过程

IP编址

IP子网(Subnets)

有类IP地址

IP子网划分与子网掩码

子网掩码

CIDR与路由聚合

公有 IP 地址和私有 IP 地址


网络层

网络层和传输层不同,不再是端到端。网络层发送主机将传输层的数据段封装为数据报。

网络层核心功能-转发与路由

网络层服务模型

不同网络提供的网络层服务内容不一样。

Internet网络服务模型是尽力,不做带宽、丢失、顺序、时间、拥塞控制。(就是IP协议不做这些)

ATM网络(异步传输,在电信使用),它在网络层提供的模型有很多种。

Internet采用无连接服务,我们先了解下链接服务虚电路

虚电路(Virtual circuits)

像电路交换,但又不是,所以叫虚电路,因为是分组交换不是电路交换。这是网络层,所以经过的每个网络层设备都会参与其中。

虚电路建立过程(因为像电路交换,所以一些地方采用了电路交换名词)。

每条链路(路由器-路由器),每个数据报有个虚电路号,就会按照那条链路走,走过后,数据报的虚电路号会修改为下一条虚电路号。

下图,每经过一个路由器,虚电路号就会改变。路由器上会维护转发表,从哪个接口输入、哪个输出接口输出、虚电路号会怎么变化。

虚电路的建立和拆除对应路由器的转发表维护,建立虚电路转发表就得加内容,拆除虚电路 路由器转发表就得删除内容。

数据报网络

每个分组都携带目的地址,因为路由器的转发表会更新,两主机间的不同分组会走不同的路线,到达目的主机的顺序也可能是乱序。

数据报转发表

  • 每个分组都会携带目的主机的IP,路由器根据这个IP进行转发,但IP4有32位,总共40多亿的IP数量,路由器转发表不可能把这都记录该怎么转发。
  • 所以按照地址范围进行转发,但实际IP范围不会这么临近到完美简单分成几个范围。

    

 

   

最长前缀匹配优先

如果同时匹配好两个范围,则选择更长的匹配,也是更具体的范围。

数据报网络 or VC网络?

  • Internet设计期望跨域不同链路层,用多种链路;
  • 不要求实时数据交换;
  • 关注计算机和计算机之前的传输,计算机本身可以自适应一些场景;
  • 复杂边缘,意思是让边缘计算机去实现一些东西,让主机实现,让网络看起来简单些

IP协议

IP数据报

Internet网络层

IP数据报(分组)格式

数据报分为首部和数据,首部又分为固定部分和可变部分。

  • 版本号:IP协议的版本,占用4个bit,如果是IP4这个值就是4,IP6值就是6
  • 首部长度:4个bit,4个bit最大表示15,但看图,一行32bit即一行4个字节,除去可变部分也有5行,即总共20个字节,超出了15的范围。所以首部长度以4字节为单位,如果值是5,就代表5*4=20个字节,首部长度是20个字节,20就代表没有可变部分、只有固定部分。如果是IP4,版本号值为4,首部长度值为5
  • 服务类型8个bit,指示期望获得哪种类型的服务,1998 年这个字段改名为区分服务,只有在网络提供区分服务(DiffServ)时使用,一般情况下不使用,通常IP分组的该字段(第2字节)的值为00H
  • 总长度字段占16位:以字节为单位,IP分组的总字节数(首部+数据),是整个IP数据报的长度。最大IP分组的总长度:65535B(IP数据包最大65535个字节,这是理论上,实际不会有这么大分组,肯定会拆分为多个分组),最小的IP分组首部:20B,最小的IP分组首部:20B
  • 第二行后面讲
  • 生存时间:IP分组在网络中可以通过的 路由器数(或跳步数),路由器转发一次分组,TTL减1,如果TTL=0,路由器则丢弃该IP分组。如果丢弃了,通常路由器会向原主机发送ICMP报文后面讲
  • 协议:表示封装的是哪个协议的段,如TCP、UDP。实现了IP层的复用/分解,6为TCP,表示封装的为TCP段;17为UDP,表示封装的是 UDP数据报
  • 首部校验和:字段占16位:实现对IP分组首部的差错检测。计算校验和时,该字段置全0。采用反码算数运算求和,和的反码作为首部校验和字段。逐跳计算、逐跳校验
  • 源IP地址、目的IP地址:字段各占32位:分别标识发送分组 的源主机/路由器(网络接口)和接收分组的目的主机/路由器 (网络接口)的IP地址
  • 选项字段:占长度可变,范围在1~40B之间:携带安全、源 选路径(直接确定怎么走路线)、时间戳和路由记录等内容,实际上很少被使用
  • 填充字段:占长度可变,范围在0~3B之间:目的是补齐整个 首部,符合32位对齐,即保证首部长度是4字节的倍数

IP分片

最大传输单元(MTU)

链路层帧封装网络的数据报,帧能封装数据的上限就是最大传输单元。不同链路的MTU不同,如MTU1>MTU2,当这个链路帧能放下一个数据报,但下个链路帧放不下,所以出现了IP的分片和重组

IP分片与重组

  • 路由器只管分,不管装,最后到达的主机才管组装。
  • 主机如何组装分组,分片里必须里有点信息,才能让主机重组还原
  • 如果某分片丢失,主机在等待一段时间后,会把这个分组的所有分片丢弃

IP分组格式

  • 标识字段占16位:标识一个IP分组,IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组 的标(不足以完全标识一个分组,两个主机可能产生相同计数,还需要靠协议、源IP地址、目的IP地址共同标识一个分组)
  • 标志位字段占3位:DF=0才能分片,MF=1说明肯定分片过了、不是独立分组
  • 片偏移字段占13位:一个IP分组分片封装原IP分组数据的 相对偏移量。IPV4中片偏移字段以8字节为单位,所以除了最后一片,前面所有的分片数据都是8的倍数。如果偏移量是0,则没有发生分片。通过偏移量去排序分片。

IP分片过程

  • 最大分片可封装的数据:M是最大传输单元,-20首部字节,除以8向下取整,因为偏移量是8的倍数,意味着分片能封装的数据也是8的倍数,再乘8就是最大可封装数据。
  • 需要的总片数,向上取整

IP编址

  

IP子网(Subnets)

  • IP地址不是随便分配、没有章法的,某一区域的IP网络号相同、主机号不同,这样也方便路由器的转发表记录。
  • 相同网络号的设备接口,一个区域,叫IP子网
  • 同一IP子网,不跨越路由器,就可以互相通信的接口
  • 同一区域通信,只需记录子网地址,不用记录IP

下图有6个子网

有类IP地址

如果IPV4一共32位,如果网络号占用字节多,则主机表示范围少,如果主机占用字节多,则网络号范围少。该如何分配。

比如A类,前8位用做网络号,8位范围是0-255,但这里规定A类地址主机号是0-127(并不是前8位都用,这是规定),总体IP范围是下图所示。

A类实际网络号要去掉127,是回环地址使用。

  • 当主机不知道自己IP地址,还想用IP协议发送数据,源地址就是0.0.0.0
  • 网络号全0,主机号特定值。当主机发送数据,不清楚目的主机的具体IP,可以用这种方式,则默认目标主机的网络号和本机IP网络号相同,靠主机号找目标主机
  • 32个bit都是1,255.255.255.255,表示本网络内的广播地址,不能用于源地址,可用于目的地址
  • 网络号特定值,主机号全0,代表一个网络
  • 网络号特定值,主机号全1,表示这个特定网络的广播地址
  • 网络号127,主机号非全0或非全1,往这个地址发送数据,分组不会离开主机,而是到达网络层后又回到主机

私有(Private)IP地址,以下地址只能在局域网使用,不能在公有网络使用。

IP子网划分与子网掩码

有类IP的问题

  • IP浪费,假设一个公司2000个电脑,分配一个C类地址主机号不够用,分配B类地址主机号太多浪费
  • A类B类,主机号太多了,IP子网规定不跨越路由器就可通信,实际网络中不可能这样,不会让这么多主机直接相连,肯定中间有路由器。所以需要继续划分子网

SubID子网ID,路由器收到一个分组,标明了想去哪个子网,路由器就转发过去。但如何确定目标IP划分了子网,通过子网掩码

子网掩码

子网掩码是在IPv4地址资源紧缺的背景下为了解决lP地址分配而产生的虚拟lP技术,通过子网掩码将A、B、C三类地址划分为若干子网,从而显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的局面。另一方面,在企业内网中为了更好地管理网络,网管人员也利用子网掩码的作用,人为地将一个较大的企业内部网络划分为更多个小规模的子网,再利用三层交换机的路由功能实现子网互联,从而有效解决了网络广播风暴和网络病毒等诸多网络管理方面的问题

这块不太理解

借用3比特划分子网的B网的子网掩码为:255.255.224.0,224是1110 0000

子网地址+子网掩码,确定子网大小,这样搞IP数据报必须携带子网掩码。

子网201.2.3.0(就是网络号),子网掩码255.255.255.0,则子网范围是201.2.3.1-201.2.3.254

划分等长的4个子网,192这是借用了主机号的两个最高位比特,为什么这么用两个最高位划分?不知道

CIDR与路由聚合(重要)

这里面有个尴尬的事情,就是 C 类地址能包含的最大主机数量实在太少了,只有 254 个。当时设计的时候恐怕没想到,现在估计一个网吧都不够用吧。而 B 类地址能包含的最大主机数量又太多了。6 万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。

于是有了一个折中的方式叫作无类型域间选路,简称 CIDR。这种方式打破了原来设计的几类地址的做法,将 32 位的 IP 地址一分为二,前面是网络号,后面是主机号。

从哪里分呢?你如果注意观察的话可以看到,10.100.122.2/24,这个 IP 地址中有一个斜杠,斜杠后面有个数字 24。这种地址表示形式,就是 CIDR。后面 24 的意思是,32 位中,前 24 位是网络号,后 8 位是主机号。

伴随着 CIDR 存在的,一个是广播地址,10.100.122.255。如果发送这个地址,所有 10.100.122 网络里面的机器都可以收到。

另一个是子网掩码,255.255.255.0。将子网掩码和 IP 地址进行 AND 计算。前面三个 255,转成二进制都是 1。1 和任何数值取 AND,都是原来数值,1和0AND是1,因而前三个数不变,为 10.100.122。后面一个 0,转换成二进制是 0,0 和任何数值取 AND,都是 0,因而最后一个数变为 0,合起来就是 10.100.122.0。这就是网络号。将子网掩码和 IP 地址按位计算 AND,就可得到网络号。

公有 IP 地址和私有 IP 地址

在日常的工作中,几乎不用划分 A 类、B 类或者 C 类,所以时间长了,很多人就忘记了这个分类,而只记得 CIDR。

但是有一点还是要注意的,就是公有 IP 地址和私有 IP 地址。我们继续看上面的表格。

表格最右列是私有 IP 地址段。平时我们看到的数据中心里,办公室、家里或学校的 IP 地址,一般都是私有 IP 地址段。因为这些地址允许组织内部的 IT 人员自己管理、自己分配,而且可以重复。因此,你学校的某个私有 IP 地址段和我学校的可以是一样的。这就像每个小区有自己的楼编号和门牌号,你们小区可以叫 6 栋,我们小区也叫 6 栋,没有任何问题。但是一旦出了小区,就需要使用公有 IP 地址。就像人民路 888 号,是国家统一分配的,不能两个小区都叫人民路 888 号。公有 IP 地址有个组织统一分配,你需要去买。如果你搭建一个网站,给你学校的人使用,让你们学校的 IT 人员给你一个 IP 地址就行。但是假如你要做一个类似网易 163 这样的网站,就需要有公有 IP 地址,这样全世界的人才能访问。

表格中的 192.168.0.x 是最常用的私有 IP 地址。你家里有 Wi-Fi,对应就会有一个 IP 地址。一般你家里地上网设备不会超过 256 个,所以 /24 基本就够了。有时候我们也能见到 /16 的 CIDR,这两种是最常见的,也是最容易理解的。不需要将十进制转换为二进制 32 位,就能明显看出 192.168.0 是网络号,后面是主机号。而整个网络里面的第一个地址 192.168.0.1,往往就是你这个私有网络的出口地址。例如,你家里的电脑连接 Wi-Fi,Wi-Fi 路由器的地址就是 192.168.0.1,而 192.168.0.255 就是广播地址。一旦发送这个地址,整个 192.168.0 网络里面的所有机器都能收到。但是也不总都是这样的情况。因此,其他情况往往就会很难理解,还容易出错。

例题

告诉了路由器等地址

划分子网

202.118.1.0/24,32位IPv4,前3个字节是网括号,最后一个字节可作为主机号,一个字节8位,8bit最多能表示的数是255=2^9-1, 1000 0000(二进制)=2^7=128。很明显最后一个字节能表示255个IP,分一半也比题目要求的120个多,可以划分。

使用最后8个bit的最高一位来划分子网,及1 000 0000中的这个1。

子网1需要去掉两个地址,子网地址202.118.1.0,广播地址202.118.1.127,即可分配的IP范围是202.118.1.1-202.118.1.126

子网2一样,子网地址202.118.1.128,广播地址202.118.1.255,即可分配的IP范围是202.118.1.129-202.118.1.254

路由表

  • 因为R1到两个局域网都是直接连接,所以没有下一条地址,目的地址是局域网搞的子网地址。接口是从哪个路由器口出去
  • 域名服务器是个主机,不是网络地址(网络地址就像局域网1,写他的子网地址),所以目的网络直接写主机地址即可
  • 互联网地址,可以认为是路由表中的缺省地址,如果前面的路由表都不符合,就往这个地址送。在前面学过,路由表中0.0.0.0表示互联网、默认路由

聚合路由的路由表

  • 因为两个局域网,ip是连续的,所以可以把他们当做一个wangle,在路由表中只写一个

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值