1、IP協議
1.IP協議的一些特色
1.1 不可靠
意思是說不能保證IP數據報能成功地到達目的地。在傳輸過程當中若是發生了錯誤,IP層會直接丟棄該數據報,而後發送ICMP消息報給信源端。
1.2 無鏈接
IP並不維護任何關於後續數據報的狀態信息。也就是說IP的每一個數據包都是獨立的,不相互影響.
有可能AB數據包前後發送給一個主機,B有可能比A先到達這個主機。
2.IP數據報告首部
2.1 圖片格式
![IP數據報首部格式 IP數據報首部格](http://static.javashuo.com/static/loading.gif)
IP數據報以大端字節序(又稱爲網絡字節序)的方式進行網絡傳輸,可是在存儲的時候又多是大端也有多是小端緩存
2.2 一些關鍵的首部字段
- 4位首部4字節數:首部4字節總數(最大15)
- 16位總字節數:IP數據報總長度
- 16位標識:主機每發送一個IP數據報文,則加1,主要標識數據包的發送順序;在數據包從新組裝時會用到這個值
- 3位標誌:
- 13位片偏移:
- 8位TTL:最大生存時間,實踐中通常是IP包每路由一次則減1;
- 16位首部校驗和:用於數據包的校驗,收到數據包後對首部二級制反碼求和,必須全是1,不然丟棄報文可是不發送ICMP報錯,由上層協議本身發現和處理;
3. IP數據報的轉發過程(路由過程)
舉例:服務器
- 數據包1:ip.dst = 192.168.1.3
- 數據包2:ip.dst = 192.168.2.3
- 主機 ip=192.168.1.2 MASK = 255.255.255.0
主機開始路由數據包1 和2:網絡
- 查看數據包的目的IP與本身的子網掩碼計算網絡號(數據包1的網絡號192.168.1.0 數據包2的網絡號爲192.168.2.0 ,主機的網絡號爲 192.168.1.0)
- 查看目的IP的網絡號是否在本身的網絡號範圍內(數據包1在 數據包2不在)
- 對於數據包1,查看本身ARP地址表有沒有192.168.1.2與mac映射(這個mac不必定是目的IP的mac,參看思科配置交換機的那個文檔)有的話直接修改二層包頭的源mac目的mac發送,沒有的話發送ARP廣播請求...而後進入二層數據交換的單播流程
- 對於數據包2,主機會發送給本身的默認網關192.168.1.1(若是沒修改的話),由默認網關來處理,而默認網關的掩碼爲255.255.0.0的話,那麼就會單播了。。不然繼續上報,知道TTL=0數據包被丟棄回覆目的IP不可達的ICMP消息;
4. 選路和動態選路
這個之後補充code
2、ARP協議
1. 功能介紹
ARP協議 主要功能爲獲取IP地址的對應的二層首部的MAC,IP=>MAC;blog
2. 查看arp 表arp -a
![ARP -A ARP -A](http://static.javashuo.com/static/loading.gif)
- 如上圖所顯示,三個字段IP,MAC,類型
- IP,....
- MAC,參看鏈路層協議首部
- 動態類型意味這發送到當前IP要使用的二層目的MAC時可變的;靜態就是固定值不會變,是協議的要求的
- MAC表條目的緩存具備時效,通常爲300秒;
3. arp 數據報(請求響應)格式
![ARP 請求報文格式 ARP 請求響應報文格式](http://static.javashuo.com/static/loading.gif)
須要注意的是請求時:接口
- 以太網目的地址:比特位全爲1的特殊地址,是廣播地址;全部的其餘網絡接口都會接收(環路風暴);
3、RARP 協議
1. 功能介紹
ARP協議 主要功能爲MAC獲取IP地址,MAC=》IP; 對於一些無硬盤磁盤等存儲結構的設備,會在系統啓動時發送一個RARP廣播,要求某個服務器回覆一個可用的IP圖片
4、ICMP(Internet Control Message Protocol)
1. 功能介紹
互聯網控制消息協議:它用於IP協議中發送控制消息,提供可能發生在通訊環境中的各類問題反饋。經過這些信息,使管理者能夠對所發生的問題做出診斷,而後採起適當的措施解決。ip
通常不多由程序會直接使用這個協議,主要是TCP,UDP,IP協議內自己在使用,可是有兩個經常使用的程序ping和traceroute在直接的用這個協議;路由
2. PING
用來檢測鏈路通斷,根據ICMP報文顯示錯誤,可是不少服務器禁ping,還可使用telnet...文檔
3. traceroute
顯示當前主機到目標主機的通訊鏈路,好比下面這個圖:
![tracert tracert](http://static.javashuo.com/static/loading.gif)
每行最後顯示的IP就是當前數據報走的網關;最後一個目的地就是你訪問的最終IP;