網絡層概述

虛擬互聯網絡

  以前在數據鏈路層概述裏遺留了一個問題,就是若是主機發送的信息要跨設備傳輸,該如何實現呢?程序員

  實際上,在IP協議和網絡層中提出了一個概念,即虛擬互聯網絡,讓計算機都使用IP協議鏈接,這樣的話就不須要關注信息傳遞的時候的細節,只須要把信息發送到一個虛擬的互聯網絡中,這個網絡就能夠實現信息的傳遞緩存

  簡單點說,就是隻須要關注邏輯層上信息的傳遞(A發送給B),不須要關注物理層上信息是如何傳遞的(A如何發送到B)網絡

  能夠看出,在這個過程當中,IP協議發揮着重要的做用,包括:blog

  1.使得複雜的實際網絡變爲一個虛擬互聯的網絡接口

  2.使得網絡層能夠屏蔽底層細節,專一網絡層的數據轉發(這一點相似於1,也就是把物理上的問題轉換成邏輯上的)圖片

  3.解決了虛擬網絡中的數據報傳輸路徑路由

 

IP協議

IP地址

  相似於數據鏈路層中的MAC地址,網絡層中也有地址,即IP地址,爲網絡中每個網絡設備惟一身份並且不可改變,能夠用來識別不一樣的網絡設備io

  但MAC地址是永久不變的,而若是計算機所處的網絡環境發生變化(例如從家到圖書館),則IP地址會發生變化基礎

  IP地址通常用點分十進制表示,每一部分範圍爲0-255(如192.168.1.101),最多能夠表示2的32次方4294961296)個不一樣的IP地址路由器

IP數據表

  以前說起,數據鏈路層得到的「幀」數據來自於網絡層的IP數據報

  這裏的IP數據報包括IP首部以及IP數據報的數據,而IP首部有一個固定的格式(以下,圖片來自慕課網)

  

版本

  IP協議的版本,佔4位,通訊雙方必須用同樣的版本,目前主流爲IPV4

首部位長度

  即IP首部長度,單位爲「32位字」(4個字節),一共佔4位,最大長度爲15

  也就是首部最大長度爲4*15=60字節

總長度

  IP數據報總長度(IP首部+IP數據),佔16位,最大數值爲65535

  因爲這個數值比最大存儲單元(MTU)大,因此實際傳輸中,數據鏈路層會把IP數據報分片

標誌

  主要的功能是標註IP數據報是否能夠分片

片偏移

  用來記錄當前數據幀是第幾個偏移的IP數據,跟分片有關

TTL

  表示報文在網絡中的壽命,8位,每通過一個設備減一,爲0時必須丟棄該報文

  解決了報文在網絡中找不到終點無限傳輸消耗帶寬的問題

協議

  表示IP數據攜帶的具體數據是什麼協議的(TCP、UDP等),8位

  不一樣的協議對應不一樣的值

首部校驗和

  校驗IP首部是否有出錯,16位

源IP地址/目的IP地址

  發送IP數據報/IP數據報到達的機器的地址

 

IP協議轉發流程

路由表

  信息在網絡層中傳輸的時候,是用「逐跳」的方式進行的,也就是從一個網絡/設備「跳入」另外一個網絡/設備

  路由表中就存儲着目的IP地址下一跳IP地址的對應關係表,例如目的爲IP1,則下一跳到IP4這樣

  計算機路由器中都有路由表

轉發流程

  在網絡層中,轉發流程以下:

  1.發送信息的計算機會在其路由表中查詢目的IP地址的下一跳IP地址,而後把數據發給下一跳IP地址的路由器/計算機

  2.收到信息的計算機/路由器繼續在其路由表中查找目的IP地址的下一跳IP地址,若是目的IP是和其直接相連的,則發送給目的計算機,不然繼續「跳」

 

  而若是是網絡層和數據鏈路層以及物理層結合,則轉發流程以下:

  (發送)

  1.源計算機發出IP數據報,經過路由表查找下一跳地址

  2.IP數據報被交給數據鏈路層,並被告知目的地址

  3.數據鏈路層經過MAC表填充源MAC地址和目的MAC地址

  4.數據鏈路層經過物理層發送數據

  (接收&下一次發送)

  5.目的MAC地址接收數據幀,並把該數據交給網絡層

  6.目的計算機/設備查詢路由表,找到下一跳地址

  7.數據報被交給數據鏈路層,並經過物理層再次發送

 

  每一跳中,IP數據報的IP地址不變,而MAC地址一直在變化

 

ARP協議

ARP緩存表

  IP協議的轉發中存在這樣一個問題,IP數據報從網絡層發送到數據鏈路層,可是傳輸時候是如何讓數據鏈路層知道要傳輸的MAC地址呢?這裏用到的就是ARP協議

  ARP協議(Address Resolution Protocol),即地址解析協議,用來把網絡層的32位IP地址解析爲數據鏈路層的48位MAC地址

  這一解析過程有一個重要的表,即ARP緩存表,把IP地址MAC地址對應起來,是ARP協議和RARP協議的關鍵

  1.若是緩存表中有IP地址和MAC地址信息,則直接解析,並把數據幀發送

  2.若是沒有,則ARP協議廣播一個IP的信息,全部設備收到廣播後會看本身的IP是否是這個目標IP,是的話,該廣播的物理設備進入該IP地址以及對應的MAC地址

  可是因爲IP地址可隨着設備所處的網絡環境發生變化,所以ARP協議存在有效期

  能夠在命令提示符中輸入arp -a查看ARP緩存表

  

  ARP協議數據幀包括了2字節的類型、28字節的內容以及18字節的填充信息

 

RARP協議

  RARP(Reverse Address Resolution Protocol),即逆地址解析協議

  和ARP協議相反,該協議用來把數據鏈路層的48位MAC地址解析爲網絡層的32位IP地址

  RARP協議數據幀包括了2字節的類型、28字節的內容以及18字節的填充信息

 

  在TCP/IP協議棧裏,ARP協議和RARP協議是最基礎的,而且整個操做過程對程序員是透明的

 

IP地址的子網劃分

  前面咱們看到,IP地址有32位,可表示上億的不一樣IP地址,而爲了對這上億的IP地址進行區別和管理,咱們對IP地址進行了子網劃分

子網劃分

  咱們把IP地址劃分爲網絡號主機號,並根據網絡號主機號長度,把IP地址分爲:

  A類:網絡號8位(0-127,2的7次方個),主機號24位(2的24次方個),判斷時取前8位,頭位爲0(表示沒達到128)

  B類:網絡號16位(128.0-191.255,2的14次方個),主機號16位(2的16次方個),判斷時取前8位,首兩位爲10(表示不到192)

  C類:網絡號24位(192.0.0-223.255.255,2的21次方個),主機號8位(2的8次方個),判斷時取前8位,首兩位爲11(表示超過192)

特殊的主機號

  全0:當前網絡段,不可分配特定的主機(如1.0.0.0)

  全1:廣播地址,向當前網絡段全部主機發消息(如1.255.255.255)

特殊的網絡號

  A類:全0爲特殊網絡,後7位全1爲迴環地址

  其中127.0.0.1爲本地迴環地址,不屬於任何一個有類別的地址類,表明本地虛擬接口,能夠理解成一個永遠不會掉的接口

  這個接口通常用來檢查本地網絡協議、基本數據接口是否正常

  B類:如10000000.00000000(即128.0)也不可用

  C類:192.0.0不可用

(未完待續)

相關文章
相關標籤/搜索