Пакет (информатика)

Во информатичкa технологии, пакет е форматирана целина од податоци пренесени од компјутерска мрежа во пакет мод. Компјутерски комуникациски врски кои не поддржуваат пакети, како традиционалните point-to-point телекомуникациски врски, пренесуваат податоци едноставно како низи само од бајти, карактери или битови. Кога податоци се форматираат во пакети податочната брзина на комуникациониот медиум може подобро да се подели помеѓу корисниците отколку ако мрежата би била со вклучено коло. Со користење на мрежи со комутација на пакети исто така е потешко да се гарантира најниска можна податочна брзина.
1 Packet Framing
Еден пакет се состои од два вида податоци: контролни информации и податоци на корисникот (исто така познато како payload). Контролните информации ѝ обезбедуваат на мрежата податоци кои ѝ требаат за да ги пренесе податоците на корисникот, на пример: адреси на изворот и одредиштето, кодови за наоѓање на грешки како проверка на збирот, и подредување на информации. Типично, контролните информации може да се најде во заглавјата и trailers на пакетот со податоци на корисникот измеѓу.
Различни мрежни протоколи користат различни конвенции за правење разлика помеѓу елементите и за форматирање на податоците. Во Бинарен СИнхрон Пренос, пакетот е форматиран во 8-битни бајти, и се употербуваат посебни карактери за да се разграничат различните елементи. Други протоколи, како Етернет, го воспоставуваат почетокот на заглавјето и податочните елементи според нивната локација во однос на почетокот на пакетот. Некои протоколи ги форматираат информациите на битно ниво наместо на бајтно.
Добра аналогија е да се гледа на пакетот како писмо: заглавјето е како пликото, а областа со податоците е сѐ што лицето ќе стави во пликото. Разлика, сепак, е што некои мрежи можат да разделат поголем пакет на помали пакети кога е потребно (овие помали податочни елементи се сè уште форматирани како пакети).
Мрежен дизајн може да постигне два позначајни резултати со користењето на пакети: наоѓање на грешки и адресирање на повеќе домаќини.
1.1 Наоѓање на грешки
Поефикасно и поверодостојно е да се пресметан збир за проверка или проверка за циклична редундантност (CRC) за содржините на пакет отколку да се користи проверка на парни битови карактер по карактер. Trailer на пакетот често содржи податоци за проверување на грешки за да лоцира грешки кои настануваат при пренесување.
1.2 Адресирање на домаќини
Модерните мрежи обично поврзуваат три или повеќе компјутери домаќини заедно; во такви случаи заглавјето на пакетот претежно содржи информации за адресите за пакетот да биде примен од точниот компјутер домаќин. Во сложени мрежи составени од повеќе насочувачки и преклопувачки јазли, како ARPANET и модерниот Интернет, низа од пакети пратени од еден компјутер до друг може да одат по различни патеки за да стигнат до исто одредиште. Оваа технологија е наречена преклопување на пакети.
2 Пакети наспроти датаграми
Претежно, терминот пакет се однесува на било која порака форматирана како пакет, додека пак терминот датаграм е претежно резервиран за пакети од неверодостојна услуга. Веродостојна услуга е онаа која го известува корисникот ако праќањето било неуспешно. На пример, IP обезбедува неверодостојна услуга. Заедно TCP и IP обезбедуваат веродостојна услуга, додека пак UDP и IP обезбедуваат неверодостојна. Сите овие протоколи употребуваат пакети, но UDP пакетите општо се нарекуваат датаграми.
Кога ARPANET прв започна со преклопување на пакети, обезбедуваше веродостојна процедура за испорачка на пакет за неговите поврзани домаќини преку неговиот 1822 интерфејс. Компјутер домаќин едноставно ги организираше податоците во точниот формат на пакети, ја приложуваше адресата на компјутерот домаќин кој е одредиште, и ја праќаше пораката низ интерфејсот до поврзаните IMP. Штом пораката ќе се пренесеше до домаќинот-одредиште, се пренесуваше до домаќинот-испраќач. Ако мрежата не можела да ја пренесе пораката, би пратила порака за грешка на испраќачот.
Во меѓувреме создавачите на CYCLADES и на ALOHAnet демонстрираа дека е можно да се изгради делотворна компјутерска мрежа без да се обезбеди веродостоен пренос на пакети. Оваа лекција подоцна беше искористена од дизајнерите на Етернет.
Ако една мрежа не ја гарантира испорачката на пакет, тогаш обезбедувањето веродостојност преку утврдување и препраќање на изгубените пакети станува одговорност на домаќинот. Последователно, искуството на the APRANET индицираше дека ,мрежата сама не може веродостојно да ги пронајде сите неуспешни праќања на пакети, и ова ја префрли одговорноста за наоѓање на грешки на оној домаќин кој испраќа во секој случај. Ова доведе до развивање на end-to-end принципот, што е една од фундаменталните претпоставки за дизајн на Интернетот.
3 Пример: IP пакети
IP пакетите се составени од заглавје и payload. Заглавјето на IPv4 пакетот се состои од:
#4 бити кои ја содржат верзијата, која специфицира дали се работи за IPv4 или IPv6 пакет,
#4 бити кои ја содржат должината на Интернет заглавјето која е должината на заглавјето помножена по 4 бајти (пр.: 5 значи 20 бајти),
#8 бити кои го содржат типот на услуга, исто така нарекувано Квалитет на Услуга, кој опишува каков приоритет пакетот треба да има,
#16 бити кои ја содржат должината на пакетот во бајти,
#16 бити кои содржат таг за идентификација за да помогне да се реконструира пакетот од повеќе фрагменти.,
#3 бити кои содржат нула, знаме кое кажува дали е дозволено пакетот да биде фрагментиран или не (DF: Don’t fragment), и знаме кое одредува дали повеќе фрагменти од пакетот следат (MF: More fragments),
#13 бити кои го содржат the fragment offset, поле кое ја идентификува позицијата на фрагментот во оригиналниот пакет,
#8 бити кои го содржат Времето на живот (Time To Live) што е бројот на делници (насочувач, компјутер или направа долж мрежата) коишто му се дозволени на пакетот да ги помине пред да умре (на пример, на пакет со TTL 16 ќе му биде дозволено да помине низ 16 насочувачи да стигне до одредиштето пред да биде уништен),
#8 бити кои го содржат протоколот (TCP, UDP, ICMPитн.)
#16 бити содржат контролен збир за заглавјето, број кој се користи за утврдување на грешки,
#32 бити кои ја содржат изворишната IP-адресата,
#32 бити кои ја содржат дестинациската адресата.
По тие, можат да бидат додадени знамиња по избор од различни должини, кои може да се менуваат врз основа на користениот протокол, потоа се додаваат податоците кои ги носи пакетот. IP пакетот нема trailer. Како и да е IP пакет често се носи како payload во Етернет рамка, кој има свој заглавје и trailer.
3.1 Испорачката не е гарантирана
Многу мрежи не гарантираат испорачка, дека нема да се дуплираат пакети, или дека пакетите ќе се испорачаат по редослед, на пример, UDP протоколот. Сепак, можно е да се обележи транспорт протокол врз пакет услугата кој може да обезбеди таква заштита; TCP и UDP се најдобрите примери за ниво 4, Транспортно ниво, од OSI моделот со 7 нивоа.
Заглавјето на еден пакет ги специфицира типот на податоци, број на пакетот, вкупниот број на пакети, IP-адресите на праќачот и примателот.
Терминот рамка понекогаш се користи за да се однесува на пакет точно како што е пренесен преку жица или радио.
4 Пример: The NASA Deep Space Network
Стандардот за телеметрија на пакети на Конзулативниот Комитет за Вселенски Системи за Податоци (CCSDS), го дефинира протоколот користен за пренос на податоците од вселенски инструмент преку deep space каналот. Според овој стандард, слика или друг вид на податок пратен од вселенски инструмент се пренесува со користење на еден или повеќе пакети.
4.1 Дефиниција за пакет на CCSDS
Пакет е блок на податоци со должина што може да варира помеѓу последователни пакети од 7 до 65 542 бајти, вклучувајќи го и заглавјето на пакетот.
*Пакетизирани податоци се пренесуваат преку рамки, кои се податочни блокови со фиксна должина. Големината на една рамка, вклучувајчи го и заглавјето и информациите за контрола на рамката, може да се движат и до 2048 бајти.
*Големините на пакетот се фиксирани за време на фазата на развој.
Бидејќи должините на пакетот се променливи, но должините на рамките се фиксни, границите на пакетот обично не коинцидираат со границите на рамката.
4.2 Обработувачки забелешки на Telecom
Податоци во рамка се обично заштитени од канални грешки од страна на кодови за поправање на грешки.
*Дури и кога каналните грешки ја надминуваат способноста на кодот за поправање грешки, присуството на грешки е секогаш забележано од кодот за поправање на грешки или од дел од кодот за наоѓање на грешки.
*Рамките за кои се забележани непоправливи грешки се обележани како невозможни за декодирање и обично се бришат.
4.3 Справување со загуби на податоци
Избришаните рамки што не можат да се декодираат се главниот тип на загуби на податоци кои влијаат на компресираните сетови податоци. Претежно би имало малку корист од обиди да се искористат податоци од рамка означена како недекодирачка.
*Кога грешки се присутни во една рамка, битовите на subbend pixels се веќе декодирани уште пред првиот бит за грешката да биде допрен, но сите последователни декодирани битови во сегментот се обично комплетно оштетени; грешка од еден бит е често исто толкава пречка како што се грешки од повеќе битови.
*Понатаму, компресираните податоци обично се заштитени од моќни кодови за поправање на грешки со големи должини на блоковите, кои се оние типови на кодови за кои е најверојатно да се подложат на значајни делови на битови за грешка низ оние рамки кои се означени како недекодирачки.
Одтука, рамките во кои се најдени грешки би биле суштински неупотребливи дури и ако не биле избришани од обработувачот за рамки.
Овие загуби на податоци можат да бидат компензирани со следните механизми.
*Ако рамка со грешка ја избегне утврдување, декомпресорот слепо ќе ги користи податоците од рамката како да се веродостојни, додека пак во случај на утврдени рамки со грешка може да ја базира својата реконструкција врз основа на некомплетни податоци, но не и такви кои го водат во погрешна насока.
*За среќа, екстремно ретко се случува рамка со грешка да помине незабележана.
*За рамки кодирани според CCSDS кодот на Рид-Соломон (Reed-Solomon), помалку од 1 во 40 000 рамки со грешка можат да избегнат утврдување.
*Сите рамки кои не го употребуваат кодот на Рид-Соломон употребуваат проверка на циклична редундантност (CRC) код за утврдување на грешки, кој има помалку од 1 во 32 000 незабележани рамки со грешки.
5 Пример: Радио и ТВ емитување
5.1 MPEG пакетизиран проток
Packetized Елementary Stream (PES) е спецификација дефинирана од MPEG комуникациониот протокол која дозволува елементарен проток да биде поделен во пакети. Елементарниот проток е пакетизиран од последователни потадочни бајтови за енкапсулација од внатрепните PES заглавја на пакетот.
Типичен метод за пренесување на податоци од елементарен проток од видео или аудио енкодер е најпрво да се создаваат PES пакети од податоците на елементарниот проток и потоа да енкапсулираат овие PES пакети во MPEG транспортен проток (TS) пакети или MPEG програмски проток (PS). TS пакетите потоа може да бидат мултиплексирани и пренесени користејќи техники за емитување, како оние кои се користат во ATSC и DVB.
5.1.1 PES пакетно заглавје
Име, Големина, Опис
Претставка на пакетниот почетен код, 3 бајти, 0x000001
ID на протокот, 1 бајт, Пример: Аудио проток (0xC0-0xDF), Видео проток (0xE0-0xEF)
Забелешка: Горенаведените 4 бајти се нарекуваат 32-битен почетен код
Должина на PES пакетот, 2 бајти, За пакети каде не е специфицирано може да биде 0 како на пример за видео протоци кај MPEG транспортни протоци
Заглавје на изборен PES, променлива должина
Додатни бајти, променлива должина
Податоци
5.1.2 Изборно PES заглавје
Име, Број на битови, Опис
Маркирачки битови, 2, 10 бинарно или 0x2 хескадекадно
Контрола на кодирање, 2, 00 значи некодирано
Приоритет, Пример
Индикатор за поставување на податоци, 1, 1 значи дека по PES заглавјето следи видео почетен код или аудио syncword
Заштитно право, 1, 1 значи заштитено
Оригинал или копија, 1, 1 значи оригинал
PTS DTS индикатор, 2, се присутни, PTS е присутно
ESCR знаме, 1
ES rate знаме, 1
DSM мод знаме, 1
Додатно знаме за информација за копирање, 1
CRC знаме, 1
Знаме за екстензија, 1
Должина на PES заглавјето, 8, ја дава должината на остатокот од PES заглавјето
Изборни полиња, променлива големина, зависат од горенаведените знамиња
Додатни бајтови, променлива големина, 0xff
5.2 NICAM
Со цел да се обезбеди моно „компатибилност“, NICAM сигналот се пренесува на под-носител заедно со звучен носител. Ова значи дека обичниот моно FM или АМ звучен носител се остава сам за да биде примен од monaural приемници.
NICAM-заснована стерео ТВ инфраструктура може да пренесе стерео ТВ програма како и моно „компатибилен“ звук во исто време, или може да пренесе две или три сосема различни звучни протоци. Последниот мод може да се користи за да се пренесе звук на различни јазици, на сличен начин како во in-flight movies на интернационални летови. Во овој мод, корисникот може да бира кој саундтрак да го слуша кога ја гледа содржината управувајќи со „sound-select“ контрола на рисиверот.
NICAM ги нуди следните можности. Автоселекција на модот е овозможена со вклучување на 3-битно поле за тип во податочниот проток.
*Еден дигитален стерео звук – канал.
*Два сосема различни моно звук – канали.
*Еден дигитален моно звук - канал и 352 kbit/s податочен канал.
*Еден 704 kbit/s податочен канал.
Четирите други опции можат да бидат употребени подоцна. Само првите два од листата погоре се познати дека се во општа употреба во секој случај.
5.3 Пренос на NICAM пакети
NICAM пакетот (освен заглавјето) e кодиран со 9 битен псевдо-рандом бит-генератор пред пренос.
*Тополгијата на овој псевдо-рандом генератор се раководи според проток на битови со период на повторување од 511 бити.
*Полиномот на псевдо-рандом генераторот е: x^9+x^4+1.
*Периодот на псевдо-рандом генератороте иницијализиран со: 111111111.
Да се направи NICAM проток на битови да изгледа повеќе како бел шум е важно бидејќи ова го намалува мешањето на сидналот на соседните ТВ канали.
*Заглавјето на NICAM не е субјект на кодирање. Ова е потребно за да помогне за прикачување на NICAM податочниот поток и ресинхронизација на податочниот поток на приемник.
*На почетокот од секој NICAM пакет shift-регистерот на псевдо-рандом бит-генераторот е ресетиран на сите-единици.