怎么确定目标主机,整个网络过程

news2025/1/7 22:16:59

怎么确定目标主机,整个网络过程

简单来说,

就是归结于计算机间怎么进行通信,

(原始方法)

简单点直接加网线,但

  • 一个设备的网口肯定是有限的

  • 当相连的设备多了,整个网线将变得十分复杂,不利于管理维护

(集线器)

于是出现集线器,由集线器来接受数据包,再广播到所有连接它的端口,目标设备接受,其他设备丢弃,但

  • 不知道是否发给自己

于是用Mac地址标识各个设备。但

  • 集线器是一个 半双工 设备,意味着同一时间只有一个设备可以接发数据,多个设备同时工作会导致数据冲突

  • 集线器每次都会将接受的数据发送到全部网络设备(泛洪),这大大的浪费了网络资源

(交换机)

于是出现交换机,可以学习和识别连接在它设备上面的 Mac 地址,具有自动寻址(Mac表)的能力,支持全双工通信即,允许设备同时发送接受数据。

自动寻址主要在于将交换机端口和相连的主机Mac地址建立映射,除了第一次需要初始化,后续就可以直接根据地址转发。但

  • 一个交换机端口有限

就需要多个交换机进行桥接,这样需要通信另一个交换机相连的设备时,记录当前交换机与另一交换机的端口,和目标Mac地址(也就是说这个端口,有多个目标Mac地址映射)但

  • 单台交换机MAC表有限

(路由器)

就开始将大网络切分成小网络,通过路由器实现跨网络转发,并用IP地址标识设备位于的局域网,使用子网掩码,区分网络地址(不同网络)和主机地址(不同设备)。值得注意的是:

  1. IP是逻辑地址,可能重复

  1. Mac是物理地址,唯一

  • 怎么通过目标IP地址,获取Mac地址

使用ARP协议(通过IP查询MAC地址的协议),广播子网中设备,当设备检查请求中IP地址于自己相匹配时,就会将自己的Mac地址 打包成一个 arp响应 发送回请求设备,路由器收到数据包后,记录路由器所连接的不同网络之间路径和关系,称路由表。

举个栗子

现在 A 需要传输数据到 F 并且 FMac 地址未知,只知道F的IP地址:

  1. A 通过 ARP 协议查询当前子网是否存在目标 Mac地址,F不在同一个子网,结果肯定是没有的

  2. 当前子网下没有只能出去找了,A 会查找自己网络配置文件中默认网关的IP地址,并使用 ARP协议 获取默认网关(路由器1)的 Mac地址

  3. 之后发送数据,交换机会将你的数据传输给路由器 1

  4. 路由器 1 接受数据后,根据目标 IP 地址子网掩码 获取数据包的目标网络地址

  5. 路由器 1 发现该网络地址不在自己所管的网络中,则会根据路由表信息获取最优的传输路径

  6. 路由器 1 会将 源 Mac地址 和目标 Mac地址 修改为 自己的Mac地址和路由器 2 的 Mac地址,转发给路由器 2

  7. 重复 4 5 6 步骤,最终数据到达与F同一个网络的路由器( 也就是4 )手中

  8. 路由器 4 使用ARP 协议查询目标的 Mac地址 ,根据 Mac地址 转发到 F 设备

  • 源IP和目标IP不变,源MAC和目标MAC一直变

通过 IP 地址确定目标网络
  • IP 地址与子网掩码:在网络中,每台主机都有一个唯一的 IP 地址。IP 地址由网络地址和主机地址两部分组成,子网掩码用于区分这两部分。例如,对于 IP 地址 192.168.1.100,子网掩码为 255.255.255.0 时,网络地址是 192.168.1.0,主机地址是 100 。通过将目标主机的 IP 地址与子网掩码进行逻辑与运算,可以确定目标主机所在的网络1 。

  • CIDR 表示法:CIDR(无类别域间路由)是一种表示 IP 地址范围的简洁方法。如 192.168.1.0/24,表示前 24 位是网络地址,后 8 位是主机地址,可用于确定一个网络段内的所有主机地址范围 。

