TCP/IP、UDP、Http、Socket的区别
二、IP,TCP,UDP,HTTP,TCP/IP,Socket
IP协议,为计算机网络相互连接进行通信而设计的协议。
TCP/UDP协议,基于二进制流的控制间传输协议。 TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;而UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。
HTTP协议,超文本传送协议(Hypertext Transfer Protocol ),HTTP协议是建立在TCP协议之上的一种应用。
IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层。注意TPC/IP位于传输层,它主要用来解决数据如何在网络中传输,与IP协议要区分开。
IP协议规定网络之间互连的协议;TPC/IP协议是传输层协议,主要解决数据如何在网络中传输;HTTP是应用层协议,主要用于包装数据。
Socket相当于调用接口(API),用来调取TCP/IP协议。
三、使用Socket建立网络
网络上两个程序通过双向通信实现数据交换,socket又叫套接字,每个应用程序开启后,都会在传输层端口上绑定一个socket,不同应用程序之间通过寻找端口找到socket实现数据通信。
Socket连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。
2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。