当今使用的最重要的三种运输层协议:TCP、UDP、ICMP(由于ICMP工作在网络层上面所以斯坦福的教授将它归为运输层协议)
TCP
传输控制协议,被超过95%的因特网应用程序使用。TCP被广泛使用,因为它提供了几乎所有应用程序都需要的可靠的、端到端的、双向的字节流服务。在前面的文章中,讲过了TCP如何检测数据包在途中丢失或损坏,TCP重新传输数据直至成功的机制。
UDP
用户数据报协议,由不需要TCP保证传输服务的应用程序使用,这些程序要么有自己的方式处理重传,要么它们根本不需要可靠的传输。UDP所做的只是获取应用程序数据并创建UDP数据报,UDP数据报标识了应将数据发送到的另一端上的应用程序。尽管很少有应用程序使用UDP,但我们看到了DNS和DHCP的示例,它们都是简单的请求-响应查询协议。
ICMP
因特网控制信息协议,它的主要工作是在出现问题时发送反馈。例如,如果路由器收到IP数据报,但不知道下一步将它发送到哪,它就会发送ICMP消息给发送端来告知它。ICMP对于理解为什么端到端无法正常通信非常有用。