在本地网络中查找目标主机
  • ARP 协议:当主机知道目标主机的 IP 地址,但不知道其 MAC 地址时,会在本地网络中发送 ARP(地址解析协议)请求广播。目标主机收到请求后,会回复自己的 MAC 地址,从而建立起 IP 地址与 MAC 地址的映射关系,以便进行数据链路层的通信1.

  • 交换机转发:交换机在收到数据帧后,会检查其目的 MAC 地址,并对照自己学习到的 MAC 地址表进行转发。如果目的 MAC 地址在表中存在对应的端口,则直接将数据帧从该端口转发出去;如果不存在,则会进行广播,除了源端口外的其他端口都会收到该数据帧,直到目标主机响应,交换机从而学习到目标主机的 MAC 地址与端口的映射关系,并记录在 MAC 地址表中,以便后续通信1.

跨网络查找目标主机
  • 路由器转发:当目标主机不在本地网络时,数据需要通过路由器进行转发。路由器依据路由表来决定数据的转发路径。路由表中记录了不同网络地址的下一跳地址等信息,路由器通过查找路由表,将数据转发到下一个路由器或目标网络,直至到达目标主机所在的网络1.

  • 网关的作用:网关是本地网络与其他网络通信的出入口。主机发送数据到其他网络时,首先将数据发送到网关,由网关进行转发。网关通常是连接本地网络和外部网络的路由器接口的 IP 地址。

使用域名确定目标主机
  • DNS 解析:当使用域名来访问目标主机时,需要通过 DNS(域名系统)将域名解析为对应的 IP 地址。客户端会向本地 DNS 服务器发送域名解析请求,本地 DNS 服务器如果缓存了该域名的 IP 地址,则直接返回;否则,会向其他 DNS 服务器查询,直至获取到目标主机的 IP 地址,然后再通过上述网络通信过程找到目标主机 。

参考:

计算机网络-如何寻找目标计算机?_哔哩哔哩_bilibili

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

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

相关文章

机器视觉与OpenCV--01篇

计算机眼中的图像 像素 像素是图像的基本单位,每个像素存储着图像的颜色、亮度或者其他特征,一张图片就是由若干个像素组成的。 RGB 在计算机中,RGB三种颜色被称为RGB三通道,且每个通道的取值都是0到255之间。 计算机中图像的…

【H3CNE邓方鸣】配置链路聚合+2024.12.11

文章目录 链路聚合作用负载分担分类静态聚合动态聚合 链路聚合作用 定义:把连接到统一交换机上的多个物理端口捆绑为一个逻辑端口 增加链路带宽:聚合组内只要还有物理端口存活,链路就不会中断 提供链路可靠性:避免了STP计算&…

Java 基础知识——part 1

1.目前Java平台有三种版本: Java SE:用于开发桌面应用程序 Java EE:用于编写企业级应用程序 Java ME:用于开发设备应用程序 2.Applet可嵌入Web文档的一种小型程序,因网络传输速度关系都很短小 3.Appilication&…

数据可视化的Python实现

一、GDELT介绍 GDELT ( www.gdeltproject.org ) 每时每刻监控着每个国家的几乎每个角落的 100 多种语言的新闻媒体 -- 印刷的、广播的和web 形式的,识别人员、位置、组织、数量、主题、数据源、情绪、报价、图片和每秒都在推动全球社会的事件,GDELT 为全…

nginx反向代理(负载均衡)和tomcat介绍

nginx的代理 负载均衡 负载均衡的算法 负载均衡的架构 基于ip的七层代理 upstream模块要写在http模块中 七层代理的调用要写在location模块中 轮询 加权轮询 最小连接数 ip_Hash URL_HASH 基于域名的七层代理 配置主机 给其余客户机配置域名 给所有机器做域名映射 四层代理…

Qt编写RK3588视频播放器/支持RKMPP硬解/支持各种视音频文件和视频流/海康大华视频监控

一、前言 用ffmpeg做硬解码开发,参考自带的示例hw_decode.c即可,里面提供了通用的dxva2/d3d11va/vaapi这种系统层面封装的硬解码,也就是无需区分用的何种显卡,操作系统自动调度,基本上满足了各种场景的需要&#xff0…

C# 位运算

一、数据大小对应关系 说明: 将一个数据每左移一位,相当于乘以2。因此,左移8位就是乘以2的8次方,即256。 二、转换 1、 10进制转2进制字符串 #region 10进制转2进制字符串int number1 10;string binary Convert.ToString(num…

蓝桥杯嵌入式客观题(国省)

目录 一、第14届 1.第14届国赛 2.第14届省赛 二、第13届 1.第13届国赛 2.第13届省赛 三、第12届 1.第12届省赛 四、第11届 1.第11届省赛 2.第11届国赛 五、第10届 1.第10届国赛 2.第10届省赛 六、第9届 1.第9届国赛 一、第14届 1.第14届国赛 解析:…

