一、TCP和UDP服务的特点
二、字节流和数据报
这两个是数据传输形式范畴的概念。
如图,字节流中的数据是连续传输的,取数据时可以取任意部分的数据。数据报传输则是以数据报为传输单元,取数据时按数据报一个个取。
三、TCP字节流服务流程
3.1、TCP发送
当发送端的应用程序连续执行多次写操作时,TCP模块将这些数据存入TCP发送缓冲区。当TCP模块真正开始发送数据时,发送缓冲区中的数据被封装成数目不定(看数据总大小)的TCP报文发出。
3.2、TCP接收
当接收端收到一个或多个TCP报文后,TCP模块将它们携带的数据根据TCP报文段的序号一次放入TCP接收缓冲区,并通知应用程序读取数据。用户可以根据需要将TCP接收缓冲区中的数据一次性来或分多次读取出来。
四、UDP数据报服务
4.1、UDP发送
发送端的应用程序每次执行写操作,UDP模块都将其数据封装成一个UDP数据报并发送。
4.2、UDP接收
接收端必须及时针对每一个UPD数据报执行读操作,否则会丢包。