在複雜的網路環境中確定乙個合適的路徑
節點:主機和路由器的統稱
ip協議的功能
定址和路由(根據對方的ip位址,尋找出最佳的路徑傳輸資訊)
傳遞服務
不可靠 (ip協議只是盡最大努力去交付,可靠由上層tcp協議提供)
無連線 (事先不建立會話)
資料報的分片和重組
解包:4位首部長度
分用:8位協議
以ipv4為例:4個8位位元組
4位版本號:指定ip協議的版本,對於ipv4來講,就是4
4位首部長度:ip首部長度是多少各32bit,是length*4 的位元組數,ip頭部最大長度是60位元組
8位服務型別:
3位優先權字段(已經棄用)
4位tos欄位:最小延時,最大吞吐量,最高可靠性,最小成本(這四者衝突,只能選擇乙個)
1位保留字段,必須為0
16位總長度:ip資料報整體佔多少個位元組
16位標識:是乙個標識,唯一標識主機傳送的報文,如果ip報文在資料鏈路層被分片了(ip報文長度大於mtu),則每一片裡的這個標識(id)都是一樣的
3位標誌:
第一位:保留
第二位:是否允許分片(置0:允許,置1:不允許),如果置1,但是ip報文長度超過mtu則被丟棄
第三位:結束標誌(最後一片置1,表示已經完了,其餘的置0)
13位片偏移:分片相對於原始ip報文的偏移(其實就是表示當前分片在原報文中處在哪個位置)
8位生存時間(ttl):資料報到達目的地的最大報文跳數,一般是64,每次經過乙個路由,ttl-=1;一直減到0,還沒到達就丟棄。主要用來防止出現路由迴圈
8位協議:上層協議型別
16位首部校驗和:使用crc來進行校驗,鑑別頭部是否損壞
ip位址分為兩個部分,網路號和主機號
網路號:保證相互連線的兩個網段具有不同的標識
主機號:同一網段內,主機號之間具有相同的網路號,但是必須有不同的主機號
1、不同的子網就是把網路號相同的主機放在一起
2、如果子網中新增一台主機,則這台主機的網路號和這個子網的網路號一直,但是主機號必須不能和子網中的其他主機重複
通過合理的設定主機號和網路號就可以保證在相互連線的網路中,每台主機ip位址都不相同。
手動管理子網內的ip,非常麻煩,
有一種技術叫做dhcp, 能夠自動的給子網內新增主機節點分配ip位址, 避免了手動管理ip的不便.
一般的路由器都帶有dhcp功能. 因此路由器也可以看做乙個dhcp伺服器.
ip位址劃分
該種分法將ip位址分為五類:a,b,c,d,e類
a類:0.0
.0.0到127.255
.255
.255
b類:128.0
.0.0到191.255
.255
.255
c類:192.0
.0.0到223.255
.255
.255
d類:224.0
.0.0到239.255
.255
.255
e類:240.0
.0.0到247.255
.255
.255
根據子網掩碼劃分
隨著internet的飛速發展,這種劃分方案的侷限性很快顯現出來,大多數組織都申請b類網路位址, 導致b類位址很快就分配完了, 而a類卻浪費了大量位址
例如, 申請了乙個b類位址, 理論上乙個子網內能允許6萬5千多個主機. a類位址的子網內的主機數更多.然而實際網路架設中, 不會存在乙個子網內有這麼多的情況. 因此大量的ip位址都被浪費掉
針對這種情況提出了新的劃分方案, 稱為cidr(classless interdomain routing無類域間路由):
將一組位址聚合為乙個網路
例如:應用cidr技術將203.183.224.1到203.183.225.254的位址何為同乙個網路(他們本來是2個c類位址)
有關cird
1、引入乙個額外的子網掩碼(subnet mask)來區分網路號和主機號
2、子網掩碼也是乙個32 位正整數,通常使用一串「0」來結尾
3、將ip位址和子網掩碼進行「按位與」操作,得到的結果就是網路號
4、網路號的劃分與這個ip位址是a類、b類還是c類無關
例如:
ip位址
140.252.20.68
子網掩碼
255.255.255.0
網路號140.252.20.0
子網位址範圍
140.252.20.0~140.252.20.255
可見,ip位址與子網掩碼做與運算可以得到網路號, 主機號從全0到全1就是子網的位址範圍;
ip位址和子網掩碼還有一種更簡潔的表示方法,例如140.252
.20.68/24
,表示ip位址為140.252
.20.68
, 子網掩碼的高24位是1
,
ip位址的數量限制
我們知道, ip位址(ipv4)是乙個4位元組32位的正整數. 那麼一共只有2的32次方個ip位址, 大概是43億左右. 而tcp/ip協議規定, 每個主機都需要有乙個ip位址。
這意味著, 一共只有43億台主機能接入網路麼?
實際上, 由於一些特殊的ip位址的存在, 數量遠不足43億; 另外ip位址並非是按照主機台數來配置的, 而是每乙個網絡卡都需要配置乙個或多個ip位址。
方式1:動態分配ip位址,只給接入網路的裝置分配ip位址。因此同乙個mac位址的裝置,每次接入網際網路中,得到的ip位址不一定是相同的。
方式2:nat技術
方式3:ipv6,ipv6並不是ipv4的簡單公升級版,這是互不相干的兩個協議,彼此並不相容;ipv6用8個16位元組128位來表示乙個ip位址;但是目前ipv6還沒有普及。
特殊ip位址1、將ip位址中的主機位址全部設為0,就成為了網路號,代表區域網
2、將ip位址中的主機位址全部設為1,就成了廣播位址,用於給同乙個鏈路中相互連線的所有主機傳送資料報。
3、127
.*的ip位址用於本機環迴位址(loop back),測試通常是127.0
.0.1
## 私有ip位址和公網ip位址
如果乙個組織內部組建區域網,ip位址只用於區域網內的通訊,而不直接連到internet上,理論上 使用任意的ip位址都可以,但是rfc 1918規定了用於組建區域網的私有ip位址。
1、10.*
,前8位是網路號,共16
,777
,216個位址
2、172.16
.到172.31
.,前12位是網路號,共1
,048
,576個位址
3、192.168.*
,前16位是網路號,共65
,536個位址
包含在這個範圍中的, 都成為私有ip, 其餘的則稱為全域性ip(或公網ip)
;
網路層 IP協議
定址和路由 傳遞服務 資料報分段和重組 固定部分為20位元組 一行4位元組,5行 可變部分最大為40位元組 則首部最大60位元組。下圖為真實抓包所得結果 version對應版本 佔4bit,指ip協議的版本。如果為ipv6則版本號為6,即0110。header length對應首部長度 佔4bit,...
網路層(IP協議)
功能 ip功能 將資料從 a 主機經過路徑選擇送至 b 主機 tcp ip功能 將資料從 a 主機經過路徑選擇可靠的送至 b 主機 先到達b主機的區域網,找到目標網路 找到目標主機 協議頭格式 接下來我們討論幾個問題 1.ip 報文丟失 tcp 是怎麼知道的?答 ip 報文中封裝的是 tcp 的內容...
網路層IP協議
節點 主機和路由器的統稱 底層mac楨層的mtu規定的mtu 1500。ip層分片,組裝。接收方 是否分片 三位標誌的第三位,片偏移是否為0 第乙個片偏移是0,長度是100,第二個片偏移就是100。分片會導致丟包率高。盡量保證不分片。ip層給的資料不能太大1480 ip 20 報頭,其實是tcp決定...