socket通讯,TCP,UDP,HTTP的区别

socket编程有TCP和UDP,

TCP:传送控制协议(Transmission Control Protocol)

传输控制协议TCP是TCP/IP协议栈中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送和应用程序的虚拟连接服务。与IP协议相结合,TCP组成了因特网协议的核心。

由 于大多数网络应用程序躲在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及院计算机能收到正确的回复。这 是通过使用TCP的“端口号”完成的,网络IP地址和端口号结合成为唯一的标识,我们称之为“套接字”或“端口”。TCP在端点间建立连接或虚拟电路进行 可靠通信。

TCP服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。

关于流数据传输 ,TCP 交付一个由序列号定义的无结构的字节流。 这个服务对应用程序有利,因为在送出到 TCP 之前应用程序不需要将数据划分成块, TCP 可以将字节整合成字段,然后传给 IP 进行发送。

TCP 通 过面向连接的、端到端的可靠数据报发送来保证可靠性。 TCP 在字节上加上一个递进的确认序列号来告诉接收者发送者期望收到的下一个字节。如 果在规定时间内,没有收到关于这个包的确认响应,重新发送此包。 TCP 的可靠机制允许设备处理丢失、延时、重复及读错的包。超时机制允许设备监测丢失 包并请求重发。 

TCP 提供了有效流控制。当向发送者返回确认响应时,接收 TCP 进程就会说明它能接收并保证缓存不会发生溢出的最高序列号。 

全双工操作: TCP 进程能够同时发送和接收包。 

TCP 中的多路技术:大量同时发生的上层会话能在单个连接上时进行多路复用。

UDP:用户数据报协议 
(UDP:User Datagram Protocol) 

用户数据报协议(UDP)是 ISO 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分辨运行在同一台设备上的多个应用程序。 

由 于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这 是通过使用 UDP 的“端口号”完成的。例如,如果一个工作站希望在工作站 128.1.123.1 上使用域名服务系统,它就会给数据包一个目的地 址 128.1.123.1 ,并在 UDP 头插入目标端口号 53 。源端口号标识了请求域名服务的本地机的应用程序,同时需要将所有由目的站生成的 响应包都指定到源主机的这个端口上。 UDP 端口的详细介绍可以参照相关文章。  

与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。 

UDP 适 用于不需要 TCP 可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。 UDP 是传输层协议,服务于很多知名应用层协议,包括 网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。

 

/**

  *归纳总结一下

  */

 TCP面向连接的可靠传输协议,具有数据确认和数据重传机制.保证了发送数据一定能到达通信的对方. 对数据完整性要求比较高的场合使用

UPD协议无连接,不可靠的传输协议.不具有数据确认和 数据重传机制,对数据完整性要求比较低的场合使用

HTTP协议:超文本传输协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少

 

你可能感兴趣的:(socket通讯,TCP,UDP,HTTP的区别)