网络基础三——其他周边问题

news2024/11/24 0:11:01

3.1ARP原理

​ ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议;

​ 以广播的形式(主机号填成全1)构建Mac帧,发送ARP请求包,告诉所有在局域网的主机我的IP地址和Mac帧,与目的IP相同的主机用它的Mac地址构建Mac帧,返回ARP响应包;即先广播消息,然后其他主机一对一地将数据返回或者丢弃数据帧;

3.2ARP报文格式

在这里插入图片描述

硬件类型,指的是数据链路层的网络类型,1为以太网;

协议类型,指的是要转换的地址类型,一般是IP地址,即0800;

硬件地址长度,与硬件类型对应,如果是以太网长度应该是6字节;

协议地址长度,与协议类型对应,如果是IP协议,则长度应该是4字节;

OP,1表示是ARP请求,2表示ARP响应;

​ 在局域网内部的主机都可以发送ARP请求和ARP响应,在数据链路层和网络层之间进行构建,之后再数据链路层进行构建Mac数据帧;

​ 如果是ARP请求:发送端以太网地址就是入口路由器的Mac地址,IP地址同理,目的以太网地址为全F,目的IP为IP报文的目的IP地址;在发送IP报文前是会先发送ARP请求,构建好ARP请求,然后添加Mac报头;以太网目的地址为广播地址,以太网源地址为路由器Mac地址,帧类型为0806,OP为1;

​ 如果是ARP响应:发送端以太网地址就是发送主机的Mac地址,IP地址同理,目的以太网地址为路由器Mac地址,目的IP地址同理;构建好ARP响应,然后添加Mac报头;以太网目的地址为路由器Mac地址,以太网源地址为当前主机的路由器Mac地址,帧类型为0806,OP为2;

在ARP层先看的是OP;对于ARP请求,因为目的地址是广播地址,所以每一个主机的数据链路层的会接收并解包分用给ARP层,而ARP应答,因为目的地址不是广播地址,在数据链路层就可以判断出来进行丢弃;根据OP确定请求和应答,然后确定关注目的端还是发送端的Mac地址和IP地址;

4.ARP相关指令

arp -a
#查看被主机临时缓存起来的目标主机的Mac地址和IP地址

​ ARP完成之后会将目标主机的Mac地址和IP地址临时缓存起来;之后发送IP报文就会在数据链路层添加目标主机的Mac地址,成功发送到目标主机;

5.ARP周边问题

​ 1.ARP只有在失效的时候才会将进行;

​ 2.ARP在任何局域网内的两设备之间都可以进行;

​ 3.可以通过本机IP地址和子网掩码获取当前网段的网络号,ping所有本网段的主机之后获得所有主机的IP地址和Mac地址映射;

​ 4.收到多个ARP应答,实际上是会以最新的为准;如果第三方主机构建大量的虚假ARP应答,就会使得发送端主机发送的IP报文被发送虚假ARP应答的第三方主机收到并且丢弃,使得发送方主机发生了一次断网;这种攻击方式称为ARP欺骗;其实也可以将获取的IP报文发送给路由器,然后路由器会将报文返回给第三方主机,第三方主机将IP报文发送回发送端主机,这样就是实现了一次单向中间人攻击,当然也可以对路由器进行ARP欺骗,实现双向的中间人攻击;

​ 5.RARP是通过Mac地址获取IP地址;

6.其他问题

​ 1.DNS是域名解析技术,将域名解析成对应的IP地址;浏览器内置了DNS服务器的IP地址,进行域名和IP地址的转化;

​ 主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称;域名使用 . 连接;

​ com: 一级域名. 表示这是一个企业域名. 同级的还有 “net”(网络提供商), “org”(非盈利组织) 等;

​ baidu: 二级域名, 公司名;

​ www: 只是一种习惯用法. 之前人们在使用域名时, 往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式, 来表示主机支持的协议;

​ 2.ICMP是网络层的协议,在IP之上,传输层之下;ping就是使用的ICMP协议,使用原始套接字直接发送到网络层;一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输;如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因,此时就需要使用ICMP协议来进行网络诊断和通知出错原因;

