我所知道的是(HTTP、ftp、smtp)是一些应用程序层,它们将与 tcp(传输控制协议)交互以通过接收数据发送数据,但是当在 WCF 中使用 net.tcp:// 时会是什么默认应用层协议。
1 回答
HTTP、FTP 实际上是应用层,意味着应用使用它们。任何使用 TCP 等可靠介质进行通信并发送二进制编码数据的聊天应用程序也被认为是应用层中的另一个应用程序,它有自己的通信协议,如 ftp smtp 有自己的约定。所以很简单 net:tcp 也可以在线上以二进制形式进行通信,因此如果不使用任何已定义的端口(如 80,21 等),则应将其视为另一个应用程序
NetTcpBinding 默认生成一个运行时通信堆栈,它使用传输安全、TCP 进行消息传递和二进制消息编码。这种绑定是通过Intranet进行通信的适当的系统提供的选择。
http://msdn.microsoft.com/en-us/library/system.servicemodel.nettcpbinding.aspx
并与其他绑定进行比较
http://blog.shutupandcode.net/?p=1085
以及关于 TCP 堆栈中的应用层
应用层是最常见的网络感知程序用来通过网络与其他程序通信的层。在这一层发生的过程是特定于应用程序的;数据从网络感知程序以该应用程序内部使用的格式传递,并被编码为标准协议。
一些特定的程序被认为在这一层中运行。它们提供直接支持用户应用程序的服务。这些程序及其相应的协议包括 HTTP(万维网)、FTP(文件传输)、SMTP(电子邮件)、SSH(安全远程登录)、DNS(名称 <-> IP 地址查找)等等。
一旦来自应用程序的数据被编码到标准应用程序层协议中,它将被向下传递到 IP 堆栈的下一层。
http://www.starlancs.com/EducateMe/educate_IP_stack.html
注意这里的措辞应用层包含使用内部编码为标准协议(他们可以理解的协议)的数据的进程/程序。
协议只是一种通信协议。甚至您可以为您的应用程序构建自己的协议进行通信。
希望这能帮助你理解。
问候。