定義了基于ip協定的邏輯位址
連接配接不同的媒介類型
選擇資料通過網絡的最佳路徑
tcp/ip協定定義了一個在網際網路上傳輸的包,稱為ip資料報(ip datagram).這是一個與硬體無關的虛拟包,由首部和資料兩部分組成.首部的前一部分是固定長度,共 20 位元組,是所有ip資料報必須具有的.在首部的固定部分的後面是一些可選字段,其長度是可變的
版本: 占4位,指ip協定的版本.通信雙方使用的ip協定版本必須一緻.日前廣泛使用的 ip協定版本号為 4 (即 ipv4).ipv6 目前還處于起步階段.
首部長度:占 4 位,可表示的最大十進制數值是15.請注意,這個字段所表示數的機關是32位字 (1個32位字長是4 位元組),是以,當 ip 的首部長度為 1111 時 (即十進制的 15),首部長度就達到 60位元組.當 ip 分組的首部長度不是4位元組的整數倍時,必須利用最後的填充字段加以填充.是以資料部分永遠在 4位元組的整數倍開始,這樣在實作 ip協定時較為友善.首部長度限制為 60位元組的缺點是有時可能不夠用.這樣做的目的是希望使用者盡量減少開銷.最常用的首部長度就是 20 位元組 (即首部長度為 0101),這時不使用任何選項.
服務:占 8 位,用來獲得更好的服務.這個字段在舊标準中叫做服務類型,但實際上一直沒有被使用過.1998年ietf把這個字段改名為區分服務 ds(differentiated services).隻有在使用區分服務時,這個字段才起作用.
總長度:總長度指首都及資料之和的長度,機關為位元組.因為總長度字段為 16位,是以資料報的最大長度為 216-1=65 535位元組.在ip層下面的每一種資料鍊路層都有自己的幀格式,其中包括幀格式中的資料字段的最大長度,即最大傳送單元 mtu (maximum transfer unit).當一個資料報封裝成鍊路層的幀時,此資料報的總長度 (即首部加上資料部分)一定不能超過下面的資料鍊路層的mtu值,否則要分片.
辨別 (identification):占 16位.ip軟體在存儲器中維持一個計數器,每産生一個資料報,計數器就加 1,并将此值賦給辨別字段.但這個"辨別"并不是序号,因為 ip是無連接配接的服務,資料報不存在按序接收的問題.當資料報由于長度超過網絡的 mtu 而必須分片時,這個辨別字段的值就被複制到所有的資料報的辨別字段中.相同的辨別字段的值使分片後的各資料報片最後能正确地重裝成為原來的資料報.
标志 (flag):占3 位,但目前隻有2位有意義. 标志字段中的最低位記為 mf(more fragment).mf=1即表示後面"還有分片"的資料報.mf=0表示這已是若幹資料報片中的最後一個.标志字段中間的一位記為df(don’t fragment),意思是"不能分片",隻有當 df=0時才允許分片.
片偏移:占 13位.較長的分組在分片後,某片在原分組中的相對位置.也就是說,相對使用者資料字段的起點,該片從何處開始.片偏移以 8個位元組為偏移機關,這就是說,每個分片的長度一定是 8位元組(64位)的整數倍.
生存時間:占 8位,生存時間字段常用的英文縮寫是ttl(time to live),其表明資料報在網絡中的壽命.由發出資料報的源點設定這個字段.其目的是防止無法傳遞的資料報無限制地在網際網路中兜圈子,因而白白消耗網絡資源.最初的設計是以秒作為 ttl的機關.每經過一個路由器時,就把ttl減去資料報在路由器消耗掉的一段時間.若資料報在路由器消耗的時間小于 1 秒,就把ttl值減 1.當 ttl值為 0時,就丢棄這個資料報.
協定:占 8 位.協定字段指出此資料報攜帶的資料是使用何種協定,以便使目的主機的ip層知道應将資料部分上交給哪個處理過程.詳細資料請看文章最後的注釋.
首部檢驗和:占 16位.這個字段隻檢驗資料報的首部,但不包括資料部分.這是因為資料報每經過一個路由器,都要重新計算一下首都檢驗和 (一些字段,如生存時間,标志,片偏移等都可能發生變化),不檢驗資料部分可減少計算的工作量.
源位址:占32位.
目的位址:占 32位.
ip首部的可變部分就是一個可選字段.選項字段用來支援排錯,測量以及安全等措施,内容很豐富.此字段的長度可變,從1個位元組到40個位元組不等,取決于所選擇的項目.某些選項項目隻需要1個位元組,它隻包括1個位元組的選項代碼.但還有些選項需要多個位元組,這些選項一個個拼接起來,中間不需要有分隔符,最後用全0的填充字段補齊成為4位元組的整數倍.
增加首部的可變部分是為了增加ip資料報的功能,但這同時也使得ip資料報的首部長度成為可變的.這就增加了每一個路由器處理資料報的開銷,實際上這些選項很少被使用.新的ip版本ipv6就将ip資料報的首部長度做成固定的.
目前,這些任選項定義如下:
1.安全和處理限制(用于軍事領域);
2.記錄路徑(讓每個路由器都記下它的ip位址);
3.時間戳(time stamp)(讓每個路由器都記下ip資料報經過每一個路由器的ip位址和當地時間);
4.寬松的源站路由(loose source route)(為資料報指定一系列必須經過的ip位址);
5.嚴格的源站路由(strict source route)(與寬松的源站路由類似,但是要求隻能經過指定的這些位址,不能經過其他的位址).
這些選項很少被使用,并非所有主機和路由器都支援這些選項.
icmp協定(internet控制消息協定)
icmp是一個“錯誤偵測與回饋機制”
通過ip資料包封裝
用來發送錯誤和控制消息
icmp協定的封裝
icmp屬于網絡層協定
icmp資料的封裝過程
-t:會一直不停的執行ping
-a:可以顯示主機名(對方隐藏主機名,則顯示不出)
-l:可以設定ping 包的大小
-n:指定發送包的個數
-s:指定源ip去ping
-s:可以設定ping 包的大小
-c:指定發送包的個數
-l(大寫):指定源ip去ping
win:tracert ip/域名
linux:traceroute ip/域名
廣播:将廣播位址作為目的位址的資料幀
廣播域:網絡中能接收到同一個廣播的所有節點的集合
廣播位址:ff-ff-ff-ff-ff-ff
arp(address resolution protocol,位址解析協定)的基本功能是負責将一個已知的ip位址解析成mac位址。
1:pc1發送資料給pc2,會先檢查自己的arp緩存表。
2:如果檢查不在arp緩存表裡,arp就會發送廣播,用于找到目的地的mac位址。arp請求裡包括pc1的ip位址和mac位址以及pc2的ip位址和mac位址(此時為廣播位址ff-ff-ff-ff-ff-ff)
3:交換機收到廣播後做泛洪處理,對除pc1外的所有主機發送arp請求消息,pc3和pc4收到資訊,對照ip位址,發現不是自己後,丢棄這個arp請求資訊;pc2收到,發現是自己的資訊,就以單點傳播的形式發送arp應答,并在自己的arp表中緩存pc1的ip位址和mac位址的對應關系。
4:pc2的arp應答到pc1上後,pc1在自己的arp表中添加pc2的ip位址和mac位址的對應關系,之後,pc1和pc2就以單點傳播的形式通信。
arp-a:檢視arp緩存表
arp-d:清除arp緩存
arp-s: arp綁定
路由器中
檢視:display arp all
arp static ip + mac
reset arp static 重置靜态arp