前言
虽然之前了解过网络部分的相关知识,但是这次还是学到了很多有用的东西。
第五周咯!大家加油!马拉松最难的就是中途,中间这段路坚持过去,下面顺其自然也能走下去了,小伙伴们加油!
整体流向
首先介绍了基础,网络的分层模型和协议栈,这块之前学的还可以,直接过。
性能指标:
这块有点意思,主要学习到 网络吞吐和 PPS
sar -n DEV 1
以前可能对于检测网络只有一个概念,那就是 ping,ping 通了,那就 ok 了,如果 ping 不通,那就有问题,如果有丢包那就是网络不好,没有具体的指标来衡量网络的性能。
sar 这个命令确实挺好用的。
C10K:
这个问题之前也有了解过,但是对于多路复用的理解之前还是不行的,对于 select、poll、epoll 加深理解。
评估:
带宽、延时、吞吐量、PPS
在实际中其实这个对于我们来说用到的比较少,因为在实际中要不就是部署机房,全是内网,也没有网络速度上的硬性限制;要不就是用的云厂商的服务器,那么带宽就是看钱了,钱多自然就能把带宽拉上去,对于这些指标的监控也完全来源于云厂商给到的监控数值
DNS:
对于 dns 之前也就是停留在配置,买个域名做个解析,学习后发现dig trace确实好用,针对很多内网的环境,经常会有内网中的一些域名解析的配置,用这个工具能很快定位到问题。
tcpdump、Wireshark:
tcpdump 抓包之前就用过,但是每次用的时候还是要去百度或者查一下手册,记不住,还是用的不多,特别是在学习容器网络的配置的时候,有的时候发现网络不通,就是需要抓包看走的路径,走到哪一个部分才有问题。
小结
- 对于多路复用,之后还能看看 go 里面的实现源码,这样可能进一步了解
- 对于 TCP 的几个状态还是要熟悉一下,出现大量 TIME_WAIT 或者 SYN_RCVD 这样状态的时候要警惕
- 可以了解一下 nginx 的实现,看看它对于网络上面做了什么操作,搞的这么快