TCP холболтын тохиргоо
Бид Вэбийг үзэх үед имэйл илгээх, имэйл илгээх, эсвэл онлайн тоглоом тоглох, бидний цаана нарийн төвөгтэй сүлжээний холболтын талаар бид ихэвчлэн боддоггүй. Гэсэн хэдий ч энэ нь бидний болон серверийн хооронд тогтвортой харилцааг тогтвортой харилцаатай байдаг. Хамгийн чухал алхамуудын нэг нь TCP холболтын тохиргоо бөгөөд үүний цөм нь гурван талын гар барих явдал юм.
Энэ цоөл Захиалгаан хойшлол, проциигин болон Худлаа явуулахын ачааргаа ярилцана. Алхалт алхамаар гурван талын гар барих нь яагаад тогтвортой холбоо, найдвартай байдлыг тайлбарлана. Гурван талт гар барихыг илүү гүн гүнзгий ойлголттойгоор бид сүлжээний холболтын үндсэн механизмын талаар илүү сайн ойлголттой болох болно.
TCP гурван талын гар барих үйл явц, мужийн шилжилт
TCP нь өгөгдөл дамжуулахаас өмнө холболттой тээврийн протокол юм. Энэ холболт байгуулагдсан үйл явцыг гурван талт гар барих.
Холболт бүрт илгээсэн TCP пакетуудыг илүү ойртуулцгаая.
Эхний ээлжинд үйлчлүүлэгч, сервер хоёулаа хаагдсан байна. Нэгдүгээрт, сервер нь порт дээр идэвхтэй сонсогдож, сонссон төлөвт сонсогдож байгаа нь сервер эхлэх ёстой гэсэн үг юм. Дараачийн, үйлчлүүлэгч вэб хуудас руу нэвтрэхэд бэлэн байна. Сервертэй холболт хийх шаардлагатай байна. Эхний холболтын багцын формат нь дараах байдалтай байна.
Үйлчлүүлэгч холболтыг эхлүүлэх үед энэ нь санамсаргүй эхний дарааллыг (Client_isn) үүсгэж, "дарааллын дугаар" -ийг tcp толгойн "дарааллын дугаар" -ын талбар үүсгэдэг бөгөөд үүнийг TCP-ийн толгойн "дарааллын дугаар" -ыг үүсгэдэг бөгөөд үүнийг "дарааллын дугаар" талбарт байрлуулж, үүнийг TCP толгойн "дарааллаар" үүсгэдэг. Үүний зэрэгцээ үйлчлүүлэгч нь гарын үсэгний байрлалыг 1-ийг зааж өгнө. Үйлчлүүлэгч нь серверт анхны сервер рүү шилжих замаар сервертэй холболт хийхийг хүсч байгааг харуулж байна. Энэ пакет нь програмын давхаргын өгөгдлийг агуулдаггүй (энэ нь, өгөгдлийг илгээдэг). Энэ цэг дээр үйлчлүүлэгчийн статусыг SN-илгээсэн гэж тэмдэглэв.
Сервер нь үйлчлүүлэгчээс серверийн багц хүлээн авах үед энэ нь өөрийн серийн дугаарыг санамсаргүй байдлаар (серверийн дугаар), дараа нь "серверийн дугаарын" of Server дугаарын талбарт "сериалын дугаарын талбарт" сериалын дугаарын талбарт байрлуулна. Дараачийн, сервер нь үйлчлүүлэгч_зөлжийг + 1-т оруулаад SNFINT-ийг "ХУДАЛДАА, АЖИЛЛАГААНЫ ХАМГИЙН ХАМГААЛАХ БОЛОМЖТОЙ БОЛОМЖТОЙ БОЛОМЖТОЙ БОЛОМЖТОЙ. Энэ үед сервер сервер-rcvd төлөвт байна.
Үйлчлүүлэгч нь серверээс пакетыг хүлээн авсны дараа дараагийн оновчтой болгож буй PANDICTAINTACE-ийг дараахь байдлаар гүйцэтгэх шаардлагатай: Нэгдүгээрт үйлчлүүлэгч нь TAPED PANDET-ийн TCP PAILED-ийг 1-ээс 1 болгож тохируулна; Хоёрдугаарт, үйлчлүүлэгч нь "Хариултын дугаарыг баталгаажуулах" талбарт үнэ цэнэтэй байх ёстой. Эцэст нь үйлчлүүлэгч пакетыг серверт илгээдэг. Энэ пакет нь үйлчлүүлэгчээс өгөгдлийг серверт өгөөж авч болно. Эдгээр үйлдлүүдийг дуусгасны дараа үйлчлүүлэгч тогтоосон байдалд орно.
Сервер нь хариуг нь үйлчлүүлэгчээс хүлээн авсны дараа энэ нь тогтоосон байдалд шилждэг.
Дээрх процессоос гурван талын гар барих, гурван талын гар барихад өгөгдөл хийхдээ өгөгдлийг авч явахыг зөвшөөрнө. Гэхдээ эхний хоёр гар барихыг зөвшөөрдөг. Энэ бол ярилцлагад ихэвчлэн асуудаг асуулт юм. Гурван хагас гадаа гар барих нь маргааныг амжилттайдсэн бөгөөд хэрэв эхдсэн байгууллагаас амжилттай байгуулж, CTM-ийн Туслах нь энэ талаар мэдээлэл, сервер өгөгдлийг өгч эхлэх боломжтой.
Яагаад гурван гар барих вэ? Хоёр удаа биш, дөрвөн удаа?
Нийтлэг хариулт нь "Учир нь энэ нь гурван талт гар барих, илгээх чадварыг баталгаажуулдаг." Энэ хариулт зөв байна, гэхдээ энэ нь зөвхөн гадаргуугийн шалтгаан бөгөөд гол шалтгааныг дамжуулахгүй. Энэ асуудлаар даван туулахын тулд гурван талаас гарах шалтгааныг би гурван талаас гүнзгийрүүлэх шалтгааныг шинжлэх болно.
Түүхэн давтагдсан холболтыг эхлүүлэхэд гурван талын гар барих нь үр дүнтэй эхлэхээс зайлсхийх боломжтой (гол шалтгаан)
Хоёр талын гар барих баталгаа нь хоёр тал нь найдвартай анхны дарааллыг хүлээн авсан.
Гурван талт гар барих нь нөөцийг үрэхээс зайлсхийдэг.
Шалтгаан 1: Түүхэн давхардсан хувилбараас зайлсхий
Товчхондоо, гурван талын гар барих нь хуучин давхардсан холболтын эх үүсвэрээс үүдэлтэй төөрөгдөл юм. Нарийн нарийн төвөгтэй орчинд, мэдээллийн пакетуудыг дамжуулах нь тухайн цаг хугацааны болон хуучин түгжрэл, бусад шалтгаанаар очих газрын хост руу очихыг үргэлж илгээдэггүй. Үүнээс зайлсхийхийн тулд TCP нь холболтыг бий болгох гурван талт гар барих.
Үйлчлүүлэгч нь сүлжээнд олон тооны холболтын байгууламжийг залгамжлахад, сүлжээний түгжрэл гэх мэт нөхцөл байдалд олон тооны холболтын багц илгээдэг.
1- Хуучин сингийн багц нь хамгийн сүүлийн үеийн слайдуудын өмнө сервер дээр ирдэг.
2- Сервер хуучин сийлбэрийг хүлээн авсны дараа серверт сингл + ACK пакетад хариу өгөх болно.
3- Үйлчлүүлэгч нь Syn + Ack Packet-ийг хүлээн авахад холболт нь тухайн контекст холболтын дагуу (дарааллын дугаар), дараа нь холболтыг ашиглана уу, дараа нь холболтыг таслан зогсоохын тулд RST PACKET-ийг серверт илгээнэ үү.
Хоёр гар барих холболттой бол одоогийн холболт нь түүхэн холболт юм бол тодорхойлох арга байхгүй. Гурван талт гар барих нь үйлчлүүлэгч нь контекстийг гуравдагч пакет илгээхэд суурилсан түүхэн холболтыг тодорхойлох боломжийг олгодог.
1- Хэрэв энэ нь түүхэн холболт юм (дарааллын дугаар), хугацаа нь дууссан эсвэл завсарлагааны хугацаатай, хугацаа нь гурав дахь гар урлалаар илгээсэн пакет юм.
2- Хэрэв энэ нь түүхэн холболт биш бол гуравдахь удаагаа илгээгдсэн бол пакет нь ACK пакет юм, хоёр харилцаатай талууд нь холболтыг амжилттай байгуулдаг.
Тиймээс TCP нь TCP нь гурван талын гар барих нь түүхэн холболтоос урьдчилан сэргийлэхийн тулд холболтыг эхлүүлж байгаа гол шалтгаан юм.
Шалтгаан 2: Хоёр намын анхны дарааллыг синк хийх
TCP Proctocol хоёр тал нь дарааллыг хадгалахын тулд дарааллын дугаарыг хадгалах ёстой. Дарааллын тоо нь TCP холболтонд чухал үүрэг гүйцэтгэдэг. Дараахь зүйлийг хийх.
Хүлээн авагч нь давхардсан өгөгдлийг арилгаж, өгөгдлийн нарийвчлалыг баталгаажуулж чадна.
Хүлээн авагч нь өгөгдлийн бүрэн бүтэн байдлыг хангах үүднээс багцын дарааллаар пакетуудыг хүлээн авах боломжтой.
● Дарааллын дугаар нь нөгөө талдаа хүлээн авсан өгөгдлийг хүлээн авсан өгөгдлийн багцыг тодорхойлж, найдвартай өгөгдлийг дамжуулах боломжтой.
Тиймээс, TCP холболтыг тогтооход үйлчлүүлэгч анхны дарааллын дугаараар дамжуулж, үйлчлүүлэгчийн сийлбэрийг амжилттай хүлээн авахын тулд серверийг илгээх шаардлагатай. Дараа нь сервер нь үйлчлүүлэгчдэд серверийн эхний дарааллыг анхны дарааллаар илгээдэг бөгөөд энэ нь эхний дарааллыг найдвартай синхрончлохыг баталгаажуулна.
Хэдийгээр дөрвөн талын гар барих нь хоёулаа хоёулаа хоёулаа хоёуланд нь анхны дарааллыг найдвартай синхрон бөгөөд хоёр, гурав дахь алхамыг синхрончлох боломжтой бөгөөд хоёр, гурав дахь алхамыг нэг алхамаар нэг алхамаар нэг алхамаар нэг алхамаар нэг алхамаар нэг алхамаар нэг алхамаар нэг алхамаар нэгтгэх болно. Гэсэн хэдий ч хоёр гар барих нь зөвхөн нэг намын эхний дарааллыг амжилттай хүлээн авах нь зөвхөн нэг намын дарааллыг амжилттай хүлээж авах болно. Тиймээс TCP холболтын тогтвортой байдал, найдвартай байдлыг хангахын тулд гурван талын гар барих нь хамгийн сайн сонголт юм.
Шалтгаан 3: Нөөцийг үрэхээс зайлсхий
Хэрэв SENTER сүлжээнд байгаа "хоёр гар барих" байгаа бол үйлчлүүлэгч серверээс илгээсэн ACK пакетыг хүлээн авах боломжгүй тул серфефефетийг серверээс авах боломжгүй. Гэсэн хэдий ч гуравдахь гар урлал байхгүй тул сервер нь холболтыг бий болгохын тулд акк хүлээн авах эсэхийг тодорхойлж чадахгүй. Тиймээс сервер нь дан хүсэлт тус бүрийг хүлээн авсны дараа холболтыг идэвхтэй болгож чадна. Энэ нь дараахь зүйлийг хүргэдэг.
Нөөцийг үрэнжүүлэх: Хэрэв үйлчлүүлэгчийн үр дүнг хориглож байгаа бол серверийн олон дамжуулалтыг давтан дамжуулж, хүсэлтийг хүлээн авсны дараа олон тооны дамжуулалттай холболтыг ашиглана. Энэ нь серверийн нөөцийн шаардлагагүй хаягдалд хүргэдэг.
Зурвасын үлдэгдэл: Гурав дахь гар урлал дутагдаж байгаа тул уг үйлчлүүлэгч нь холболтыг зөв хүлээн авах эсэхийг мэдэх ямар ч арга байхгүй. Үүний үр дүнд, хэрэв зурвасууд сүлжээнд гацах бол үйлчлүүлэгч нь серверээс дахин, дахин шинэ холболт үүсгэх болно. Энэ нь сүлжээний түгжрэлийг нэмэгдүүлж саатуулах, саатуулах, секс хийх ерөнхий гүйцэтгэлд нөлөөлөх болно.
Тиймээс сүлжээний холболтын тогтвортой байдал, найдвартай байдлыг хангахын тулд TCP нь эдгээр асуудлаас зайлсхийхийн тулд гурван талын гар барихыг баталгаажуулахын тулд TCP-ийг ашиглана уу.
Товч утга
Тухайлах ялгац гишүүнСүлжээний багц брокерTCP холболтын байгуулалтыг гурван талт гар барихаар хийдэг. Гурван талт гар барих хугацаанд үйлчлүүлэгч эхлээд серверт серветийг серветээр илгээж, холболт хийхийг харуулж байна. Үйлчлүүлэгчээс хүсэлтийг хүлээн авсны дараа сервер нь сервер нь холболтын хүсэлтийг хүлээн аваад, холболтын хүсэлтийг хүлээн аваад өөрийн анхны дарааллыг илтгэж, өөрийн анхны дарааллыг илтгэнэ. Эцэст нь үйлчлүүлэгч нь холболт амжилттай болсон болохыг илтгэхийн тулд үйлчлүүлэгч нь серверт ACK тугтай хариу өгсөн. Ийэрсэн, хоёр тал нь тогтоосон байдалд байгаа бөгөөд бие биендээ өгөгдөл илгээж эхлэх боломжтой.
Ерөнхийдөө, TCP холболтын байгууламжийн гурван талт үйл явц нь холболтын тогтвортой байдал, найдвартай байдлыг хангахад зориулагдсан бөгөөд түүхэн холболтын төөрөгдөл, эх сурвалжийг хүлээн авахаас зайлсхийж, хоёуланг нь хүлээн авах, өгөгдлийг хүлээн авах боломжтой.
Бичлэгийн цаг: 1-р сарын 08-2025