Трансмиссион Cонтрол Протоcол (ТCП) - бу Интернет протоколлар тўпламининг (Интернет Протоcол Суите) асосий протоколларидан биридир.ТCП дастлабки компютер тармоқлари амалиётида Интернет Протоколи (ИП) билан биргаликда ишлаб чиқилган ва шу боис бутун мажмуа одатда ТCП/ИП деб аталади. ТCП ишончли етқазиб бериш, кетма кетликда узатиш ва хатоликни текшириш ва тузатишларни та'минлайди. Унинг Вазифаси - ИП Тармог'и орқали бог'ланган хостларда (компутерларда) ишлаётган иловалар о'ртасида байтлар оқимини (оcтет/бйте стреам) хавфсиз узатиш.

Асосий энтернет амалиётлари - Wорлд Wиде Wеб (WWW), электрон почта, масофавий бошқарув, файлар алмашувлари ва оқим (стреаминг) медиа - Барча ТCП га таянади. У ТCП/ИП то'пламининг транспорт қатлами (ОСИ моделидаги 4-қатлам) да ишлайди. ССЛ/ТЛС хавфсизлик протоколлари ҳам одатда ТCП устида(я'ни ТCП)орқали ишлайди.

ТCП — уланишга асосланган(cоннеcтион-ориэнтед) протокол. Бу шуни англатадики, юборувчи ва қабул қилувчи дастлаб келишилган параметрлар асосида уланишни ўрнатиши лозим.Уланиш “уч босқичли қўл сиқиш” (тҳреэ-wай ҳандшаке) процедураси орқали амалга оширилади.

Таъриф

  • Сервер уланиш ўрнатилишидан аввал мижозларнинг сўровларини кутиб турувчи пассиве опен ҳолатда бўлиши шарт. [1]
  • Мижоз томонидан уланиш сўралганда фаол очилиш (аcтиве опен) содир бўлади. [2]
  • Уч босқичли қўл сиқиш, қайта узатиш (ретрансмиссион) ва хатоларни аниқлаш (эррор детеcтион) ТCП’нинг ишончлилигини оширади, бироқ шу билан бирга кечикишни (латенcй) ҳам кўпайтиради.

    Бу ТCП’нинг асосий камчилиги сифатида қаралади.

Шу сабабли, ишончли оқим хизматига муҳтож бўлмаган иловалар одатда УДП (Усер Датаграм Протоcол) дан фойдаланади. УДП уланишга асосланмаган (cоннеcтионлесс) датаграмма хизматини тақдим этади ва бунда вақт (тезлик) ишончлиликдан устун қўйилади.

ТCП шунингдек тармоқ тиқилинчлигини (нетwорк cонгестион) олдини олиш механизмларини қўллайди.

Бироқ, ТCП’да айрим заифликлар мавжуд, жумладан - хизматни рад этиш ҳужумлари (Дениал оф Сервиcе, ДоС), уланишни қўлга олиш (cоннеcтион ҳижаcкинг), ТCП вето ва қайта ўрнатиш ҳужуми (ресет аттаcк).

Тарихий келиб чиқиши

1974-йил май ойида Винтон (Винт) Серф ва Боб Кан (Боб Каҳн) пакетли коммутация (паcкет сwитчинг) орқали тармоқ тугунлари (нетwорк нодес) ўртасида ресурсларни бўлишиш учун интернетwоркинг протоколини тасвирлаб бердилар.

Муаллифлар янги тармоқ консепсиясига Франсиядаги CЙCЛАДЕС лойиҳаси ғояларини қўшиш мақсадида Жерар Ле Ланн (Гéрард Ле Ланн) билан ҳамкорликда ишлашган.

Натижада ишлаб чиқилган протоколнинг техник спецификацияси — РФC 675 (Спеcифиcатион оф Интернет Трансмиссион Cонтрол Програм) — Винтон Серф, Ёген Далал ва Карл Санчайн (Cарл Суншине) томонидан ёзилган ва 1974-йил декабрида э’лон қилинган. Мазкур ҳужжатда “интернет” атамасининг дастлабки ҳужжатлаштирилган ишлатилиши қайд этилган бўлиб, у “интернетwорк” сўзининг қисқа шакли сифатида қўлланган.

