计算机网络 网络层上 | IP数据报,IP地址,ICMP,ARP等

文章目录

  • 1 网络层的两个层面
  • 2 网络协议IP
    • 2.1 虚拟互联网络
    • 2.2 IP地址
      • 2.2.1 固定分类编址方式
      • 2.2.2 无分类编制CIDR
      • 2.2.3 MAC地址和IP地址区别
    • 2.3 地址解析协议ARP
      • 2.3.1 解析过程
    • 2.4 IP数据报格式
  • 3 IP层转发分组流程
  • 4 国际控制报文协议ICMP
    • 4.1 ICMP格式结构
    • 4.2 分类
      • 4.2.1 差错报告报文
      • 4.2.2 询问报文
    • 4.3 应用

以前人们想借鉴电信网(电话网络)成功的经验,尝试采用虚电路服务,让网络层负责可靠交付,通信之前先建立虚电路。但是互联网的先驱者们提出让网络层尽可能简单,即用网络层提供简单灵活的,无连接的,尽最大努力交付的数据报服务,这是因为考虑到互联网的终端都是有智能的计算机而不是简单的电话,所以终端有着很强的数据处理能力,那么也就不需要网络层来进行这部分的可靠交付了。

后来多年的实践证明,先驱者们的选择多么正确

(1)网络层简单使得网络中的路由器可以做得比较简单,价格低廉,因而易于拓展,便于大规模发展

(2)运行方式灵活,能够适应多种应用

1 网络层的两个层面

两个主机通信的时候,需要经过若干个路由器转发信息。

转发的信息实际就两大类:一是传送的数据(数据层面),二是路由信息(控制层面)

  • 数据层面的信息转发:只需要查找本路由器的路由表,把收到的分组从对应的接口发送出去,数据部分直接硬件转发,速度极快,为纳秒数量级
  • 控制层面的信息转发:路由器必须得经常和相邻的路由器交互路由信息更新自己的路由表,所以更为复杂,,软件介入转发,速度会慢了很多,为秒数量级

2 网络协议IP

IP是TCP/IP体系中最重要的两个协议之一

与IP协议配套使用的还有

地址解析协议ARP

网际控制报文协议ICMP

网际组管理协议 IGMP

如下图所示

在这里插入图片描述

我们会发现ICMP,IGMP协议在IP的上方,是因为这两个协议经常需要调用IP协议

而ARP协议在IP的下方,是因为IP协议需要经常调用ARP协议

在讨论网际协议IP前,必须先了解什么是虚拟互联网络

2.1 虚拟互联网络

我们知道网络是要将全世界五花八门的计算机互联在一起,这就需要解决很多问题,最首要的一个就是异构,差异性

比如:不同的寻址方案,不同的组大分组长度,比如不同的差错控制方案等等一大堆。

那么该怎么办呢?

先驱者们提出在网络层,通过IP协议来进行统一,就是不管你其他层的协议是什么,我的网络层大家都用IP协议,这样仿佛在网络层看起来是一个统一的网络,也就叫做我们的虚拟互联网络。

所以大家可以感受到IP协议的重要性了吧!!!之前我们讲的一些协议可能通用性并没有那么强,但IP是互联网每一个用户都得遵守的boss rules

一个在互联网上的设备必须有IP地址才能与其他设备进行通信,接下来我们来了解IP地址

2.2 IP地址

整个因特网看成是一个单一的,抽象的网络

IP地址就是给每一个连接在因特网上的主机分配一个在全世界范围是唯一的32位的标识符

2.2.1 固定分类编址方式

IP地址由网络号和主机号组成,又叫做两级IP——网络号+主机号

​ 网络号表示着主机所连接到的网络,主机号表示该主机(对路由器的话是路由器)

最开始的时候采用固定分类的IP地址,即网络号的位数是固定的(8位A类,16位B类和24位C类)

如何区分不同类别的地址呢?通过网络号的前缀,如下图

在这里插入图片描述

对于A类地址,是网络号为8位的

​ 总地址空间 2 31 2^{31} 231个 接近43亿

​ 网络号个数:由于A类地址网络号有7位,所以A类地址可以分配的网络号个数 2 7 − 2 = 126 个 2^7-2=126个 272=126,这里为什么要减去2呢,因为0000 000的网络号有特殊含义代表“本网络”,0111 1111的网络号代表环回测试

​ 主机号个数: 2 24 − 2 2^{24}-2 2242 为什么这里还要减2呢,因为全0是本网络,全1是所有的广播

对于B类地址,是网络号为16位的

​ 总地址空间 2 30 2^{30} 230

​ 网络号个数: 2 14 2^{14} 214

​ 主机号个数: 2 16 − 2 2^{16}-2 2162

对于C类地址,是网络号为24位的

​ 总地址空间 2 29 2^{29} 229

​ 网络号个数: 2 21 2^{21} 221

​ 主机号个数: 2 8 − 2 2^{8}-2 282

以上A,B,C类都是单播地址,而D类地址是多播地址

