我们前两小节学习了传输层的TCP,其实在同一层上存在着两名王者,另一位就是UDP。一山不容二虎,为什么在同一层需要TCP和UDP两个类似的协议呢?那他们的区别和优势又各是什么呢?
还是那句老话,存在即合理,我们之前讲的TCP在传输数据之前需要通过三次握手来确保稳定的连接,然后再开始传输数据,而UDP却不然。UDP是客户端说我需要数据ABC,服务器会直接发送过来,所以这个传输自然是没有任何的保证。他们之间没有任何的会话连接,只是说我需要数据,然后服务器就会给数据,就是这么简单,就是这么“美好”。所以这里没有三次握手,没有可靠的通信,没有序列号,没有确认号。UDP就是用于有效率的传输,当然大多数时候,你不需要选择,因为你没得选,比如HTTP,你只能使用TCP。
客户就是上帝,客户是怎么选择的
TCP和UDP作为传输层的两大支柱,选择权当然是在更上层的客户手里,也就是应用层。我们来看一下应用层是怎么抉择的。下面是一个列表
- HTTP
- HTTPS
- Telnet
- SSH
- FTP
- SFTP
- POP3
- IMAP
- SMTP
- DNS
- SNMP
- TFTP
通过列表的形式把这些表示层的协议列出来,让你看的更清楚一点。我们现在一起来看一下这些并应用程序层协议以是如何使用TCP或UDP的