7.NAT技术

​ 将私有IP和WAN口IP不断替换的技术;

​ 缓解IP地址不足的问题,使用私有IP和WAN口IP将源IP地址不断替换成内网入口路由器IP地址,最终从内网入口路由器发送公网,然后公网发生数据响应返回到内网入口路由器;这时是区别不了具体发送到哪一个子网中,因为此时的目的IP地址是内网入口路由器的IP地址;这时就需要使用NAPT建立一个内网源IP:端口号和目的IP:端口号与公网源IP:端口号和目的IP:端口号的映射,最后多个映射组成一个NAT转化表;最后就实现了内网向公网转发,公网向内网转发;

​ 其实在NAT替换的过程当中不仅仅是源IP替换,端口也替换了,因为要保证公网和内网部分key都唯一,而内网IP一定是唯一的,转换成WAN口IP地址会导致IP都一样,需要使用不同的端口号保证唯一性;

​ 这种关联关系也是由NAT路由器自动维护的. 例如在TCP的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项;

NAT缺陷

​ 无法从NAT外部向内部服务器建立连接;

​ 转换表的生成和销毁都需要额外开销;

​ 通信过程中一旦NAT设备异常, 即使存在设备, 所有的TCP连接也都会断开;

内网穿透

​ 不同内网是不可以直接进行通信,需要先访问外网然后外网转发到内网,间接实现不同内网的通信;

​ frp工具会提供frps(服务器端)和frpc(客户端),实现了通过外网访问内网;

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

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

相关文章

意得辑意得辑

你是否也曾遇到过在发表论文时英语写作水平不尽如人意的困境?审稿意见总是指出语言表达不够好,需要找英语母语者修改?不用担心,我和你一样,也曾历经这样的挑战。但是,我找到了一家值得信赖的专业润色机构—…

深入分析Linux上下文与上下文切换

Linux 进程运行空间与特权等级 在 Linux 操作系统中,进程的运行空间被划分为内核空间和用户空间,这种划分是为了保护系统的稳定性和安全性。这两个空间对应着 CPU 的特权等级,分别为: Ring 0(内核态)Ring…

全国青少年劳动技能与智能设计大赛安徽省赛区赛前培训在肥东六中顺利举办

为推进我省青少年劳动教育和素质教育高质量发展,提升青少年家国情怀、多元思维、劳动技能、创新能力和综合素质,发现和培养创新后备人才。4月10日,肥东县教体局联合安徽省青少年劳动技能与智能设计大赛组委会在肥东六中创新科教基地成功举行全…

人工智能分类算法概述

文章目录 人工智能主要分类算法决策树随机森林逻辑回归K-均值 总结 人工智能主要分类算法 人工智能分类算法是用于将数据划分为不同类别的算法。这些算法通过学习数据的特征和模式,将输入数据映射到相应的类别。分类算法在人工智能中具有广泛的应用,如图…

目标检测——车牌图像数据集

一、重要性及意义 车牌图像识别的重要性及意义主要体现在以下几个方面: 智能交通管理:车牌图像识别技术是智能交通系统(ITS)的核心组成部分。通过自动识别车辆车牌,可以实现对交通违章行为的自动记录和处理&#xff…

SSD涨价停不下来!

随着HBM内存产能短缺问题的出现,存储市场正遭遇另一波供应短缺。在2021年存储市场陷入低迷后,SSD价格已连续下滑约两年。面对市场变化,存储厂商减少了NAND闪存的生产。随着减产策略的有效执行,需求部分回升,导致SSD供应…

jni 开发 调用dll 函数的流程