这样的好处是简单,看前缀就知道什么类型的地址了

缺点是:使用不灵活的问题

2.2.2 无分类编制CIDR

于是采用更为灵活的CIDR

上一个网络号位数是由类别决定的,每一个类别网络号位数是固定的,而CIDR的网络号位数是由掩码决定的,是可变的

之前的网络号在CIDR里更名为网络前缀

网络前缀可以通过斜线+数字表示,如/20

比如IP 128.14.32.7/20 我们可以知道 网络前缀20位,那么主机号30-20=12位!

人为可以看斜线数字,计算机怎么知道有多少位网络前缀呢?

通过子网掩码

如上述IP 128.14.32.7/20,有20个并列的1,12个并列的0组成掩码

其中1的个数代表网络号个数,0的个数代表主机号个数

我们将IP地址和子网掩码按位与,可以得到网络地址

有三个比较特殊的地址块

1 前缀n=32,用于主机路由

2 前缀n=31,用于点对点路由

3 前缀n=0,且所有主机号为0,用于默认路由

这些用途后面讲到

路由聚合——用较大的CIDR块替代较小的CIDR块,减少查找转发表的时间

2.2.3 MAC地址和IP地址区别

MAC地址是物理地址,硬件实现,在数据链路层,MAC帧首部

IP地址是逻辑地址,软件实现,在网络层,IP数据报首部

假设从A1,到B1,途径R1,R2两个路由器

IP数据报都不变,即IP首地址和源地址都是A1,B1

但MAC帧的首地址尾地址会发生变化,一开始A1,R1,然后R1,R2……

特殊IP地址

在这里插入图片描述

点分十进制记法

IP编址可以解决世界各地网络硬件地址差异大,转换工作复杂的问题

网络地址转换过程

​ 离开专用网的时候,替换源地址,将内部地址替换为全球地址

​ 进入专用网的时候,替换目的地址,将全球地址替换为内部地址

现在有一个问题,就是我们已经知道IP了,那么计算机怎么知道对应的MAC地址呢

这就涉及到地址解析协议ARP

2.3 地址解析协议ARP

已经知道了一个机器(主机或路由器)的IP地址,如何找出其响应的硬件地址

地址解析协议ARP就是用来解决这个问题的

方法:每一个主机都设有一个ARP高速缓存(ARP cache,作用存放最近获得的IP地址绑定的MAC地址,减少ARP广播数量)这里面存有所在局域网上的各个主机和路由器IP地址到硬件地址的映射表

<IP address; MAC address; TTL> TTL:地址映射有效时间

我们可以查看自己的电脑的ARP高速缓存,命令

arp -a|more

2.3.1 解析过程

先在ARP高速缓存中查看有无主机B的IP地址

​ 如果有,就可查出对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将该硬件地址写入MAC帧,然后通过局域网发往硬件地址

​ 如果没有,ARP进程在本局域网上广播发送一个ARP请求分组,收到ARP响应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存

​ 不在同一个局域网的话,则交给一个路由器

​ 解析是自动进行的

2.4 IP数据报格式

首部和数据部组成,首部是固定长度,共20字节,是所有IP数据报必须拥有的

首部的固定部分的后面是一些可选字段,其长度是可以变的

固定字段的常见内容如下

版本,首部长度,区分服务,总长度,标识,标志

3 IP层转发分组流程

显示本机路由表 route print -4

IP层后转发分组都只找网络前缀了(这样就可以找到目的网络)因为直接如果找到主机号的地步,会需要大量的内容,主机数目实在太大了,查找过程就会非常缓慢……

所以就找前缀相同,看看是不是本网络如果不是的话则通过端口转发。如果有多个匹配的前缀,那么则选取最长的前缀

核心算法(默认前缀按长到短排序)

1 从数据报首部提取目的主机的IP地址D,得出目的网络的地址N

2 若网络N与此路由器直接相连,则把数据报直接交付目的主机D,否则是间接交付。执行3

3 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中下一跳的路由器,否则执行4

4 若路由表中有目的网络地址N的路由,则把数据报传送给路由表中下一跳的路由器,否则执行4

5 若路由表中有一个默认路由,则把数据报传送给路由表中指明的默认路由器,否则执行6

6 报告转发分组出错

特殊的路由

​ 主机路由和默认路由

而为了加快查找表的查找过程,又可以使用二叉线索查找转发表

为了更有效地转发IP数据报并且提高交付机会,使用ICMP协议

使用ICMP后,就可以运行主机或者路由器报告差错情况和提供有关异常情况的报告

4 国际控制报文协议ICMP

提高IP数据报的交付成功机会,允许主机或路由器报告差错情况和提供有关异常情况的报告,但是不是高层协议,ICMP报文是装到IP数据报的数据部分中的

是IP层协议

4.1 ICMP格式结构

在这里插入图片描述

ICMP报文的前四个字节是统一的格式,共有3个字段,即类型、代码、检验和

ICMP的应用举例

