Назва: | 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.