二维码手持终端PDA在仓储管理中的应用

随着物联网技术不断发展,仓储管理的高效性直接关系到企业的运作效率和盈利能力。得益于移动技术的不断进步,二维码手持终端PDA成为了仓储盘点中不可或缺的智能化工具,它们不仅极大地提升了数据收集的效率与准确性,还促进了业务流程…

光控资本:锂电排产上行 AI手机有望快速渗透

AI手机有望快速渗透 据赛迪参谋猜想,2024年AI手机的出货量估量将会抵达1.5亿部,占全球智能手机总出货量13%,到2027年,全球AI手机销售量有望跨过5.9亿部,占全球智能手机总出货量的比重跨过50%。 跟着硬件根底夯实、端侧…

Dead Code Clean

优质博文:IT-BLOG-CN 一、死代码产生的原因 任何项目随着时间的推进,代码量通常会持续上涨,总会积累出死代码,死代码可能是一些久远的 配置,或者只在某个历史阶段有效的业务代码。它的产生原因大致有如下几种&#x…

ubuntu 用 ss-tproxy的最终网络结构

1、包含了AD广告域名筛选 2、Ss-tproxy 国内国外地址分类 3、chinadns-ng解析 4、透明网关 更多细节看之前博客 ubuntu 用ss-TPROXY实现透明代理,基于TPROXY的透明TCP/UDP代理,在 Linux 2.6.28 后进入官方内核。ubuntu 用 ss-tproxy的内置 DNS 前挂上 AdGuardHome…

What is load balancing? 什么是负载均衡?

原文链接 What Is Load Balancing? | IBM 什么是负载均衡? 在多台服务器之间高效的分配网络流量的过程,以优化应用程序的可用性,同时确保积极的用户体验。 电商网站依赖负载均衡(load balancing)来确保web应用能够无…

【C++算法】40.模拟_N 字形变换

文章目录 题目链接:题目描述:解法C 算法代码: 题目链接: 6. N 字形变换 题目描述: 解法 解法一:模拟 a,b,c,d,e,f,g...... n4 弄个矩阵放进去,最后从左往右读取。 解法二:模拟优化-…

vue3监听横向滚动条的位置;鼠标滚轮滑动控制滚动条滚动;监听滚动条到顶端

1.横向取值scrollLeft 竖向取值scrollTop 2.可以监听到最左最右侧 3.鼠标滚轮滑动控制滚动条滚动 效果 <template><div><div class"scrollable" ref"scrollableRef"><!-- 内容 --><div style"width: 2000px; height: 100…

期末复习-计算机网络

目录 第四章&#xff1a;网络层 1. 虚电路服务和数据报服务的对比 2. 分类的 IP 地址 3. IP 地址与硬件地址&#xff0c;地址解析协议 ARP 4. IP 数据报的格式 5. IP 层转发分组的流程 6. 划分子网&#xff08;子网掩码、划分子网、使用子网时分组的转发&#xff09; …

20分钟入门solidity(1)

1. Solidity简介 Solidity是一种静态类型编程语言&#xff0c;专门用于在以太坊区块链上编写智能合约。它借鉴了JavaScript、Python和C的语法&#xff0c;非常适合开发在以太坊虚拟机&#xff08;EVM&#xff09;上运行的应用程序。 智能合约&#xff1a;表达商业、法律关系的…

【毕业设计选题】数据科学与大数据专业毕业设计选题与建议

目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光&#xff0c;一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整…

AI开源南京分享会回顾录

AI 开源南京分享会&#xff0c;已于2024年11月30日下午在国浩律师&#xff08;南京&#xff09;事务所5楼会议厅成功举办。此次活动由 KCC南京、PowerData、RISC-Verse 联合主办&#xff0c;国浩律师&#xff08;南京&#xff09;事务所协办。 活动以“开源视角的 AI 对话”为主…

Linux24.04 安装企业微信

今天工作需要把windows系统换成了linux&#xff0c;但是公司的沟通工具是企业微信。去企业微信官网看了&#xff0c;没有linux版本&#xff0c;只能想办法解决了&#xff0c;不然再换回去就太坑了。 方案 1、使用docker容器&#xff0c;2、使用deepin-wine 本人对docker不太熟…