問題消失了,不等於解決了!
要找到問題的根源!
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)