IP是Internet Protocol(網(wǎng)際互連協(xié)議)的縮寫,是TCP/IP體系中的網(wǎng)絡層協(xié)議。設計IP的目的是提高網(wǎng)絡的可擴展性:一是解決互聯(lián)網(wǎng)問題,實現(xiàn)大規(guī)模、異構網(wǎng)絡的互聯(lián)互通;二是分割頂層網(wǎng)絡應用和底層網(wǎng)絡技術之間的耦合關系,以利于兩者的獨立發(fā)展。根據(jù)端到端的設計原則,IP只為主機提供一種無連接、不可靠的、盡力而為的數(shù)據(jù)包傳輸服務。
IP是整個TCP/IP協(xié)議族的核心,也是構成互聯(lián)網(wǎng)的基礎。IP位于TCP/IP模型的網(wǎng)絡層(相當于OSI模型的網(wǎng)絡層),它可以向傳輸層提供各種協(xié)議的信息,例如TCP、UDP等;對下可將IP信息包放到鏈路層,通過以太網(wǎng)、令牌環(huán)網(wǎng)絡等各種技術來傳送。為了能適應異構網(wǎng)絡,IP強調適應性、簡潔性和可操作性,并在可靠性做了一定的犧牲。IP不保證分組的交付時限和可靠性,所傳送分組有可能出現(xiàn)丟失、重復、延遲或亂序等問題。IP主要包含三方面內容:IP編址方案、分組封裝格式及分組轉發(fā)規(guī)則。 IP分組的轉發(fā)規(guī)則路由器僅根據(jù)網(wǎng)絡地址進行轉發(fā)。當IP數(shù)據(jù)包經(jīng)由路由器轉發(fā)時,如果目標網(wǎng)絡與本地路由器直接相連,則直接將數(shù)據(jù)包交付給目標主機,這稱為直接交付;否則,路由器通過路由表查找路由信息,并將數(shù)據(jù)包轉交給指明的下一跳路由器,這稱為間接交付。路由器在間接交付中,若路由表中有到達目標網(wǎng)絡的路由,則把數(shù)據(jù)包傳送給路由表指明的下一跳路由器;如果沒有路由,但路由表中有一個默認路由,則把數(shù)據(jù)包傳送給指明的默認路由器;如果兩者都沒有,則丟棄數(shù)據(jù)包并報告錯誤。IP分片一個IP包從源主機傳輸?shù)侥繕酥鳈C可能需要經(jīng)過多個不同的物理網(wǎng)絡。由于各種網(wǎng)絡的數(shù)據(jù)幀都有一個最大傳輸單元(MTU)的限制,如以太網(wǎng)幀的MTU是1500;因此,當路由器在轉發(fā)IP包時,如果數(shù)據(jù)包的大小超過了出口鏈路的最大傳輸單元時,則會將該IP分組分解成很多足夠小的片段,以便能夠在目標鏈路上進行傳輸。這些IP分片重新封裝一個IP包獨立傳輸,并在到達目標主機時才會被重組起來。 IP分組結構一個IP分組由首部和數(shù)據(jù)兩部分組成。首部的前20字節(jié)是所有IP分組必須具有的,也稱固定首部。在首部固定部分的后面是一些可選字段,其長度是可變的。
IP所提供的服務大致可歸納為兩類: ●IP信息包的傳送?!馡P信息包的分割與重組。IP信息包傳送IP是網(wǎng)絡之間信息傳送的協(xié)議,可將IP信息包從源設備(例如用戶的計算機)傳送到目的設備(例如某部門的www服務器)。為了達到這樣的目的,IP必須依賴IP地址與IP路由器兩種機制來實現(xiàn)。 [2] IP地址IP規(guī)定網(wǎng)絡上所有的設備都必須有一個獨一無二的IP地址,就好比是郵件上都必須注明收件人地址,郵遞員才能將郵件送到。同理,每個IP信息包都必須包含有目的設備的IP地址,信息包才可以正確地送到目的地。同一設備不可以擁有多個IP地址,所有使用IP的網(wǎng)絡設備至少有一個唯一的IP地址。IP路由互聯(lián)網(wǎng)是由許多個網(wǎng)絡連接所形成的大型網(wǎng)絡。如果要在互聯(lián)網(wǎng)中傳送IP信息包,除了確保網(wǎng)絡上每個設備都有一個唯一的IP地址之外,網(wǎng)絡之間還必須有傳送的機制,才能將IP信息包通過一個個的網(wǎng)絡傳送到目的地。此種傳送機制稱為IP路由。各個網(wǎng)絡通過路由器相互連接。路由器的功能是為IP信息包選擇傳送的路徑。換言之,必須依靠沿途各路由器的通力合作,才能將IP信息包送到目的地。在IP路由的過程中,由路由器負責選擇路徑,IP信息包則是被傳送的對象。
IP地址與IP路由是IP信息包傳送的基礎。此外,IP信息包傳送時還有一項很重要的特性,即使用非連接式的傳送方式。非連接式的傳送方式是指IP信息包傳送時,源設備與目的設備雙方不必事先連接,即可將IP信息包送達。即源設備完全不用理會目的設備,而只是單純地將IP信息包逐一送出。至于目的設備是否收到每個信息包、是否收到正確的信息包等,則由上層的協(xié)議(例如TCP)來負責檢查。 [2] 使用非連接式的優(yōu)點是過程簡單化,可提高傳輸?shù)男?。此外,由于IP信息包必須通過IP路由的機制,在一個個路由器之間傳遞,非連接式的傳送方式較易在此種機制中運行。 [2] 相對于非連接式的傳送方式,也有連接式的傳送方式,也就是源與目的設備雙方必須先建立連接,才能進一步傳輸數(shù)據(jù),TCP就是使用連接式的傳送方式。 [2] IP信息包的分割與重組為了能把一個IP報文放在不同的物理幀中,最大IP報文的長度就只能等于這條路徑上所有物理網(wǎng)絡的MTU的最小值。當數(shù)據(jù)報通過一個可以傳輸長度更大的幀的網(wǎng)絡時,把數(shù)據(jù)報的大小限制在互聯(lián)網(wǎng)上最小的MTU之下不經(jīng)濟;如果數(shù)據(jù)報的長度超過互聯(lián)網(wǎng)中最小的MTU值的話,則當該數(shù)據(jù)報在穿越該子網(wǎng)時,就無法被封裝在一個幀中。 [2] IP協(xié)議在發(fā)送IP報文時,一般選擇一個合適的初始長度。如果這個報文要經(jīng)歷的中間物理網(wǎng)絡的MTU值比IP報文長度要小,則IP協(xié)議把這個報文的數(shù)據(jù)部分分割成若干個較小的數(shù)據(jù)片,組成較小的報文,然后放到物理幀中去發(fā)送。每個小的報文稱為一個分段。分段的動作一般在路由器上進行。如果路由器從某個網(wǎng)絡接口收到了一個IP報文,要向另外一個網(wǎng)絡轉發(fā),而該網(wǎng)絡的MTU比IP報文長度要小,那么就要把該IP報文分成多個小IP分段后再分別發(fā)送。 [2] 重組是分段的逆過程,把若干個IP分段重新組合后還原為原來的IP報文。在目的端收到一個IP報文時,可以根據(jù)其分段偏移和MF標志位來判斷它是否是一個分段。如果MF位是0,并且分段偏移為0,則表明這是一個完整的IP數(shù)據(jù)報。否則,如果分段偏移不為0,或者MF標志位為1,則表明它是一個分段。這時目的地端需要實行分段重組。IP協(xié)議根據(jù)IP報文頭中的標識符字段的值來確定哪些分段屬于同一個原始報文,根據(jù)分段偏移來確定分段在原始報文中的位置。如果一個IP數(shù)據(jù)報的所有分段都正確地到達目的地,則把它重新組織成一個完整的報文后交給上層協(xié)議去處理。 [2] 總結如下:IP信息包在傳送過程中,可能會經(jīng)過許多個使用不同技術的網(wǎng)絡。假設IP信息包是從ATM網(wǎng)絡所發(fā)出,原始長度為9180B,如果IP路由途中經(jīng)過以太網(wǎng)絡,便面臨信息包太大,無法在以太網(wǎng)絡上傳輸?shù)恼系K。為了解決此問題,路由器必須有IP信息包分割與重組的機制,將過長的信息包進行分割,以便能在最大傳輸單位較小的網(wǎng)絡上傳輸。分割后的IP信息包,由目的設備接收后重組,恢復成原來IP信息包。