计算机网络-网络层(ARP协议,DHCP协议,ICMP协议)

news2024/10/6 22:22:32

文章目录

  • 1. ARP协议
  • 2. DHCP协议
  • 3. ICMP协议

1. ARP协议

首先数据在从网络层向下传递到数据链路层,在数据链路层中,要给报文封装源MAC地址和目的MAC地址。

其中获取目的MAC地址就是通过ARP协议

首先:每台主机都有一个ARP高速缓存(保存局域网内的IP地址与MAC地址的映射)

在数据链路层获取目的MAC地址就是根据目的主机的IP地址,而目的主机的IP地址实在网络层封装的。

如果主机的ARP告诉缓存没有找到目的主机的MAC地址映射,这就利用了ARP协议:

  1. 首先源主机广播一个ARP请求分组(目的MAC地址全1代表局域网广播)
  2. 只有当目的IP地址满足ARP请求分组的主机会响应这个分组(单播响应分组),将自己的MAC地址和IP地址的映射返回给发送方。
  3. 源主机收到后将此映射写入ARP缓存,ARP缓存也会不断更新

上面的过程是两台局域网设备进行通信的过程。
如果是跨局域网通信,上面的场景还需要ARP协议,只不过这次ARP协议请求的是这个网段的默认网关(路由器的MAC地址)

获得路由器的MAC地址后,将发送方的数据发送给路由器,让路由器负责跨网络传输数据。

ARP协议使用的情况:

  1. 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
  2. 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器网关)的硬件地址
  3. 路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
  4. 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。

综上,ARP协议解决的问题就是数据下一跳走哪里。

2. DHCP协议

首先主机获取IP地址的方式有两种:

  1. 静态配置:IP地址,子网掩码,默认网关
  2. 动态配置:DHCP服务器来给移动设备分配IP地址

首先:动态主机配置协议DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。

这里之所以将DHCP放入网络层,因为DHCP和IP协议联系紧密

DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址。

允许地址重用,支持移动用户加入网络,支持在用地址续租。

DHCP协议流程:

  1. 主机广播DHCP发现报文:找DHCP服务器

  2. DHCP服务器广播DHCP提供报文:回应请求,服务器拟分配给主机一个IP地址及相关配置。主机使用最先收到的DHCP提供报文

  3. 主机广播DHCP请求报文:和DHCP服务器确认使用其给的IP地址,同时通知其他DHCP服务器收回拟分配的IP。

  4. DHCP服务器广播DHCP确认报文:正式将IP地址分配给主机。

3. ICMP协议

TCP/IP协议栈结构:
在这里插入图片描述

ICMP/IGMP协议是处于传输层和网络层之间的协议。这里主要学习ICMP协议。
ICMP协议作用是:为了更有效地转发lP数据报和提高交付成功的机会。

ICMP协议支持主机或路由器,主要实现

  1. 差错(异常)报告:网络层的数据出现错误丢弃时需要向上层ICMP差错报告报文。
  2. 网络探询

ICMP协议的报文是装在IP数据报的数据部分。

在这里插入图片描述
类型:指明ICMP的具体类型
代码:具体指明ICMP类型
检验和:检验ICMP报文是否出错

ICMP报文的类型:

  • . ICMP差错报文(五种):

    • 终点不可达:当路由器或主机不能交付数据报时就向源点发送终点不可达报文。

    • 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点减缓发送速率。

    • 时间超过:当路由器收到生存时间TTL=0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。

      当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。

    • 参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报并向源点发送参数问题报文。

    • 改变路由(重定向)︰路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。

ICMP差错报文格式:
在这里插入图片描述

ICMP差错格式的IP数据报:

IP数据报头+ICMP差错报告报文(ICMP前8字节+IP数据报首部+IP数据报数据字段前8字节)

需要注意:
1. ICMP差错报告报文出错不再发送ICMP差错报告报文
2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文。
3. 对具有组播地址的数据报都不发送ICMP差错报告报文。

	组播地址:一点到多点通信(不是所有主机),类似于广播通信(一点到所有点)

4. 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
  • ICMP询问报文(四种):

    • 回送请求和回答报文:主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。

      eg:ping命名 (测试目的站是否可达以及了解其相关状态)

    • 时间戳请求和回答报文:请某个主机或路由器回答当前的日期和时间。

      用来进行时钟同步和测量时间。

    • 掩码地址请求和回答报文(废弃)

    • 路由器询问和通告报文(废弃)

ICMP的应用:

  1. ping命令:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。

  2. Traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。

    发送一组TTL相差1的报文(TTL:1,2,3,4,5……),根据每个超时差错报文返回的信息分析一个分组从源点到终点的路径

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【VC++】字符串详解窗口第一个windows程序

注:最后有面试挑战,看看自己掌握了吗 文章目录系统调用顺序对比怎样避免确实动态链接库基本知识类型列表指针类型匈牙利标记法字符串详解Unicode 和 ANSI 函数TCHARs窗口WinMain我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻&#xf…

微信小程序开发(超详细保姆式教程)

介绍: 微信里面app,16年推出 竞品:支付宝小程序,钉钉,美团,头条,抖音qq小程序 优点 1,在微信里面自由分享,2,不用下载app,3,能快速的开发&#xf…

【MySQL】如何把Windows上的MySQL数据库迁移到Linux服务器上

目录1. 前言2. 物理备份与逻辑备份3. mysqldump实现逻辑备份4. 逻辑恢复1. 前言 最近在学黑马的《瑞吉外卖》,前期的基础版本一致在 Windows 电脑上开发,包括 MySQL 数据库也是安装在 Windows 电脑上。最近才学到优化篇,安装了 Linux 虚拟机…

