TCP болон UDP: Найдвартай байдал болон үр ашгийн маргааныг тайлбарлах

Өнөөдөр бид 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-UDP

Илгээх буфер нь илгээгчийн талд 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 сегмент

Дарааллын дугаар: TCP холболт тогтоогдсон үед холболт тогтоогдсон үед компьютерийн үүсгэсэн санамсаргүй тоо бөгөөд дарааллын дугаарыг SYN пакетаар дамжуулан хүлээн авагч руу илгээдэг. Өгөгдөл дамжуулах явцад илгээгч нь илгээсэн өгөгдлийн хэмжээнээс хамааран дарааллын дугаарыг нэмэгдүүлдэг. Хүлээн авагч нь хүлээн авсан дарааллын дугаарын дагуу өгөгдлийн дарааллыг шүүдэг. Хэрэв өгөгдөл дараалалгүй бол хүлээн авагч нь өгөгдлийн дарааллыг хангахын тулд өгөгдлийг дахин эрэмбэлнэ.

Баталгаажуулах дугаарЭнэ нь TCP-д өгөгдөл хүлээн авсныг баталгаажуулахад ашиглагддаг дарааллын дугаар юм. Энэ нь илгээгчийн хүлээн авахыг хүлээж буй дараагийн өгөгдлийн дарааллын дугаарыг заана. TCP холболтод хүлээн авагч нь хүлээн авсан өгөгдлийн багцын хэсгийн дарааллын дугаар дээр үндэслэн аль өгөгдөл амжилттай хүлээн авсныг тодорхойлдог. Хүлээн авагч өгөгдлийг амжилттай хүлээн авсны дараа илгээгч рүү баталгаажуулалтын баталгаажуулалтын дугаарыг агуулсан ACK пакет илгээдэг. ACK пакетийг хүлээн авсны дараа илгээгч нь хариу дугаарыг баталгаажуулахаас өмнө өгөгдлийг амжилттай хүлээн авсан эсэхийг баталгаажуулж чадна.

TCP сегментийн хяналтын битүүд нь дараахь зүйлийг агуулна.

ACK битЭнэ бит 1 байх үед хүлээн зөвшөөрөх хариу өгөх талбар хүчинтэй байна гэсэн үг юм. TCP нь холболт анх тогтсон үед SYN пакетуудаас бусад тохиолдолд энэ битийг 1 гэж тохируулах ёстойг заадаг.
RST битЭнэ бит 1 байх үед энэ нь TCP холболтод алдаа байгааг харуулж байгаа бөгөөд холболтыг албадан салгах шаардлагатай байна.
SYN битЭнэ битийг 1 гэж тохируулсан үед холболт тогтоогдох ёстой бөгөөд дарааллын дугаарын анхны утга нь дарааллын дугаарын талбарт тохируулагдана гэсэн үг юм.
СИН битЭнэ бит 1 байх үед ирээдүйд дахиж өгөгдөл илгээгдэхгүй бөгөөд холболт хүссэн гэсэн үг юм.
TCP-ийн янз бүрийн функц болон шинж чанарууд нь TCP пакет сегментүүдийн бүтцээр илэрхийлэгддэг.

