在TCP/IP协议栈中,当数据通过协议栈向下流动时,每一层都要给数据增加控制信息用于确保正确的传递。控制信息放置在被传送数据的开始,称之为包头,这种在协议栈中每一层都增加传递信息的过程称为封装。也就是说,栈中每层软件对传递的数据都要进行格式化,使之与特定的协议相适应,即每层都在上层的基础上加一个与协议相对应的包头;而当数据在协议栈中反方向(由底层向上)流动时,协议软件就以相反的方式处理数据,即每一层都剥去栈中对应层增加的包头,然后将数据传递给上一层,这就是拆封。
数据是网络和TCP/IP协议栈传输的实体和服务对象,当用户向网上发送数据时,首先将用户组成包(即应用数据包),再向下传送到传输层。TCP是一个面向流的协议,高层的协议不是面向流的,需要自己来设计消息的大小,开始和结束点,这就是消息的帧格式。
在WCF就是采用消息帧格式,支持TCP 传输和SOAP消息,WCF没有提供对UDP的默认支持,UDP的传输就需要自己去实现了。
本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号