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;