问题消失了,不等于解决了!
要找到问题的根源!
1、TIPS
(1)数据包的发送
要发送给谁?怎样发送?
首先判断目标地址在子网内还是子网外
如何判断:子网掩码
子网内:直接投递;
子网外:发送给对应网关,由网关投递
路由表:到哪个子网通过哪个网关;
缺省网关:不知往哪扔就扔这;
相关命令:route、tracert(linux下为traceroute)
(2)hub集线器:广播,一层交换;
switch交换机:根据MAC地址交换(二层交换);交换机如何知道MAC地址信息?
router路由器:根据IP地址交换(三层交换);路由器如何知道路由信息?(IGMP、BGP)
四层交换:根据网络应用协议交换;
(3)ARP协议:怎样知道对方的MAC地址?
ICMP协议:怎样知道对方是否在线?(ping),数据包出错通知(port unreachable)
(4)TCP:有连接,保证顺序,自动重传;
为什么TCP能保证顺序和自动重传?
为什么会沾包和拆包?
TCP端口:区分不同的应用;
TCP连接:五元组
srcip、srcport、TCP、dstport、dstip
TCP的建立过程和状态
监听中、建立连接中、传输中、关闭中
TCP的原理:
应答(ACK、SEQ、全双工)、重传、滑动窗口避免拥挤;
netstat列出监听和连接情况;
(5)UDP:无连接,不保证顺序,可能会丢失;
什么时候会丢包?什么时候会乱序?
UDP端口:区分不同的应用
UDP广播和组播:支持一对多,减少传输的数据量;
(6)抓包分析
抓包工具:wireshark、tcpdump
抓包工具的要点:
选择网卡
抓包时过滤:host 1.1.1.1 and tcp and not port 22
显示数据包时过滤:ip.addr==1.1.1.1 and !tcp.port==22
(7)NAT地址转换
目的:解决地址数量不足;
实现方式:地址转换;
NAT:IP地址的映射;
(8)防火墙
作用:数据包过滤,防止攻击;
window防火墙的配置:
允许指定应用程序;
允许指定端口;
Linux防火墙配置:
针对网络地址端口;
能对网络数据包做各种操作(更改地址端口甚至包内容等,统计、丢包等)
硬件防火墙:GFW
分析网络问题时,要注意防火墙的影响!
2、PS
(1)Refer to TCP/IP(第一卷)
(2)