15811 人赞同
1,下载一个15K的文件,和下载一个28K的文件,时间其实几乎是一样的,但下载一个15K的文件和一个14K的文件,前者比后者耗时几乎多了一倍。这是因为一个TCP请求窗口在绝大部分情况下是1480*10/1024=14.45K。(为啥是这个值呢?下边2里会讲。)
打个比方,一辆卡车满载量是14.45吨,那么显然在两地之间运送15吨和28吨,时间是差不多的,因为都需要两次往返,时间只差在装卸那13吨货物,而相比运输时间,这算不了什么。但运送14吨和15吨就不一样了,14吨可以一次运完,15吨就需要两次才行,多出来的一次往返会使时间增加几乎一倍。
所以前端在优化静态资源大小的时候,14K的倍数位置都是一个坎。从28K吐了血优化到15K,可以节省流量,但在加载速度提升上,没卵用…
2,不管你申请的带宽有多高,在建立传输刚开始的时候,通常最多只能有大约200-300KB/S的速度,随着时间推延,传输速度才会慢慢提升到最大带宽。当然了,最终能否达到最大带宽取决于设备等其它因素,这里就不细讲了。
原因在于TCP的慢启动。容我举一个例子:
计算机A要向域名http://m.com发送100K的数据,dns和三次握手就不讲了,最终A与计算机B建立了连接。
但是A与B并不是一条线直接连上的,中间会经过你的路由器,小区交换机,城域网关…诸多中间节点后,才会最终到达对方服务器。而A并不知道每个中间节点的缓存承载量(节点不可能把缓存全都用来发送A的数据,那样对其它计算机的请求不公平,例如,你家路由器有10K缓存,连着5台手机,它如果把10K缓存都留给你,其它4台手机就断网了),也不知道B的缓存容量,所以A不能第一次就把所有100k数据一口气发出去。
打个比方:
我要往港口发100吨货出海,但港口容量可能只有20吨,我一口气发100吨势必造成港口堵塞,我只能1吨1吨地发。我不知道港口的具体容量,为了避免拥塞,我第一次发1吨试探一下,并且在司机回来之前,我不能再次发货;如果港口收到后,返回来的卡车司机告诉我港口可以接收更多的货物,那么我可以尝试一次发送2吨,再然后是一次3吨,4吨…直到达到港口的最大接收能力。但港口为什么不能第一次就直接告诉你他的最大接收能力呢?因为港口同时还在接收其它地方发来的货物,它的接收能力是动态变化的,你和港口之间只能每次运货时都进行一次协商,约定好下次能发多少吨货物。
用这个比方来对应的话,大概是这样的:
港口——目标服务器B
我——电脑A
运货路上的服务区——中间节点
每次发货吨数——每次发送的数据包大小
港口最大容量——目标服务器B的缓存
PS:如果我强行一次发送100吨货物,港口当次只能接收20吨,或者中途某个驿站只能接收10吨,剩下的货无处存放,可能就丢了。
到了TCP这儿,如果我第一次就把100K数据发出去,而中途某个节点的缓存只能分配给我20K,那剩下的80K就会堵塞在上一个节点,而上一个节点很容易把拥塞的请求忽略掉,于是就造成了传说中的丢包。所以A只能先“试探”一下,首次发包少发一点。在业界,这个值就是1480*10=14800字节,1480是一个TCP包的大小,10是窗口数量。打比方的话,1480相当于一个集装箱的容量,然后一次发10个集装箱。
所以,A向B发送的过程大概是这样的:
A发送10个TCP包给B;——发送了14K,剩余86K
B告诉A,没有丢包,10个包全部收到(这说明B可以接收至少10个包,中途的任意一个节点也可以缓存至少10个包),那么我们下次试试接收12个包,怎么样?
A说,好的,于是再次发送了12个包;——发送了17K,剩余69K
B告诉A,还是没有丢包,我们继续提高到14个包吧~
A说,好的,于是再次发送了14个包;——发送了20K,剩余49K
B告诉A,还是没有丢包,我们继续提高到16个包吧~
A说,好的,于是再次发送了16个包;——发送了22K,剩余27K
B告诉A,还是没有丢包,我们继续提高到18个包吧~
A说,好的,于是再次发送了18个包;——发送了25K,剩余2K
B告诉A,还是没有丢包,我们继续提高到20个包吧~
A说,好的,但是我们只剩下2K了呀~发两个包就够了。再跟上一个结束标记。——发送了2K,发送完毕。
B关闭连接。
于是,100K的请求,实际上是花了6次发送+5次返回(也就是5.5个往返)才完成的。OK,网络传输也是有时间的,我们管一次往返的耗时叫RTT。假设一次RTT耗时40毫秒,那么这100K耗时就是40*5.5=220毫秒。那么本次发送的带宽,就是100K/0.22s=454KB/S。
如果文件不是100K,而是10M,花费的次数就远不止5.5次。假设每次都增加2个窗口,并且RTT稳定在40ms,大家有兴趣可以算一下10M需要多少次发送,多长时间。
所以,我们在下载时,总会看到下载速度从一个比较小的速率开始慢慢往上涨。
那么问题来了。为什么A第一次要发送10个包?多发几个不行吗?
很遗憾,由于多且复杂的原因,这个值是目前业界能做到的最大值了,并且这也是从最初的4涨上来的。至少以目前的网络环境,增加首次请求的窗口数量的话,很容易造成丢包。
并且,无论你申请的宽带是10M,还是20M,100M,200M,这个值都不会变,除非你和目标服务器之间的链路全都受你控制,并且你对它们的性能有充分认识,那么你可以从TCP协议层面修改这个值。
————————
超载什么的真是够了….
问题1就不考虑服务端处理的时间了,每种业务都不一样,解释原理时考虑这些没啥意义
USB3.0的接口,慢慢插是USB2.0
作者:王凯伦
链接:https://www.zhihu.com/question/288115796/answer/468353145
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
黑客真的不是想黑什么就黑什么的。
破解Wi-Fi密码是可以的,破解QQ密码很难,因为你面对的是整个腾讯公司
挖漏洞,三分靠技术,七分靠缘分
漏洞补完,没有防火墙照样黑不进去。(对于正常黑客来说)不像小说里写的什么“防火墙突破了,可以进去了”
很多低端黑客连代码都不会写就拿着工具黑网站了
那些自称红客的基本上就是没啥技术,怀着一颗朴素的爱国心乱黑外国网站
黑客门槛很低,小学生都能学会
能够画出蒙娜丽莎很难,把它烧掉很简单,同理黑掉一个网站的难度远远低于写出它的难度。
现在的加密算法都是非常成熟的,如果一个勒索软件能够被解锁,只能说明这个作者不用心。而如果一个勒索软件没办法解锁,这才是标准操作,并不是什么值得吹的事情。
20位的压缩包密码/硬盘密码/,就算是FBI CIA NSA IRS(好像混入了什么奇怪的东西)等等一切想得到的牛逼机构一起上都没办法。
似乎人们对于黑掉XX的标准不一样,有人认为拿到部分不该看到的数据就算,有人认为D垮服务器就算,有人认为拿到权限才算,还有的人认为拿下最高权限并且把内网沦陷了才能算,但是媒体认为以上都算。所以看到媒体说黑掉XX的时候请看仔细
市面上教PHP的书一半的示例代码里都有严重SQL注入漏洞
没有绝对安全的系统不等于没有绝对安全的代码。我一Hello world程序怎么会有漏洞?但是作为一个复杂的操作系统,里面不可避免地存在漏洞
联合国很大,部门很多,黑了联合国的几台无关紧要的服务器并不是难事。(各国政府同理,各个大学同理)
但是要是你能搞定腾讯/阿里/百度之类的大型技术企业的哪怕是一台服务器并维持权限你就很牛了
现在APP软件界面相似度很高,一个二个做的花里胡哨,但是很有可能两个看着差不多模样的APP在安全上一个是天上一个是地下。
【小厂家】做的物联网设备往往不安全。以及,如果你铁了心要装一个小厂家的摄像头,拜托,别对着你的床,只能说到这儿了
许多人明面上是白帽子黑客,背地里搞黑产不亦乐乎
但是售卖信息主要是内鬼不是黑客
如果遇到运营商给你弹广告,不要想着什么用VPN来躲避之类的软弱的解决手段,要直接投诉工信部,他们现在很重视这个的。
许多企业在信息安全的投入还没有他们在咖啡上的投入多(凯文米特尼克说的),他们的数据被盗真的活该。
不要认为自己是个普通人就不会有黑客来搞你的个人电脑/手机/网站,你值得被黑,只是不值得专门花很长时间来黑。
目前来看,信息安全法是保护不了各位的,JC叔叔最多给你立案放在那儿,所以还需要自己提高警惕
渗透是一个很漫长的过程,不像电影里写的啪啪啪地敲半分钟键盘就可以的。最漫长复杂的攻击可能持续几年
那些在显示器/鼠标/键盘里面植入恶意软件的事情,还有什么五千米外的无线攻击是米国国安局(NSA)玩的,跟一般黑客没啥关系
电影里面黑客的屏幕上代码刷刷刷地闪,现实中如果这样,我们的眼睛会看不过来的(或者我们有时只看关键部分)。
但是我们的屏幕上真的有时候要开很多个窗口,上面代码真的在动。那是因为我们真的懒得做一个图形界面的黑客工具出来
新闻上什么中国黑客15秒攻破浏览器之类的指的是漏洞触发后主机沦陷所需要的时间,想要挖掘一个类似的漏洞需要几个月甚至更长
360和腾讯管家是国内最好的杀毒软件了,360技术很强,真的不要看不起它(但流氓又是另一回事了)
更新:有些人认为这俩货不行,我就直说了吧。当年我发现的几种干掉杀毒软件的通杀方法对它们都不奏效,所以真心佩服它们
360的补漏洞其实就是安装微软的更新补丁
360自创了“木马防火墙”这个词,这是个装逼的词,没什么用
更新:有人提到了火绒。其实我个人很看好他们的发展的,但是毕竟火绒比较新,有些方面还是跟积累多年的360和腾讯管家有差距,比如说我上次用**(发现火绒还没有修复该漏洞,暂且删掉这一小部分)直接删掉火榕自身文件,直接干掉火绒
不安装微软的更新补丁真的不安全
除非你位高权重,否则最新的没补丁的未知漏洞不会用在你头上(有个例外,就是这样一枚价值几十万美刀的漏洞居然被提前公开,类似于MS17-010)
Windows Defender很菜,即使有个微软爸爸
杀毒软件说有毒,基本上就是有毒;杀毒软件说没毒,并不代表它真的没毒。如果一个软件请你关掉杀毒软件,那绝对有毒(那个,MSF一类的黑客工具除外,感谢评论区提醒)
(评论区对这条存在质疑,我想可能是我有些偏颇了。在我用windows的时候一般用大厂软件,而我在病毒吧逛的时候总是看见有人被那些请求关闭杀毒软件的木马勒索,所以得出了这样的印象。总之,各位好自为之,尽量从官方渠道下软件)
(我也搞过竞赛,用DEV C++的时候没有出过问题,各位真的确认自己的DEV C++没问题?)
最近大学里面认识了个用过易语言写外挂的大佬(不是那种什么用别人DLL自己画界面的那种,是自己分析内存的),专门问了易语言报毒的问题。他说现在易语言都不大报毒了,除非做外挂的人加个”暗桩”,就是那种让调试者调试上去结果被格盘的东西,否则是不会报毒的
顺便说下,知乎上流行着一种从头到脚鄙视易语言的风气,并且那个大佬自己都觉得易语言蛮low的,毕竟用户评价水平实在太低。但是另一方面易语言有很多模块,可以方便地做某些事情,像改内存画界面什么的一键完成。
(反正我自己没用过易语言,上面是他跟我说的)
如果不乱安装来路不明的软件,windows和安卓都很安全
现在的病毒往往不会让你察觉,所以电脑出问题不要把锅甩到病毒上
有的时候光用一个浏览器就能入侵一个网站了
成都信息工程大学是二本(经评论区提醒,这里搞错了,不是二本),杭州电子科技大学是双非,但是他们的信息安全专业比许多985都强,想要学技术又不太在乎名气分数又不太高的可以考虑这两所学校。
关于我上面提到的黑客不能做的事情,我相信存在一小撮手拿各类0day和资源/情报/库子的顶尖高手可以做到,但我想他们绝对不会在网上跟我说他们做得到。
我们真的不会修电脑,他们程序员也不会
——————————————————update————————————–
夹一个私货:红芯浏览器真的不安全,有许多漏洞,分析如下
如何看待红芯浏览器换肤chromium却号称国产内核骗钱的行为?
界面不等于软件。
界面只是软件的一小部分,甚至不是必须的。很多优秀的软件,根本没有界面。
但对于普通人来说,界面酷炫,则软件酷炫;界面简单,则软件低端。界面画出来了,软件就完成了;没有界面,就不是软件,至少不是给人用的软件。
界面是水面上的冰山,水下的部分,就没人在意了。
作者:ze ran
链接:https://www.zhihu.com/question/288115796/answer/467065736
来源:知乎
著作权归作者所有,转载请联系作者获得授权。