为什么QQ主要用UDP协议
UDP协议是无连接方式的协议,它的效率高,速度快,占资源少,但是其传输机制为不可靠传送,必须依靠辅助的算法来完成传输控制。QQ采用的通信协议以UDP为主,辅以TCP协议。由于QQ的服务器设计容量是海量级的应用,一台服务器要同时容纳十几万的并发连接,因此服务器端只有采用UDP协议与客户端进行通讯才能保证这种超大规模的服务。
QQ客户端之间的消息传送也采用了UDP模式,因为国内的网络环境非常复杂,而且很多用户采用的方式是通过代理服务器共享一条线路上网的方式,在这些复杂的情况下,客户端之间能彼此建立起来TCP连接的概率较小,严重影响传送信息的效率。而UDP包能够穿透大部分的代理服务器,因此QQ选择了UDP作为客户之间的主要通信协议。
采用UDP协议,通过服务器中转方式。因此,现在的IP侦探在你仅仅跟对方发送聊天消息的时候是无法获取到IP的。大家都知道,UDP 协议是不可靠协议,它只管发送,不管对方是否收到的,但它的传输很高效。但是,作为聊天软件,怎么可以采用这样的不可靠方式来传输消息呢?于是,腾讯采用了上层协议来保证可靠传输:如果客户端使用UDP协议发出消息后,服务器收到该包,需要使用UDP协议发回一个应答包。如此来保证消息可以无遗漏传输。之所以会发生在客户端明明看到“消息发送失败”但对方又收到了这个消息的情况,就是因为客户端发出的消息服务器已经收到并转发成功,但客户端由于网络原因没有收到服务器的应答包引起的。
很多人提到keepalive,TCP无法感知网络中断这些问题。。。这个算是TCP一个容易踩的坑,但这并不能说明UDP就比TCP好(或者说解释为何要使用UDP)。因为在UDP上面一样需要面对这些问题,而解决这类问题的方法和在TCP上面进行应用层心跳的方法其实没有本质上的区别。而这就是为什么没有接触过这类问题的人会有题主提出的疑惑。
那么为什么呢?最本质上UDP的优势还是带宽的利用。这一切要回归到99~03年的网络状况,当时网络的特点就是接入带宽很窄而且抖动特别厉害。所谓抖动可能是多方面的,例如延时突发性地暴增、也有可能是由于路由层面的变化突然导致路由黑洞,还各种等等等等的问题。TCP因为拥塞控制、保证有序等原因,在这种网络状态上对带宽的利用是非常低的。而且因为网络抖动的原因,应用层心跳超时(一般不依靠keepalive)应用层主动断掉socket之后TCP需要三次握手才能重新建立链接,一旦出现频繁的小抖动就会使得带宽利用更低。而等待四次挥手的时间,也会占用服务器上宝贵的资源。
总结来说,当网络差到一定程度了,TCP的优势反而会成为劣势。
这时候我们再看看UDP在这种情况下的表现。使用UDP对抗网络抖动,说到底就是在应用层比TCP更快地探测和重传,一旦超过一定的时间没有收到回复,客户端可以选择马上重试或者换一个IP:PORT重试(假如你的服务像QQ一样有多个接入),在服务器端则可以果断地断掉socket。而可以应用UDP的时候,往往是你的应用层协议本身已经具备了一定的面向连接的特性。如果你应用层的协议已经达到了一定程度的消息幂等,客户端可以几乎无脑地进行重传,这样就可以尽可能地降低网络抖动的影响,同时也可以尽可能地利用整个带宽。而刚好QQ的协议,就具备类似的特点。
简单来说就是我们可以使用UDP实现一个面向连接协议,这个协议可以很好地适应当时的网络状况和QQ本身的业务。但凡事都有成本,成本就是你的应用层协议本身需要去实现抵抗网络异常带来的问题。例如乱序、例如业务数据的分片和重组、例如网络状态探测等等等等。。。
而现在UDP也应用在很多跨运营商、跨地域、跨机房之间的服务调用当中。原因无它,就是网络烂到一定程度
主要看你购买服务器的运营商面板支持不支持配置HTTPS协议,而且有些运营商HTTPS是有免费的,但是也有一些平台是有售价的!
这个还是有区分的,所以你先了解清楚后再配置,当然你用香港主机,如果你域名没有备案,用HTTPS没有太大的意义,这个是我个人这么理解的。因为这个是为了数据安全协议,当然百度站长平台以及很多其他平台都在推崇HTTPS协议网站就是!
不过你打算长期做站点,而且备案了的情况下,还是配置下,这个还是有必要的,第一可以更好的提升网站的可信度,第二可以更好的利用这个提升搜索引擎的SEO排名,可以更好的获取更多流量。
DHCP协议的功能为:集中的管理、分配IP地址。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要具有以下功能:
1保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2DHCP应当可以给用户分配永久固定的IP地址。
3DHCP应当可以同用其他方法获得IP地址的主机共存。
4DHCP服务器应当向现有的BOOTP客户端提供服务。
扩展资料:
DHCP 避免了因手工设置IP地址及子网掩码所产生的错误,同时也避免了把一个IP地址分配给多台计算机所造成的地址冲突,而客户机也只需将TCP/IP配置全设置为自动获取即可上网。
DHCP服务降低了管理IP地址设置的负担,使用DHCP 服务器大大缩短了配置或重新配置网络中工作站所花费的时间,达到了最高效地利用有限的IP地址的目的。
由于包含IP地址的相关TCP/IP配置参数是DHCP服务器“临时发放”给客户端使用的,所以当客户机断开与服务器的连接后,旧的IP地址将被释放以便重用。
—DHCP
0条评论