通信接口

基于DBus的进程间通信

▼魔方 西西 提交于 2019-12-06 07:44:58
1.dbus概念 网上有一篇叫“D-Bus Tutorial”的文章,流传较广。 D-Bus是针对桌面环境优化的IPC(interprocess communication )机制,用于进程间的通信或进程与内核的通信。最基本的D-Bus协议是一对一的通信协议。但在很多情况下,通信的一方是消息总线。消息总线是一个特殊的应用,它同时与多个应用通信,并在应用之间传递消息。下面我们会在实例中观察消息总线的作用。消息总线的角色有点类似与X系统中的窗口管理器,窗口管理器既是X客户,又负责管理窗口。 支持dbus的系统都有两个标准的消息总线:系统总线和会话总线。系统总线用于系统与应用的通信。会话总线用于应用之间的通信。网上有一个叫d-feet的python程序,我们可以用它来观察系统中的dbus世界。 图1、由d-feet观察到的D-Bus世界 dbus还提供了两个命令行工具用于dbus测试,dbus-send和dbus-monitor,前一个命令用于测试信号的发送,后一个命令用于监控dbus的数据流。 2.dbus概念 有关dbus的基础知识不在本文的范围内,具体的参见dbus的文档。下面给出dbus常用的流程。 2.1建立服务的流程 dbus_bus_get(),建立一个dbus连接; dbus_bus_request_name(),为这个dbus连接(DbusConnection)起名

DBus介绍

假装没事ソ 提交于 2019-12-06 07:41:38
一篇关于DBus的入门介绍,澄清了一些D-Bus中容易混淆的概念 意译:freeworkzz 日期:2010-07-21 来源:http://www.freedesktop.org/wiki/IntroductionToDBus 关于本文 本文不是教程,更不是手册。它不会教你如何使用D-Bus,也不会教你如何安装及如何写基于D-BUS的程序。 这里有的,是解释了D-Bus到底是什么,其背后的概念以及如何将这些概念集合在一起,还有一些必须了解的术语。这里没有不必要的技术细节,也并不关心读者所使用的编程语言。初学者可以在阅读其他教程或指南前先参考本文,它将告诉你使用D-Bus可以做什么。 即使读者已经有了一本好的教程,先读一读本文也是有好处的。在D-Bus的世界中,有很多专用术语,它们与通常的概念并不完全一致。这篇文章将从最基础开始解释这些术语,从而避免理解上的偏差。本文也尝试从不同角度来看D-Bus,避免只专注于一种编程语言来阐述时对使用其他语言的读者产生排斥。 D-Bus概述 D-Bus是一种本地进程间通信机制(不同主机间的进程通信支持可能会在将来加入,但这并不是D-Bus最初设计思想)。D-Bus的特点是轻量级、快速,为主流桌面环境提供统一的进程间通信界面。 与其他重量级的进程间通信技术不同,D-Bus并未使用会话进行通信。D-Bus使用了状态以及连接的概念

dbus 通信分析

这一生的挚爱 提交于 2019-12-06 07:38:28
简介 D-Bus是针对桌面环境优化的IPC(interprocess communication )机制,用于进程间的通信(会话总线)或进程与内核的通信(系统总线)。 安装python-dbus开发环境 # wget https: //pypi .python.org /packages/source/d/dbus-python/dbus-python-0 .84.0. tar .gz # ./congigure # make &sudo make install 观察系统中的dbus # sudo apt-get install d-feet # d-feet 图 1 名词解释 Bus Name: 可以把Bus Name理解为连接的名称,一个Bus Name总是代表一个应用和消息总线的连接。有两种作用不同的Bus Name,一个叫公共名(well-known names,起别名,格式是反域名的点分字符串,主要是方面其他程序访问),还有一个叫唯一名(Unique Connection Name)。 Object Paths Bus Name确定了一个应用到消息总线的连接。在一个应用中可以有多个提供服务的对象。这些对象按照树状结构组织起来。每个对象都有一个唯一的路径(Object Paths)。或者说,在一个应用中,一个对象路径标志着一个唯一的对象。 “org.fmddlmyy

D-Bus介绍

