c语言网络编程
c语言网络编程
1、TCP和UDP的区别
相同点:都是传输层的协议。都是全双工通讯。
TCP:
- 面向连接:端到端的连接。在传输数据之前必须建立连接。数据传输之后要释放连接。
- TCP基于字节流的数据传输:完整的用户消息可能拆分成多个tcp报文进行传输。对于接收方需要进行粘包。
- TCP可靠传输:TCP会进行发送数据包的控制。流量控制、拥塞控制、重传机制。
- 适用场景:适用于需要可靠传输的应用,如网页浏览,文件传输等。
UDP:
- 无连接:支持一对多和多对一的通讯方式。无需建立连接即可发送数据包。
- UDP是基于报文的传输方式:UDP每次发送的都是完整的报文。
- UDP不保证可靠性:不提供确认机制,不保证数据包的顺序,大量数据可能丢失或重复;
- 适用于实时应用,如直播、语音、游戏等。
传输效率:TCP头部20字节、udp头部8字节
