1、网络协议简介常用的网络协议网络协议实例定义定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。协议是用来描述进程之间信息交换数据时的规则术语(参见“法律学”对于“协议”的定义)。在计算机网络中,两个相互通信的实体处在不同的地理位置,其上的两个进程相互通信,需要通过交换信息来协调它们的动作达到同步,而信息的交换必须按照预先共同约定好的规则进行。例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换
2、为该终端字符集的字符。当然,对于不相容终端,除了需变换字符集字符外。其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。网络协议是由三个要素组成:网络协议是由三个要素组成:(1)语义语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。(2)语法语法。语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。(3)时序时序。时序是对事件发生顺序的详细说明。(也可称为“同步”)。人们形象地把这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。工作工作方式:方式:网络上的计算机之间又是如何交换信息的呢?就像我们说话
3、用某种语言一样,在网络上的各台计算机之间也有一种语言,这就是网络协议,不同的计算机之间必须使用相同的网络协议才能进行通信。网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合,它规定了通信时信息必须采用的格式和这些格式的意义。大多数网络都采用分层的体系结构,每一层都建立在它的下层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。一台设备上的第 n层与另一台设备上的第n层进行通信的规则就是第n层协议。在网络的各层中存在着许多协议,接收方和发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息。网络协议使网络上各种设备能够相互
4、交换信息。TCP/IPTCP/IP协议协议毫无疑问是这三大协议中最重要的一个,作为互联网的基础协议,没有它就根本不可能上网,任何和互联网有关的操作都离不开TCP/IP协议。不过TCP/IP协议也是这三大协议中配置起来最麻烦的一个,单机上网还好,而通过局域网访问互联网的话,就要详细设置IP地址,网关,子网掩码,DNS服务器等参数。TCP/IP尽管是目前最流行的网络协议,但TCP/IP协议在局域网中的通信效率并不高,使用它在浏览“网上邻居”中的计算机时,经常会出现不能正常浏览的现象。此时安装NetBEUI协议就会解决这个问题。IPX/SPXIPX/SPX协议协议本来就是Novell开发的专用于Ne
5、tWare网络中的协议,但是也非常常用-大部分可以联机的游戏都支持IPX/SPX协议,比如星际争霸,反恐精英等等。虽然这些游戏通过TCP/IP协议也能联机,但显然还是通过IPX/SPX协议更省事,因为根本不需要任何设置。除此之外,IPX/SPX协议在非局域网络中的用途似乎并不是很大.如果确定不在局域网中联机玩游戏,那么这个协议可有可无。NetBEUINetBEUI即NetBios Enhanced User Interface,或NetBios增强用户接口。它是NetBIOS协议的增强版本,曾被许多操作系统采用,例如Windows for Workgroup、Win 9x系列、Windows
6、NT等。NETBEUI协议在许多情形下很有用,是WINDOWS98之前的操作系统的缺省协议。NetBEUI协议是一种短小精悍、通信效率高的广播型协议,安装后不需要进行设置,特别适合于在“网络邻居”传送数据。所以建议除了TCP/IP协议之外,小型局域网的计算机也可以安上NetBEUI协议。另外还有一点要注意,如果一台只装了TCP/IP协议的WINDOWS98机器要想加入到WINNT域,也必须安装NetBEUI协议。简介简介:网络协议的应用随处可见,下面的智能家居项目中便对此有一定的应用。该项目是一个比较大的项目,涉及到了主机与服务器之间的通信,而通信的桥梁就是网络协议,而用到的协议就是最常见的t
7、cp/ip协议。IP数据报(即数据报文)的格式能够说明IP协议都具有什么功能,要探究协议的工作的原理,数据报文的结构和内容是重要的研究方向,以下就从数据报文入手,简单介绍一下协议的应用。该数据报文主要分为三部分,报文头、报文体、校验码,一般的报文也差不多如此。一、报文结构:报文头字段长度(字节)备注报文头(字节数固定)协议版本1必选报文总长度2 必选报文流水号4必选主机地址3必选保留2XX XX报文体报文体类型1必选载荷变 长必选校验码CRC4XX XX XX XX1、报文头1.1、协议版本1.2、报文总长度字段说明描述备注类型标识报文使用的协议版本号。1、兼容旧版本的安防产品版本号为v1。2
8、、正在开发的安防产品和中端产品版本号为v2。例:版本号为1版本,则:版本1表示为0 x01。版 本 范 围:(1-255)版本号以v1、v2、v3v255。类型为uint8字段描述备注类型报文的长度表示整个GPRS报文长度报文头大小计算方式:(1+2+4+4+4+2)+报文体+校验码(4)类型为uint161.3、保留位长度2字节,为以后扩展使用,目前未用,每个字节都填充0 xFF。2、报文体2.1、报文类型字段说明描述备注类型报 文 体 类型范围(0 x00-0 xFF)进行区分对安防设备/控制设备/心跳/状态同步/主机上线通知/情景模式的不同报文体类型进行处理类型为uint8载荷根据不同的
9、报文体类型,载荷内容不一样详见各种报文体类型的载荷文档 2.2、报文体类型2.3、载荷1、安防设备报文体2、控制设备报文体3、心跳报文体4、状态同步报文体5、主机上线通知报文体6、情景模式报文体7、确认帧报文体对以上报文体载荷,详见各自相关文档说明。名称名称编码编码备注备注安防设备报文体类型0 x01 控制设备报文体类型0 x02 心跳报文体类型0 x03 状态同步报文体类型0 x04 主机上线通知报文体类型0 x05 情景模式报文体类型0 x06 确认帧报文体类型0 x07 此处以心跳报文体为例介绍报文的使用心跳报文体详细结构字段说明描述大小(字节)编码类型报文体类型控制设备报文体类型10
10、x03 载荷心跳命令10 x25 信号强度1XX供电状态1XX电池电量2XX XX主机地址3XX XX XX 预留1预留 备注:在编码中标明预留的以0 xFF进行填充。心跳报文每隔40s向服务器发送。模组CSQ值即信号强度:范围(0-31)。电池电量目前模组的电量。主机的供电状态:电池/电源供电。0 x01:电池供电,0 x00:电源供电。电池电量:范围(2800mv-4200mv)。从此报文体结构可以看出该报文中包含了很多重要的信息,例如信号强度、供电状态、主机地址等等。只需要根据协议进行解析就可以从报文中获取到需要的信息。为了便于分析,此处给出一个可能出现的报文进行具体分析。Ps:报文是由
11、数字组成的,不能包含其他元素,为了书写方便,使用16进制是不错的选择。协议版本:01报文总长度:00 1A报文流水号:00 00 00 01主机地址:11 22 33保留位:FF FF报文体类型:03心跳命令:25信号强度:01供电状态:01电池电量:10主机地址:11 22 33保留位:FF校验位:FF FF FF FF完整的报文体为:01 00 1A 00 00 00 01 11 22 33 FF FF 03 25 01 01 10 11 22 33 FF FF FF FF FF 假如我们收到了一个这样的报文,该怎样去解析呢?报文是有若干部分组成的,但每一部分的长度都是规定好了的,根据其对应的字节数就清楚了协议版本占一个字节,所以协议版本为01,需要用01版本去处理,报文长度为00 1A,检查通过后再检查CRC校验位是否正确,都通过后才去解析我们关心的报文体,解析方法和上面一样。这就是一个报文的工作原理,并不复杂。Ps:需要说明的是报文中的信息是最原始的信息,并不一定就是最终想要的结果,可能需要作一定的转换才能用。