烂漫一生 提交于 2019-12-06 07:33:59
1 D-Bus 简介 D-Bus 是 Desktop Bus 的缩写,是针对桌面环境优化的 IPC(interprocess communication) 机制,用于进程间的通信或进程与内核的通信。 IPC 种类很多,适用的情景也不一样: CORBA 是用于面向对象编程中复杂的 IPC 的一个强大的解决方案。 DCOP 是一个较轻量级的 IPC 框架,功能较少,但是可以很好地集成到 K 桌面环境中。 SOAP 和 XML-RPC 设计用于 Web 服务,因而使用 HTTP 作为其传输协议。 D-BUS 设计用于桌面应用程序和 OS 通信。 D-Bus 中 D 是代表桌面“ Desktop ”的意思,即用于桌面操作系统的通信通道。现在逐渐被引入到嵌入式系统中,不过名字还是保留原先的叫法而已。 典型的桌面都会有多个应用程序在运行,而且,它们经常需要彼此进行通信。 DCOP 是一个用于 KDE 的解决方案,但是它依赖于 Qt ,所以不能用于其他桌面环境之中。类似的, Bonobo 是一个用于 GNOME 的解决方案,但是非常笨重,因为它是基于 CORBA 的。它还依赖于 GObject ,所以也不能用于 GNOME 之外。 D-BUS 的目标是将 DCOP 和 Bonobo 替换为简单的 IPC ,并集成这两种桌面环境。由于尽可能地减少了 D-BUS 所需的依赖,所以其他可能会使用 D

物联网主流通信协议解读 | 我的物联网成长记

你离开我真会死。 提交于 2019-12-05 20:13:26
【摘要】 当今物联网的主流通信协议是CoAP/LWM2M协议和MQTT协议,本文将会为您分别解读这些协议的工作方式,了解它们的特点,助您选择最适合您的设备的通信协议。 通信协议又称为传输协议,用于定义多个设备之间传播信息时的系统标准。通信协议定义了设备通信中的语法、语义、同步规则和发生错误时的处理原则,可以理解为机器之间使用的语言。 在物联网场景中,通信主要发生在设备和物联网平台之间,由于大部分物联网设备都是资源受限型设备,它们的物理资源和网络资源都非常有限,直接使用现有的HTTP协议进行通信对它们来说要求实在是太高了。因此,物联网场景中主要使用的通信协议都是轻量级的,为资源受限环境而设计的通信协议,例如CoAP/LWM2M协议和MQTT协议。 本文将会为您分别解读CoAP/LWM2M协议和MQTT协议,希望能帮助您了解这些协议,并选择最适合您的设备的通信协议。 ----------CoAP/LWM2M协议---------- CoAP(Constrained Application Protocol,受限制的应用协议)运行于UDP协议之上,设计上主要借鉴了HTTP协议的RESTful风格,简化了协议包格式,一个最小的CoAP数据包仅4字节。CoAP协议采用了和HTTP协议相同的请求/响应模型,客户端发出请求后,服务端处理请求并回复响应,是一种点对点的通信模型

ipv6 转

元气小坏坏 提交于 2019-12-05 17:20:14
单播地址 IPv6单播地址与IPv4单播地址一样,都只标识了一个接口。为了适应负载平衡系统, RFC 3513允许多个接口使用同一个地址,只要这些接口作为主机上实现的IPv6的单个接口出现。单播地址包括四个类型:全局单播地址、本地单播地址、兼容性地址、特殊地址。 一、全球单播地址:等同于IPv4中的公网地址,可以在IPv6 Internet上进行全局路由和访问。这种地址类型允许路由前缀的聚合,从而限制了全球路由表项的数量。 二、本地单播地址: 链路本地地址和唯一本地地址都属于本地单播地址,在IPv6中,本地单播地址就是指本地网络使用的单播地址,也就是IPV4地址中 局域网 专用地址。每个接口上至少要有一个链路本地单播地址,另外还可分配任何类型(单播、任播和组播)或范围的IPv6地址。 (1)链路本地地址(FE80::/10):仅用于单个链路(链路层不能跨VLAN),不能在不同子网中路由。结点使用链路本地地址与同一个链路上的相邻结点进行通信。例如,在没有路由器的单链路IPv6网络上,主机使用链路本地地址与该链路上的其他主机进行通信。 (2)唯一本地地址(FC00::/7):唯一本地地址是本地全局的,它应用于本地通信,但不通过Internet路由,将其范围限制为组织的边界。 (3)站点本地地址(FEC0::/10,新标准中已被唯一本地地址代替) 三、兼容性地址

scoket通信之零

走远了吗. 提交于 2019-12-05 07:44:23
TCP/IP网络 计算机网络由一组通过通信信道相互连接的机器(主机和路由器)组成。通过协议(protocol)来达成相互通信程序间的一种 约定 。 TCP、UDP和IP作为协议(约定)的实现,应用程序通过套接字接口对UDP协议和TCP协议提供的服务进行访问。 来源: https://www.cnblogs.com/ZJdiem/p/11914853.html

