Socket与TCP/IP协议的关系
TCP/IP协议解说
TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。
在网络层有:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
在传输层中有:TCP协议与UDP协议。
在应用层有:FTP、HTTP、TELNET、SMTP、DNS等协议。
Socket接口解说
Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,去使用TCP/IP协议。
实际上,Socket跟TCP/IP协议没有必然的联系。
Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。
“TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”
Socket是发动机,提供了网络通信的能力。