TCP

Назва: Transmission Control Protocol
Узровень (па мадэлі OSI): Транспартны

TCP (англ.: Transmission Control Protocol — «пратакол кіравання перадачай») — адзін з асноўных сеткавых пратаколаў, з’яўляецца часткай транспартнага ўзроўню стэка TCP/IP. Пратакол TCP забяспечвае надзейную, упарадкаваную і правераную на памылкі дастаўку патоку байтаў паміж хастамі ў сетцы, звязанай па пратаколе IP. Большасць функцыяналу Інтэрнета (напрыклад вэб-старонкі або электронная пошта) абапіраецца на TCP.

TCP адкрывае злучэнне паміж кліентам і серверам перад адпраўкай даных. Сервер павінен праслухоўваць запыты на злучэнне ад кліентаў, перш чым злучэнне будзе ўстаноўлена. Каардынацыя злучэння, паўторная перадача даных і выяўленне памылак павялічваюць надзейнасць, але патрабуюць больш часу. Праграмы, якім не патрабуецца надзейная перадача даных, могуць замест TCP выкарыстоўваць пратакол UDP.

У маі 1974 года Вінтан Серф і Роберт Кан апісалі міжсеткавы пратакол для сумеснага выкарыстання рэсурсаў паміж вузламі сеткі з камутацыяй пакетаў.[1] Спецыфікацыя пратакола RFC 675 была напісана Вінтанам Серфам, Ёгенам Далалам і Карлам Саншайнам і апублікавана ў снежні 1974 года. Яна змяшчае першае пацверджанае выкарыстанне тэрміна Інтэрнэт.

Цэнтральным кампанентам прапанаванай мадэлі была так званая праграма кіравання перадачай (англ.: Transmission Control Program). Пазней маналітная праграма кіравання перадачай была падзелена на пратакол кіравання перадачай (TCP) і міжсеткавы пратакол (IP). Гэта прывяло да стварэння сеткавай мадэлі, якая стала вядомай як мадэль TCP/IP, таксама яе называлі мадэллю DOD (англ.: Department of Defense — Міністэрства абароны) і мадэллю ARPANET.

У 2004 годзе Вінтан Серф і Роберт Кан атрымалі прэмію Цьюрынга за сваю працу над TCP/IP.[2][3]

Пратакол TCP забяспечвае сувязь на узроўні паміж прыкладной праграмай і пратаколам IP. Прыкладная праграма не павінна ведаць канкрэтныя механізмы адпраўкі даных на іншы хост, напрыклад, фрагментацыю IP для падзелу даных на меншыя элементы, якія можна перадаць у асяроддзі перадачы. На транспартным узроўні TCP апрацоўвае ўсе дэталі перадачы і прадстаўляе абстракцыю сеткавага злучэння, звычайна праз інтэрфейс сокета.

Пакеты ў сетцы IP могуць быць страчаны, атрыманы некалькі разоў або дастаўлены ў іншым парадку, напрыклад з-за перагружанасці сеткі. TCP выяўляе гэтыя праблемы, запытвае паўторную перадачу страчаных даных і упарадкоўвае даныя. Калі даныя ўсё ж не атрымаецца даставіць, крыніца будзе апавешчана аб збоі. Пасля таго, як пратакол TCP на старане адрасата збірае паслядоўнасць пераданых даных, ён перадае іх праграме-адрасату. Такім чынам, TCP дадае абстракцыю паміж праграмай і сеткай.

TCP шырока выкарыстоўваецца многімі праграмамі ў Інтэрнеце, уключаючы праграмы для прагляду вэб-старонак (праз пратакол HTTP), электроннай пошты (праз пратаколы SMTP, IMAP, POP), для перадачы файлаў (FTP), дыстанцыйнага кіравання (SSH) і перадачы струменевага медыя.

TCP аптымізаваны для дакладнай дастаўкі і можа выклікаць адносна вялікія затрымкі падчас чакання паведамленняў або паўторнай перадачы страчаных паведамленняў. Такім чынам, ён не вельмі падыходзіць для праграм у рэжыме рэальнага часу, такіх як галасавая сувязь праз IP. Для такіх праграм звычайна рэкамендуюцца іншыя пратаколы, якія выкарыстоўваюць пратакол UDP.

Зноскі

  1. Vinton G. Cerf; Robert E. Kahn (May 1974). "A Protocol for Packet Network Intercommunication" (PDF). IEEE Transactions on Communications. 22 (5): 637–648. doi:10.1109/tcom.1974.1092259. Архівавана з арыгінала (PDF) March 4, 2016.
  2. Robert E Kahn – A.M. Turing Award Laureate. amturing.acm.org. Архівавана з першакрыніцы 13 ліпеня 2019. Праверана 13 ліпеня 2019.
  3. Vinton Cerf – A.M. Turing Award Laureate. amturing.acm.org. Архівавана з першакрыніцы 11 кастрычніка 2021. Праверана 13 ліпеня 2019.
  • RFC 793 (англ.) — спецыфікацыя пратакола TCP