Сёння мы пачнем з разгляду TCP. Раней у раздзеле пра шматслаёвасць мы згадалі важны момант. На сеткавым узроўні і ніжэй гаворка ідзе пра міжхоставыя злучэнні, што азначае, што ваш камп'ютар павінен ведаць, дзе знаходзіцца іншы камп'ютар, каб падключыцца да яго. Аднак сувязь у сетцы часцей за ўсё з'яўляецца міжпрацэснай, а не міжмашыннай камунікацыяй. Таму пратакол TCP уводзіць паняцце порта. Порт можа быць заняты толькі адным працэсам, што забяспечвае прамую сувязь паміж працэсамі прыкладанняў, якія працуюць на розных хостах.
Задача транспартнага ўзроўню заключаецца ў тым, каб забяспечваць прамыя камунікацыйныя паслугі паміж працэсамі прыкладанняў, якія працуюць на розных хостах, таму ён таксама вядомы як пратакол "канец у канец". Транспартны ўзровень хавае асноўныя дэталі сеткі, дазваляючы працэсу прыкладання бачыць, што паміж двума аб'ектамі транспартнага ўзроўню існуе лагічны канал сувязі "канец у канец".
TCP расшыфроўваецца як Transmission Control Protocol (пратакол кіравання перадачай) і вядомы як пратакол, арыентаваны на злучэнне. Гэта азначае, што перад тым, як адно прыкладанне зможа пачаць адпраўляць дадзеныя іншаму, два працэсы павінны зрабіць узаемнае падключэнне. Узаемнае падключэнне — гэта лагічна звязаны працэс, які забяспечвае надзейную перадачу і ўпарадкаваны прыём дадзеных. Падчас падключэння ўсталёўваецца злучэнне паміж хостамі-крыніцамі і атрымальнікамі шляхам абмену серыяй кантрольных пакетаў і ўзгаднення некаторых параметраў і правілаў для забеспячэння паспяховай перадачы дадзеных.
Што такое TCP? (Mylinking'sСеткавы краніСеткавы брокер пакетаўможа апрацоўваць як TCP, так і UDP-пакеты)
TCP (пратакол кіравання перадачай) — гэта арыентаваны на злучэнне, надзейны пратакол сувязі транспартнага ўзроўню на аснове байтавага патоку.
Арыентаваны на злучэннеАрыентацыя на злучэнне азначае, што TCP-сувязь з'яўляецца адзін-да-аднаму, гэта значыць, кропка-кропка, у адрозненне ад UDP, які можа адпраўляць паведамленні некалькім хостам адначасова, таму сувязь адзін-да-многіх недасяжная.
НадзейныНадзейнасць TCP гарантуе надзейную дастаўку пакетаў атрымальніку незалежна ад змен у сеткавым злучэнні, што робіць фармат пакетаў пратакола TCP больш складаным, чым у UDP.
На аснове байтавага патокуПатокавая структура пратакола TCP дазваляе перадаваць паведамленні любога памеру і гарантуе парадак паведамленняў: нават калі папярэдняе паведамленне не было атрымана цалкам, і нават калі наступныя байты былі атрыманы, TCP не перадасць іх на ўзровень прыкладання для апрацоўкі і аўтаматычна адкіне дублікаты пакетаў.
Пасля таго, як хост А і хост Б усталявалі злучэнне, праграме трэба толькі выкарыстоўваць віртуальную лінію сувязі для адпраўкі і атрымання дадзеных, тым самым забяспечваючы перадачу дадзеных. Пратакол TCP адказвае за кіраванне такімі задачамі, як усталяванне, адключэнне і ўтрыманне злучэння. Варта адзначыць, што тут мы гаворым пра віртуальную лінію, якая азначае толькі ўсталяванне злучэння, а злучэнне па пратаколе TCP толькі паказвае, што абодва бакі могуць пачаць перадачу дадзеных і забяспечыць надзейнасць дадзеных. Вузлы маршрутызацыі і транспарту апрацоўваюцца сеткавымі прыладамі; сам пратакол TCP не мае дачынення да гэтых дэталяў.
TCP-злучэнне — гэта поўнадуплексная служба, што азначае, што хост А і хост Б могуць перадаваць дадзеныя ў абодвух напрамках у TCP-злучэнні. Гэта значыць, дадзеныя могуць перадавацца паміж хостам А і хостам Б у двухбаковым патоку.
TCP часова захоўвае дадзеныя ў буферы адпраўкі злучэння. Гэты буфер адпраўкі з'яўляецца адным з кэшаў, створаных падчас трохбаковага ўстанаўлення сувязі. Пасля гэтага TCP адправіць дадзеныя з кэша адпраўкі ў кэш атрымання хоста прызначэння ў патрэбны час. На практыцы кожны вузел будзе мець кэш адпраўкі і кэш атрымання, як паказана тут:
Буфер адпраўкі — гэта вобласць памяці, якая падтрымліваецца рэалізацыяй TCP на баку адпраўніка і выкарыстоўваецца для часовага захоўвання дадзеных, якія будуць адпраўлены. Пры трохбаковым узгодненні злучэння наладжваецца кэш адпраўкі, які выкарыстоўваецца для захоўвання дадзеных. Буфер адпраўкі дынамічна рэгулюецца ў залежнасці ад перагрузкі сеткі і зваротнай сувязі ад атрымальніка.
Буфер прыёму — гэта вобласць памяці, якая падтрымліваецца рэалізацыяй TCP на баку прыёму і выкарыстоўваецца для часовага захоўвання атрыманых дадзеных. TCP захоўвае атрыманыя дадзеныя ў кэшы прыёму і чакае, пакуль іх прачытае праграма вышэйшага ўзроўню.
Звярніце ўвагу, што памер кэша адпраўкі і кэша атрымання абмежаваны, і калі кэш запоўнены, TCP можа выкарыстоўваць некаторыя стратэгіі, такія як кантроль перагрузкі, кантроль патоку і г.д., каб забяспечыць надзейную перадачу дадзеных і стабільнасць сеткі.
У камп'ютэрных сетках перадача дадзеных паміж хостамі ажыццяўляецца з дапамогай сегментаў. Дык што ж такое сегмент пакета?
TCP стварае сегмент TCP, або сегмент пакета, шляхам падзелу ўваходнага патоку на фрагменты і дадання загалоўкаў TCP да кожнага фрагмента. Кожны сегмент можа перадавацца толькі на працягу абмежаванага часу і не можа перавышаць максімальны памер сегмента (MSS). Па дарозе ўніз сегмент пакета праходзіць праз канальны ўзровень. Канальны ўзровень мае максімальны адзінку перадачы (MTU), які з'яўляецца максімальным памерам пакета, які можа прайсці праз канальны ўзровень. Максімальны адзінка перадачы звычайна звязаны з інтэрфейсам сувязі.
Дык у чым розніца паміж MSS і MTU?
У камп'ютэрных сетках іерархічная архітэктура вельмі важная, бо яна ўлічвае адрозненні паміж рознымі ўзроўнямі. Кожны ўзровень мае сваю назву; на транспартным узроўні дадзеныя называюцца сегментам, а на сеткавым узроўні — IP-пакетам. Такім чынам, максімальны адзінку перадачы (MTU) можна разглядаць як максімальны памер IP-пакета, які можа быць перададзены сеткавым узроўнем, у той час як максімальны памер сегмента (MSS) — гэта паняцце транспартнага ўзроўню, якое адносіцца да максімальнай колькасці дадзеных, якія могуць быць перададзены TCP-пакетам адначасова.
Звярніце ўвагу, што калі максімальны памер сегмента (MSS) большы за максімальны адзінку перадачы (MTU), фрагментацыя IP будзе выконвацца на сеткавым узроўні, і TCP не будзе дзяліць большыя дадзеныя на сегменты, прыдатныя для памеру MTU. На сеткавым узроўні будзе раздзел, прызначаны для IP-ўзроўню.
Структура сегмента TCP-пакета
Давайце разгледзім фармат і змест загалоўкаў TCP.
Паслядоўны нумар: Выпадковы лік, які генеруецца кампутарам пры ўсталёўцы злучэння ў якасці пачатковага значэння пры ўсталёўцы TCP-злучэння, і парадкавы нумар адпраўляецца атрымальніку праз SYN-пакет. Падчас перадачы дадзеных адпраўнік павялічвае парадкавы нумар у залежнасці ад аб'ёму адпраўленых дадзеных. Прыёмнік ацэньвае парадак дадзеных у адпаведнасці з атрыманым парадкавым нумарам. Калі дадзеныя выяўляюцца не ў парадку, атрымальнік пераўпарадкуе дадзеныя, каб забяспечыць парадак дадзеных.
Нумар пацверджання: Гэта парадкавы нумар, які выкарыстоўваецца ў TCP для пацверджання атрымання дадзеных. Ён паказвае парадкавы нумар наступных дадзеных, якія адпраўнік чакае атрымаць. У TCP-злучэнні атрымальнік вызначае, якія дадзеныя былі паспяхова атрыманы, на аснове парадкавага нумара атрыманага сегмента пакета дадзеных. Калі атрымальнік паспяхова атрымлівае дадзеныя, ён адпраўляе адпраўніку пакет ACK, які змяшчае нумар пацверджання. Пасля атрымання пакета ACK адпраўнік можа пацвердзіць, што дадзеныя перад пацверджаннем адказу былі паспяхова атрыманы.
Кіруючыя біты сегмента TCP ўключаюць наступнае:
Біт пацвярджэнняКалі гэты біт роўны 1, гэта азначае, што поле пацверджання адказу сапраўднае. TCP паказвае, што гэты біт павінен быць усталяваны ў 1, за выключэннем SYN-пакетаў пры першапачатковым усталяванні злучэння.
RST-бітКалі гэты біт роўны 1, гэта азначае, што ў TCP-злучэнні ёсць выключэнне, і злучэнне трэба прымусова разарваць.
SYN-бітКалі гэты біт усталяваны ў 1, гэта азначае, што злучэнне павінна быць усталявана, і ў полі паслядоўнага нумара ўстаноўлена пачатковае значэнне паслядоўнага нумара.
Біт FINКалі гэты біт роўны 1, гэта азначае, што ў будучыні дадзеныя больш не будуць адпраўляцца, і злучэнне пажаданае.
Розныя функцыі і характарыстыкі TCP увасабляюцца ў структуры сегментаў TCP-пакетаў.
Што такое UDP? (Mylinking'sСеткавы краніСеткавы брокер пакетаўможа апрацоўваць як TCP, так і UDP-пакеты)
Пратакол карыстальніцкіх датаграм (UDP) — гэта пратакол сувязі без усталявання злучэння. У параўнанні з TCP, UDP не прадугледжвае складаных механізмаў кіравання. Пратакол UDP дазваляе праграмам непасрэдна адпраўляць інкапсуляваныя IP-пакеты без усталявання злучэння. Калі распрацоўшчык вырашае выкарыстоўваць UDP замест TCP, праграма ўзаемадзейнічае непасрэдна з IP-адрасам.
Поўная назва пратакола UDP — User Datagram Protocol (Пратакол карыстальніцкіх датаграм), а яго загаловак складае ўсяго восем байтаў (64 біты), што вельмі лаканічна. Фармат загалоўка UDP наступны:
Парты прызначэння і крыніцыІх галоўная мэта — паказаць, якому працэсу UDP павінен адпраўляць пакеты.
Памер пакетаПоле памеру пакета змяшчае памер загалоўка UDP і памер дадзеных.
Кантрольная сумаРаспрацавана для забеспячэння надзейнай дастаўкі загалоўкаў і дадзеных UDP. Роля кантрольнай сумы заключаецца ў выяўленні памылкі або пашкоджання падчас перадачы пакета UDP, каб гарантаваць цэласнасць дадзеных.
Розніца паміж TCP і UDP у MylinkingСеткавы краніСеткавы брокер пакетаўможа апрацоўваць як TCP, так і UDP-пакеты
TCP і UDP адрозніваюцца ў наступных аспектах:
ПадключэннеTCP — гэта транспартны пратакол, арыентаваны на злучэнне, які патрабуе ўстанаўлення злучэння перад перадачай дадзеных. UDP, з іншага боку, не патрабуе злучэння і можа перадаваць дадзеныя адразу.
Аб'ект службыTCP — гэта двухкропкавая служба «адзін да аднаго», гэта значыць, злучэнне мае толькі дзве канчатковыя кропкі для сувязі адна з адной. Аднак UDP падтрымлівае інтэрактыўную сувязь «адзін да аднаго», «адзін да многіх» і «многія да многіх», што дазваляе адначасова ўзаемадзейнічаць з некалькімі хостамі.
НадзейнасцьTCP забяспечвае паслугу надзейнай дастаўкі дадзеных, гарантуючы, што дадзеныя не ўтрымліваюць памылак, страт, не дубліруюцца і паступаюць па патрабаванні. UDP, з іншага боку, робіць усё магчымае і не гарантуе надзейнай дастаўкі. UDP можа пацярпець ад страты дадзеных і іншых сітуацый падчас перадачы.
Кантроль затораў, кантроль патокуTCP мае механізмы кантролю перагрузкі і кіравання патокам, якія могуць рэгуляваць хуткасць перадачы дадзеных у залежнасці ад умоў сеткі, каб забяспечыць бяспеку і стабільнасць перадачы дадзеных. UDP не мае механізмаў кантролю перагрузкі і кіравання патокам, нават калі сетка вельмі перагружаная, ён не будзе карэктаваць хуткасць адпраўкі UDP.
Загаловак накладных выдаткаўTCP мае вялікую даўжыню загалоўка, звычайна 20 байтаў, якая павялічваецца пры выкарыстанні палёў опцый. UDP, з іншага боку, мае фіксаваны загаловак даўжынёй усяго 8 байтаў, таму UDP мае меншыя накладныя выдаткі на загаловак.
Сцэнарыі прыкладанняў TCP і UDP:
TCP і UDP — гэта два розныя пратаколы транспартнага ўзроўню, і яны маюць некаторыя адрозненні ў сцэнарах прымянення.
Паколькі TCP — гэта пратакол, арыентаваны на злучэнне, ён у асноўным выкарыстоўваецца ў сітуацыях, калі патрабуецца надзейная дастаўка дадзеных. Некаторыя распаўсюджаныя выпадкі выкарыстання ўключаюць:
Перадача файлаў па FTPTCP можа гарантаваць, што файлы не будуць страчаны і пашкоджаны падчас перадачы.
HTTP/HTTPSTCP забяспечвае цэласнасць і правільнасць вэб-кантэнту.
Паколькі UDP з'яўляецца пратаколам без усталявання злучэння, ён не гарантуе надзейнасці, але валодае характарыстыкамі эфектыўнасці і працы ў рэжыме рэальнага часу. UDP падыходзіць для наступных сцэнарыяў:
Трафік з нізкім узроўнем пакетаў, напрыклад, DNS (сістэма даменных імёнаў)DNS-запыты звычайна з'яўляюцца кароткімі пакетамі, і UDP можа апрацоўваць іх хутчэй.
Мультымедыйная камунікацыя, такая як відэа і аўдыёДля перадачы мультымедыя з высокімі патрабаваннямі да рэальнага часу UDP можа забяспечыць меншую затрымку, каб гарантаваць своечасовую перадачу дадзеных.
Трансляцыя сувязіUDP падтрымлівае сувязь «адзін-да-многіх» і «многія-да-многіх» і можа выкарыстоўвацца для перадачы шырокавяшчальных паведамленняў.
Кароткі змест
Сёння мы даведаліся пра TCP. TCP — гэта арыентаваны на злучэнне, надзейны камунікацыйны пратакол транспартнага ўзроўню на аснове байтавага патоку. Ён забяспечвае надзейную перадачу і ўпарадкаваны прыём дадзеных шляхам усталявання злучэння, падпіскі і пацверджання. Пратакол TCP выкарыстоўвае парты для рэалізацыі сувязі паміж працэсамі і забяспечвае прамыя камунікацыйныя паслугі для працэсаў прыкладанняў, якія працуюць на розных хостах. Злучэнні TCP з'яўляюцца поўнадуплекснымі, што дазваляе адначасовую двухбаковую перадачу дадзеных. У адрозненне ад гэтага, UDP — гэта камунікацыйны пратакол без злучэння, які не дае гарантый надзейнасці і падыходзіць для некаторых сцэнарыяў з высокімі патрабаваннямі да рэальнага часу. TCP і UDP адрозніваюцца рэжымам злучэння, аб'ектам абслугоўвання, надзейнасцю, кантролем перагрузкі, кіраваннем патокам і іншымі аспектамі, а таксама іх сцэнарыі прымянення.
Час публікацыі: 03 снежня 2024 г.