Ping

traceroute

4.2 分类

4.2.1 差错报告报文

在如下情况发送ICMP报文

​ 终点不可达

​ 源点抑制

​ 时间超过

​ 参数问题

​ 改变路由(重定向)

4.2.2 询问报文

ICMP报文的

4.3 应用

用ping命令测两个主机的连通性,其中ping是应用层直接使用网络层ICMP的一个例子

另一个例子是LInux的traceroute ,Windows下是tracert,可以知道到目的主机所经过路由器的IP地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/282881.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用网安渗透工具及命令(扫目录、解密爆破、漏洞信息搜索)

目录 dirsearch&#xff1a; dirmap&#xff1a; 输入目标 文件读取 ciphey&#xff08;很强的一个自动解密工具&#xff09;&#xff1a; john(破解密码)&#xff1a; whatweb指纹识别&#xff1a; searchsploit&#xff1a; 例1&#xff1a; 例2&#xff1a; 例3&…

LWIP源码认识记录

1、内核&#xff1a;\src\core的各源文件含义 2、demo例程与移植&#xff1a;lwip\lwip-contrib

【面试】广告优化

a1&#xff1a;点击率公式是什么&#xff1f;点击率低的原因是什么&#xff1f; 点击率点击/曝光&#xff0c;点击率低的原因主要有两点&#xff1a;一是创意不吸引人&#xff1b;二是目标受众不准确/定向过宽不精确&#xff0c;广告曝光给了对产品不感兴趣用户 a2&#xff1a;…

Markdown编辑器常用颜色背景指南(附颜色与代码展示,cv即可用)

目录 一.字体颜色1)常用html代码2)通过【颜色代码表】直接改写 二.字体背景颜色1)常用html代码 一.字体颜色 1)常用html代码 html代码 <font colorred> text </font> 常用颜色及其对应的十六进制和颜色名: 红色 p 红色 #FF0000 red <font color#FF0000> t…

条款5:了解c++默默编写并调用了哪些函数

如果你不自己声明&#xff0c;编译器会替你声明&#xff08;编译器版本的&#xff09;拷贝构造函数、拷贝赋值运算符和析构函数。此外&#xff0c;如果你没有声明任何构造函数&#xff0c;编译器会为你声明一个默认构造函数。 class Empty{};本质上和写成下面这样是一样的: c…

全球汽车行业的数字化转型:产品和后端的渐进之旅

如何管理汽车行业的数字化转型?在我们本篇文章中了解更多有关如何设定长期目标的信息。 正在改变汽车行业的26个数字化主题 最近一篇关于汽车行业数字化转型的论文确定了26个数字技术主题&#xff08;论文详情请点击阅读原文&#xff09;&#xff0c;分为三个主要集群: 1)驾驶…

小姐姐跳舞,AI 视频生成太酷了

大家好&#xff0c;我是章北海 最近AI视频领域的研究进展神速&#xff0c;看得眼花缭乱。 这里老章就把最近几天看过印象深刻的四个项目介绍给大家&#xff0c;同时附上项目相关简介、论文、代码等资料&#xff0c;感兴趣的同学可以深度研究一下。 《SMPLer-X:放大表达性人体…

数据结构之<树>的介绍

树的基本概念 在数据结构中&#xff0c;树&#xff08;Tree&#xff09;是一种层次结构&#xff0c;由节点和边组成。树的基本概念包括根节点、子节点、父节点、兄弟节点等。节点拥有零个或多个子节点&#xff0c;除了根节点外&#xff0c;每个节点有且仅有一个父节点。树的层…

基于ssm居家养老系统论文

居家养老系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了居家养老系统的开发全过程。通过分析高校学生综合素质评价管理方面的不足&#xff0c;创建了一个计算机管理居家养老系统的方案。文章介绍了居家…

DOS 系统(命令行)

文章目录 DOS 系统DOS 常用命令DOS 高级命令DOS 批处理命令DOS 应用场景 DOS 系统 操作系统的发展史&#xff08;DOS/Windows篇&#xff09; DOS操作系统的历史 DOS&#xff08;Disk Operating System&#xff09; 是 磁盘操作系统 的缩写&#xff0c;是一种早期的个人计算机操…

设计模式(2)--对象创建(5)--单件

1. 意图 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 2. 一种角色 单件(Singleton) 3. 优点 3.1 对唯一实例的受控访问 3.2 缩小名空间(对全局变量的改进) 3.3 允许对操作和表示精化(可以有子类) 3.4 允许可变数目的实例 3.5 比类操作更灵活 4. 缺点…

FPGA引脚分配的问题

今天在做一个FPGA的实验时&#xff0c;在引脚分配时失败了&#xff0c;出现了如下报错&#xff1a; 我当时分配的引脚是PIN_AE19&#xff0c;然而奇怪的是我之前并未分配这个引脚&#xff0c;我使用的开发工具是Quartus II 9.1 Web Edition&#xff0c;算个老版本了。 有的网站…