传输层--TCP和UDP的区别
UDP(用户数据报协议):为调用它的应用程序提供了一种不可靠、无连接的服务。
TCP(传输控制协议):为调用它的应用程序提供了一种可靠的、面向连接的服务。
当设计一个网络应用程序时,该应用程序的开发人员必须指定使用这两种传输协议中的一种。开发人员在创建套接字时必须指定是选择UPD还是选择TCP。
区别:
1、套接字的区别
UDP套接字是由一个包含目的IP地址和目的端口号组成的二元组来全面标识的。
TCP套接字是通过一个四元组(源IP,源端口号,目的IP,目的端口号)来标识的。
2、UDP在应用层能更好地控制要发送的数据和发送时间。
由于TCP有一个拥塞控制机制,TCP在链路非常拥塞的情况下将不满足以上要求。
3、无连接和有连接。
TCP在数据传输之前需要经过三次握手。UPD则不需要。因此UPD不会引入建立连接的时延。DNS正是由于这个原因,运行在UDP上。HTTP则是运行在TCP上的。
4、无连接状态和有连接状态
TCP需要在端系统中维护连接状态。
5、分组头部开销的大小不同。
UDP报文段8字节首部开销。
TCP报文段20个字节的首部开销。