消息编码


  消息编码

  随着时间的流逝,也许我们会条件反射式地认为XML(SOAP)是一个结构文本。毕竟,文本是人可读的,每个计算机系统也可以处理文本。基于文本的XML的普遍共性与我们的与其它系统交互的想法产生了共鸣。可以容易的解释的基于文本的XML本质上会体积变大。可以理解使用XML会带来性能损失。就像要花费点精力把信装到信封里一样,它需要一些处理时间与XML交互。某些情况下,基于文本的XML数据大小限制了它的应用,特别是当我们要通过网络发送一个XML消息的时候。

  此外,如果我们限制自己使用基于文本的XML,那么我们怎么才能在XML文档里发送二进制数据(像音乐或者视频)?如果你已经阅读了标准的XMLSchema数据类型,你会发现2个二进制数据类型:: xs:base64Binary 和xs:hexBinary。本质上说,两个数据类型都代表一组有序的8位字节。使用这些XML数据类型或许可以解决一些嵌入二进制数据到文档中的问题,但是事实上,这已经使得性能问题更加糟糕。众所周知的问题就是,base64编码会增加数据30%的大小。这个情况对于xs:hexBinary更坏,因为它会增加位原来的2倍大小。两个数据都是基于UTF-8编码的假设。如果我们采用UTF-16编码,这些倍数因子都会翻倍增加。

  XML 信息集( XML Infoset)

  为了找到性能的瓶颈的答案,我们详细来看一下XML文档的结构。如果我们看一下规范,XML是一个精确的撰写结构化数据的语法(定义在 http://www.w3.org/TR/REC-xml/)。它要求定义格式良好的XML文档必须包涵一个开始和结束元素、一个根节点等等。奇怪的是,XML规范发布以后,激起了抽象定义XML文档的需求。XML信息集(定义在http://www.w3.org/TR/xml-infoset/)提供了这个抽象定义。

  实际上,XML信息集定义是项目之间的关系,不定义任何具体的语法,我们能够解释许多不同的消息编码,包括一些比文本更高校的编码格式,而不需要修改我们的程序。

  SOAP和XML信息集

  记得SOAP是建立在XML之上的。这个产生一个问题:到底SOAP消息是建立在早期的XML语法上还是XML信息集上呢?答案是2者都有。2个SOAP规范并存:SOAP 1.1 和SOAP 1.2。SOAP1.1建立在旧的XML语法上,SOAP1.2建立在XML 信息集上。有这么一个事实,就可以猜想SOAP1.2建立的消息SOAP1.1的解析器可能无法阅读。WCF是建立在SOAP1.2(XML信息集上),但是它可以同时处理SOAP 1.1 和SOAP 1.2的消息。

  WCF可以用来和定制与其它实际的消息编码一起工作,只要消息是遵照SOAP1.1或者SOAP1.2的(它可以和不是SOAP消息一起工作)。如你将会在接下来的章节里看到的一样,WCF是一个可灵活接入和组合的架构。所以自定义编码器可以轻易地安装到WCF的管道上。当一个新的编码器开发完毕,微软或者第三方都可以在消息堆栈里创建和插入它。我将会在第6章:《通道》里详细介绍消息编码器。现在我们来看一下WCF里的编码器。在写本书的时候,WCF提供了三个编码器:文本(text)、(二进制)binary、 消息传输优化机制(Message Transmission Optimization Mechanism ,MTOM)。

  文本编码器

  和你从它的名字里猜到的一样,文本编辑器的输出结果是基于文本编码的消息。每个明白Unicode文本的系统都可以阅读和处理这个编码器传递来的消息,在与别的非WCF系统互操作时,这个是一个很帮的选择。二进制数据通过xs:base64Binary扩展样式定义(XSD)数据类型可以包涵到基于文本的消息里。这是一个使用WCF文本编码器编码过的消息(为了清晰,移除了一部分元素)。

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
    <s:Header></s:Header>
    <s:Body>
      <SubmitOrder xmlns="http://wintellect.com/OrderProcess">

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 5G NR RRCSetup消息是5G新无线通信技术中一种重要的控制消息,用于建立无线连接(RRC连接)和配置RRC连接所需的参数。RRCSetup消息是基于电文中的配置信息编码而成,具有如下几个重要字段: 1. 消息类型:该字段指示此消息是RRCSetup消息。 2. 无线利用率:该字段指示再分配给UE的无线资源是通过直分或共享分配的。 3. 载波聚合:该字段指示UE是否支持载波聚合。 4. 预留信道:该字段指示是否分配了用于预留信道传输的无线资源。 5. RRC配置:该字段包含用于配置RRC连接所需的信息,如下行链路的解调和解码参数、调制方案、传输块集合大小等。 6. 频段信息:该字段包含UE应该使用的频段。 7. 复位:该字段指示是否要对UE进行复位。 8. 安全模式:该字段指示要使用的安全模式,以确保无线通信的安全性。 编码过程首先对每个字段进行二进制表示,然后将这些二进制表示按照规定的顺序组合成完整的消息消息编码之后,可以通过无线电接口传输给UE,使得UE能够理解RRCSetup消息中包含的配置信息并相应地建立RRC连接。编码过程需要遵循5G NR协议规范中对编码格式和顺序的要求,以确保消息的正确传输和解析。 总之,5G NR RRCSetup消息编码过程包括对各个字段进行二进制表示和按照规定顺序组合成完整消息的过程,编码后的消息可以通过无线传输给UE,用于建立RRC连接和配置所需的参数。 ### 回答2: 5G NR RRCSetup消息编码是指将RRCSetup消息转换为二进制编码的过程。RRCSetup消息是5G新无线接入技术中的一种无线链路控制消息,主要用于UE(用户设备)与网络之间的初始连接和参数设置。 编码过程主要包括以下几个步骤: 1. 将消息的各个字段按照特定的顺序排列,如消息类型、UE标识等; 2. 对于每个字段,根据其定义的数据类型和长度,将其转换为二进制编码; 3. 对于需要进行压缩表示的字段,如频带宽度、UE容量等,根据具体的压缩算法进行编码; 4. 对于可选字段,根据是否存在进行编码,存在则添加相应的标志位; 5. 最后将所有字段的编码按照顺序组合在一起,得到最终的二进制编码编码后的二进制编码可以通过无线信道传输给目标接收端,接收端收到后会进行解码操作,将二进制编码还原为RRCSetup消息的各个字段。 RRCSetup消息编码的目的是为了在无线信道上有效地传输消息内容,以实现UE和网络之间的无线连接和参数设置。编码过程需要根据消息的具体格式和定义进行,确保消息的各个字段能够被准确地传输和解析。编码后的二进制编码可以节省无线资源,并提高通信效率。 总之,5G NR RRCSetup消息编码是将RRCSetup消息转换为二进制编码的过程,是实现无线连接和参数设置的关键步骤之一。该编码过程需要按照消息的具体格式和定义进行,以确保消息能够准确地传输和解析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值