C# Socket和TCP连接的区别
网络通信七层参考模型介绍:
物理层: HUB,网线
链路层: MAC,ARP,交换机
网络层:IP,ICMP,IGMP,路由器
传输层: TCP,UDP
会话层: HTTP,SMTP,FTP,POP3
表示层: SOAP,SSL
应用层:HTTP,POP3等
TCP和Socket的区别:
Socket是对网络层操作。
TcpClient是对传输层的操作。
用Socket访问HTTP服务:
网络层 --> 传输层 --> 会话层
用TcpClient访问HTTP服务:
传输层 --> 会话层
网络层层的协议是IP,传输层的协议是TCP。最本质的区别就是,网络层把数据添加到IP地址,IP为所有的系统端口服务,传输层只添加到端口,即操作系统的服务端口。网络层/输出层提供了面向连接和无连接的服务方式。
C#中TcpClient和Socket的应用选择:
只考虑:主机,端口,数据传输时,用TcpClient,或UdpClient;
要考虑:IP封包,路由,IP数据包时,用Socket;