通信协议术语
记录一些自己不懂的通信协议术语
一定要注意大小端数据发送和读取的基本规则啊!
IP和端口号
IP地址和端口号是网络通信中的两个关键概念,它们共同作用以确保数据能够准确无误地从一个应用程序传输到另一个应用程序。
IP地址
- 定义:IP地址是一个标识符,用于在网络中唯一标识一台设备(如计算机、手机、路由器等)。IPv4地址通常由四个8位字节组成,格式为
xxx.xxx.xxx.xxx,例如192.168.1.1。IPv6使用128位地址,更长也更复杂。 - 功能:主要用于定位互联网上的具体设备,帮助数据包找到正确的终点设备。
 
端口号
- 定义:端口号是一个16位的数字,范围从0到65535,用于标识一台设备上的特定进程或服务。例如,HTTP服务默认使用的端口是80,HTTPS则是443。
 - 功能:确定了到达某台设备的数据应该发送给哪个具体的应用程序或服务。即使多个应用程序同时运行在同一台设备上,通过不同的端口号可以区分这些应用。
 
关系
当数据在网络上进行传输时,它需要被精确地发送到目标设备上的正确应用程序。这正是IP地址和端口号结合使用的原因:
- 组合使用:一个完整的网络连接是由四部分组成的元组来标识的:源IP地址、源端口号、目的IP地址和目的端口号。这种组合被称为套接字(Socket)。
 - 数据路由:首先,数据包根据目的IP地址被路由到正确的设备;然后,一旦到达目标设备,该设备根据目的端口号将数据传递给正确的应用程序或服务。
 
例如,当你访问一个网站时,你的电脑会向服务器的IP地址发送请求,并指定服务器监听的HTTP(S)端口号(通常是80或443)。服务器收到请求后,会根据端口号知道这是针对Web服务的请求,并作出相应的响应。
总结来说,IP地址负责将数据包定向到正确的设备,而端口号则进一步指定了在该设备上接收数据的具体应用程序或服务。两者相辅相成,共同保证了互联网上复杂的数据交换能够顺利进行。
大端和小端模式
字节序的概念
- 小端模式(Little Endian):低位字节在前,高位字节在后。例如,数字0x1234在小端模式下的存储方式为:低地址 -> 0x34,高地址 -> 0x12。
 - 大端模式(Big Endian):与小端模式相反,高位字节存储在内存的低地址处(前),低位字节存于高地址处(后)。如上面的例子,在大端模式下存储为:低地址 -> 0x12,高地址 -> 0x34。
高字节:包含数值较高部分的字节,通常位于多字节数值的左侧(从左往右读时)。
低字节:包含数值较低部分的字节,通常位于多字节数值的右侧(从左往右读时)。 
网络字节序
在网络传输中,为了保证所有设备都能一致地解析数据,通常使用大端模式作为标准字节序,也被称为“网络字节序”。
操作说明
设计通信协议,并规定了一个2字节的包头使用小端模式表示时,意味着本地系统中,这2个字节按照小端模式进行组织和读写。然而,由于网络通信要求使用大端模式,所以在将这个2字节的数据通过网络发送出去之前,需要将其转换为大端模式。
转换过程示例
假设你在小端模式的系统上有一个2字节的整数0x1234,它在内存中的实际排列是0x34 0x12。根据要求,你需要在发送前将它转换为大端模式,即变为0x12 0x34。
在C语言中,你可以使用库函数htons()(host to network short)来完成这一转换,如果是在其他编程环境中,也有类似的函数或方法实现这种转换。
uint16_t host_order = 0x1234; // 假设这是原始的小端模式数值
uint16_t net_order = htons(host_order); // 转换为网络字节序
这样,当数据通过网络发送到另一端时,接收方无论其本地字节序为何种模式,都可以按照大端模式正确解读接收到的数据。这种做法确保了跨平台数据交换的一致性和可靠性。
网关
网关(Gateway)在网络中扮演着至关重要的角色,它是连接不同网络的设备或软件,允许数据在这些网络之间进行传输。网关可以被视为网络之间的“大门”,它不仅能够转发数据包,还可以转换协议,使得不同的网络能够互相通信。
网关的功能
- 
协议转换:当两个使用不同通信协议的网络需要交换数据时,网关可以将一种协议的数据包转换为另一种协议的数据包。例如,从家庭使用的Wi-Fi网络到互联网服务提供商(ISP)使用的广域网(WAN)协议之间的转换。
 - 
