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

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 语句 - 在条件成立时执行一块代码,…

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…

安装VMware ESXi虚拟机系统

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

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

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

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

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

Java 二叉数(1)

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

IDEA中的Debug功能介绍

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

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

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

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

课程地址:【【git&github】入门教程,必学!】 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 ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入: head [4,2,1,3] 输出: [1,2,3,4] 示例 2: 输入: head [-1,5,3,4,0] 输出: [-1,0,3,4,5] 示例…

unity学习(83)——细节名称和血条

眼中有细节,学习的过程才能平稳! 1.游戏更新时把名字也更新 代码如下: 效果如下: 2.因为是第三人称,从背后看,所以名称应该水平对称,翻转一下!rotate y180 游戏内效果如下&#xf…

升级xcode15 报错Error (Xcode): Cycle inside Runner

升级xcode15后报错 Could not build the precompiled application for the device. Error (Xcode): Cycle inside Runner; building could produce unreliable results. This usually can be resolved by moving the shell script phase Thin Binary so that it runs before th…

Python程序设计 列表

教学案例八 列表 1. 计算并显示斐波那契数列 输入n,计算并显示斐波那契数列前n项.一行打印5项,每项显示宽度为6 什么是斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列、 因数学家莱昂纳多斐波那契&#xff…

FreeRTOS任务切换学习

FreeRTOS任务切换学习 所谓任务切换,就是CPU寄存器的切换。假设当由任务A切换到任务B时,主要分为两步: 1:需暂停任务A的执行,并将此时任务A的寄存器保存到任务堆栈,这个过程叫做保存现场; 2&am…

【无标题】系统思考—心智模式

“直到你使无意识变为有意识,它将指导你的生活并且你会称之为命运。”—卡尔荣格 心智模式深藏于我们内心之中,它潜移默化地影响着我们对世界的理解和判断。往往这些影响是如此隐蔽,以至于我们自己都未必察觉到是什么在驱动我们的选择、决策…

【Entity Framework】聊聊EF中键

【Entity Framework】聊聊EF中键 文章目录 【Entity Framework】聊聊EF中键一、概述二、配置主键2.1 约定配置主键2.2 单个属性配置为实体主键2.3 组合主键 三、主键名称四、键类型和值五、备用键 一、概述 键用作每个实体实例的唯一标识符。EF中的大多数实体都有一个键&#…

VPP 负载均衡测试代码

1. 均衡的测试思想和流程说明。 先说一下理论, 然后后边才知道 代码逻辑。 调试了两天,这个代码终于通了。 由于时间关系, 画了一个粗略的图。另外这个代码只是流程通了,不过要帮助理解负载均衡我认为已经足够了。 下面是windo…

QT Creator概览

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:QT❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、Qt Creator 概览 ①:菜单栏 ②:模式选择 ③:构建套件选择器…