- Socket 原意:插座 ; 现意:套接字
- Port 端口
- TCP (Transmission Control Protocol )传输控制协议
- UDP (User Data Protocol) 用户数据协议
- IP (Internet Protocol)因特网互联协议
- Telnet 远程连接的协议 (端口号:21)
- FTP 文件传输协议 (端口号:23)
- HTTP 超文本传输协议 (端口号:80)
在网络传输应用中,通常使用TCP、IP和UDP这三种协议实现数据传输。在传输网络数据的过程中,需要通过一个双向的通信连接实现数据的交互。在这个传输过程中,通常将这个双向链路的一端称为Socket,一个Socket通常有一个IP地址和一个端口号来唯一确定。在Java编程应用中,Socket是Java网络编程的核心。Socket的英文原意为插座,所以我们可以想象网络就像市电,而用电器取电必须要通过“插座”来引入市电才能工作;插座的作用不言而喻。
在网络编程中有两个主要问题:
- 如何准确定位网络上的一台或多台主机?
- 找到主机后如何进行可靠、高效的数据传输?
现今,在TCP/IP中IP层主要负责网络主机的定位、数据传输的路由,由IP地址可以唯一确定Internet上的一台主机。而TCP层则是提供面向应用可靠的或非可靠的数据传输机制,它是网络编程的主要对象。
目前较为流行的网络编程模型是客户机/服务器(Client/Server, C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应;客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。
TCP/IP协议采用了四层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。也就是说,TCP负责发现传输的问题,一旦它发现问题便发出信号要求重新传输,知道所有数据安全正确地传输到目的地。而IP的功能是给因特网的每一台计算机规定一个地址。