我粉那个不懂球的月半子!热爱才值得我们终其一生!

作者:哈皮莊

编辑:小琳妹妹

(对,没错,我就是那个不懂球的胖子~!)

打D你,满地找牙~!(人肉发球机——刘国梁)

“停杯投箸不能食,拔剑四顾心茫然!”

仅以此文献给“蠢人”刘国梁~!

在刘国梁眼中,咱们互联网赖以生存的TCP协议,就如同下面这对的水平而已。

TCP协议运作起来很像打乒乓球。你推一板过来,我推一板回去,你来我往,打打和平球,仅此而已!

这图是TCP初始化的三次握手流程图(借用度娘百科的图)

TCP理解起来,只需要理解好一下这2个重要过程:

(一)三次握手诉衷肠

TCP三次握手的过程如下:

1、客户端发送SYN(嘿嘿,发个长球突击)报文给服务器端,进入SYN_SEND状态(凝神等着接球)。

2、服务器端收到SYN报文,回应一个SYN (哼,拉你一板,你丫的)ACK(ACK=x+1)报文,进入SYN_RECV状态(凝神静气,等着回球)。

3、客户端收到服务器端的SYN报文,回应一个ACK(靠,你拉我就对拉)报文,进入Established状态。(僵持不下,持续对拉开始)

三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

(二)四次挥手话别离

(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。(完了,居然回了个半高球,这下死定了)

(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。(受死吧,爆扣之~!)

(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。(再来一个杀死你的眼神,嘿嘿)

(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。(好吧,你赢了,我投降~!)

在具体CDN运营里面,我们会测试源站和CDN服务器的性能,就会看到这些状态的情况,帮助我们判断服务器或者客户端的问题。

比如查看服务器的建联时间和首包达到情况,就是看服务器、网络的综合性能,可以用以下命令查看。

(今天你K一刀了吗?)——有所展示哦~,可以重温一下下~!

curl -so /dev/null -w "connect: %\n1st byte: %\ntotal: %\nsize: %\nrate: %\nresponse: %\n" --connect-timeout 3 目标URL

这个指令用法可以看到整个链接从建连时间、第一个报文、文件大小、下载速率、HTTP响应码以及总的下载时间。在我们进行CDN排查某个问题链接的时候,很有用,因为看到到底是那个环节速度慢了。

片尾彩蛋——蠢人刘国梁其人

点我点我

看到这里不禁热泪盈眶(不好意思,年纪大了泪点有点低)

我粉这个不懂球的月半子~!热爱才值得我们终其一生!

精彩内容请点击:

大吉大利,晚上吃鸡~!

我等你,我们2018年见

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180103G0NLSQ00?refer=cp_1026

扫码关注云+社区