A. tcp/ ip協議族的各層是如何劃分的
TCP/IP協議族是一個四層協議系統,自底而上分別是數據鏈路層、網路層、傳輸層和應用層。每一層完成不同的功能,且通過若干協議來實現,上層協議使用下層協議提供的服務。
1、數據鏈路層
數據鏈路層實現了網卡介面的網路驅動程序,以處理數據在物理媒介(比如乙太網、令牌環等)上的傳輸。數據鏈路層兩個常用的協議是ARP協議和RARP協議。它們實現了IP地址和機器物理地址之間的相互轉換。
2、網路層
網路層實現數據包的選路和轉發。WAN通常使用眾多分級的路由器來連接分散的主機或LAN,因此,通信的兩台主機一般不是直接相連的,而是通過多個中間節點(路由器)連接的。
3、傳輸層
傳輸層為兩台主機上的應用程序提供端到端(end to end)的通信。與網路層使用的逐跳通信方式不同,傳輸層只關心通信的起始端和目的端,而不在乎數據包的中轉過程。
4、應用層
應用層負責處理應用程序的邏輯。數據鏈路層、網路層和傳輸層負責處理網路通信細節,這部分必須既穩定又高效,因此它們都在內核空間中實現。而應用層則在用戶空間實現。
(1)ip網路層分包大小擴展閱讀
TCP 之所以可靠,由於以下原因:
1、數據包校驗:目的是檢測數據在傳輸過程中的任何變化,若校驗出包有錯,則丟棄報文段並且不給出響應,這時 TCP 發送數據端超時後會重發數據;
2、對失序數據包重排序:既然 TCP 報文段作為 IP 數據報來傳輸,而 IP 數據報的到達可能會失序,因此 TCP 報文段的到達也可能會失序。TCP 將對失序數據進行重新排序,然後才交給應用層;
3、丟棄重復數據:對於重復數據,能夠丟棄重復數據;
4、應答機制:當 TCP 收到發自 TCP 連接另一端的數據,它將發送一個確認。這個確認不是立即發送,通常將推遲幾分之一秒;
5、超時重發:當 TCP 發出一個段後,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段;
6、流量控制:TCP 連接的每一方都有固定大小的緩沖空間。TCP 的接收端只允許另一端發送接收端緩沖區所能接納的數據,這可以防止較快主機致使較慢主機的緩沖區溢出,這就是流量控制。
參考資料
網路-TCP/IP協議
B. TCP/IP有哪幾層,各層的功能是什麼
TCP/IP是有共網路介面層,網路層,運輸層和應用層共四層協議系統。
第一層是應用層,功能是服務於應用進程的,就是向用戶提供數據加上編碼和對話對的控制。
第二層是運輸層,功能是能夠解決諸如端到端可靠性和保證數據按照正確的順序到達。包括所給數據應該送給哪個應用程序。
第三層是網路層,功能是進行網路連接的建立,和終止及IP地址的尋找最佳途徑等功能。
第四層是網路介面層,功能是傳輸數據的物理媒介,是數據包從一個設備的網路層傳輸到另外一個設備的網路層的方法。還有控制組成網路的硬體設備。
(2)ip網路層分包大小擴展閱讀:
TCP/IP協議不僅僅指的是TCP和IP兩個協議,而是指一個由FTP、SMTP、TCP、UDP、IP等協議構成的協議簇, 只是因為在TCP/IP協議中TCP協議和IP協議最具代表性,所以被稱為TCP/IP協議。
TCP/IP協議產生過程為:
(1)1973年,卡恩與瑟夫開發出了TCP/IP協議中最核心的兩個協議:TCP協議和IP協議。
(2)1974年12月,卡恩與瑟夫正式發表了TCP/IP協議並對其進行了詳細的說明。同時,為了驗證TCP/IP協議的可用性,使一個數據包由一端發出,在經過近10萬km的旅程後到達服務端。
在這次傳輸中,數據包沒有丟失一個位元組,這成分說明了TCP/IP協議的成功。
(3)1983年元旦,TCP/IP協議正式替代NCP,從此以後TCP/IP成為大部分網際網路共同遵守的一種網路規則。
(4)1984年,TCP/IP協議得到美國國防部的肯定,成為多數計算機共同遵守的一個標准。
(5)2005年9月9日卡恩和瑟夫由於他們對於美國文化做出的卓越貢獻被授予總統自由勛章。
TCP/IP協議能夠迅速發展起來並成為事實上的標准,是它恰好適應了世界范圍內數據通信的需要。它有以下特點:
(1)協議標準是完全開放的,可以供用戶免費使用,並且獨立於特定的計算機硬體與操作系統。
(2)獨立於網路硬體系統,可以運行在廣域網,更適合於互聯網。
(3)網路地址統一分配,網路中每一設備和終端都具有一個唯一地址。
(4)高層協議標准化,可以提供多種多樣可靠網路服務。
參考資料:網路——TCP/IP協議
C. 乙太網數據包的大小書上說為64---1518. 但有的說1472,但ping的時候可以是32 也可以是1,還可以是65500。
還要請樓主弄清一些概念。
乙太網中的最大傳輸單元(MTU)為1500
另外,數據包和幀是兩個概念,他們分別在OSI七層模型中的網路層和數據鏈路成。
在談到包的時候,它包括:ip首部+傳輸層封裝部分。而談到數據幀的時候,則是幀首部+ip層封裝的數據包+幀校驗。即,鏈路層是封裝網路層下來的數據包的。
在網路中搜數據幀所給的信息:MAC幀的數據部分只有一個欄位,其長度在46到1500位元組之間,包含的信息是網路層傳下來的數據。
可以看到乙太網MTU為1500,那1472是什麼?乙太網的幀首部使用18位元組,剩給整個IP包(首部+數據部分)的只有1472位元組。即,您所說的1472是MTU為1500時,ip層數據包的大小為1472。
最後就是您說的ping,您說的那些數字32,1,65500等為icmp的echo數據包的數據量。的確,完全可以設置65500那麼大,那是因為ip層中的分片欄位起到的作用,他們會將很大的數據包分割成小的數據包然後再封裝傳輸。並且請注意,這是在路由器上進行的。
但當您輸入ping -l 100000000來ping自己網關也是可以通的,此時不可以加上-f(不要分片)參數,因為數據量已經超出規定限額,因此網卡會先進行分段然後再發送這些數據。
D. 關於IP數據包格式的問題
從你文的問題看,你應該是對網路技術有所了解的,我就簡短的說說吧!
我就按照你的順序說吧:
1:IP數據包指的是第三層的PDU,IP首部只是其中的一部分,是在第三層網路層上加上去的,是給路由器看的。
2:IP數據報當然包括IP首部了。
3:IP首部和發送沒關系,單從網路層看,如果IP數據包的總長度過大,超過鏈路的最大MTU時,數據包就會被分成多片,而在如今的IPv4的網路中,數據傳輸時不可靠的,是盡力而為的,所以這些分片的數據單元到達對端的鏈路和時間都是不同的,對端根據IP首部中的標示符(Identification)、標志(Flag)、段偏置值欄位重組數據包。
4:幀是第二層的數據格式,什麼協議封裝在什麼協議中,可以看看具體的OSI分層模型吧,上層是封裝在下層協議中的,TCP、UDP是第四層的數據格式,當然是封裝在第三層IP數據包中了,ICMP其實也是第三層協議,但是相比之下,他也是在IP的上層,因此也是封裝在IP數據包中的。
E. TCP/IP 網路層 傳輸層 各自怎麼劃分的
網路層 :核心層 二層路由 三層
最佳答案檢舉 傳輸層
與數據鏈路層和網路層一樣,傳輸層的功能是保證數據可靠地從發送結點發送到目標結
點.例如,傳輸層確保數據以相同的順序發送和接收,並且傳輸後接收結點會給出響應.當
在網路中採用虛擬電路時,傳輸層還要負責跟蹤指定給每一電路的唯一標識值.這一I D稱為
埠,連接標識或套接字,是由會話層指定的.傳輸層還要確定包錯誤校驗的級別,最高的
級別可以確保包在可以接受的時間內無差錯地從結點發送到結點.
用於在傳輸層間通信的協議採用了多種可靠性措施.0類是最簡單的協議,不執行錯誤校
驗或流控制,依靠網路層來執行這些功能.1類協議監控包傳輸錯誤,如果檢查到了錯誤,就
通報發送結點的傳輸層讓它重新發送包.2類協議監控傳輸層和會話層間的傳輸錯誤並提供流
控制.流控制確保設備不會以高於網路或接收設備接收信息的速度來發送信息.3類協議除提
供1類和2類協議的功能外,還可以在某些環境下恢復丟失的包.最後,4類協議除執行3類協
議的功能外,還具有擴展的錯誤監控和恢復能力.
傳輸層的另一種功能就是當網路使用不同的要求包大小各異的協議時,將消息分段為較
小的單元.發送網路上由傳輸層分割的數據單元被接收端的傳輸層重新以正確的順序組合,
以便網路層解釋.
F. 網路層數據包的大小范圍
最小46個位元組
最大是1518(這個情況是不支持802.1Q的,如果是支持802.1Q那就再加上4個位元組的TAG)
G. tcp/ip協議將網路分為多少層
4層從下到上 分別是 應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網路遠程訪問協議(Telnet)等。 傳輸層:在此層中,它提供了節點間的數據傳送,應用程序之間的通信服務,主要功能是數據格式化、數據確認和丟失重傳等。如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCP和UDP給數據包加入傳輸數據並把它傳輸到下一層中,這一層負責傳送數據,並且確定數據已被送達並接收。 互連網路層:負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。 網路介面層(主機-網路層):接收IP數據包並進行傳輸,從網路上接收物理幀,抽取IP數據報轉交給下一層,對實際的網路媒體的管理,定義如何使用實際網路(如Ethernet、Serial Line等)來傳送數據
H. TCP/IP 中的OSI分層模型詳解
計算機網路最初的目的是連續一個個獨立的計算機, 使他們組成一個個更強有力的計算環境。簡而言之,就是為了提高生產力。從批處理時代到計算機網路時代, 毋庸置疑,都體現了這一目的。然而,現在卻似乎有了微妙的變化。
現代計算機網路的首要目的之一,可以說是鏈接人與人。置身於世界各地的人們可以通過網路建立聯系、相互溝通、交流思想
在計算機網路與信息通信領域里,人們經常提及「協議」一詞。互聯網中常用的具有代表性的協議有IP, TCP,HTTP等而 LAN(區域網)中常用的協議有 IPX/SPX等
「計算機網路體系結構」 將這些網路協議進行了系統的歸納。TCP/IP就是IP、TCP、HTTP等協議的組合。現在 很多設備都支持TCP/IP。除此之外,還有很多其他類型的網路體系結構。例如,Novell公司的IPX/SPX、蘋果公司的AppleTalk(僅限蘋果公司使用)、IBM 公司開發的用於構建大規模的網路的SNA 以及前DEC公司開發的DECnet等。
CPU 又叫中央處理器。它如同一台計算機的心臟,每個程序實際上都由他調度執行的。 CPU的性能很大程度上也決定著一台計算機的處理性能。 因此人們常說計算機的發展史實際上就是CPU的發展史。
目前人們常用的CPU有 Intel Core、 Intela Tom以及 ARM Cortex等產品
OS 譯作操作系統,是一種基礎軟體。它集合了CPU管理,內存管理、計算機外圍設備管理以及程序運行管理等重要功能,一個CPU通常在同一時間只能運行一個程序。 為了讓多個程序同時執行,操作系統採用 CPU時間片輪轉機制,在多個程序之間進行切換,合理調度。 這種方式叫做多任務調度。
OSI 參考模型中,將通信協議中必要的功能 分成了7層。通過這些分層,使得 那些比較復雜的網路協議更加簡單化。
這一模型中, 每個分層都接受由他下一層所提供的特定服務,並且負責為自己的上一層提供特定的服務。上下層之間進行交互時所遵循的約定叫做「介面」。同一層 之間的交互所遵循的約定叫做「協議」。
協議分層就如同計算機軟體中的模塊化開發。OSI 參考模型的建議是比較理想化的。他希望實現從第一層到第七次的模塊,並將它們組合起來實現網路通信。分層可以將每個分層獨立使用,即使系統中某些分層發生變化,也不會波及整個系統。因此可以構建一個擴展性和靈活性都很強的系統。 通過分層能夠細分通信功能,更易於單獨實現每個分層的協議,並界定每個分層的具體責任和義務。這些都屬於分層的優點。
而分層的劣勢可能就在於過分模塊化,是處理變得更加沉重以及每個模塊都不得不實現相似的處理邏輯等問題
OSI參考模型將這樣一個復雜的協議整理並分為了易於理解的七層分層
從字面意義上講,有人可能會認為 TCP/IP 是指 TCP與IP兩種協議。實際生活當中有時也確實是指著兩種協議。然後再很多情況下,他只是利用了IP進行通信時所必須用到的協議群的統稱。具體來說,IP或ICMP、TCP與UDP 、HTTP等等都屬於TCP/IP的協議。他們與TCP或IP的關系緊密,是互聯網必不可少的組成部分。TCP/IP 一詞泛指這些協議,因此,有時也稱TCP/IP 為國際協議族。
我們上邊寫到的OSI參考模型中各個分層的作用,TCP/IP 誕生以來的各種協議其實也能對應到OSI參考模型中。如下圖
TCP/IP 的最底層是負責數據傳輸的硬體。這種硬體就相當於乙太網或電話線路等物理層的設備。關於他的內容一直無法統一定義。因為只要人們在物理層面上所使用的傳輸媒介不同,網路的寬頻、可靠性、安全性、延遲等都會有所不同,而在這些方面又沒有一個既定的標准。總之,TCP/IP 是在網路互連的設備之間能夠通信的前提下才被提出的協議。
網路介面層利用乙太網中的數據鏈路層進行通信,因此屬於介面層。也就是說把它當做 NIC 起作用的 「驅動程序」也無妨。驅動程序是在操作系統與硬體之間起橋梁作用的軟體。計算機的外圍附加設備或擴展卡,不是直接插到電腦上或電腦的擴展槽上就能馬上使用的,還需要響應的驅動程序的支持。例如換了一個NIC網卡,不僅需要硬體,還需要軟體才能真正投入使用。因此,人們常常還需要在操作系統的基礎上安裝一些驅動軟體以便使用這些附加硬體。
互聯網層使用IP協議,它相當於OSI 模型中的第三層網路層。IP協議基於IP地址轉發分包數據。
TCP/IP 協議 分層中的互聯網層與傳輸層的功能通常有操作系統提供。尤其是路由器,他必須實現通過互聯網層轉發分組數據包的功能。此外 鏈接互聯網的所有主機跟路由器必須實現IP的功能。其他鏈接互聯網的網路設備就沒必要一定實現IP或TCP的功能。
IP 是跨越網路傳送數據包,使整個互聯網都能收到數據的協議。IP協議使數據能夠發送到地球的另一端,這期間他使用IP 地址作為主機的標識。 IP還隱藏著數據鏈路層的功能。 通過IP 相互通信的主機之間不論經過怎樣的底層數據鏈路都能實現通信。 雖然IP 也是分組交換的一種協議,但是他不具有重發機制。即使分組數據包未能到達對端主機也不會重發。因此 屬於非可靠傳輸協議
TCP/IP 的傳輸層有兩個具有代表性的協議。該層的功能本身與OSI 參考模型中的傳輸層類似。
傳輸層最主要的功能就是能夠讓應用程序之間實現通信。計算機內部,通常同一時間運行著多個程序。為此 必須分清是哪些程序與哪些程序 在進行通信。識別 這些應用程序的是埠號
TCP/IP 的分層中,將OSI 參考模型中的會話層、表示層和應用層的功能都集中到了應用程序中實現。這些功能有時由一個單一的程序實現,有時也可能會由多個程序實現。因此 細看TCP/IP 的應用程序功能會實現,他不僅實現OSI模型中應用層的內容,還要實現會話層與表示層的功能。
TCP/IP 應用的架構絕大多數屬於客戶端/服務端模型。提供服務的程序叫服務端,接受服務的程序叫客戶端。在這種通信模式中, 提供服務的程序會預先被部署在主機上,等待接收任何時刻客戶可能發送的請求。客戶端可以隨時發送請求給服務端, 有時服務端 可能會處理異常、超出負載等情況,這時客戶端可以在等待片刻後重發一次請求。
瀏覽器與服務端之間通信所用的協議是HTTP。所傳輸的數據的主要格式是HTML,WWW中的HTTP屬於OSI應用層的協議, 而HTML 屬於表示層。
TCP/IP 到底如果在媒介上進行傳輸的呢
每個分層中都會對所發送的數據附加一個首部,在這個首部中包含了該層必要的信息,如發送的目標地址以及協議相關信息。通常,為協議提供的信息為包首部,所要發送的內容為數據。如圖,在下一層的角度看,從上一分層收到的包全部都被認為是本層的數據。
從TCP/IP 通信上看,甲給乙發送一封郵件, 我們用過這個例子來降價一個TCP/IP 通信的過程。
分組數據包經過乙太網的數據鏈路時的大致流程如上圖,不過該圖對各個包首部做了簡化。
包流動的時,從前往後依次被附加了乙太網首部、IP包首部、TCP包首部以及應用自己的包首部和數據。而包的最後則追加了乙太網包尾。
每個包首部中至少都會包含兩個信息:一個是發送端和接收端,另一個是上一層的協議類型。
經過每個協議分層時,都必須有識別包發送端和接收端的信息。乙太網會用MAC地址,IP會用IP地址,而TCP/UDP 則會用埠號作為識別兩端主機的地址。即使是在應用程序中,像電子郵件地址這樣的信息也是一種地址標識。這些地址信息都在每個包經由各個分層,附加到協議對應的包首部里邊。
此外,每個分層的包首部中還包含一個識別位,它是用來標識上一層協議的種類信息,例如 乙太網的包首部中的乙太網類型,IP 中的協議類型以及TCP/UDP 中的兩個埠的埠號等都起著識別協議類型的作用。
包的接收流程是發送流程的逆序過程
I. 網路層IP數據包的分片與重組時,片偏移長度的限制問題
TCP/IP協議中分包與重組原理介紹
分片是分組交換的思想體現,也是IP協議解決的兩個主要問題之一。在IP協議中的分片演算法主要解決不同物理網路最大傳輸單元(MTU) 的不同造成的傳輸問題。但是分組在傳輸過程中不斷地分片和重組會帶來很大的工作量還會增加一些不安全的因素。我們將在這篇小論文中討論IP分片的原因、原理、實現以及引起的安全問題。
一、什麼是IP分片
IP分片是網路上傳輸IP報文的一種技術手段。IP協議在傳輸數據包時,將數據報文分為若干分片進行傳輸,並在目標系統中進行重組。這一過程稱為分片(fragmentation)。
二、為什麼要進行IP分片
每一種物理網路都會規定鏈路層數據幀的最大長度,稱為鏈路層MTU(Maximum Transmission Unit).IP協議在傳輸數據包時,若IP數據報加上數據幀頭部後長度大於MTU,則將數據報文分為若干分片進行傳輸,並在目標系統中進行重組。比如說,在乙太網環境中可傳輸最大IP報文大小(MTU)為1500位元組。如果要傳輸的數據幀大小超過1500位元組,即IP數據報長度大於1472(1500-20-8=1472,普通數據報)位元組,則需要分片之後進行傳輸。
三、IP分片原理及分析
分片和重新組裝的過程對傳輸層是透明的,其原因是當IP數據報進行分片之後,只有當它到達目的站時,才可進行重新組裝,且它是由目的端的IP層來完成的。分片之後的數據報根據需要也可以再次進行分片。
IP分片和完整IP報文差不多擁有相同的IP頭,ID域對於每個分片都是一致的,這樣才能在重新組裝的時候識別出來自同一個IP報文的分片。在IP頭裡面,16位識別號唯一記錄了一個IP包的ID,具有同一個ID的IP分片將會重新組裝;而13位片偏移則記錄了某IP片相對整個包的位置;而這兩個表中間的3位標志則標志著該分片後面是否還有新的分片。這三個標志就組成了IP分片的所有信息(將在後面介紹),接受方就可以利用這些信息對IP數據進行重新組織。
1、標志欄位的作用
標志欄位在分片數據報中起了很大作用,在數據報分片時把它的值復制到每片中的標志欄位的其中一個比特稱作「不分片」位,用其中一個比特來表示「更多的片」。除了最後一片外,其他每個組成數據報的片都要把該比特置1。片偏移欄位指的是該片偏移原始數據報開始處的位置。另外,當數據報被分片後,每個片的總長度值要改為該片的長度值。如果將標志欄位的比特置1,則IP將不對數據報進行分片,若在某個中間路由器上需要對其分片,則僅僅把數據報丟棄並發送一個ICMP不可達差錯報文給源主機。如果不是特殊需要,則不應該置1;最右比特置1表示該報文不是最後一個IP分片。故意發送部分IP分片而不是全部,則會導致目標主機總是等待分片消耗並佔用系統資源。某些分片風暴攻擊就是這種原理。這里以乙太網為例,由於乙太網傳輸電氣方面的限制,每個乙太網幀都有最小的大小64bytes最大不能超過1518bytes,拋去乙太網幀的幀頭(DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和幀尾CRC校驗部分4Bytes,那麼剩下承載上層協議的地方也就是Data域最大就只能有1500Bytes,這就是前面所說的MTU的值。這個也是網路層協議非常關心的地方,因為網路層的IP協議會根據這個值來決定是否把上層傳達下來的數據進行分片。就好比一個盒子沒法裝下一大塊麵包,我們需要把麵包切成片,裝在多個盒子裡面一樣的道理。
下面是標志位在IP首部中的格式以及各個標志的意義:
Identification
R
DF
MF
Fragment Offset
R:保留未用;DF:Don』t Fragment,「不分片」位,如果將這一比特置1,IP 層將不對數據報進行分片;MF:More Fragment,「更多的片」,除了最後一片外,其它每個組成數據報的片都要把比特置1;Fragment Offset:該片偏移原始數據包開始處的位置。偏移的位元組數是該值乘以8。
2、MTU原理
當兩台遠程PC需要通信的時候,它們的數據需要穿過很多的路由器和各種各樣的網路媒介才能到達對端,網路中不同媒介的MTU各不相同,就好比一長段的水管,由不同粗細的水管組成(MTU不同)通過這段水管最大水量就要由中間最細的水管決定。
對於網路層的上層協議而言(這里以TCP/IP協議族為例)它們對「水管」粗細不在意,它們認為這個是網路層的事情。網路層IP協議會檢查每個從上層協議下來的數據包的大 小,並根據本機MTU的大小決定是否作「分片」處理。分片最大的壞處就是降低了傳輸性能,本來一次可以搞定的事情,分成多次搞定,所以在網路層更高一層(就是傳輸層) 的實現中往往會對此加以注意!有些高層因為某些原因就會要求我這個麵包不能切片,我要完整地麵包,所以會在IP數據包包頭裡面加上一個標簽:DF(Don『t Fragment)。這樣當這個IP數據包在一大段網路(水管裡面)傳輸的時候,如果遇到MTU小於IP數據包的情況,轉發設備就會根據要求丟棄這個數據包。然後返回一個錯誤信息給發送者。這樣往往會造成某些通訊上的問題,不過幸運的是大部分網路鏈路MTU都是1500或者大於1500(僅X.25網路的576和點對點網路的296小於1500)。
對於UDP協議而言,這個協議本身是無連接的協議,對數據包的到達順序以及是否正確到達並不關心,所以一般UDP應用對分片沒有特殊要求。
對於TCP協議而言就不一樣了,這個協議是面向連接的協議,對於TCP協議而言它非常在意數據包的到達順序以及是否傳輸中有錯誤發生。所以有些TCP應用對分片有要求---不能分片(DF)。
3、MSS的原理
MSS(Maxmum Sigmentation Size)就是TCP數據包每次能夠傳輸的最大數據分段。為了達到最佳的傳輸效能TCP協議在建立連接的時候通常要協商雙方的MSS值,這個值TCP協議在實現的時候往往用MTU值代替(需要減去IP數據包包頭的大小20位元組和TCP數據段的包頭20位元組)所以往往MSS為1460。通訊雙方會根據雙方提供的MSS值的最小值確定為這次連接的最大MSS值。
當IP數據報被分片後,每一片都成為一個分組,具有自己的IP首部,並在選擇路由時與其他分組獨立。這樣,當數據報的這些片到達目的端時有可能會失序,但是在IP首部中有足夠的信息讓接收端能正確組裝這些數據報片。
盡管IP分片過程看起來是透明的,但有一點讓人不想使用它:即使只丟失一片數據也要重傳整個數據報。因為IP層本身沒有超時重傳的機制——由更高層來負責超時和重傳(TCP有超時和重傳機制,但UDP沒有。一些UDP應用程序本身也執行超時和重傳)。當來自TCP報文段的某一片丟失後,TCP在超時後會重發整個TCP報文段,該報文段對應於一份IP數據報。沒有辦法只重傳數據報中的一個數據報片。事實上,如果對數據報分片的是中間路由器,而不是起始端系統,那麼起始端系統就無法知道數據報是如何被分片的。就這個原因,經常需要避免分片。
四、IP分片演算法的原理
分片重組是IP層一個最重要的工作,其處理的主要思想:當數據包從一個網路A進入另一個網路B時,若原網路的數據包大於另一個網路或者介面的MTU長度,則需要進行分片(若設置DF為1,則丟棄,並回送ICMP不可達差錯報文)。因而在IP數據包的報頭有若干標識域註明分片包的共同標識號、分片的偏移量、是否最後一片及是否允許分片。傳輸途中的網關利用這些標識域進可能的再行分片,目有主機把收到的分片進行重組以恢重數據。因此,分片包在經過網路監測設備、安全設備、系統管理設備時,為了獲取信息、處理數據,都必須完成數據包的分片或重組。
五、IP分片的安全問題
IP分片是在網路上傳輸IP報文時常採用的一種技術,但是其中存在一些安全隱患。Ping of Death, teardrop等攻擊可能導致某些系統在重組IP分片的過程中宕機或者重新啟動。一些IP分片攻擊除了用於進行拒絕服務攻擊之外,還常用於躲避防火牆或者網路入侵檢測系統的一種手段。部分路由器或者基於網路的入侵檢測系統(NIDS),由於IP分片重組能力的欠缺,導致無法進行正常的過濾或者檢測。
介紹一下Tiny fragment 攻擊:
所謂Tiny fragment攻擊是指通過惡意操作,發送極小的分片來繞過包過濾系統或者入侵檢測系統的一種攻擊手段。攻擊者通過惡意操作,可將TCP報頭(通常為20位元組)分布在2個分片中,這樣一來,目的埠號可以包含在第二個分片中。對於包過濾設備或者入侵檢測系統來說,首先通過判斷目的埠號來採取允許/禁止措施。但是由於通過惡意分片使目的埠號位於第二個分片中,因此包過濾設備通過判斷第一個分片,決定後續的分片是否允許通過。但是這些分片在目標主機上進行重組之後將形成各種攻擊。通過這種方法可以迂迴一些入侵檢測系統及一些安全過濾系統。目前一些智能的包過濾設備直接丟掉報頭中未包含埠信息的分片
J. 為什麼IP層的數據包長度最短為512位元組
7
應用層
如HTTP,SMTP,SNMP,FTP,遠程登錄,SIP,SSH,NFS,RTSP,XMPP,域名注冊,ENRP
BR> 6
表現層
如XDR,ASN.1,SMB,AFP,NCP
5
會話層
如盡快,TLS,SSH, ISO 8327 / CCITT X.225,RPC的NetBIOS,ASP,Winsock的,BSD套接字
4
傳輸層
如TCP,UDP,RTP,SCTP,SPX,ATP, IL
3
網路層,如IP,ICMP,IGMP,IPX,BGP,OSPF,RIP,IGRP,EIGRP,ARP,RARP,X.25
BR>
2
數據鏈路層
如乙太網,令牌環,HDLC,幀中繼,ISDN,ATM,802.11無線網路,FDDI,PPP
1
物理層
諸如有線,無線,光纖,承運人鴿