两个不同网段的局域网如何互通_不同网段之间如何通信?

计算机之前是如何实现互相通信的呢?

正文

首先,计算机之间通信人为设定一个准则,这个准则是什么呢?

如果两台计算机在一个相同网段,不需要辅助设备(网关)的帮助,可以直接通信。

如果两台计算机在不同网段,一定需要辅助设备(网关)的接力帮助,实现间接通信。

上文一下子出现很多陌生名词,需要解释:

相同网段

计算机A如果想和计算机B通信,用自己的网络掩码的二进制长度,遮掩自己的IP地址,IP地址被遮住的数字即为自己的网段。

bd59cc6a3f18018d59b6f47cd65244b6.png

用相同的方法,计算B的网段,如果A、B网段相同,则为相同网段。

不同网段

否则为不同网段。

网关

网关专门是为不同网段通信设计的硬件设备,它的存在使得不同网段通信成为可能,充当网关的硬件设备,通常有路由器、三层交换机、防火墙。

bb25f10ac533e0a559d98127cdb8cf0c.png

直接通信

尽管A、B知道对方和自己在一个网段,但是对方的硬件网卡地址(MAC地址)却不知道,为了实现通信,还需要知道对方的MAC地址,怎么办?

广播通信(一对多)

使用MAC = 0x FF.FF.FF.FF.FF.FF 先询问一下B的MAC,B能收到这个广播吗?可以的!B回复一下自己的MAC地址,A自然就知道了,然后A与B就可以点对点单播(一对一)通信了。

ARP协议

实现广播通信的协议是ARP协议,地址解析协议,为了解析对方计算机的IP、MAC的一个协议。

64f60c6f284c59631fa75ae2eea2b7a1.png

间接通信

既然网络设计之初,不同网段主机之间的通信需要网关中转,那就必须服从这个准则。

计算机A需要把自己和计算机B通信的IP报文发给网关,这里的所谓发给网关,是二层/数据链路层/以太帧头的目的MAC地址是网关的,这里是关键,理解了这点就理解了这个问题!

这个小菜一碟,因为计算机A与自己的网关在相同网段,使用广播通信,可以发现网关的MAC地址,就可以把IP报文发给自己的网关了。

网关收到这个IP报文,获得了IP报文中的目的IP,查询自己的路由表,发现主机B与自己另外一个接口在相同网段,于是通过广播通信获得主机B的MAC地址,然后就把IP报文以点对点(一对一)单播方式发给主机B,这样IP报文就到达了主机B。

主机B发出的返程IP报文,同样的原理,可以到达主机A。

所以主机A、B不会有对方的MAC地址,只会有自己网关的MAC地址。

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

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

相关文章

SpringCloud Gateway的组成结构

SpringCloud Gateway结构 SpringCloud Gateway的底层基于Netty,主要组成有Predicates(谓词或者断言)、Route(路由)、Filter(过滤器) 思维导图----------SpringCloud Gateway的组成: …

java resource放入的文件没有生成在classes中_快速部署版@开源在线考试系统一键生成各种题型试卷且实时判卷...

首先声明此项目来自开源网,小编也是爱好者;阅读本文之前相信已经阅读过【开源在线考试系统一键生成各种题型试卷且可以实时判卷】开源在线考试系统一键生成各种题型试卷且可以实时判卷本文分享快速部署版jar包,原项目前后台是单独项目&#x…

SQL语言基础:SQL中的数据完整性约束用法

前言数据库的完整性是指数据库正确性和相容性,是防止合法用户使用数据库时向数据库加入不符合语义的数据,从而保证了数据库中的数据是正确的,避免非法的更新操作。1、主键约束1.1 完整性约束条件完整性约束条件作用的对象有关系、元组、列三种…

SpringCloud Gateway的工作方式

SpringCloud Gateway工作方式 从官网的图来看,并不是特别复杂,首先客户端请求都会先经过Gateway Handler Mapping,匹配上就通过Gateway Web Handler转给过滤器处理,过滤器分为PreFilter(前置过滤器)、PostF…

后端:414 Request-URI Too Large解决方案

目录 一、get请求改为Post请求 二、调整前端请求参数的逻辑 三、服务器配置调整 3.1 Java项目 3.2 PHP项目: 3.3 Net项目 3.4 nginx配置文件修改内容: Web项目接口请求会出现414 Request-URI Too Large这个错误 下面给大家分享一下相关解决办法&#xf…

面向对象和面向过程_程序员给你解释:面向对象和面向过程的区别,到底是怎么回事?...