jni 调用dll方法以及dll内调用java方法的流程 编写java类 public class abc{static{System.loadLibrary("abc.dll");}public String getResponse(String ReqStr) {return "ok";}public native void InitDiagObj();public native void CarryabcEntry(Stri…

C++的并发世界(十一)——线程池

0.线程池的概念 1.线程池使用步骤 ①初始化线程池:确定线程数量,并做好互斥访问; ②启动所有线程 ③准备好任务处理基类; ④获取任务接口:通过条件变量阻塞等待任务 2.atomic原子操作 std:atomic是C11标准库中的一个…

双碳目标下太阳辐射预报模式【WRF-SOLAR】及改进技术在气象、农林、电力等相关领域中的应用

太阳能是一种清洁能源,合理有效开发太阳能资源对减少污染、保护环境以及应对气候变化和能源安全具有非常重要的实际意义,为了实现能源和环境的可持续发展,近年来世界各国都高度重视太阳能资源的开发利用;另外太阳辐射的光谱成分、…

A Note on LoRA

A Note on LoRA 摘要Additional InsightsPractical ImprovementsLooking Ahead 摘要 LoRA已成为一种首选的方法,用以高效地适应大型语言模型(LLM),其简便性和有效性令人瞩目。本文档扩展了原始LoRA论文,提供了最初未讨…

Spring中的适配器模式

在Spring MVC框架中,适配器模式主要体现在对不同类型的处理器(即Controller)的统一处理上。Spring MVC通过适配器模式来保证无论Controller的实现方式如何多样化,都能够被DispatcherServlet统一调用和管理。具体使用方式如下&…

李廉洋:4.10黄金原油晚间走势最新分析及策略。

鉴于美联储官员对1月和2月通胀数据反应不足,3月通胀数据过热可能导致其反应过度的风险更大。美联储试图避免根据一两个数据点来制定政策,但今年迄今为止经济活动的韧性意味着,在年中降息的理由取决于通胀是否恢复自去年下半年以来的稳步下降趋…

uniapp小程序编译报错

说明 微信小程序编译每次都出现[ project.config.json 文件内容错误] project.config.json: libVersion 字段需为 string, 解决 找到manifest.json文件 添加:"libVersion": "latest",重新编译即可。

Redis常见数据类型(2)

目录 String字符串 常见命令 SET GET MGET MSET SETNX 计数命令 INCR INCRBY DECR DECRBY INCRFLOAT 其它命令 APPEND GETRANGE SETRANGE STRLEN String字符串 字符串是Redis最基础的数据类型, 关于字符串需要特别注意: (1)首先Redis中所有的键的类型都是字符…

[leetcode]remove-duplicates-from-sorted-list-ii

. - 力扣(LeetCode) 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,3,4,4,5] 输出:[1,2,5]示例 2&…

jvm中jdk常用的几个命令总结

1.jmap 此命令可以用来查询内存信息&#xff0c;实例个数及占用内存大小 1.1 查看堆内存概要信息&#xff08;内存分配统计&#xff09; jmap -histo[:live] <pid> .-histo&#xff1a;显示堆中对象的统计信息&#xff0c;包括每个类的实例数量、占用内存大小等 :live…

互联网产品经理必备知识详解

1. 前言 本文档全面探讨了产品经理在产品管理过程中的关键环节,包括市场调研、产品定义及设计、项目管理、产品宣介、产品市场以及产品生命周期。通过深入剖析这些方面,本文旨在帮助产品经理系统地理解和掌握产品管理的核心要素,从而提升产品开发的效率和成功率。在市场调研…

HarmonyOS 开发-二级联动

介绍 本示例主要介绍了List组件实现二级联动&#xff08;Cascading List&#xff09;的场景。 该场景多用于短视频中拍摄风格的选择、照片编辑时的场景的选择。 效果图预览 使用说明&#xff1a; 滑动二级列表侧控件&#xff0c;一级列表随之滚动。点击一级列表&#xff0c;…

运行vue项目

将命令改为&#xff1a; 1 npm run dev vite 不是内部分外部命令 报错信息&#xff1a;"vite 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件" 通常意味着 Vite 没有被安装或者没有正确地添加到系统的环境变量中。 解决方法&#xff1a; 确认 V…

HAL ST32F4 定时器2触发ADC转换

HAL ST32F4 定时器2触发ADC转换 &#x1f4cd;相关篇《STM32 F401/411外设内部互联矩阵摘要》《STM32G070RBT6基于STM32CubeMX创建ADC DMA多通道采样工程》 &#x1f4dd;利用定时器2的更新中断触发ADC转换。与定时器中断中调用ADC转换不同。前者是内部更新事件触发ADC转换&…