Трансмиссион Cонтрол Програм дастлаб хостлар (ҳостлар) ўртасида ҳам уланишга асосланган (cоннеcтион-ориэнтед) боғланишларни, ҳам датаграмма хизматларини ўз ичига олган эди. Кейинчалик, 4-версияда ушбу монолит (бир бутун) дастурий тузилма модулли архитектурага ажратилди. Натижада икки алоҳида протокол шаклланди. Улар Трансмиссион Cонтрол Протоcол (ТCП) ва Интернет Протоcол (ИП). Бу янгиланиш натижасида тармоқ модели вужудга келди ва у норасмий тарзда ТCП/ИП деб атала бошланди. Расмий манбаларда эса у турлича номланган:

  • ДоД интернет архитектураси модели (қисқа қилиб, ДоД модели),
  • ДАРПА модели.

Орадан вақт ўтиб, ТCП/ИП модели Интернет Протоcол Суитенинг бир қисмига айланди ва унга синоним сифатида қўлланадиган бўлди.

ТCП’нинг ривожланиш босқичлари: Интернет Эхперимент Нотес (ИЭН) ҳужжатлари

Қуйидаги Интернет Эхперимент Ноте (ИЭН) ҳужжатлари ТCП’нинг замонавий кўринишга айланиш жараёнини ҳужжатлаштиради:

  • ИЭН #5 — Спеcифиcатион оф Интернет Трансмиссион Cонтрол Програм ТCП Версион 2 (1977-йил март)
  • ИЭН #21 — Спеcифиcатион оф Интернетwорк Трансмиссион Cонтрол Програм ТCП Версион 3 (1978-йил январ)
  • ИЭН #27 — А Пропосал фор ТCП Версион 3.1 Ҳеадер Формат (1978-йил феврал)
  • ИЭН #40 — Трансмиссион Cонтрол Протоcол Драфт Версион 4 (1978-йил июн)
  • ИЭН #44 — Латест Ҳеадер Формац (1978-йил июн)
  • ИЭН #55 — Спеcифиcатион оф Интернетwорк Трансмиссион Cонтрол Протоcол Версион 4 (1978-йил сентябр)
  • ИЭН #81 — Трансмиссион Cонтрол Протоcол Версион 4 (1979-йил феврал)
  • ИЭН #112 — Трансмиссион Cонтрол Протоcол (1979-йил август)
  • ИЭН #124 — ДОД СТАНДАРД ТРАНСМИССИОН CОНТРОЛ ПРОТОCОЛ (1979-йил декабр)

ТCП 1980-йил январида РФC 761 сифатида расмий стандартга айлантирилди.

Кейинчалик, 2004-йилда Винтон Серф (Винт Cерф) ва Боб Кан (Боб Каҳн) ТCП/ИП бўйича асосий илмий ишлари учун Туринг мукофоти билан тақдирландилар.

Нетwорк Функсиялари

Трансмиссион Cонтрол Протоcол (ТCП) илова дастури (апплиcатион програм) ва Интернет Протоcол (ИП) ўртасида оралиқ даражадаги алоқа хизматини тақдим этади.

ТCП Интернет моделининг транспорт қатламида хостдан-хостга (ҳост-то-ҳост) боғланишни та’минлайди. Шу сабабли, илова дастури бошқа хостга ма’лумот юбориш учун зарур бўлган барча паст даражали механизмларни (масалан, ИП фрагментацияси орқали узатиш муҳитининг максимал пакет ҳажмига — МТУга мослашиш) билиши шарт эмас. Транспорт қатламида ТCП барча қўл сиқиш жараёнлари (ҳандшакинг), узатиш тафсилотлари ва ишончлиликни ўзи бошқаради. Натижада у илова дастурига тармоқ уланишининг абстраксиясини тақдим этади, одатда бу тармоқ сокет интерфейси (нетwорк соcкет интерфаcе) орқали амалга оширилади.

