下一頁 1 2
互聯網協議(Inte.net Protocol)是規范計算機網絡中數據傳送的一套協議。目前使用的是IPv4, IPv6在試驗階段。
IPv4,是互聯網協議(Internet Protocol,IP)的第四版,也是第一個被廣泛使用,構成現今互聯網技術的基石的協議。1981年Jon Postel 在RFC791中定義了IP。
TCP/IP協議棧(按TCP/IP參考模型劃分)
clearcase/" target="_blank" >cc99>應用層
FTP
SMTP
HTTP
...
傳輸層
TCP
UDP
網絡層
IP ICMP
ARP
鏈路層
以太網
令牌環
FDDI
...
地址格式
IPv4使用32位地址,因此最多可能有4,294,967,296(=232)個地址。一般的書寫法為4個用小數點分開的十進制數。也有人把4個字節的數字化成一個巨型整數,但這種標示法并不常見。另一方面,目前還并非很流行的IPv6使用的128位地址所采用的位址記數法,在IPv4也有人用,但使用范圍更少。
過去IANAIP地址分為A,B,C,D 4類,把32位的地址分為兩個部分:前面的部分代表網絡地址,由IANA分配,后面部分代表局域網地址。如在C類網絡中,前24位為網絡地址,后8位為局域網地址,可提供254個設備地址(因為有兩個地址不能為網絡設備使用: 255為廣播地址,0代表此網絡本身) 。網絡掩碼(Netmask) 限制了網絡的范圍,1代表網絡部分,0代表設備地址部分,例如C類地址常用的網絡掩碼為255.255.255.0。
一些特別的IP地址段:
127.x.x.x給本機地址使用。
224.x.x.x為多播地址段。
255.255.255.255為通用的廣播地址。
10.x.x.x,172.16.x.x和192.168.x.x供本地網使用,這些網絡連到互連網上需要對這些本地網地址進行轉換。
但由于這種分類法會大量浪費網絡上的可用空間,所以新的方法不再作這種區分,而是把用者需要用的位址空間,以2的乘冪方式來撥與。例如,某一網絡只要13個ip位址,就會把一個 16位址的區段給他。假設批核了 61.135.136.128/16 的話,就表示從 61.135.136.129 到 61.135.136.142 的網址他都可以使用。
IP包長
IP包由首部(header)和實際的數據部分組成。數據部分一般用來傳送其它的協議,如TCP, UDP,ICMP等。數據部分最長可為65515字節(Byte)(=2xx16 - 1 - 最短首部長度20字節) 。一般而言,低層(鏈路層) 的特性會限制能支持的IP包長。例如以太網(Ethernet)協議,有一個協議參數,即所謂的最大傳輸單元(Maximum Transfer Unit, MTU) ,為1518字節,以太網的幀首部使用18字節,剩給整個IP包(首部+數據部分)的只有1500字節。
還有一些底層網絡只能支持更短的包長。這種情況下,IP協議提供一個分割(fragment)的可選功能。長的IP包會被分割成許多短的IP包,每一個包中攜帶一個標志(Fragmentid)。發送方(比如一個路由器) 將長IP包分割,一個一個發送,接送方(如另一個路由器)按照相應的IP地址和分割標志將這些短IP包再組裝還原成原來的長IP包。
IP路由
Ipv4并不區分作為網絡終端的主機(host) 和網絡中的中間設備如路由器中間的差別。每臺電腦可以即做主機又做路由器。路由器用來聯結不同的網絡。所有用路由器聯系起來的這些網絡的總和就是互聯網。
IPv4技術即適用于局域網(LAN) 也適用于廣域網。一個IP包從發送方出發,到接送方收到,往往要穿過通過路由器連接的許許多多不同的網絡。每個路由器都擁有如何傳遞IP包的知識,這些知識記錄在路由表中。路由表中記錄了到不同網絡的路徑,在這兒每個網絡都被看成一個目標網絡。路由表中記錄由路由協議管理,可能是靜態的記錄比如由網絡管理員寫入的,也有可能是由路由協議動態的獲取的。有的路由協議可以直接在IP協議上運行。
常用的路由協議有
路由信息協議(Routing Information Protocol, RIP),
開放式最短路徑優先協議,Open Shortest Path Fast, OSPF) ,
中介系統對中介系統協議(Intermediate System – Intermediate System, IS-IS) ,
邊界網關協議(Border Gateway Protocol, BGP) .
在網絡負荷很重或者出錯的情況下,路由器可以將收到的IP包丟棄。在網絡負荷重的時候,同樣一個IP包有可能由路由器決定走了不同的路徑。路由器對每一個IP包都是單獨選擇路由的。這也提高了IP通信的可靠性。但單是IP層上的包傳輸,并不能保證完全可靠。IP包可能會丟失; 可能會有重復的IP包被接受方收到; IP包可能會走不同的路徑,不能保證先發的先到; 接受方收到的可能是被分割了的IP包。在IP之上再運行TCP協議則解決這些缺點提供了一個可靠的數據通路。
ICMP
互聯網控制消息協議(Internet Control Messages Protocol,ICMP) 用于查錯和控制(如),是IP協議不可能缺少的幫手。幾乎任何的IP協議的實施(Implementation)都伴隨一個ICMP協議的實施。ICMP協議實現在IP之上,即ICMP包是作為IP的數據部分來傳送的。
ICMP的一個重要的應用是網絡擁塞控制: 路由器丟棄一個IP包時,一般會用ICMP發一個消息給這個IP包的原發送者,原發送者可以相應的降低IP包的發送頻率,以降低或避免IP包再被丟棄的可能性。
ICMP的另一個重要的應用在于,將傳送ICMP消息的IP包禁止分割位(Don't Fragment-Bit)設置上,就可以利用ICMP的來測量一段網絡的最大傳輸單元(MTU) 。
IPOE
Ipv4可以運行在各種各樣的底層網絡上,比如端對端的串行數據鏈路(PPP協議和SLIP協議) ,衛星鏈路等等。局域網中最常用的是以太網。
一個用于IP包的以太網數據幀,在IP包首部前有一個14字節的以太網幀首部,在IP數據部分后添加了一個32位(4字節) 的CRC校驗。
除了1518字節的最大傳輸單元(MTU) 限制外,以太網還有最小傳輸單元的限制: 總幀長不能小于64字節。如果IP包太短,比如IP數據部分短于26字節,那么后面會添0(Padding) ,這時IP首部中的'包長度'指示了真正的包長。
以太網使用48位的地址。每個以太網網卡都有一個獨一無二的48位的硬件地址。所有的位均為1的地址是以太網廣播地址。發送數據的以太網網卡必須知道數據接送方的以太網地址才能把數據發給它。
地址解析協議ARP(Address Resolution Protocol) 用于將IP地址轉換成以太網地址。每臺計算機上都有一個ARP列表,里面存儲了以太網中不同的IP地址與以太網地址的對應關系。如果一臺計算機發現某個目標IP地址沒有對應的以太網地址,它會發一個ARP請求(Request) 到以太網中詢問,擁有該IP地址的計算機就會發一個ARP應答(Reply)來通知它自己的以太網地址。
原文轉自:http://www.anti-gravitydesign.com