谢谢楼主了,但小弟有些建议,不能简单的说UDP比TCP好,主要看应用在什么地方,简单的说UDP好会让初学者产生误解。TCP能够为程序提供可靠的网络通讯,它可使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。而UPD则是“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。而楼主封装了分包、控制、错误恢复等功能,无形中加大了处理量和降低了速度,因此可以看到UDP目前主要应用还在网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)、聊天软件等不需要可靠传输的和大数据流传输的地方,数据量过大时,楼主的分包、纠错功能反而会降低传输的性能,因为楼主在做很多TCP协议内部封装的内部过程,然而TCP的内部过程或者说算法无疑是很优秀的,正因为这样,UPD和TCP各有千秋,主要需要看应用在什么地方,UDP用来打洞还是目前最好的选择。
以上是个人的一点观点,并非与楼主争论什么,望请海涵~ |