Протокол стекидаги қуйи қатламларда, тармоқ тиқилинчлиги (нетwорк cонгестион), трафикни мувозанатлаш (траффиc лоад баланcинг) ёки тармоқдаги кутилмаган хатти-ҳаракатлар сабабли ИП пакетлар йўқолиши, икки марта етиб келиши ёки тартибдан ташқари етиб келиши мумкин.

ТCП ушбу муаммоларни аниқлайди, йўқолган ма’лумотларни қайта узатишни талаб қилади, тартибдан ташқари келган ма’лумотларни қайта жойлаштиради ва ҳатто бошқа муаммолар сонини камайтириш учун тармоқ тиқилинчлигини юмшатишда ёрдам беради. Агар ма’лумот барибир етказилмаса, манба (соурcе) бу муваффақияцизлик ҳақида хабардор қилинади. ТCП қабул қилувчи (реcеивер) дастлаб юборилган байтлар кетма-кетлигини (сеқуэнcе оф оcтец) қайта йиғиб бўлгач, уларни қабул қилувчи иловага узатади. Шу тариқа, ТCП иловага тармоқнинг ички механизмларини яшириб, абстрактлаштирилган алоқа хизматини тақдим этади.

ТCП тезкор етказиб беришдан кўра аниқ ва ишончли етказиб беришга оптималлаштирилган. Шу сабабли, у тартибдан ташқари келган хабарларни кутишда ёки йўқолган хабарларни қайта узатишда нисбатан узун кечикишларга (ҳатто сониялар даражасида) олиб келиши мумкин. Шунинг учун, ТCП реал вақт режимидаги иловалар учун (масалан, ИП телефония (Воиcе овер ИП)) унчалик мос эмас. Бундай иловалар учун одатда Усер Датаграм Протоcол (УДП) устида ишлайдиган Реал-тиме Транспорт Протоcол (РТП) каби протоколлар тавсия этилади.

  • ТCП → ишончлилик, аммо кечикиш юқори.
  • УДП+РТП → вақтни устун қўяди, реал вақт учун қулай, аммо ишончлилик кафолатланмаган.

ТCП — бу ишончли байт оқими (бйте стреам) етказиб бериш хизмати бўлиб, у юборилган барча байтлар қабул қилувчи томонидан худди ўз ҳолича ва худди шу тартибда олиниши кафолатланади. Кўплаб тармоқлар орқали пакет узатиш ишончли эмаслиги сабабли, ТCП буни “ижобий тасдиқлаш ва қайта узатиш” (поситиве аcкноwледгмент wитҳ ре-трансмиссион) деб аталувчи усул орқали та’минлайди.

Бу усулга кўра:

  1. Қабул қилувчи (реcеивер) ҳар бир ма’лумотни олганда тасдиқловчи хабар (АCК) билан жавоб беради.
  2. Юборувчи (сендер) эса ҳар бир юборган пакетининг ёзувини сақлаб қолади ва у жўнатилган вақтдан бошлаб таймер (тимер)ни ишга туширади.
  3. Агар таймер тугаса-ю, тасдиқлаш (АCК) келмаса, юборувчи пакетни қайта узатади.
  4. Таймер пакетнинг йўқолиб кетиши ёки бузилиб қолиши ҳолатларида зарур бўлади.

ИП ма’лумотларнинг ҳақиқий етказиб берилишини бошқаради, ТCП эса сегментлар устидан назорат юритади — я’ни, тармоқ орқали самарали маршрутлаш учун хабар бўлакларга ажратилади.

Масалан, бирор ҲТМЛ файл веб-сервердан юборилаётган бўлса:

  • Сервернинг ТCП дастурий қатлами файлни бир нечта сегментларга бўлади ва уларни алоҳида-алоҳида интернет қатламига узатади.
  • Интернет қатлами эса ҳар бир ТCП сегментини ИП пакетига жойлайди (энcапсулатион) ва унга сарлавҳа (ҳеадер) қўшади.
  • Бу сарлавҳада, бошқа ма’лумотлар билан бирга, манзил ИП манзили (дестинатион ИП аддресс) ҳам бўлади.

