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

Өнөөдөр бид TCP дээр анхаарлаа төвлөрүүлж эхлэх болно. Давхаргын тухай бүлгийн эхэнд бид нэг чухал зүйлийг дурдсан. Сүлжээний давхарга болон түүнээс доош түвшинд энэ нь хостоос хост холболтын тухай бөгөөд энэ нь таны компьютер өөр компьютертэй холбогдохын тулд хаана байгааг мэдэх шаардлагатай гэсэн үг юм. Гэсэн хэдий ч сүлжээн дэх харилцаа холбоо нь машин хоорондын холбоо гэхээсээ илүү процесс хоорондын харилцаа холбоо юм. Тиймээс TCP протокол нь порт гэсэн ойлголтыг нэвтрүүлсэн. Порт нь зөвхөн нэг процессоор ажиллах боломжтой бөгөөд энэ нь өөр өөр хостууд дээр ажиллаж байгаа програмын процессуудын хооронд шууд холбоо тогтоох боломжийг олгодог.

Тээврийн давхаргын үүрэг бол өөр өөр хостууд дээр ажиллаж байгаа хэрэглээний процессуудын хооронд шууд харилцаа холбооны үйлчилгээг хэрхэн хангах явдал тул үүнийг төгсгөлийн протокол гэж нэрлэдэг. Тээврийн давхарга нь сүлжээний үндсэн нарийн ширийн зүйлийг нуун дарагдуулдаг бөгөөд энэ нь хэрэглээний процесст хоёр тээврийн давхаргын объектуудын хооронд логик төгсгөл хоорондын харилцааны суваг байгаа мэт харагдах боломжийг олгодог.

TCP нь Transmission Control Protocol гэсэн үг бөгөөд холболтод чиглэсэн протокол гэж нэрлэгддэг. Энэ нь нэг програм нөгөө рүү өгөгдөл илгээж эхлэхээс өмнө хоёр процесс гар барих ёстой гэсэн үг юм. Гар барих нь өгөгдлийг найдвартай дамжуулах, эмх цэгцтэй хүлээн авах логик холбоотой үйл явц юм. Гар барилцах үед өгөгдөл дамжуулах амжилттай байхын тулд хэд хэдэн хяналтын багцуудыг солилцож, зарим параметр, дүрмийг тохиролцох замаар эх сурвалж болон очих хостуудын хооронд холболт үүсдэг.

TCP гэж юу вэ? (MylinkingСүлжээний товшболонСүлжээний пакет брокерTCP эсвэл UDP пакетуудыг хоёуланг нь боловсруулах боломжтой)
TCP (Transmission Control Protocol) нь холболтод чиглэсэн, найдвартай, байт урсгалд суурилсан тээврийн түвшний харилцааны протокол юм.

Холболтод чиглэсэн: Холболтын чиг баримжаатай гэдэг нь 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 гэж тохируулсан бол холболт хийгдэх ба дарааллын дугаар талбарт дарааллын дугаарын анхны утгыг тохируулна гэсэн үг.
FIN бит: Энэ бит 1 байвал цаашид дахиж өгөгдөл илгээхгүй бөгөөд холболтыг хүсэж байна гэсэн үг.
TCP-ийн янз бүрийн функц, шинж чанарууд нь TCP багц сегментүүдийн бүтцээр тодорхойлогддог.

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

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

UDP сегмент

Очих газар ба эх портууд: Тэдний гол зорилго нь UDP ямар процесс руу пакет илгээхийг зааж өгөх явдал юм.
Пакетийн хэмжээ: Пакетийн хэмжээ талбар нь UDP толгойн хэмжээг нэмж өгөгдлийн хэмжээг агуулна
Шалгалтын дүн: UDP толгой болон өгөгдлийг найдвартай хүргэх зорилгоор бүтээгдсэн. Шалгах нийлбэрийн үүрэг нь өгөгдлийн бүрэн бүтэн байдлыг хангахын тулд 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/HTTPS: TCP нь вэб контентын бүрэн бүтэн байдал, зөв ​​байдлыг баталгаажуулдаг.
UDP нь холболтгүй протокол учраас найдвартай байдлын баталгаа өгдөггүй, гэхдээ үр ашигтай, бодит цагийн шинж чанартай байдаг. UDP нь дараах хувилбаруудад тохиромжтой.

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

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


Шуудангийн цаг: 2024 оны 12-р сарын 03-ны өдөр