今天下午在一个组的项目回顾会议上,这个同事讲了自己用DDD思想对三个模块的重构。把之前在Service层的一些业务逻辑下沉到了领域层里,由之而引起的讨论。部门经理:“其实你的业务逻辑总体并没有少,只是把边界重新划分了一下。”一…

SQL语言基础:SQL授权相关知识笔记​

1、数据控制数据控制是控制对用户存取的权力,由DBA来决定。DBMS数据控制与功能:1、通过GRANT和REVOKE将授权通知系统,并存入数据字典。2、当用户发起请求时,根据授权情况检查是否执行操作请求。SQL标准包括 delete、insert、selec…

JVM的位置

对于JVM的位置: JVM是运行在操作系统之上的,它与硬件没有直接的交互JVM是运行在操作系统之上的,与硬件没有直接的交互,但是可以调用底层的硬件,用JIN (Java本地接口调用底层硬件接口,了解下就好&#xff0…

word2010添加b5纸张大小_纸张幅面规格尺寸你了解吗?

点击蓝色文字关注|十七的锚|(单位:mm)关于印前调整若纸张规格标记字母的前面加一个字母R(或S)时,是表示纸张没有切毛边,经过切边修整后,将减少到标准尺寸,例如RA4(或SA4)表示不切边纸张的尺寸为240mm*330mm&#xff0c…

JVM体系结构

JVM体系结构 Java虚拟机主要分为五大模块: 类装载器子系统运行时数据区执行引擎本地方法接口垃圾收集模块1、JVM一共分为五个区,分别为方法区、堆、Java栈、本地方法栈、程序计 2、方法区、堆为线程共享区域,GC会对二个区进行垃圾回收&…

找数据?这几个数据源网站就够用了?

来源:经管学苑转自:经管学苑大家好,我是小z在这个用数据说话的时代,能够打动人的往往是用数据说话的理性分析,无论是对于混迹职场的小年轻,还是需要数据进行分析和研究的同学,能够找到合适的数据…

solaris11-text-安装GUI(gnome)

http://blog.chinaunix.net/xmlrpc.php?rblog/article&uid45057&id3018467 1.下载所需的资源Text Installer CDRepository Image(a,b)http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html2.用text CD安装solaris11安装那是相当的快呀&a…

java replaceall 大小写_Java replaceAll不区分大小写

Java 中replaceAll如何忽略大小写呢?方式一:在正则表达式前面添加(?i)Testpublic void test_replaceAll33(){String input "I like Java,jAva is very easy and jaVa is so popular.";String replacement"cccc";System.out.println(input);System.out.p…

jdk环境变量配置_jmeter及jdk的环境变量配置

jmeter是apache公司基于java开发的一款开源压力测试工具,其内部原理都是源于java的运行,并支持多种外部插件用于接口及性能测试,最主要的还是开源免费,在安装jmeter前必须配置jdk环境。jdk下载地址:https://www.oracle…

jvm是运行在操作系统之上的,他和硬件没有直接的交互

jvm是运行在操作系统之上的,他和硬件没有直接的交互

SQL语言基础:触发器相关知识介绍​

1、触发器 Trigger介绍触发器可以实现完整性规则和保证一些复杂业务规则的实施。针对示警或满足特定 条件下自动执行某项任务来说,触发器是十分有用的机制。触发器是由事件1驱动的特殊过程,一旦由某个用户定义,任何用户对该触发器指定的数据新…

java struts2值栈ognl_Struts2的值栈和OGNL牛逼啊

Struts2的值栈和OGNL牛逼啊一 值栈简介:值栈是对应每个请求对象的一套内存数据的封装,Struts2会给每个请求创建一个新的值栈,值栈能够线程安全的为每个请求提供公共的数据存取服务。二 OGNL介绍:(1)基本数据:OGNL 是对…

还在用 Notepad++吗? 盘点五款更好用的文本编辑器

来自:oschina.net/news/110987/no-notepad-plus-plus | 责编:乐乐正文 Notepad 一直饱受争议,2018年开始然后引发了大家的关注,这里师长作为技术媒体,不方便带啥节奏,具体事件内容请大家自行百度。其实作…

SQL语言:嵌入式SQL知识笔记

1、概念SQL提供了将SQL语句嵌入到某种高级语言中的使用方式,通常采用预编译的方法将SQL语句嵌入高级语言中。采用的方法由DBMS的预处理程序对源程序进行扫码、识别出SQL语句,把它们转换为主语言调用语句,这样可以让主语言编译程序能识别它&am…