MSS与MTU的区别,默认大小各是多少?
- 标准以太网接口缺省的MTU(最大传输单元)为1500 字节,是最大帧1518减去源宿的MAC、FCS后最大的IP packet大小;
- MTU减去20字节IP包头减去20字节TCP包头 ,即是MSS,1460字节
- 一台交换机要保证接口MTU的一致性。如果在一个VLAN上、或整个交换机都采用同样的MTU,避免一些奇怪的问题
- 参考:https://www.zhihu.com/question/21524257
TIME_WAIT 与CLOSE_WAIT 的区别
主动关闭连接的一方进入TIME_WAIT ,若客户端高并发访问HTTP接口又没有使用会话或者线程池机制,可能会导致本地端口耗尽。
CLOSE_WAIT 出现在被动断开连接。可能常见在Server端,例如在Netty的I/O线程里做DB读写、日志记录这种不可控的阻塞行为,可能会引发客户端超时。
如何查看机器上所有的tcp连接?
natstat -ant
netstat -antp 如何统计time_wait 状态的连接?
- netstat -antp|grep TIME_WAIT|wc -l
IP 包头大小?
20 字节
- url.cn 是几级域名? — 二级
- www.qq.com 是几级域名? — 三级
- url.cn 可以CNAME到 demo.te.isc.demo-cloud.net 吗?
不建议这么操作,实际上很多场合是不可以这么操作的。
https://serverfault.com/questions/613829/why-cant-a-cname-record-be-used-at-the-apex-aka-root-of-a-domain
递归解析与迭代解析的区别?

先理解13组根DNS服务器、顶级域DNS服务器(各解析.com .net .gov 等)、权威DNS服务器、本地DNS服务器。
考虑浏览器客户端访问www.qq.com ,会向小区宽带的本地DNS查询域名解析IP ,而本地DNS会向根DNS、顶级域DNS、权威DNS逐个查询。
从客户端到本地DNS的查询是递归的;而其余的查询是迭代的。(参考《自顶向下理解计算机网络》89页)
x-forwarded-for 与 remote_addr 的区别?
- X-Forwarded-For: client1, proxy1, proxy2
<proxy1>, <proxy2>如果一个请求经过了多个代理服务器,那么每一个代理服务器的IP地址都会被依次记录在内。也就是说,最右端的IP地址表示最近通过的代理服务器,而最左端的IP地址表示最初发起请求的客户端的IP地址。
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Forwarded-For
鉴于伪造这一字段非常容易,应该谨慎使用X-Forwarded-For字段。正常情况下XFF中最后一个IP地址是最后一个代理服务器的IP地址
- remote_addr 是通讯客户端与服务器实际进行TCP通信的IP
IPv4地址分类 (IPv4地址32位)
A 类 0.0.0.0/8 127.255.255.255 结束
B 类 128.0.0.0/16 191.255.255.255 结束
C 类 192.0.0.0/24
D 类 224.0.0.0~239.255.255.255
192.168.2.47/26 这个子网的开始IP 和结束IP是?
(32-26)=6 , 2^6 = 64 ,故每64个IP是一个子网,而47 落在0-63 这个子网,故 192.168.2.0 是网络号;可用IP 是192.168.2.1~192.168.2.62 ;192.168.2.63 是广播IP 地址。
IPv6 地址的格式与缩写规则,怎么判断哪些是合法的IPv6地址?
(IPv4 地址是32位)
https://www.ibm.com/support/knowledgecenter/zh/ssw_ibm_i_72/rzai2/rzai2ipv6addrformat.htm
IPv6 地址大小为 128 位 完整写法是8段 ,0000:0000:0000:0000:0000:0000:0000:0000 至 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
省略前导零通过省略前导零指定 IPv6 地址。例如,IPv6 地址 1050:0000:0000:0000:0005:0600:300c:326b 可写作 1050:0:0:0:5:600:300c:326b。
双冒号通过使用双冒号(::)替换一系列零来指定 IPv6 地址。例如,IPv6 地址 ff06:0:0:0:0:0:0:c3 可写作 ff06::c3。一个 IP 地址中只可使用一次双冒号。
IPv4 地址如何映射到IPv6
例如 0:0:0:0:0:ffff:192.1.56.10 和 ::ffff:192.1.56.10/96(短格式)
Ipv6 保留地址
https://zh.wikipedia.org/wiki/%E4%BF%9D%E7%95%99IP%E5%9C%B0%E5%9D%80
LVS 三种工作模式是什么?
NAT,IP tunneling, Direct Route
tcpdump 抓包的几个参数
- src host
- dst host
- -c 包个数
- -w xxx.pcap
- port 端口
- not
- portrange 1–1024
- -n 不将IP显示为域名
- -nn 显示原始端口号和协议
拓展阅读:http://packetlife.net/media/library/12/tcpdump.pdf
iptables 实例
- iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> –sport 源端口 <-d 目标IP/目标子网> –dport 目标端口 -j 动作
三表五链
filter 定义允许或者不允许的,只能做在3个链上:INPUT ,FORWARD ,OUTPUT
nat 定义地址转换的,也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING
mangle功能:修改报文原数据,是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
持久化
- cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak # 任何改动之前先备份
- iptables-save > /etc/sysconfig/iptables
拓展阅读:https://wangchujiang.com/linux-command/c/iptables.html
iptables如何设置只允许内网10.142.31.1来访问本机的7001 7002 7003端口
- cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak # 任何改动之前先备份
- iptables-save > /etc/sysconfig/iptables
iptables 设置允许8080 80 443 以及主动出去的,其他拒绝
- iptables -I INPUT -p tcp –dport 443 -i eth0 -j ACCEPT
- iptables -I INPUT -p tcp –dport 8080 -i eth0 -j ACCEPT
- iptables -I INPUT -p tcp –dport 80 -i eth0 -j ACCEPT
- iptables -I INPUT -i eth0 -m state –state ESTABLISHED -j ACCEPT
- iptables -A INPUT -i eth0 -j DROP
常见加密算法
对称 DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
非对称 RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
nginx的负载种类
轮询(默认)、权重 weight、IP hash、URL hash
nginx location 匹配:
= 用于标准uri前,要求请求字符串与uri严格匹配,一旦匹配成功则停止
~ 用于正则uri前,并且区分大小写
~* 用于正则uri前,但不区分大小写
^~ 用于标准uri前,要求Nginx找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,(匹配符合以后,停止往下搜索正则,采用这一条)而不再使用location块中的正则uri和请求
拓展阅读:https://segmentfault.com/a/1190000002797606
Nginx配置文件结构:

拓展阅读:https://segmentfault.com/a/1190000015646701