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

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.mzph.cn/news/805514.shtml

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

相关文章

08 Php学习:iff语句、Switch语句

PHP 条件语句 当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。 在 PHP 中,提供了下列条件语句: if 语句 - 在条件成立时执行代码 if…else 语句 - 在条件成立时执行一块代码,…

【Shell 脚本下载个图片】

先讲思路: 首先,我们要有一个上下文,然后用 grep 去获取其中所有的http开头的图片的链接,使用 curl -O 命令,直接将图片拉下来,拉东西,还要注意尊重他人知识版权, 看脚本&#xf…

langchain-chatchat加载Azure Open AI

1.找到knowledge_base_chat.py文件中的get_ChatOpenAI函数 2.按crtl进入get_ChatOpenAI函数位置 3.注释原先的get_ChatOpenAI函数,修改成以下内容: def get_ChatOpenAI(model_name: str,temperature: float,streaming: bool True,callbacks: List[Ca…

意得辑意得辑

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

SPI外设简介

SPI外设简介 简介部分 可配置8/16位数据帧、高位先行/低位先行 SPI和I2C都是高位先行,串口是低位先行 PCLK是外设时钟,APB2是72MHz、APB1是36MHz SPI1的时钟频率比SPI2的大一倍 如果需要快速大量传输数据,可以使用DMA数据转运&#xff0…

洛谷 P1048 [NOIP2005 普及组] 采药

辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同…

数据持久化 1 - PlayerPrefs

数据持久化 文章目录 数据持久化PlayerPrefs 基本方法存储读取删除 Type补充父子关系通过反射获得泛型类型 PlayerPrefs 基本方法 PlayerPrefs Unity用于存储读取玩家数据的公共类 存储 PlayerPrefs的数据存储类似于键值对存储 提供了3种方法 int float string PlayerPref…

浏览器插件——从开发到部署全流程详解

开发浏览器插件是一个很好的方式来扩展浏览器的功能。不过,需要注意的是,浏览器插件通常是使用JavaScript、HTML和CSS开发的,而不是Python。尽管如此,你可以使用一些工具将Python代码转换为JavaScript,但这通常不是开发…

安装VMware ESXi虚拟机系统

简介:ESXi是VMware公司开发的一款服务器虚拟化操作系统。它能够在一台物理服务器上运行多个虚拟机,每个虚拟机都可以独立运行操作系统和应用程序,而且对硬件配置要求低,系统运行稳定。 准备工具: 1.8G或者8G以上容…

【PDF-XSS攻击】Java项目-上传文件-解决PDF文件XSS攻击

文章目录 背景解决pdfbox依赖控制器代码PdfUtils工具类 验证最后源码参考 背景 上传xss-pdf造成存储型xss因为在浏览器直接预览的PDF,而不是预览,所以安全部门认为会有XSS漏洞 解决 安全部门修复建议 1、根据白名单的标签和属性对数据进行过滤&#…

JAVA之MDC的使用教程

文章目录 MDC简介MDC原理作用整体流程添加MDC依赖配置MDC 基本使用过程 MDC简介 MDC(Mapped Diagnostic Context)是用于分布式系统中跟踪和诊断日志的重要概念。是一个在Java项目中用于日志跟踪的工具,它允许你在多线程环境下关联和传递特定的上下文信息。 MDC是一…

金三银四面试题(十七):MySQL面试都问什么(2)

今天我们继续盘点那些高频的MySQL面试题。 说说InnoDB与MyISAM的区别 InnoDB 支持事务,MyISAM 不支持,对于InnoDB 每一条SQL 语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL 语言放在begin 和comm…

Java 二叉数(1)

一、认识树 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 有一个特殊的…

react-router-dom+history路由跳转白屏需手动刷新才显示

搭建一个新项目&#xff0c;路由照常配好了&#xff0c;但是很奇怪&#xff0c;跳转的时候第一次白屏&#xff0c;<root></root>里面只有一个,号&#xff0c;页面是空白的&#xff0c;再手动刷新才显示内容&#xff0c;检查了路由很多遍&#xff0c;也看了地址栏都…

javascript密码验证规则,数字、字母、特殊符号两种以上

在验证密码复杂的正则表达试中&#xff0c;几位码友有发布过从两种字符里选两种的&#xff0c;从三种字符里选有三种的。 今天我提一个从三种里选两种的。有喜欢的朋友拿去用。 密码须包含数字、字母、特殊符号两种以上&#xff0c;且不少于8位&#xff0c;不多于32位。 pass…

IDEA中的Debug功能介绍

说明&#xff1a;本文介绍IDEA中的Debug功能&#xff0c;基于2023.2&#xff08;Ultimate Edition&#xff09;版本 简单介绍 首先&#xff0c;在程序需要停止的所在行号上&#xff0c;鼠标左键&#xff0c;可设置一个断点&#xff0c;是一个红色圆点标志&#xff0c;表示程序…

2024年腾讯云优惠券领取步骤使用教程详解

随着云计算技术的快速发展&#xff0c;越来越多的企业和个人开始选择使用云服务来提升自己的业务能力和工作效率。腾讯云作为国内领先的云服务提供商&#xff0c;其优质的服务和丰富的资源吸引了大量的用户。为了回馈广大用户&#xff0c;腾讯云经常会推出各种优惠活动&#xf…

nfs部署--相关记录

以下是在 CentOS 8 中将 10.40.111.41 上的 /nfsdata 目录通过 NFS 共享到 10.40.111.43 和 10.40.111.45 的 /nfsdata 目录的详细步骤&#xff1a; 在 10.40.111.41 上操作&#xff1a; 安装并配置 NFS 服务器&#xff1a; a. 安装 NFS 服务器软件包&#xff1a; sudo dnf in…

【b站李同学的Lee】2 Git进阶【gitgithub】入门教程,必学!

课程地址&#xff1a;【【git&github】入门教程&#xff0c;必学&#xff01;】 https://www.bilibili.com/video/BV1cE411G7yc/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 2 Git进阶 2.1 分支 2.1.1 分支细分 2.1.2 分支命令 1查看…

LeetCode-热题100:148. 排序链表

题目描述 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a; head [4,2,1,3] 输出&#xff1a; [1,2,3,4] 示例 2&#xff1a; 输入&#xff1a; head [-1,5,3,4,0] 输出&#xff1a; [-1,0,3,4,5] 示例…