IP fragmentēšana

Vikipēdijas lapa
Pārlēkt uz: navigācija, meklēt

Interneta protokols veic datagrammu fragmentēšanu, sadalot un pārsūtot paketes ar mazāku maksimālo pārraides vienību (MTU) nekā sākotnējais datagrammas izmērs.

RFC 791 apraksta procedūru IP fragmentēšanai, pārraidei un pakešu apvienošanai datagrammā. [1] 815 RFC apraksta vienkāršotu pakešu apvienošanas algoritmu. [2]

Identifikators (Identification) un Fragmenta nobīde (Fragment offset) kopā ar karogiem Nefragmentēt (Don’t Fragments) un Fragmentēt vairāk (More Fragment) atrodas IP protokola galvenē un tiek izmantoti fragmentēšanai un pakešu apvienošanai IP datagrammās.

Gadījumā, ja tiek izmantots IPv4 protokols un maršrutētājs saņem protokola datu bloku (PDU) lielāku par nākamā bloka MTU, tam ir divas iespējas:

  • Ignorēt PDU un nosūtīt Interneta kontroles ziņojuma protokola (ICMP) ziņojumu, kas norāda, ka nosūtītā pakete ir pārāk liela;
  • Fragmentēt IP paketi un nosūtīt to ar mazāku MTU.

IPv6 protokola izmantotāju mītnēm ir nepieciešams noteikt optimālo Ceļa (Path) MTU pirms paketes nosūtīšanas, neskatoties uz to, tiek garantēts, ka jebkura IPv6 pakete mazāka par vai vienāda ar 1280 baitiem tiek piegādāta bez IPv6 fragmentēšanas. Ja saņēmēja mītne saņem fragmentētu IP paketi, tad tai ir jāveic pakešu apvienošanu datagrammā un jānodod to augstākajam protokola slānim. Pakešu apvienošana datagrammā parasti notiek saņēmēja mītnē, bet praksē to var veikt starpposma maršrutētājs.

IP fragmentēšana var izraisīt pārmērīgu retranslāciju, gadījumā, ja notiek pakešu zudums. Lai atgūtu zudušo paketi, uzticamajiem protokoliem, piemēram, TCP ir nepieciešams pārraidīt visas datagrammas paketes no jauna. [3] Sūtītāji parasti izmanto divas pieejas, lai izlemtu sūtāmās IP datagrammas lielumu. Pirmajā pieejā sūtītāja mītne nosūta IP datagrammu MTU izmērā. Otrajā tiek izmantots Ceļa (Path) MTU atklāšanas algoritms, [4] aprakstīts 1191 RFC, lai noteiktu Ceļa (Path) MTU starp divām IP mītnēm un izvairītos no IP fragmentēšanas.

IPv4 un IPv6 atšķirības[labot šo sadaļu | labot pirmkodu]

Fragmentēšanas procesa detaļas, kā arī vispārējā fragmentēšanas arhitektūras pieeja, ir atšķirīga starp pirmo oficiālo interneta protokola versiju - IPv4 un jaunāko versiju - IPv6. IPv4 versijā maršrutētāji veic fragmentēšanu, bet IPv6 versijā maršrutētāji neveic fragmentēšanu un nepārsūta paketes, kuras ir lielākas nekā MTU. Lai gan IPv4 un IPv6 galvenes formāti atšķiras, fragmentēšanai tiek izmantoti analogi lauki, lai algoritmu var atkārtoti izmantot fragmentēšanai un pakešu apvienošanai.

Iekš IPv4, mītnēm ir jācenšas apvienot fragmentēto IP datagrammu ar kopējo izmēru līdz 576 baitiem – kas ir vienāds ar minimālo IPv4 MTU. Tās var arī mēģināt apvienot fragmentēto IP datagrammu lielāku nekā 576 baiti, bet ir arī atļauts atbrīvoties no šīs lielās datagrammas. IPv6 minimālais MTU izmērs ir palielināts līdz 1280 baitiem [5].

Atsauces[labot šo sadaļu | labot pirmkodu]

  1. RFC 791, Internet Protocol, Information Sciences Institute (September 1981)
  2. RFC 815, IP Datagram Reassembly Algorithms, David D. Clark (July 1982)
  3. Christopher A. Kent, Jeffrey C. Mogul. Fragmentation Considered Harmful.
  4. RFC 1191, Path MTU Discovery (November 1990)
  5. RFC 2460, Internet Protocol, Version 6 (IPv6) Specification, S. Deering, R. Hinden (December 1998)