WinSock网络编程经络
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3.3 传输层

传输层为主机上的应用程序提供端到端的通信能力。主要包括两个协议:TCP(传输控制协议)和UDP(用户数据报协议)。

TCP是面向连接的,为主机上的两个应用程序提供可靠的数据通信。TCP是全双工的,通信的设备之间在开始传输数据前先建立一条虚电路,然后可以在两个方向上传送数据。它为应用程序提供了完备的数据通信功能,主要有错误检测、流量控制、拥塞控制、连接管理等,应用程序不需要关心数据传送的细节,只需要把数据交给TCP,并告诉它要发送到哪里即可,剩下的工作全部由TCP完成。

UDP是无连接、不可靠的协议,它提供的服务非常简单,只把应用程序的数据进行封装,并提供有限的错误检测(校验和)。用UDP传送的数据可能会失序、丢失、重复,这些都需要应用程序自己来控制。使用UDP不需要建立连接,开销比TCP小,适合于数据快速到达比可靠性更重要或只需要简单的请求和反应的应用程序使用,如对及时性要求比较高的流媒体(Video、Audio等),只有查询和反应的域名查询等。