在网络应用中,我们集中介绍第四层的介绍。那么针对大多数应用来说,我们都会涉及到第四层的TCP和UDP协议。所以,针对这两个协议的文章内容也是比较多的。那么本文主要将诶少一下两者的关系以及工作方式。
用户数据报协议(UDP)
需要最小的网络开销且不需要对丢包或失序数据包进行检测的应用程序可以使用UDP。UDP也支持多播,在使用TCP时这是不可能的。大部分DNS查询和流媒体使用UDP。使用UDP协议的应用程序仍然可以处理重传丢失的数据包或对失序的数据包重新排序,但是必须由应用程序自身对它们进行处理,应用程序开发人员需要付出更多的努力进行开发。
传输控制协议(TCP)
需要检测和重新发送丢失或损坏数据包的应用程序使用TCP。使用TCP要求应用程序在可以传输数据前先建立一个连接。具体过程是客户端先发送一个SYN数据包请求一个连接,服务器使用SYN/ACK数据包响应,然后客户端通过ACK数据包确认连接。对于临时(shortlived)连接,要求在发送应用程序数据前进行这些数据包交换,会导致TCP比UDP协议慢。大部分应用程序,包括电子邮件和Web浏览,都使用TCP。
一个服务器上通常会有多个不同的服务在监听入站连接。为了让Windows能够把入站通信转发给正确的应用程序,入站网络请求中包含了一个端口号。例如,在默认情况下DNS请求使用的端口号是53。因此,当Windows收到带有端口号53的数据包时,会将其传送到DNS Server服务。