VLAN

ε祈祈猫儿з 提交于 2019-12-05 06:59:18
1.VLAN 基础配置及 Aceess 接口 1.1 概述 交换机能有效隔离冲突域。 VLAN技术把一个无力的LAN在逻辑上划分成多个广播域,VLAN内的主机间可以直接通信,而VLAN间不能直接互通。VLANID的范围是0~4095,可配置的值为1~4094,0和4095为保留值。 Access接口是交换机上用来连接用户主机的接口。 1.2 实验 实验内容 : 本实验模拟企业网络场景。公司内网是一个大的局域网,二层交换机 S1放置在一楼,在一楼办公的部门有IT部和人事部;二层交换机S2放置在二楼,在二层办公的部门有市场部和研发部。由于交换机组成的是一个广播网,交换机连接的所有主机都能相互通信,而公司策略是:不同部门之间的主机不能互相通信,同一部门内的主机才可以互相访问。因此需要在交换机上划分不同的VLAN,并将连接主机的交换机接口配置成Access接口划分到相应的VLAN中。 实验拓扑 : VLAN基础配置及Access接口拓扑如图所示 实验步骤 : 1.基本配置 根据实验编址进行相应的 IP地址配置,使用ping命令检测各直连链路的连通性,所有的PC都能相互通信。 2.创建VLAN 创建 VLAN有两种方式,一种是使用VLAN命令一次创建单个VLAN,另一种方式是使用VLAN batch命令一次创建多个VLAN。 在 S1上使用两条命令分别创建VLAN 10和VLAN 20。 在

通信基础

☆樱花仙子☆ 提交于 2019-12-04 18:00:32
通信基础 划分vlan的作用是隔离广播域。 H3C的配置指令包括:1、基本配置;2、接口配置;3、查看指令。 PC端配置:打开接口,配置ip地址。 交换机配置: 1、创建vlan:system-view //进入系统视图,全局配置模式 vlan 10 to 15 //创建vlan display vlan //查看vlan vlan 10 name? name *** //给vlan 10 命名 description? description *** //对vlan 10进行描述 dis vlan brief quit 2、配置PC接口 interface gi 1/0/1 //进入接口 port link-type access //把接口配置为access模式 port access vlan 10 //把接口加入vlan10 display vlan //查看 quit :退回上一层模式;return:直接退回用户模式 划分vlan的作用是隔离广播域。 H3C的配置指令包括:1、基本配置;2、接口配置;3、查看指令。 PC端配置:打开接口,配置ip地址。 交换机配置: 1、创建vlan:system-view //进入系统视图,全局配置模式 vlan 10 to 15 //创建vlan display vlan //查看vlan vlan 10 name? name ***

局域网内和局域网间的通信

一曲冷凌霜 提交于 2019-12-03 10:52:59
1、交换机和路由器区别 交换机主要是用于组建局域网,而路由器则是负责让主机连接外网。 2、局域网间通信 例子1: 1. PC1与PC2通信时,在PC1电脑中,应用层产生数据交给传输层;传输层进行数据的分段,使数据的大小适合在网络上传递,根据应用层不同软件产生的数据,选择不同协议栈进行封装TCP或UDP,再进行不同服务端口号的封装(例:WWW 80 ,FTP 21),再传递给网络层;网络层在数据包头部进行封装源IP、目的IP,根据上层协议栈标识不同协议号,当IP包头封装TCP时协议号为6、UDP协议号为17,用来标识上层使用的协议,继续传递给数据链路层; 数据链路层在数据包头部进行帧的封装,封装源MAC、目的MAC,由于不知道目的MAC地址,会进行ARP的广播包,封装一个全F的类型字段为0X0806广播包,交付给物理层,物理层转换成电信号(bit流),发送到交换机; 2. 交换机接收后发现为ARP的广播包,进行其解封学习到PC1的MAC地址,继续封装并除接受端口以外的端口再次进行ARP的广播; 3. 路由器收到交换机发来的ARP广播,进行解封,查看到数据包中的类型字段为0X0806即ARP的广播包,进行回复,源MAC为路由(网关)的MAC,目的MAC为PC1的MAC,类型字段为0X0806,经过物理层将数据转换为电信号(bit流)发送给交换机; 4. 交换机收到后进行解封