参考答案
结论:TCP发送三个包,服务端收到的数据量等同但包数不确定(可能1到多个);UDP发送三个包,服务端确切收到三个数据报(无丢失时)。
要点:
- TCP是面向连接的字节流,无消息边界;发送端三个写操作可能被合并(Nagle算法)或拆分,接收端按字节流读取,应用层需自己分包;
- UDP是数据报协议,保留边界,每个send对应一个recvfrom,三个包独立到达;
- 例外:UDP包可能丢失或乱序,但题目假设正常网络则收三个。
原理:TCP保证可靠有序字节流,UDP只保证数据报尽力交付。