一个网络上计算机的通信

news2024/11/26 0:44:22

一台计算机上多个进程间的通信方式有:管道、共享内存、信号量、消息队列。如果不同的计算机上多个进程间通信,即通信的进程在不同的计算机上,需要用到网络相关的知识。
那么两台计算机通信需要解决哪些问题?
计算机架构
我们来回顾一下计算机整体的硬件架构,CPU 通过内存总线和内存连起来,通过 IO 总线和其他的外部设备连起来,计算机如果要上网,跟其他的计算机相连,需要有一个网卡,网卡属于外部设备,也是通过 IO 总线和我们计算机的 CPU 相连,网卡我们也可以称之为网络适配器,网卡就是用于我们整个计算机和其他的计算机联网通信的一个硬件设施,在一台机器上,我们可以有多个网卡,比方说我们机器可能有一个有线网卡和一个无线网卡。网卡有一个接口,这个接口,实际上就是跟我们的网线连在一起的,我们可以看一下自己的电脑,一般都会有这么一个接口,用于连接网线。
两台计算机之间的通信
有了这个网卡之后,一台计算机就可以通过网线和其他的计算机连接起来,通过一根网线连接两台计算机的网卡,这个是最简单的一种场景,两台计算机,是可以通过网线来通信的,网线上传输的都是 0101 的比特数据,两台计算机我们把它称之为主机,网线我们把它称之为链路。
如果是多台机器,它们之间怎么样相互连接起来呢?
多台计算机互连
比方说我们有多台计算机,当然,我们可以通过每两台计算机之间,都用一条链路把它连接起来,理论上这样是可以的,但这个成本太高,不现实。一般,我们会通过一个叫交换机的中间设备来连接多台计算机,交换机会有多个接口,每一个接口,都会有自己各自的接口号,然后我们的计算机就跟这个交换机的接口连在一起,这样可以使这些计算机相互连在一起。
这时,我们的两台主机如何通信呢?
在这里,我们就需要有一个地址的概念,主机的每一个网卡,都会有一个全球唯一的地址,这个地址我们称之为 MAC 地址,MAC 地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡会有一个唯一的 MAC 地址。因为你只有知道了这个机器的地址,你才可以跟这个机器通信,那么怎么查看机器的 MAC 地址呢? Windows 可以在命令提示符下输入 ipconfig /all 来查看,Linux 可以通过 ifconfigip addr 来查看。
多台计算机互连-交换机
有了交换机和 MAC 地址,我们再来看多台计算机的互连,为了简单起见,我们这里的每一台主机,我们使用 A、B、C、D、E、F 来表示每一台主机网卡的 MAC 地址,在交换机会维护一张表,这个表我们把它称之为交换表,交换表里面有两列,一个是 MAC 地址,一个是对应的接口号,主机对应的网卡,和交换机的一个接口号相连,交换机里面会维护这样一个映射关系,根据这个映射关系,假设主机 A 想把数据发给主机 D ,我们在发送数据的首部,添加主机 D 的 MAC 地址,然后把添加了主机 D 的 MAC 地址的数据,发送给交换机,从接口 1 进入交换机,交换机看到了这个数据是发给 MAC 地址为 D 的主机,交换机就会去查找交换表,查找 MAC 地址为 D 应该从哪一个接口号出去,查到了从接口号 4 出去,然后这个数据到达了 MAC 地址为 D 的主机,这样就完成了数据的通信。有了交换机之后,每一台机器的网卡,需要有一个唯一的 MAC 地址,两台机器才可以在网络里面进行通信。这里可能还会有一个问题,主机 A 是怎么知道主机 D 的 MAC 地址呢?


数据分析二维码.gif

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

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

相关文章

【电路笔记】-无源衰减器

