tcp 与 udp 的区别
TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议
UDP 是一种无连接擦混输层协议,提供面向事物的监看不可靠的消息传输服务,可靠性由上层的应用层来实现,所以要实现udp可靠性传输,必须通过应用层来实现和控制
TCP如何实现可靠性传输?
确认机制,重传机制,滑动窗口。
udp 如何实现可靠性传输
传输层无法保证数据的可靠性,只能通过应用层来保证,实现的方式参考tcp的可靠传输的方式,只是实现不在传输层,实现转移到了应用层。
实现确认机制,实现重传机制,实现窗口确认机制。
- 添加seq/ack机制,确保数据发送到对端
- 添加发送和接收缓冲区,主要是用户超时重传。
- 添加超时重传机制。
如果你不利用Linux 协议栈以及上层的socket机制,自己通过抓包和发包的方式实现可靠传输,那么必须实现以下功能:
发送:包的分片、包的确认、包的重发
接受:包的调序,包的序号确认