路由选择:网关作为网络间的数据出口和入口点,负责决定数据包的最佳路径。这包括确定数据包应发送到哪个下一跳地址,以便它们能够到达最终目的地。
 - 
安全防护:许多网关还提供防火墙功能,保护内部网络不受外部威胁的影响。通过控制哪些流量可以通过网关,可以防止未经授权的访问和潜在的安全威胁。
 - 
应用层功能:某些高级网关还能执行额外的应用层功能,如邮件服务器、Web代理等,以增强网络的服务能力。
 
网关的类型
- 
默认网关:对于大多数个人用户而言,“默认网关”是最常见的概念之一。这是指你的计算机或其他设备用来发送对外部网络(如互联网)请求的IP地址。如果没有其他特定路由规则,所有离开本地网络的数据都会被发送到这里。
 - 
API网关:在企业级应用和服务架构中,API网关用于管理微服务架构中的API调用。它提供了诸如身份验证、速率限制、监控等功能,简化了客户端与后端服务间的交互。
 - 
物联网(IoT)网关:专为物联网环境设计,负责收集来自各种传感器和设备的数据,并将其传送到云平台或数据中心进行处理和分析。同时,它也可以接收云端指令并分发给相应的IoT设备。
 
实际应用场景
假设你在家使用笔记本电脑上网,你的路由器就充当了默认网关的角色。当你尝试访问一个网站时,首先会向这个默认网关发送请求,然后由路由器决定如何将请求转发到互联网,并最终返回所需的信息给你。
总之,网关是实现不同网络之间通信的关键组件,无论是简单的家庭网络还是复杂的商业网络环境,都离不开它的作用。它不仅促进了信息的有效流通,还保障了网络安全。
IP地址在包中的表示
在通信过程中,IP地址通常以点分十进制格式(例如 192.168.1.1)表示,但在某些情况下,特别是底层网络编程和协议实现中,IP地址也会用十六进制编码表示。以下是将IPv4地址转换为十六进制表示的方法及其在通信中的应用。
IPv4 地址的十六进制表示
IPv4地址由四个8位字节组成,每个字节可以表示为一个两位的十六进制数。因此,整个IPv4地址可以用8个十六进制数字表示。
步骤:
- 将每个十进制数转换为二进制:IPv4地址的每个部分是一个0到255之间的十进制数,将其转换为8位二进制数。
 - 将每个二进制数转换为十六进制:将每个8位二进制数转换为两位的十六进制数。
 - 组合结果:将所有四位十六进制数组合成一个连续的字符串。
 
开关量
开关量(也称为数字量或离散量)是指在控制系统中只有两种状态的信号,通常表示为“开”和“关”或者“高”和“低”。这些状态可以用二进制数表示为 1 和 0。开关量信号主要用于表示设备的状态。
使能
使能信息通常是指控制系统或设备中用于激活、启用或允许某一功能、模块或操作的信号或数据。确认激活什么?
本系输出和对系输出
本系输出(Own System Output):
- 这指的是当前正在运行的主系统直接生成并输出的信号或数据。在正常操作条件下,所有的控制命令和信息都是通过本系统的处理器来生成,并直接作用于执行机构或显示设备。
 - 在单系统或当主系统处于健康状态时,所有功能都依赖于本系输出完成。
 
对系输出(Opposite System Output):
- 对系输出通常出现在具有冗余设计的系统中,指的是一旦主系统(本系)出现故障,备用系统能够接管并继续提供服务的能力。对系输出可以理解为备用系统准备就绪或者已经生效的输出状态。
 - 在一些高级配置中,即使没有发生故障,也会对两个系统的输出进行比较以确保一致性和正确性,这种情况下对系输出同样重要。
 
两者之间的主要区别在于其角色和激活条件:本系输出是在系统正常运行时的主要输出方式;而对系输出则更多是为了保障系统的可靠性和安全性,在主系统出现问题时作为备份方案启用。
软件上电未运行
“软件上电未运行”描述的是设备已经接通电源,但其上的软件尚未开始执行其主要功能的状态。这可能是由于软件尚未加载、正在初始化,或者等待某些外部条件满足所致。
                    
                
                
            
        
浙公网安备 33010602011771号