面试真题

网络 · 中等 · 腾讯

客户端分别通过 tcp 和 udp 发三个包,服务端会收到几个包?

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