網絡層有四個協議:ARP、IP、ICMP、IGMP
負責在不同網絡之間盡力轉發數據包,不負責丟失重傳,也不負責順序。基於數據包的IP地址轉發
通過APR協議廣播來得到各設備的MAC地址。根據自己的子網掩碼與目標IP進行與運算,如果一致,則局域網內轉發,如果不一致,則目標MAC地址改為網關MAC地址。
- 集線器: 作用是信號加強,因為雙絞線最多100M
- 交換機: 鏈路層設備,用於存儲轉發(根據目標MAC地址決定從那個口出)
- 左路由器: 網絡層設備,解析出目標IP,查詢路由表,進行轉發,由於使用點對點通信,所以源MAC=目標MAC地址。
- 右路由器: 網絡層設備,通過目標IP查詢路由表,得出目標MAC地址。然後進行轉發
- 問:交換機與路由器能中病毒嗎?答: 不能。因為數據被切割成很多塊兒,病毒是一個應用,被切割後不起作用。不過病毒能通過不停的發廣播來影響設備忙於轉發無用請求,使正常請求不能訪問。
網絡層協議
ARP協議
- ARP協議: IP地址通過廣播,目標MAC地址是FF-FF-FF-FF-FF-FF,解析目標IP地址的MAC地址。(只解析/廣播本網段的設備,路由器隔絕。 cmd -> arp -a)
- ARP欺騙: 即將IP對應的正確MAC地址修改掉。ARP欺騙工具: 網絡執行官可通過手動修改MAC地址來破解(一重啟就沒了,可寫腳本,然後開機運行來解決):arp -s [ip] [mac]、或安裝ARP防火牆
網際控制報文協議 ICMP
- ICMP: 在IP協議之上,又在傳輸層協議(TCP/UDP)之下。用來測試網絡層是否暢通,網絡是否有故障。如有故障,該協議可報告故障。可通過PING命令表達
- TTL: 表示存活週期,每過一個路由器就-1;可根據TTL大概判斷對方是什麼系統,Linux(64) Windows(128) Unix(255)
- ping命令ping
-l : 使用大字節來ping地址ping -i :更改數據包的TTL時間,能夠跟蹤數據包途徑的路由器 - pathping: 跟蹤數據包路徑、計算丟包情況
- tracert: 能夠查看沿途的路由器(目前看比pathping 好用)
IGMP協議和多播組播
IGMP協議的作用就是週期性掃描本網段內有沒有主機在訪問多播數據包。
點到點通信:廣播:目標MAC地址全是F,目標IP地址全是255,也就是全是1.全網廣播不能跨越路由器。組播=多播:分組廣播。使用多播一般用於直播,網絡會議,能夠節省帶寬。
IP數據包格式
- 版本: 用來表示 TCP/IP 協議的版本 v4 v6
- 數據包大小(超了就要分片):網絡層最大 2的十六次減1=65535字節鏈路層最大1500字節針對數據包的分包模式,有一種專門的攻擊方式叫淚滴攻擊;
- 常見協議ICMP 協議號為1(十進制)IGMP 協議號為2TCP 協議號為6UDP 協議號為 17IPV6 協議號為41OSPF協議號為 89
首部檢驗和
使用抓包工具排查網絡故障
IP協議
網絡暢通的條件(數據包有去有回,查看路由表、網關)
- 靜態路由:由管理員來設置網絡怎麼走。告訴路由器所有沒有直連的網絡嚇一跳給誰
- 動態路由: 通過IP協議,自己學習網絡怎麼走RIP: 週期性廣播路由表給其他路由器,條數少的則是最優路徑。30S更新更新一次,最大跳數15跳,過了16就是不可達;OSPF:以帶寬為判斷標準;
參考文獻https://www.bilibili.com/video/av9876107?p=54
閱讀更多 MrWu平凡 的文章