一、IP fragment是什么
在計(jì)算機(jī)網(wǎng)絡(luò)中,當(dāng)數(shù)據(jù)包過(guò)大以致無(wú)法通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸時(shí),將這個(gè)數(shù)據(jù)包分解成小部分進(jìn)行傳輸?shù)倪^(guò)程就被稱(chēng)為IP分片(IP Fragmentation)。IP分片是網(wǎng)絡(luò)協(xié)議族TCP/IP的核心組成部分之一,它在IP層實(shí)現(xiàn),使得網(wǎng)絡(luò)設(shè)備能夠處理和傳輸比其最大傳輸單元(MTU)大的數(shù)據(jù)包。
二、IP分片的主要步驟
數(shù)據(jù)包的分片:發(fā)送設(shè)備首先將大的數(shù)據(jù)包分解成小的分片,以滿足網(wǎng)絡(luò)的MTU要求。每個(gè)分片都包含了原始數(shù)據(jù)包的一部分內(nèi)容。分片的傳輸:每個(gè)分片都被單獨(dú)發(fā)送到接收設(shè)備,可能會(huì)通過(guò)不同的路徑。分片的重組:接收設(shè)備收到所有分片后,會(huì)根據(jù)每個(gè)分片的偏移量將它們重新組合成原始的數(shù)據(jù)包。然而,IP分片也存在一些問(wèn)題。如,由于分片可能通過(guò)不同的路徑傳輸,因此它們可能會(huì)在不同的時(shí)間到達(dá)接收設(shè)備,或者甚至可能根本不到達(dá)。此外,由于網(wǎng)絡(luò)設(shè)備需要維護(hù)分片的狀態(tài),所以分片可能會(huì)消耗大量的網(wǎng)絡(luò)資源。因此,一些新的協(xié)議,如IPv6,已經(jīng)開(kāi)始尋找替代IP分片的方法。
延伸閱讀
IPv6與IP分片:一種新的處理大數(shù)據(jù)包的方法
在IPv4中,IP分片由發(fā)送設(shè)備完成,而在IPv6中,這個(gè)過(guò)程發(fā)生了改變。在IPv6中,發(fā)送設(shè)備必須先通過(guò)路徑MTU發(fā)現(xiàn)(Path MTU Discovery)過(guò)程來(lái)確定數(shù)據(jù)包的最大大小,然后再發(fā)送數(shù)據(jù)包。
在路徑MTU發(fā)現(xiàn)過(guò)程中,發(fā)送設(shè)備會(huì)嘗試發(fā)送一個(gè)大的數(shù)據(jù)包。如果這個(gè)數(shù)據(jù)包過(guò)大,網(wǎng)絡(luò)設(shè)備會(huì)返回一個(gè)“需要進(jìn)行分片但不允許分片”的ICMP錯(cuò)誤消息。接收到此消息的發(fā)送設(shè)備會(huì)減小數(shù)據(jù)包大小,并再次嘗試發(fā)送,直到找到可以成功發(fā)送的最大數(shù)據(jù)包大小。
這種方法的主要優(yōu)點(diǎn)是,它把IP分片的任務(wù)從網(wǎng)絡(luò)設(shè)備轉(zhuǎn)移到了發(fā)送設(shè)備,從而降低了網(wǎng)絡(luò)設(shè)備的負(fù)載。同時(shí),由于發(fā)送設(shè)備知道數(shù)據(jù)包的最大大小,因此可以避免數(shù)據(jù)包的分片,從而提高了數(shù)據(jù)傳輸?shù)男省?/p>
然而,路徑MTU發(fā)現(xiàn)也存在一些問(wèn)題。例如,它需要網(wǎng)絡(luò)設(shè)備返回ICMP錯(cuò)誤消息,而這可能會(huì)被某些網(wǎng)絡(luò)設(shè)備或防火墻阻止。此外,路徑MTU發(fā)現(xiàn)的過(guò)程可能會(huì)延遲數(shù)據(jù)的傳輸。
盡管如此,IPv6的這種處理大數(shù)據(jù)包的方法仍然為我們提供了一種新的視角,讓我們了解如何在網(wǎng)絡(luò)中處理大的數(shù)據(jù)包。