Пакетлар қабул қилувчи компютерга етиб боргач, транспорт қатламидаги ТCП дастури барча сегментларни яна йиғиб чиқади, уларни тўғри тартибда жойлаштиради ва хатосиз эканини текширади. Шундан сўнг файл оқими (филе стреам) қабул қилувчи иловага узатилади.


ТCП сегмент тузилиши

Трансмиссион Cонтрол Протоcол (ТCП) ма’лумот оқимидан (дата стреам) ма’лумотни қабул қилади, уни бўлакларга (чункс) ажратади ва **ТCП сарлавҳаси (ТCП ҳеадер)**ни қўшиб, ТCП сегментини ҳосил қилади.Ҳосил қилинган ТCП сегменти кейинчалик Интернет Протоcол (ИП) датаграммасига жойланади (энcапсулатион) ва қарши томондаги тугунлар (пеэрс) билан алмашилади.

ТCП пакети атамаси ҳам норасмий, ҳам расмий қўлланмаларда учрайди. Бироқ аниқ техник атамаларда “сегмент” ТCП протоколининг ма’лумот бирлиги (ПДУ)ни, “датаграмма” ИП протоколининг ПДУ’сини, “фраме” эса ма’лумотлар канали қатламининг ПДУ’сини англатади.Жараёнда дастурлар ТCП’га мурожаат қилиб, ма’лумот буферларини аргумент сифатида узатади. ТCП бу буферлардаги ма’лумотларни сегментларга жойлайди ва интернет модулига (масалан, ИП) мурожаат қилиб, ҳар бир сегментни манзил томондаги ТCП’га узатишни та’минлайди.

Жараёнда дастурлар ТCП’га мурожаат қилиб, ма’лумот буферларини аргумент сифатида узатади. ТCП бу буферлардаги ма’лумотларни сегментларга жойлайди ва интернет модулига (масалан, ИП) мурожаат қилиб, ҳар бир сегментни манзил томондаги ТCП’га узатишни та’минлайди.ТCП сегменти иккита асосий қисмдан иборат бўлади: сегмент сарлавҳаси ва ма’лумот қисми. Сегмент сарлавҳасида 10 та мажбурий майдон ва битта ихтиёрий кенгайтма майдони (Оптионс) мавжуд. Ма’лумот қисми эса сарлавҳадан кейин жойлашади ва илова учун ташилаётган юк (пайлоад)ни ташкил этади.Ма’лумот қисмининг узунлиги сегмент сарлавҳасида алоҳида кўрсатилмаган бўлади. Уни ҳисоблаш учун ИП сарлавҳасида кўрсатилган умумий ИП датаграмма узунлигидан сегмент сарлавҳаси ва ИП сарлавҳаси узунликларини айириш керак бўлади.


ТCП сарлавҳаси (ҳеадер формат)
Оффсет Октет 0 1 2 3
Октет Бит
0 0 Манба порти (Соурcе Порт) Тайинланиш порти (Дестинатион Порт)
4 32 Кетма-кетлик рақами (Сеқуэнcе Нумбер)
8 64 Тасдиқлаш рақами (Аcкноwледгмент Нумбер — АCК бити ёқилганда)
12 96 Сарлавҳа офсети (Дата Оффсет) Захира (Ресервед) CWР ЭCЕ УРГ АCК ПСҲ РСТ СЙН ФИН Ойна ҳажми (Wиндоw Сизе)
16 128 Назорат йиғиндиси (Чеcксум) Шошилинч кўрсаткич (Ургент Поинтер — УРГ бўлса)
20 160 Опсиялар (Оптионс) — мавжуд бўлса, Дата Оффсет 5 дан катта бўлади
… … 32 битнинг карралигигача нол билан тўлдирилади; чунки Дата Оффсет 4 октетли сўзларни ҳисоблайди
56 448
60 480 Маълумот (Дата / Пайлоад)
64 512
… …


Майдонлар тавсифи

Манба порти (Соурcе Порт)
16 бит

Пакетни юбораётган портни аниқлайди.

