什么是HTTP
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。(百度百科)
什么是TCP
传输控制协议TCP(Transmisson Control Protocol)–提供面向连接的,可靠的数据传输服务。 TCP是TCP/IP协议组(4层结构)传输层的协议。
TCP特点:
1.TCP是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接);
2.每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一);
3.TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;
4.TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;
5.面向字节流。TCP中的“流”(stream)指的是流入进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。
什么是UDP
用户数据协议UDP(User Datagram Protocol)–提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)。TCP是TCP/IP协议组(4层结构)传输层的协议。
UDP特点:
1.UDP是无连接的;
2.UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态(这里面有许多参数);
3.UDP是面向报文的;
4.UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等);
5.UDP支持一对一、一对多、多对一和多对多的交互通信;
6.UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。
什么是socket
应用在使用 TCP 或 UDP 时,会用到操作系统提供的类库。这种类库一般被称为 API(Application Programming Interface,应用编程接口)。 使用 TCP 或 UDP 通讯时,优惠广泛使用到套接字(Socket)的 API。套接字原本是由 BSD UNIX 开发的,但是后被移植到了 Windows 的 Winsock 以及嵌入式操作系统中。 应用程序利用套接字,可以设置对端的 IP 地址,端口号,并实现数据的发送与接收。 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个 Socket。 建立网络通信连接至少要一对端口号(Socket)。Socket 本质是编程接口(API),对 TCP/IP 的封装,TCP/IP 也要提供可供程序员做网络开发所用的接口,这就是 Socket 编程接口。