对TCP与UDP区别的深入了解

最近在做一款可靠UDP传输Client-Server软件。通过多本书籍和网络文章的学习,加深了对UDP和TCP传输协议的认识。

简单介绍

TCP: 自维持连接的数据“流”传输协议

UDP: 数据“报”形式的“单向”传输协议

表面上的区别

  1. 数据报头部的长度(当然包括内容了);

  2. 发送TCP报文需要先建立连接(三次握手),不使用后需要断开连接(四次握手);而UDP完全不需要,只是要对面有监听UDP端口就可以了;

  3. TCP因为是“流”形式的,所以传输的时候不自带内容长度;UDP则是“报文”形式的,所以要么不会到达目的端口,要么自动带着报文长度到达目的端口。

根本形成区别的原因

  1. 慢启动(TCP为适应网络拥堵情况的特性)

  2. 滑动窗口协议(其一是控制流量,其二是保证重传机制)

项目实现过程中的收获:

如果不使用线程锁之类的操作的话,并行的读写操作很容易发生“脏读”或“越界写入”问题。最低限度的改进是,将写入与删除的操作都尽可能在同一函数(线程)中操作。

猜你喜欢

转载自www.cnblogs.com/pureLaw/p/9987205.html