一些网络调试命令

测试到达目的主机的网络是否连接,但ping无法检查系统端口是否开放

ping www.google.com

telnet可以检查某个端口是否开放

telnet ip_addr:port

traceroute 是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具。traceroute 的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。
程序利用增加存活时间(TTL)值来实现其功能。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者

traceroute www.google.com

查看服务器端口有没有客户端来连接

netstat -anp | grep xxxx

查看到进程id之后,使用netstat命令查看其占用的端口:

netstat -nap | grep pid

curl 

显示通信过程

curl -v www.sina.com

http://www.ruanyifeng.com/blog/2011/09/curl.html

https://www.cnblogs.com/pangguoping/p/5571422.html

Linux查看某个端口的连接数

HTTP 和 WebSocket的区别

http服务器不能主动通知客户端

Linux查看实时网卡流量的几种方式

 

有一台机器,它有一个 IP,上面运行了一个 TCP 服务程序,程序只侦听一个端口,问:从理论上讲(只考虑 TCP/IP 这一层面,不考虑IPv6)这个服务程序可以支持多少并发 TCP 连接?答 65536 上下的直接刷掉。

具体来说,这个问题等价于:有一个 TCP 服务程序的地址是 1.2.3.4:8765,问它从理论上能接受多少个并发连接?

在只考虑 IPv4 的情况下,并发数的理论上限是 2**48。考虑某些 IP 段被保留了,这个上界可适当缩小,但数量级不变。实际的限制是操作系统全局文件描述符的数量,以及内存大小。

一个 TCP 连接有两个 end points,每个 end point 是 {ip, port},题目说其中一个 end point 已经固定,那么留下一个 end point 的*度,即 2 ** 48。客户端 IP 的上限是 2**32 个,每个客户端IP发起连接的上限是 2**16,乘到一起得理论上限。

即便客户端使用 NAT,也不影响这个理论上限。(为什么?)

在真实的 Linux 系统中,可以通过调整内核参数来支持上百万并发连接,具体做法见:

http://urbanairship.com/blog/2010/09/29/linux-kernel-tuning-for-c500k/

http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-3