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