【成为红帽工程师】第二天 ssh远程连接服务器

目录 一、远程连接服务器 二、连接加密技术 三、ssh远程连接服务 四、sftp用法介绍 五、相关实验 一、远程连接服务器 (一)什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机…

2022年最新山东交安安全员模拟真题及答案

百分百题库提供交安安全员考试试题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 43.危险性较大工程专项施工方案需要论证的,应当由建设单位组织召开专家论证会。 答案&#…

计算机毕业设计SSM财务管理系统【附源码数据库】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

计算机毕业设计SSM城市智能公交系统【附源码数据库】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

MyBatis(4)---多表查询

多表查询: 一对一:一篇博客对应着一个作者 一对多:一个作者对应着多篇博客 ResultMap和ResultType的区别: 1)字段映射不同:resultType适用于数据库字段名和实体类的名字是相同的,但是假设实体类的名字叫做username,但是数据库的名字是name,这…

MyBatis(3)

我们在进行指定ID进行删除的时候还可以加上一个属性:表示要传递的参数的类型是啥 <delete id"Delete" parameterType"java.lang.Integer">delete from user where userID#{userID}</delete> 我们现在先实现一个场景----我们来进行查询一下User…

【毕业设计】大数据共享单车数据分析系统 - python

文章目录0 前言1 项目背景2 项目分析思维导图3 项目分析具体步骤3.1 读取数据3.2 数据分析3.1.1 数据预处理——每日使用量分析3.1.2 连续7天的单日使用分析结论3.1.3 数据预处理——每日不同时间段的使用量分析3.1.4 每日不同时间段使用量分析结论3.1.5 数据预处理——骑行距离…

【C++】智能指针

一、资源的管理 RAII:Resource Acquisition Is Initialization的简称&#xff0c;其翻译过来就是“资源获取即初始化”&#xff0c;即在构造函数中申请分配资源&#xff0c;在析构函数中释放资源&#xff0c;它是C语言中的一种管理资源、避免泄漏的良好方法。 C语言的机制保证…

python快速实现简易超级玛丽小游戏

《超级玛丽》是一款超级马里奥全明星的同人作品&#xff0c;也是任天堂公司出品的著名横版游戏。 《超级马里奥》是一款经典的像素冒险过关游戏。最早在红白机上推出&#xff0c;有多款后续作品&#xff0c;迄今多个版本合共销量已突破4000万套。其中的主角马里奥、路易、碧琪…

[附源码]计算机毕业设计JAVAjsp闲置物品线上交易系统

[附源码]计算机毕业设计JAVAjsp闲置物品线上交易系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM …

tensor和numpy相互转换

tensor转成numpy b a.numpy()import torcha torch.arange(5) b a.numpy() print(a) print(type(a)) print(b) print(type(b))numpy转成tensor b torch.tensor(a)import torch import numpy as npa np.ones(5) b torch.tensor(a) print(a) print(type(a)) print(b) prin…

Spring Cloud框架(原生Hoxton版本与Spring Cloud Alibaba)基础入门篇 ---- 搭建环境

springcloud官方文档&#xff08;Hoxton SR5&#xff09;&#xff1a;https://cloud.spring.io/spring-cloud-static/Hoxton.SR5/reference/htmlsingle/ springcloud中文文档&#xff1a;https://www.springcloud.cc/ springcloud中国社区文档&#xff1a;http://docs.springcl…

【C++】栈~~(很详细哦)

在前几天&#xff0c;我们刚一起学过顺序表&#xff0c;链表&#xff08;无头单向不循环&#xff0c;有头双向循环&#xff09;&#xff0c;这两种都属于线性表因为是一系列存储的。而以后的哈希表则是散列表 今天我们看一下栈 目录 1.栈的介绍 2.实现 3.题目 1.栈的介绍 …

mindspore::dataset::GetAffineTransform的输出与cv2的输出不同

在使用C进行推理时用到了函数mindspore::dataset::GetAffineTransform&#xff0c;但是输入相同的数据后&#xff0c;与Python的cv2中的同名函数cv2.getAffineTransform所输出的结果不同。 C Ascend310端测试核心代码 #include <iostream> #include <vector>#…

synchronized 关键字背后的锁升级流程

文章目录前言一、基本特点二、加锁过程总结前言 博主个人社区&#xff1a;开发与算法学习社区 博主个人主页&#xff1a;Killing Vibe的博客 欢迎大家加入&#xff0c;一起交流学习~~ 一、基本特点 结合多线程锁的策略, 我们就可以总结出, Synchronized 具有以下特性(只考虑 J…

基于51单片机的智能台灯设计

一.硬件方案 本文介绍了一种基于PWM调光的智能台灯设计。把单片机技术和PWM调光技术结合起来实现台灯光强的调节。即在不改变PWM方波周期的前提下&#xff0c;利用单片机控制PWM的占空比&#xff0c;从而来改变电压的大小实现灯光亮度的调节。 当人体在台灯的范围内且环…

linux驱动设备节点失踪之迷雾围城

前言 参考文章&#xff1a;无法生成设备节点 最后证实&#xff1a;是bootargs配置错误导致的&#xff0c;不过中间发现也是可以通过mdev -s间接解决的&#xff0c;算是学习经验吧。 misc驱动框架是linux内核驱动中最简单实用的框架了。记录一下今天调试misc驱动的问题。misc驱动…