負責在不一樣網絡之間盡力轉發數據包,基於數據包的IP地址轉發,不負責丟失重傳,不負責數據包順序算法
發送端
一、應用程序準備要傳輸的文件
二、傳輸層 將文件分段並編號
三、網絡層 添加目標IP地址、源IP地址
四、數據鏈路層 分兩張狀況,一種使用本身的子網掩碼判斷本身在哪一個網段;另外一種使用本身的子網掩碼,判斷目標地址在哪一個網段;若是是同一個網段,就使用ARP協議廣播解析目標IP地址的MAC地址;若是不是同一個網段,則將數據發送給網關,交給路由器選擇下一跳,直到到達目標地址數據庫
計算機通訊過程,本網段通訊和跨網段通訊的過程網絡
引自wiki:網際協議(英語:Internet Protocol,縮寫:IP;也稱互聯網協議)是用於分組交換數據網絡的一種協議。IP是在TCP/IP協議族中網絡層的主要協議,任務僅僅是根據源主機和目的主機的地址來傳送數據。爲此目的,IP定義了尋址方法和數據報的封裝結構。學習
將IP地址經過廣播,目標MAC地址是FF-FF-FF-FF-FF-FF,解析目標IP地址的MAC地址,廣播不能跨路由
設計
ping命令學習ICMPorm
網路羣組管理協議(英語:Internet Group Management Protocol,縮寫:IGMP)是用於管理網路協議多播組成員的一種通訊協議。IP主機和相鄰的路由器利用IGMP來建立多播組的組成員。像ICMP用於單播鏈接同樣,IGMP也是IP多播說明的一個完整部分。 IGMP爲互聯網協議的一種,屬於開放系統連接(OSI) 模塊的第三層協議,IP主機用它將主機的多點發送成員人數報告給臨近的多點發送路由器blog
引自wiki:路由信息協議(英語:Routing Information Protocol,縮寫:RIP)是一種內部網關協議(IGP),爲最先出現的距離向量路由協定。屬於網絡層,其主要應用於規模較小的、可靠性要求較低的網絡,能夠經過不斷的交換信息讓路由器動態的適應網絡鏈接的變化,這些信息包括每一個路由器能夠到達哪些網絡,這些網絡有多遠等。
用於配置動態路由,適用於小規模網絡ip
引自wiki:開放式最短路徑優先(英語:Open Shortest Path First,縮寫爲 OSPF)是對鏈路狀態路由協議的一種實現,隸屬內部網關協議(IGP),故運做於自治系統內部。採用戴克斯特拉算法(Dijkstra's algorithm)被用來計算最短路徑樹。它使用「代價(Cost)」做爲路由度量。鏈路狀態數據庫(LSDB)用來保存當前網絡拓撲結構,路由器上屬於同一區域的鏈路狀態數據庫是相同的(屬於多個區域的路由器會爲每一個區域維護一份鏈路狀態數據庫)。OSPF分爲OSPFv2和OSPFv3兩個版本,其中OSPFv2用在IPv4網絡,OSPFv3用在IPv6網絡。OSPFv2是由RFC 2328定義的,OSPFv3是由RFC 5340定義的。
用於配置動態路由,適用於大中型規模網絡路由
數據部分來自傳輸層
上圖中,一行表明32個比特,等於4個字節,固定部分一共5行,總共20個字節
各個字段意義以下it
版本:用來表示TCP/IP協議的版本,例如ipv四、ipv6
首部長度:規定首部的長度
區分服務:區分不一樣的流量進行排隊(QOS),十六進制表示
總長度:16個比特表示,一個數據包最大可用2的16次方減1對於65535個字節表示
標識:用於給網絡層數據包分片標識,根據標識組裝成完整的數據包
標誌:標誌(flag)佔3位比特,用於表示數據包是完整的仍是其中一個分片。目前只有前兩位有意義,標誌字段的最低位是MF(More Fragment)。MF=1表示後面"還有分片"。MF=0表示最後一個分片。標誌字段中間一位是DF(Don't Fragment)。只有當DF=0時才容許分片。當數據包不分片時,這3位是 "010" 表示
片偏移:記錄分片後每一個數據包的第一個字節佔完整數據包的第多少個字節(從0計算),再除以8表示
生存時間:在IP數據包中,用來表示數據包的生存時間,每通過一個路由器,生存時間減一;Linux下默認64,window128,Unix默認255
協議:用來表示數據部分的數據是屬於什麼協議的,常見的協議號十進制表示的有ICMP協議1,IGMP協議2,TCP協議6,UDP協議17,ipv6協議41,OSPF協議89
首部校驗和:接收端用此來校驗數據包的正確性,最後計算結果爲0,則保留數據包,不然認爲數據包在傳輸過程當中被修改了,丟棄數據報
源地址:源ip地址
目的地址:目標ip地址
可選字段(長度可變):用於一些自定義設計,在ipv6格式的數據包中已取消
填充:當可選部分不夠位數時,用來填充的部分
數據部分:若是不分片,數據包的數據最大不超過1480字節