无源衰减器 文章目录 无源衰减器1、概述2、简单衰减器3、无源衰减器示例14、无源衰减器设计5、切换式衰减器6、总结无源衰减器是一种特殊类型的电气或电子双向电路,由完全电阻元件组成。 1、概述 无源衰减器基本上是两个端口电阻网络,旨在将电源提供的功率削弱或“衰减”(因…

什么是企业组网?

企业组网是通过网络技术将企业内的各种设备、系统和资源连接起来,实现信息共享、通信协作、资源优化和业务流程高效管理的过程。其核心目标是建立一个稳定、灵活、安全且高效的网络基础架构,以支撑企业的运营和发展。本文将详细介绍搭建企业组网需要考虑…

Linux操作系统学习之文件系统

一. 前言 Linux一切皆文件的思想可谓众所周知,而其文件系统又是字符设备、块设备、管道、进程间通信、网络等等的必备知识,因此其重要性可想而知。本文将先介绍文件系统基础知识,然后介绍最重要的结构体inode以及构建于其上的一层层的文件系…

显示类控件

目录 1.Label 代码示例: 显示不同格式的文本 代码示例: 显示图片 代码示例: 文本对齐, 自动换行, 缩进, 边距 代码示例: 设置伙伴 2.LCD Number 代码示例: 倒计时 3.ProgressBar 代码示例: 设置进度条按时间增长 代码示例: 创建一个红色的进度条 4.Calendar Widget …

【C#】计算多边形的面积

一、问题分析 在 C# 中计算多边形面积的一种常见方法是使用顶点坐标。 假设您有一个由一系列 (x, y) 顶点坐标定义的多边形,您可以使用“鞋带公式”(也称为高斯公式)来计算其面积。 如果是计算多边形的面积可以分为正常多边形、dicom图像中…

工单触发器如何助力企业提升效率?天润融通案例解析

工单,用于记录、跟踪和管理特定工作任务或服务请求的工具。通过工单可以完成任务跨组织、跨部门流转和协同等问题,例如: 市场线索→创建工单→判定需求→分配到区域→分配到销售→销售跟进→成功交易客户投诉建议→创建工单→分配到区域→分…

C语言入门基础题:传递闭包

1.题目描述 给定一张点数为 n 的有向图的邻接矩阵,图中不包含自环,求该有向图的传递闭包。张图的邻接矩阵定义为一个n xn 的矩阵 A (aij)nx”,其中(1,i到j存在直接连边aii0,i到j没有直接连边张图的传递闭包定义为一个„ xn的矩阵 B (bij)nx”…

职场中,真正的大人物都具有这几个特点

职位是组织赋予的,是领导提拔的,有些人失去了身上的标签、职位,很快就是失去往日的荣光。 职场中真正的牛人,他们不一定有多高的职位,但他们在领导眼里有分量,又能得到同事的尊重。 这类人身上最大的特征…

elasticsearch的学习(四):elasticsearch的一些基本概念

简介 elasticsearch的一些基本概念。 核心概念 索引:一个拥有相似特征的文档的集合。 类型:在索引中定义,是索引的一个逻辑上的分类,版本7以上已经弃用了。 文档:可被索引的基础信息单元,即一条数据&a…

【Android Studio】Intent实现两个Activity页面的跳转(基于Empty View Activity)

文章目录 为什么使用EmptyViewActivity而不是EmptyActivity准备工作:创建EmptyViewActivity项目准备工作:新建SecondActivity调试一下原始项目添加button写跳转方法测试布局技巧 为什么使用EmptyViewActivity而不是EmptyActivity 因为笔者使用的Android…

基于STM32的环境监测系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码传感器读取代码应用场景 家居环境监测工业环境监测常见问题及解决方案 常见问题解决方案结论 1. 引言 环境监测系统在我们的日常生活和工作中变得越来越重要。通过监测空气质量、…

LVS部署DR集群

介绍 DR(Direct Routing):直接路由,是LVS默认的模式,应用最广泛. 通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址. 整个…

主从复制原理及配置

角色不生效: 在配置文件中添加 activate_all_roles_on_loginon glibc安装,my.cnf在项目目录之下 rpm安装,my.cnf文件在/etc/my.cnf 主从复制 备份的三种类型: 热备份 物理备份 逻辑备份 HA:高可用集群 复制原理…

实现Kubernetes中的抢占式Pod与固定Pod的弹性伸缩:一项全面指南

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

c++STL中list介绍,模拟实现和list与vector对比

目录 前言 : 1. list的介绍及使用 1.1list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers 1.2.6 list的迭代器失效 2. list的模拟实现 3. list与vector的对…

GuLi商城-商品服务-API-新增商品-调用远程服务保存优惠等信息

优惠券服务要开启服务注册和发现功能: 会员服务要开启远程调用功能: 可以写在消费端: 我还是习惯写在服务提供者一端: package com.nanjing.gulimall.coupon.feign;import com.nanjing.common.to.SpuBoundTo; import com.nanjing.common.utils.R; import org.springframewo…

Docker安装portainer汉化版

1、拉取汉化版Portainer镜像 docker pull 6053537/portainer-ce 2、创建数据卷 为了保存Portainer的数据和配置,应该创建一个Docker卷: docker volume create portainer_data 3、运行Portainer容器 docker run -d \--name portainer \-p 9000:9000…

企业社会责任(CSR)国际标准对企业的发展有什么好处?

企业社会责任(CSR)国际标准对企业的发展具有多方面的好处,包括但不限于以下几点: 提升企业声誉和形象 ​符合国际标准展示了企业对社会和环境的积极关注,有助于在消费者、投资者、合作伙伴和公众中树立良好的声誉&…

MyBatis快速学习

目录 前言 MyBatis的具体使用 一些小工具:MyBatisX 常见问题: 1.表中字段名和实体属性名不一致 2.按条件查询(单条件)时的,查询条件怎么编写 3.按条件查询(多条件) 4.多条件查询时&…

需要增重的小猫看过来!猫咪很瘦吃不胖是怎么回事?增重猫罐头推荐!

前几天医院来了只小母猫,7个月了,现在刚5斤。主人反映她平时干饭积极,能吃能睡,能喝能拉,就是不长肉。虽然大家都说母猫确实没有公猫容易胖,但是这只猫咪确实也长得也太慢了。其实我们医院接到过不少这样的…