正确答案
相同点:TCP和DUP都处于网络层(NETWORK LAYER)之上,都是传输层协议,功能都属于保证网络层数据的传输。双方的通信无论是用TCP还是DUP都是要开放端口的。
不同点:
(1)TCP的传输是可靠的。DUP的传输是不可靠的。
(2)TCP是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。UDP是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
(3)TCP是一种可靠的通信服务,负载相对而言比较大。TCP采用套接字(socket)或者端口(port)来建立通信。UDP是一种不可靠的网络服务,负载比较小。
(4)TCP包括序号、确认信号、数据偏移、控制标志(通常说的URG、ACK、PSH、RST、SYN、FIN)、窗口、校验和、紧急指针、选项等信息。UDP包含长度和校验和信息。
(5)TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。
(6)TCP在发送数据包前都在通信双方有一个三次握手机制,确保双方准备好,在传输数据包期间,TCP会根据链路中数据流量的大小来调节传送的速率,传输时如果发现有丢包,会有严格的重传机制,故而传输速度很慢。UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
(7)TCP支持全双工和并发的TCP连接,提供确认、重传与拥塞控制。UDP适用于哪些系统对性能的要求高于数据完整性的要求,需要“简短快捷”的数据交换、需要多播和广播的应用环境。