在进行两者之间的区别和说明之前,我们可以先来看看,在整个TCP/IP网络协议模型之中,这两个协议是处于传输层的。所以这两个协议都是传输层协议。
在TCP/IP中能够实现传输功能的、最具有代表性的两个协议就是TCP和UDP了。
TCP
TCP是面向连接的,可靠的流协议。
流就是指不间断的数据结构。TCP为提供可靠性传输,实行顺序控制、重发控制机制。
除此之外,还具有流量控制、拥塞控制、提高网络利用率等众多功能。
TCP通过校验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。
总结
TCP 协议能够检测和恢复 IP 层提供的主机到主机的通信中可能发生的报文丢失、重复及其他错误。TCP 提供了一个可信赖的字节流通道,这样应用程序就不需要考虑这些问题。同时,TCP 协议是一种面向连接的协议,在使用 TCP进行通信之前,两个应用程序之间需要建立一个 TCP 连接,而这个连接又涉及到两台电脑需要完成握手消息的交换。
UDP
UDP不具有可靠的数据包协议,在UDP的情况下,可以确保发送消息的大小,但是不保证消息一定会到达。
两者并没有一定优势区分,UDP主要用于那些对高速传播和实时性有较高要求的通信和广播。
比如,通过IP电话进行通话,会使用UDP。
原因:使用TCP的话,如果数据在传输时丢失会重发,但这样无法流畅的传输通话人的声音。使用UDP不会进行重发处理,即使部分数据丢失,只会影响一小部分。
此外,多播以及广播也用UDP协议。
总结
UDP 协议不会对 IP 层产生的错误进行修复,而是简单的扩展了 IP 协议“尽力而为”的数据报文服务,使他能够在应用程序之间工作,而不是在主机之间工作,因此使用 UDP协议必须要考虑到报文丢失,顺序混乱的问题 。
UDP应用
1.包总量较少的通信(DNS、SNMP)
- 视频、音频等即时通信
3.广播通信
4.限定于特定网络中的应用通信(LAN)
TCP/IP和UDP/IP通信中,采用五个信号进行识别一个通信。分别是: 源IP地址,目标IP地址,协议号,源端口号,目标端口号。其中一项不同,就是其他通信
端口号的确定:
1.标准既定端口号。
TCP协议既定的端口号: HTTP:80 、ftp:21 、 ssh: 22 、telnet:23
2.时序分配法服务端去确定监听端口号。由系统去确定。
两者之间最大的区别是: UDP是面向无连接的通信服务的协议,而TCP是可靠性连接,充分实现了数据传输时的各种控制功能,可以进行丢包的重发控制,还可以把次序乱掉的分包进行顺序控制。此外,作为面向有连接的协议,只有确认通信对端存在时才会发送数据,从而控制流量的浪费。