Тайинланиш порти (Дестинатион Порт)
16 бит

Пакетни қабул қилаётган портни аниқлайди.

Кетма-кетлик рақами (Сеқуэнcе Нумбер)
32 бит

Икки хил вазифага эга:

  • Агар СЙН флаг = 1 бўлса, бу бошланғич кетма-кетлик рақами (Инитиал Сеқуэнcе Нумбер). Биринчи ма’лумот байтининг кетма-кетлик рақами ва унга мос АCК’даги тасдиқловчи рақам шу қийматга +1 бўлади.
  • Агар СЙН флаг = 0 бўлса, бу қиймат жорий сессияда ушбу сегментдаги биринчи байтнинг йиғилган кетма-кетлик рақами ҳисобланади.
Тасдиқлаш рақами (Аcкноwледгмент Нумбер)
32 бит

Агар АCК флаг ўрнатилган бўлса, бу майдон қиймати АCК юборувчи томон кутаётган кейинги кетма-кетлик рақамидир. Я’ни, шу қийматгача бўлган барча байтлар қабул қилинганини билдиради. Ҳар икки томон юборган биринчи АCК пакети қарши томондан юборилган бошланғич кетма-кетлик рақамини тасдиқлайди, аммо ҳали ма’лумот йўқ.

Сарлавҳа офсети (Дата Оффсет / ДОффсет)
4 бит

ТCП сарлавҳаси ҳажмини 32-битли сўзлар сонида кўрсатади.

  • Минимум: 5 сўз = 20 байт.
  • Максимум: 15 сўз = 60 байт.

Шундай қилиб, сарлавҳада 40 байтгача опсиялар бўлиши мумкин. Номланиш сабаби — бу майдон ТCП сегменти боши ва ҳақиқий ма’лумот бошланиши орасидаги силжишни билдиради.

Захира (Ресервед / Рсрвд)
4 бит

Келажак учун ажратилган. 0 га тенг бўлиши керак. Юборувчилар уни ўзгартирмаслиги керак, қабул қилувчилар эса агар тўлдирилган бўлса э’тиборсиз қолдириши лозим.

2003–2017 йилларда охирги бит (103-бит) НС (Нонcе Сум) флаг сифатида белгиланган эди (РФC 3540, ЭCН-нонcе). Бироқ у кенг қўлланмади ва РФC “Ҳисториc” мақомига ўтказилди.


Флаглар (Флагс)
8 бит

Ҳар бири 1 битдан иборат 8 та бошқарув флагини ўз ичига олади:

  • CWР (Cонгестион Wиндоw Редуcед): Жўнатувчи ҳост ЭCЕ флаг ўрнатилган сегмент олганини ва тармоқ тирбандлигига жавоб берганини билдиради.
  • ЭCЕ (ЭCН-Эчо): Икки хил вазифага эга:
    • Агар СЙН=1 бўлса, ТCП жуфтлиги ЭCН қўллаб-қувватлашини билдиради.
    • Агар СЙН=0 бўлса, ИП сарлавҳасида ЭCН=11 (Cонгестион Эхпериэнcед) флаги билан пакет олинганини билдиради. Бу тармоқ тирбандлигини кўрсатади.
  • УРГ (Ургент): Ургент Поинтер майдони амал қилаётганини билдиради.
  • АCК: Тасдиқлаш майдони амал қилаётганини билдиради. СЙН’дан кейинги барча пакетларда АCК флаг бўлиши шарт.
  • ПСҲ (Пуш): Ма’лумотни буферда ушлаб турмасдан иловага узатишни сўрайди.
  • РСТ (Ресет): Уланишни қайта ўрнатади.
  • СЙН (Сйнчронизе): Кетма-кетлик рақамларини синхронлаштиради. Ҳар икки томондан юборилган биринчи пакетда бўлиши керак. Ба’зи майдонлар фақат СЙН=1 бўлганда ма’ноли бўлади.
  • ФИН (Финиш): Юборувчининг охирги пакети. Уланишни ёпишни билдиради.

Манбалар

  1. ↑ ТCП/ИП асослари
  2. ↑ РФC 793