UDP гэж юу вэ? (Mylinking's)Сүлжээний цоргомөнСүлжээний пакет зуучлагчTCP эсвэл UDP пакетуудыг хоёуланг нь боловсруулж чадна)
Хэрэглэгчийн өгөгдлийн протокол (UDP) нь холболтгүй холбооны протокол юм. TCP-тэй харьцуулахад UDP нь нарийн төвөгтэй хяналтын механизмыг хангадаггүй. UDP протокол нь програмуудад холболт тогтоохгүйгээр капсулжуулсан IP пакетуудыг шууд илгээх боломжийг олгодог. Хөгжүүлэгч TCP-ийн оронд UDP ашиглахаар сонгоход програм нь IP-тэй шууд холбогддог.

UDP протоколын бүтэн нэр нь Хэрэглэгчийн өгөгдлийн протокол бөгөөд толгой хэсэг нь ердөө найман байт (64 бит) бөгөөд энэ нь маш товч юм. UDP толгой хэсгийн формат дараах байдалтай байна.

UDP сегмент

Очих газар болон эх үүсвэрийн портуудТэдний гол зорилго нь UDP нь аль процесс руу пакет илгээхийг зааж өгөх явдал юм.
Пакетийн хэмжээПакетийн хэмжээний талбар нь UDP толгойн хэмжээ болон өгөгдлийн хэмжээг агуулна.
Чексийн нийлбэрUDP толгой болон өгөгдлийг найдвартай хүргэх зорилгоор бүтээгдсэн. Checksum-ийн үүрэг нь өгөгдлийн бүрэн бүтэн байдлыг хангахын тулд UDP пакет дамжуулах явцад алдаа эсвэл эвдрэл гарсан эсэхийг илрүүлэх явдал юм.

Mylinking дэх TCP болон UDP-ийн ялгаануудСүлжээний цоргомөнСүлжээний пакет зуучлагчTCP эсвэл UDP пакетуудыг хоёуланг нь боловсруулах боломжтой
TCP болон UDP нь дараах талуудаар ялгаатай байдаг.

TCP болон UDP

ХолболтTCP нь өгөгдөл дамжуулахаас өмнө холболт тогтоохыг шаарддаг холболтод чиглэсэн тээврийн протокол юм. Нөгөөтэйгүүр, UDP нь холболт шаарддаггүй бөгөөд өгөгдлийг шууд дамжуулж чаддаг.

Үйлчилгээний объектTCP нь нэгээс нэг хүртэлх хоёр цэгийн үйлчилгээ бөгөөд өөрөөр хэлбэл холболт нь хоорондоо харилцах зөвхөн хоёр төгсгөлийн цэгтэй байдаг. Гэсэн хэдий ч UDP нь нэгээс нэг хүртэлх, нэгээс олон хүртэлх, олоноос олон хүртэлх интерактив харилцаа холбоог дэмждэг бөгөөд энэ нь нэгэн зэрэг олон хосттой холбогдож чаддаг.

Найдвартай байдалTCP нь өгөгдлийг найдвартай хүргэх үйлчилгээг үзүүлдэг бөгөөд өгөгдөл алдаагүй, алдагдалгүй, давхардаагүй, шаардлагатай үед ирэхийг баталгаажуулдаг. Нөгөөтэйгүүр, UDP нь чадах бүхнээ хийдэг бөгөөд найдвартай хүргэлтийг баталгаажуулдаггүй. UDP нь дамжуулах явцад өгөгдөл алдагдах болон бусад нөхцөл байдалд өртөж болзошгүй.

Түгжрэлийг хянах, урсгалын хяналтTCP нь ачааллыг хянах болон урсгалыг хянах механизмтай бөгөөд өгөгдөл дамжуулах аюулгүй байдал, тогтвортой байдлыг хангахын тулд сүлжээний нөхцөлд тохируулан өгөгдөл дамжуулах хурдыг тохируулж чаддаг. UDP нь ачааллыг хянах болон урсгалыг хянах механизмгүй бөгөөд сүлжээ маш их ачаалалтай байсан ч UDP илгээх хурдад тохируулга хийхгүй.

Толгой хэсгийн дээд хэсэгTCP нь толгойн урттай, ихэвчлэн 20 байт байдаг бөгөөд сонголтын талбаруудыг ашиглах үед энэ нь нэмэгддэг. Нөгөөтэйгүүр, UDP нь ердөө 8 байт тогтмол толгойтой тул UDP нь толгойн ачаалал багатай байдаг.

TCP болон UDP

TCP болон UDP програмын хувилбарууд:
TCP болон UDP нь хоёр өөр тээврийн давхаргын протокол бөгөөд програмын хувилбаруудад зарим ялгаа байдаг.

TCP нь холболтод чиглэсэн протокол тул найдвартай өгөгдөл дамжуулах шаардлагатай тохиолдолд голчлон ашиглагддаг. Зарим түгээмэл хэрэглээний тохиолдлуудад дараахь зүйлс орно.

FTP файл дамжуулалтTCP нь файлууд дамжуулалтын явцад алдагдахгүй, гэмтэхгүй байхыг баталгаажуулж чадна.
HTTP/HTTPSTCP нь вэб контентын бүрэн бүтэн байдал болон зөв байдлыг хангадаг.
UDP нь холболтгүй протокол учраас найдвартай байдлын баталгаа өгдөггүй боловч үр ашиг болон бодит цагийн шинж чанартай байдаг. UDP нь дараах тохиолдолд тохиромжтой:

DNS (Домэйн Нэрийн Систем) гэх мэт бага багцын урсгалDNS асуулга нь ихэвчлэн богино пакетууд байдаг бөгөөд UDP нь тэдгээрийг илүү хурдан гүйцэтгэж чаддаг.
Видео болон аудио зэрэг мультимедиа харилцаа холбооБодит цагийн өндөр шаардлага бүхий мультимедиа дамжуулалтын хувьд UDP нь өгөгдлийг цаг тухайд нь дамжуулах боломжийг хангахын тулд бага хоцрогдол өгч чаддаг.
Өргөн нэвтрүүлгийн харилцаа холбооUDP нь нэгээс олон руу болон олоноос олон руу чиглэсэн харилцаа холбоог дэмждэг бөгөөд өргөн нэвтрүүлгийн мессеж дамжуулахад ашиглаж болно.

Хураангуй
Өнөөдөр бид TCP-ийн талаар мэдэж авлаа. TCP нь холболтод чиглэсэн, найдвартай, байт урсгалд суурилсан тээврийн давхаргын холбооны протокол юм. Энэ нь холболт, гар барих, баталгаажуулах замаар өгөгдлийг найдвартай дамжуулах, эмх цэгцтэй хүлээн авахыг баталгаажуулдаг. TCP протокол нь процессуудын хоорондох холбоог хэрэгжүүлэхийн тулд портуудыг ашигладаг бөгөөд өөр өөр хостууд дээр ажиллаж байгаа програмын процессуудад шууд холбооны үйлчилгээг үзүүлдэг. TCP холболтууд нь бүрэн дуплекс бөгөөд нэгэн зэрэг хоёр чиглэлтэй өгөгдөл дамжуулах боломжийг олгодог. Үүний эсрэгээр UDP нь холболтгүй чиглэсэн холбооны протокол бөгөөд найдвартай байдлын баталгаа өгдөггүй бөгөөд бодит цагийн өндөр шаардлага бүхий зарим тохиолдолд тохиромжтой байдаг. TCP болон UDP нь холболтын горим, үйлчилгээний объект, найдвартай байдал, түгжрэлийн хяналт, урсгалын хяналт болон бусад талуудаараа ялгаатай бөгөөд тэдгээрийн хэрэглээний хувилбарууд нь бас өөр юм.


Нийтэлсэн цаг: 2024 оны 12-р сарын 3