טקפּ קאַנעקשאַן סעטאַפּ
ווען מיר בלעטער אויף די וועב, שיקן אַ E- בריוו, אָדער שפּיל אַן אָנליין שפּיל, מיר אָפט טאָן ניט טראַכטן וועגן דעם קאָמפּלעקס נעץ פֿאַרבינדונג הינטער עס. אָבער, דאָס איז די פּאָנעם קליין טריט וואָס ענשור סטאַביל קאָמוניקאַציע צווישן אונדז און די סערווער. איינער פון די מערסט וויכטיק סטעפּס איז די טקפּ קאַנעקשאַן סעטאַפּ, און די האַרץ פון דעם איז די דריי-וועג האַנדשייק.
דער אַרטיקל וועט דיסקוטירן דעם פּרינציפּ, פּראָצעס און וויכטיקייט פון די דריי-וועג האַנדשייק אין דעטאַל. שריט דורך שריט, מיר וועלן דערקלערן וואָס די דרייַ-וועג כאַנדשייק איז דארף, ווי אַזוי ינשורז קאַנעקשאַן פעסטקייַט און רילייאַבילאַטי, און ווי וויכטיק עס איז פֿאַר דאַטן אַריבערפירן. מיט אַ דיפּער פארשטאנד פון די דרייַ-וועג האַנדשאַקע, מיר וועלן באַקומען אַ בעסער פארשטאנד פון די אַנדערלייינג מעקאַניזאַמז פון נעץ קאָמוניקאַציע און אַ קלירער מיינונג פון די רילייאַבילאַטי פון טקפּ קאַנעקשאַנז.
טקפּ דריי-וועג האַנדשייק פּראָצעס און שטאַט טראַנזישאַנז
טקפּ איז אַ קשר-אָריענטיד אַריבערפירן פּראָטאָקאָל, וואָס ריקווייערז קשר די פאַרלייגן איידער דאַטן טראַנסמיסיע. דעם קשר פאַרלייגן פּראָצעס איז דורכגעקאָכט דורך אַ דריי-וועג האַנדשייק.
לאָמיר נעמען אַ נעענטער קוק אין די טקפּ פּאַקיץ וואָס זענען געשיקט אין יעדער קשר.
טכילעס, ביידע דער קליענט און סערווער זענען פֿאַרמאַכט. ערשטער, דער סערווער אַקטיוולי ליסאַנז אויף אַ פּאָרט און איז אין די הערן שטאַט, וואָס מיטל אַז דער סערווער מוזן זיין סטאַרטעד. דערנאָך, דער קליענט איז גרייט צו אָנהייבן אַקסעס די וועבפּאַגע. עס דאַרף גרינדן אַ קשר מיט די סערווער. די פֿאָרמאַט פון דער ערשטער פֿאַרבינדונג פּאַקאַט איז ווי גייט:
ווען אַ קליענט ינישיאַץ אַ קשר, עס דזשענערייץ אַ טראַפ - ערשט סיקוואַנס נומער (קליענט_סן) און ערטער עס אין די "סיקוואַנס נומער" פעלד פון TCP כעדער. אין דער זעלביקער צייט, דער קליענט שטעלט דעם סוואַגירן די שפּיל פלאַג שטעלע צו 1 צו אָנווייַזן אַז די אַוטגאָוינג פּאַקאַט איז אַ סין פּאַקאַט. דער קליענט ינדיקייץ אַז עס וויל צו פאַרלייגן אַ קשר מיט די סערווער דורך שיקן די ערשטער שפּיל אָנליין. דער פּאַקאַט טוט נישט אַנטהאַלטן אַפּלאַקיישאַן שיכטע דאַטן (דאָס איז, דאַטן געשיקט). אין דעם פונט, די סטאַטוס פון דעם קליענט איז אנגעצייכנט ווי סין-געשיקט.
ווען אַ סערווער נעמט אַ סעקשאַן פון אַ קליענט, עס ראַנדאַמלי יניטיזעס זייַן אייגענע סיריאַל נומער (Server_isn) און דערנאָך שטעלן דעם נומער אין די "סיריאַל נומער" פעלד פון די טקפּ כעדער. דערנאָך די סערווער גייט אריין Client_ISN + 1 אין די "באַשטעטיקונג נומער" פעלד און סעץ ביידע סיווער צו 1. סוף ביץ צו 1. סוף ביץ). אין דעם צייט, דער סערווער איז אין סינ-רקווד שטאַט.
אַמאָל דער קליענט נעמט דעם פּאַקאַט פון די סערווער, עס דאַרף צו דורכפירן די פאלגענדע אָפּטימיזאַטיאָנס צו ריספּאַנד צו די לעצט ענטפער פּאַקאַט: ערשטער, דער קליענט שטעלט די אַקק ביסל פון די טקפּ כעדער פון די ענטפער פּאַקאַט צו 1; רגע, דער קליענט גייט אריין די ווערט Server_isn + 1 אין די "באַשטעטיקן ענטפֿערן נומער" פעלד; לעסאָף, דער קליענט סענדז די פּאַקאַט צו די סערווער. דעם פּאַקאַט קענען פירן דאַטן פון דער קליענט צו די סערווער. נאָך קאַמפּלישאַן פון די אַפּעריישאַנז, דער קליענט וועט אַרייַן די געגרינדעט שטאַט.
אַמאָל דער סערווער באקומט די ענטפער פּאַקאַט פון דעם קליענט, עס אויך באַשטימען צו די געגרינדעט שטאַט.
ווי איר קענען זען פֿון דעם אויבן פּראָצעס, ווען דורכפירן אַ דריי-וועג כאַנדשייק, די דריט האַנדשייק איז ערלויבט צו פירן דאַטן, אָבער דער ערשטער צוויי האַנדשאַקעס זענען נישט. דאָס איז אַ קשיא וואָס איז אָפט געבעטן אין ינטערוויוז. אַמאָל די דריי-וועג כאַנדשייק איז גאַנץ, ביידע פּאַרטיעס אַרייַן די געגרינדעט שטאַט, וואָס ינדיקייץ אַז די קשר איז הצלחה געגרינדעט, אין וואָס פונט דער קליענט און סערווער קענען אָנהייבן שיקט דאַטן צו יעדער אנדערער.
פארוואס דריי האַנדשאַקעס? נישט צוויי מאָל, פיר מאָל?
דער פּראָסט ענטפֿערן איז, "ווייַל די דריי-וועג כאַנדאַלאַקע געראַנטיז די פיייקייט צו באַקומען און שיקן." דער ענטפער איז ריכטיק, אָבער עס איז בלויז די ייבערפלאַך סיבה, קען נישט שטעלן די הויפּט סיבה. אין די פאלגענדע, איך וועט אַנאַלייז די סיבות פֿאַר די דרייַיק האַנדשייק פון דרייַ אַספּעקץ צו דיפּאַן אונדזער פארשטאנד פון דעם אַרויסגעבן.
די דריי-וועג האַנדשייק קענען יפעקטיוולי ויסמיידן די יניטיאַליזאַטיאָן פון כיסטאָריקלי ריפּיטיד קאַנעקשאַנז (די הויפּט סיבה)
די דריי-וועג האַנדשאַקע, אַז ביידע פּאַרטיעס האָבן באקומען אַ פאַרלאָזלעך ערשט סיקוואַנס נומער.
די דריי-וועג פּישאַנדאַקע אַוווידז ווייסטינג רעסורסן.
סיבה 1: ויסמיידן היסטארישע דופּליקאַט דזשאָינס
אין אַ נאַטשעל, די הויפּט סיבה פֿאַר די דריי-וועג האַנדשייק איז צו ויסמיידן צעמישונג געפֿירט דורך די אַלט דופּליקאַט קאַנעקשאַן יניטיאַליזאַטיאָן. אין אַ קאָמפּלעקס נעץ סוויווע, די טראַנסמיסיע פון דאַטן פּאַקיץ איז ניט שטענדיק געשיקט צו די דעסטיניישאַן באַלעבאָס אין לויט מיט די אַלט דאַטן פּאַקיץ קען אָנקומען צו די דעסטיניישאַן באַלעבאָס ערשטער ווייַל פון די דעסעסטיאָן פון די נעץ. צו ויסמיידן דעם, טקפּ ניצט אַ דריי-וועג כאַנדשייק צו פאַרלייגן די קשר.
ווען אַ קליענט סענדז קייפל סינס פֿאַרבינדונג פאַרלייגן פון די סאַקסעשאַן, אין סיטואַטיאָנס אַזאַ ווי נעץ קאַנדזשעסטשאַן, די פאלגענדע קען פּאַסירן:
1- די אַלט סעק פּאַקיץ אָנקומען צו די סערווער איידער די לעצטע סעקשאַן.
2- דער סערווירער וועט ענטפֿערן אַ סיף + אַקק פּאַקאַט צו דער קליענט נאָך באקומען די אַלט סעק.
3- ווען דער קליענט נעמט די סני + אַקק פּאַקאַט, עס דאַטערמאַנז אַז די קינעמענט איז אַ היסטארישע קשר (סיקוואַנס נומער אויסגעגאנגען אָדער טיימאַוט) לויט צו זיין אייגן קאָנטעקסט, און דאַן סענדז פּאַקאַט צו די רעקווירעמענץ צו די סערווער צו אַבאָרט די קשר.
מיט אַ צוויי-האַנדשאַקע קשר, עס איז קיין וועג צו באַשליסן צי די קראַנט קשר איז אַ היסטארישע קשר. די דריי-וועג האַנדשייק אַלאַוז די קליענט צו באַשליסן צי די קראַנט קשר איז אַ היסטארישע קשר באזירט אויף דעם קאָנטעקסט ווען עס איז גרייט צו שיקן די דריט פּאַקאַט:
1- אויב עס איז אַ היסטארישע קשר (סיקוואַנס נומער אויסגעגאנגען אָדער טיימאַוט), די פּאַקאַט געשיקט דורך די דריט האַנדשייק איז אַ רסט פּאַקאַט צו אַבאָרט די היסטארישע קשר.
2 - אויב עס איז נישט אַ היסטארישע קשר, די פּאַקאַט געשיקט פֿאַר די דריט מאָל איז אַן אַקק פּאַקאַט, און די צוויי קאַמיונאַקייטינג פּאַרטיעס הצלחה פאַרלייגן די קשר.
דעריבער, דער הויפּט סיבה אַז TCP ניצט די דריי-וועג כאַנדשייק איז אַז עס יניכטיזעס די קשר צו פאַרמייַדן היסטארישע קאַנעקשאַנז.
סיבה 2: צו סינגקראַנייז די ערשט סיקוואַנס נומערן פון ביידע פּאַרטיעס
ביידע זייטן פון די TCP פּראָטאָקאָל מוזן טייַנען אַ סיקוואַנס נומער, וואָס איז אַ שליסל פאַקטאָר צו ענשור פאַרלאָזלעך טראַנסמיסיע. סיקוואַנס נומערן שפּילן אַ וויכטיק ראָלע אין טקפּ קאַנעקשאַנז. זיי טאָן די פאלגענדע:
דער ופנעמער קענען עלימינירן דופּליקאַט דאַטן און ענשור די אַקיעראַסי פון די דאַטן.
דער ופנעמער קענען באַקומען פּאַקיץ אין די סדר פון די סיקוואַנס נומער צו ענשור די אָרנטלעכקייַט פון די דאַטן.
● די סיקוואַנס נומער קענען ידענטיפיצירן די דאַטן פּאַקאַט וואָס איז באקומען דורך די אנדערע פּאַרטיי, וואָס ינייבאַלינג פאַרלאָזלעך דאַטן טראַנסמיסיע.
דעריבער, אויף גרינדן אַ טקפּס פֿאַרבינדונג, דער קליענט סענדז סין פּאַקיץ מיט די ערשט סיקוואַנס נומער און ריקווייערז די סערווער צו ענטפֿערן מיט אַ אַקק פּאַקאַט ינדאַסינג אָפּטראָג פון דעם סין פּאַקאַט פון דער קליענט. דערנאָך, דער סערווער סענדז די שפּיל פּאַפּאַנסע מיט די ערשט סיקוואַנס נומער צו דער קליענט און ווייץ פֿאַר דער קליענט צו ענטפֿערן, אַמאָל און פֿאַר אַלע, צו ענשור אַז די ערשט סיקוואַנס נומערן זענען רילייאַבלי סינגקראַוואַלז.
כאָטש אַ פיר-וועג האַנטשייק איז אויך מעגלעך צו רילייאַבלי סינגקראַנייז די ערשט סיקוואַנס נומערן פון ביידע פּאַרטיעס, די רגע און דריט טרעפּ קענען זיין קאַמביינד אין אַ איין שריט, ריזאַלטינג אין אַ דרייַ-וועג האַנדהאָלאַקע. אָבער, די צוויי האַנדשאַקעס קענען בלויז גאַראַנטירן אַז די ערשט סיקוואַנס נומער פון איין פּאַרטיי איז הצלחה באקומען דורך די אנדערע פּאַרטיי, אָבער עס איז קיין גאַראַנטירן אַז די ערשט סיקוואַנס נומער פון ביידע פּאַרטיעס קענען זיין באשטעטיקט. דעריבער, די דרייַ-וועג פּיששייק איז דער בעסטער ברירה צו נעמען אין סדר צו ענשור די פעסטקייַט און רילייאַבילאַטי פון טקפּ קאַנעקשאַנז.
סיבה 3: ויסמיידן ווייסטינג רעסורסן
אויב עס איז בלויז אַ "טיששייק", ווען דער קליענט סהינט בעטן איז אפגעשטעלט אין די נעץ, דער קליענט קען דער קליענט קען נישט באַקומען די ACK פּאַקאַט געשיקט דורך די סערווער, אַזוי די סין וועט זיין פאַריבל האָבן. אָבער, זינט עס איז קיין דריט כאַנדשייק, די סערווירער קען נישט באַשליסן צי דער קליענט באקומען אַן אַקק באַשטעטיקונג צו גרינדן די קשר. דער סערווירער קענען בלויז פּראָואַקטיוולי פאַרלייגן אַ קשר נאָך ריסיווינג יעדער סינע בעטן. דאָס פירט צו די פאלגענדע:
וויסט פון רעסורסן: אויב דער שפּיל פון דעם קלימסי איז אפגעשטעלט, ריזאַלטינג אין ריפּיטיד קאַמישאַן פון קייפל סינעס, דער סערווער וועט פאַרלייגן קייפל יבעריק קאַנעקשאַנז נאָך באקומען די בעטן. דאָס פירט צו אַ ומנייטיק וויסט פון סערווער רעסורסן.
אָנזאָג ריטענשאַן: רעכט צו דער פעלן פון 1/3 כאַנדשייק, די סערווער האט קיין וועג צו וויסן צי דער קליענט ריכטיק באקומען די ACK באַשטעטיקונג צו גרינדן די קשר. ווי אַ רעזולטאַט, אויב אַרטיקלען באַקומען סטאַק אין די נעץ, דער קליענט וועט האַלטן שיקט סין ריקוועס איבער און איבער ווידער, קאָזינג די סערווער צו ינסטאַלירן קעסיידער נייַ קאַנעקשאַנז. דאָס וועט פאַרגרעסערן נעץ קאַנדזשעסטשאַן און פאַרהאַלטן און נעגאַטיוולי ווירקן די קוילעלדיק נעץ פאָרשטעלונג.
דעריבער, אין סדר צו ענשור די פעסטקייַט און רילייאַבילאַטי פון די נעץ פֿאַרבינדונג, טקפּ ניצט די דריי-וועג כאַנדשייק צו גרינדן די קשר צו ויסמייַדן די פּאַסירונג פון די פּראָבלעמס.
קיצער
דינעץ פּאַקאַט מעקלערטקפּ קאַנעקשאַן פאַרלייגן איז דורכגעקאָכט מיט אַ דריי-וועג האַנדשייק. בעשאַס די דריי-וועג פּישאַנדייק, דער קליענט ערשטער סענדז אַ פּאַקאַט מיט די שפּיל שינאַל צו די סערווער, וואָס ינדיקייץ אַז עס וויל צו פאַרלייגן אַ קשר. נאָך באקומען די בעטן פון דעם קליענט, דער סערווירער ענטפֿערס אַ פּאַקאַט מיט סינקעט מיט סינק פלאַגס צו דער קליענט, וואָס ינדיקייץ אַז די פֿאַרבינדונג בעטן איז אנגענומען, און סענדז זייַן אייגענע ערשט סיקוואַנס. לעסאָף, דער קליענט ענטפֿערס מיט אַ אַקק פאָן צו די סערווער צו די סערווער צו אָנווייַזן אַז די קשר איז הצלחה געגרינדעט. די צוויי פּאַרטיעס זענען אין די געגרינדעט שטאַט און קענען אָנהייבן שיקט דאַטן צו יעדער אנדערער.
אין אַלגעמיין, די דריי-וועג כיששייק פּראָצעס פֿאַר טקפּ קאַנעקשאַן פאַרלייגן איז דיזיינד צו ענשור קאַנעקשאַן פּרעפיפולטיאָנס פעסטקייַט און רילייאַבילאַטי, ויסמיידן צעמישונג און וויסט פון רעסורסן איבער היסטאָריש קאַנעקשאַנז, און ענשור אַז ביידע פּאַרטיעס זענען ביכולת צו באַקומען געזונט קענען באַקומען און שיקן דאַטן.
פּאָסטן צייט: Jan-08-2025