TCP ئۇلىنىش تەڭشىكى
تورنى كۆرگەندە ، ئېلېكترونلۇق خەت ئەۋەتسەك ياكى تور ئويۇنى ئوينىغاندا ، بىز ئۇنىڭ ئارقىسىدىكى مۇرەككەپ تور ئۇلىنىشىنى ئويلىمايمىز. قانداقلا بولمىسۇن ، بۇ قارىماققا كىچىك قەدەملەر بىز بىلەن مۇلازىمېتىر ئوتتۇرىسىدىكى مۇقىم ئالاقىنى كاپالەتلەندۈرىدۇ. ئەڭ مۇھىم قەدەملەرنىڭ بىرى TCP ئۇلىنىشى بولۇپ ، بۇنىڭ يادروسى ئۈچ يۆنىلىشلىك قول ئېلىشىش.
بۇ ماقالىدە ئۈچ يۆنىلىشلىك قول ئېلىشىشنىڭ پرىنسىپى ، جەريانى ۋە ئەھمىيىتى تەپسىلىي مۇلاھىزە قىلىنىدۇ. قەدەممۇ-قەدەم ، ئۈچ يۆنىلىشلىك قول ئېلىشىشنىڭ نېمە ئۈچۈن لازىملىقى ، ئۇلىنىشنىڭ مۇقىملىقى ۋە ئىشەنچلىكلىكىگە قانداق كاپالەتلىك قىلىدىغانلىقى ۋە سانلىق مەلۇمات يوللاشنىڭ نەقەدەر مۇھىملىقىنى چۈشەندۈرۈپ ئۆتىمىز. ئۈچ يۆنىلىشلىك قول ئېلىشىپ كۆرۈشۈشنى تېخىمۇ چوڭقۇر چۈشىنىش ئارقىلىق تور ئالاقىسىنىڭ ئاساسىي مېخانىزملىرىنى تېخىمۇ ياخشى چۈشىنىمىز ۋە TCP ئۇلىنىشىنىڭ ئىشەنچلىكلىكىنى تېخىمۇ ئېنىق چۈشىنىمىز.
TCP ئۈچ يۆنىلىشلىك قول ئېلىشىش جەريانى ۋە دۆلەت ئۆتكۈنچى دەۋرى
TCP ئۇلىنىشنى ئاساس قىلغان قاتناش كېلىشىمنامىسى بولۇپ ، سانلىق مەلۇمات يوللاشتىن بۇرۇن ئۇلىنىش ئورنىتىشنى تەلەپ قىلىدۇ. بۇ باغلىنىشنى قۇرۇش جەريانى ئۈچ يۆنىلىشلىك قول ئېلىشىش ئارقىلىق ئېلىپ بېرىلىدۇ.
ھەر بىر ئۇلىنىشتا ئەۋەتىلگەن TCP بولاقلىرىنى تەپسىلىي كۆرۈپ باقايلى.
دەسلەپتە ، خېرىدار ۋە مۇلازىمېتىر ھەر ئىككىسى تاقالغان. ئالدى بىلەن ، مۇلازىمېتىر بىر ئېغىزنى ئاكتىپلىق بىلەن ئاڭلايدۇ ۋە LISTEN ھالەتتە بولىدۇ ، يەنى مۇلازىمېتىرنى چوقۇم قوزغىتىش كېرەك. كېيىنكى قەدەمدە ، خېرىدار تور بەتنى زىيارەت قىلىشقا باشلايدۇ. مۇلازىمېتىر بىلەن ئۇلىنىش ئورنىتىشى كېرەك. بىرىنچى ئۇلىنىش بوغچىسىنىڭ شەكلى تۆۋەندىكىچە:
خېرىدار ئۇلىنىشنى قوزغاتقاندا ، ئىختىيارى تەرتىپ تەرتىپ نومۇرى (client_isn) ھاسىل قىلىپ ، ئۇنى TCP ماۋزۇسىنىڭ «تەرتىپ نومۇرى» مەيدانىغا قويىدۇ. شۇنىڭ بىلەن بىر ۋاقىتتا ، خېرىدار SYN بايراق ئورنىنى 1 قىلىپ تەڭشەپ ، چىققان بولاقنىڭ SYN بولاق ئىكەنلىكىنى كۆرسىتىپ بېرىدۇ. بۇ خېرىدار تۇنجى SYN بولىقىنى مۇلازىمېتىرغا ئەۋەتىش ئارقىلىق مۇلازىمېتىر بىلەن ئۇلىنىش ئورنىتىشنى خالايدىغانلىقىنى كۆرسىتىدۇ. بۇ بولاقتا پروگرامما قەۋىتى سانلىق مەلۇماتلىرى (يەنى ئەۋەتىلگەن سانلىق مەلۇمات) يوق. بۇ ۋاقىتتا ، خېرىدارنىڭ ھالىتى SYN-SENT دەپ بەلگە قويۇلغان.
مۇلازىمېتىر خېرىداردىن SYN بوغچىسىنى تاپشۇرۇۋالغاندا ، ئىختىيارىي ھالدا ئۆزىنىڭ تەرتىپ نومۇرى (server_isn) نى قوزغىتىدۇ ، ئاندىن بۇ ساننى TCP ماۋزۇسىنىڭ «تەرتىپ نومۇرى» مەيدانىغا قويىدۇ. كېيىنكى قەدەمدە ، مۇلازىمېتىر «ئېتىراپ قىلىش نومۇرى» بۆلىكىدە client_isn + 1 گە كىرىدۇ ۋە SYN ۋە ACK ھەر ئىككىسىنى 1 گە تەڭشەيدۇ. ئاخىرىدا ، مۇلازىمېتىر بۇ بولاقنى خېرىدارغا ئەۋەتىدۇ ، ئۇنىڭدا ھېچقانداق پروگرامما قەۋىتى سانلىق مەلۇمات يوق (ھەمدە مۇلازىمېتىر ئۈچۈن سانلىق مەلۇمات يوق) ئەۋەتىش). بۇ ۋاقىتتا مۇلازىمېتىر SYN-RCVD ھالەتتە.
خېرىدار بوغچىنى مۇلازىمېتىردىن تاپشۇرۇۋالغاندىن كېيىن ، ئاخىرقى جاۋاب بوغچىسىغا جاۋاب قايتۇرۇش ئۈچۈن تۆۋەندىكى ئەلالاشتۇرۇشلارنى قىلىشى كېرەك: بىرىنچى ، خېرىدار جاۋاب بوغچىسىنىڭ TCP بېشىنىڭ ACK bit نى 1 گە تەڭشەيدۇ. ئىككىنچىدىن ، خېرىدار «جاۋاب نومۇرىنى جەزملەشتۈرۈش» دېگەن ئورۇنغا مۇلازىمېتىر_ isn + 1 نى كىرگۈزىدۇ. ئاخىرىدا ، خېرىدار بۇ بولاقنى مۇلازىمېتىرغا ئەۋەتىدۇ. بۇ بولاق خېرىداردىن مۇلازىمېتىرغا سانلىق مەلۇمات ئېلىپ بارالايدۇ. بۇ مەشغۇلاتلار تاماملانغاندىن كېيىن ، خېرىدار ESTABLISHED ھالىتىگە كىرىدۇ.
مۇلازىمېتىر خېرىدارنىڭ جاۋاب بولىقىنى تاپشۇرۇۋالغاندىن كېيىن ، ئۇ يەنە ESTABLISHED ھالىتىگە ئۆتىدۇ.
يۇقارقى جەرياندىن كۆرۈۋېلىشقا بولىدۇكى ، ئۈچ يۆنىلىشلىك قول ئېلىشىپ كۆرۈشكەندە ، ئۈچىنچى قول ئېلىشىپ كۆرۈشۈش سانلىق مەلۇمات ئېلىپ يۈرۈشكە رۇخسەت قىلىنغان ، ئەمما ئالدىنقى ئىككى قېتىملىق قول ئېلىشىش ئۇنداق ئەمەس. بۇ سوئاللار دائىم سورالغان سوئال. ئۈچ يۆنىلىشلىك قول ئېلىشىش تاماملانغاندىن كېيىن ، ھەر ئىككى تەرەپ ESTABLISHED ھالىتىگە كىرىدۇ ، بۇ ئۇلىنىشنىڭ مۇۋەپپەقىيەتلىك ئورنىتىلغانلىقىنى كۆرسىتىدۇ ، بۇ ۋاقىتتا خېرىدار بىلەن مۇلازىمېتىر بىر-بىرىگە سانلىق مەلۇمات ئەۋەتىشنى باشلايدۇ.
نېمىشقا ئۈچ قول ئېلىشىپ كۆرۈشۈش؟ ئىككى قېتىم ئەمەس ، تۆت قېتىم؟
ئورتاق جاۋاب: «چۈنكى ئۈچ يۆنىلىشلىك قول ئېلىشىش قوبۇل قىلىش ۋە ئەۋەتىش ئىقتىدارىغا كاپالەتلىك قىلىدۇ». بۇ جاۋاب توغرا ، ئەمما ئۇ پەقەت يۈزەكى سەۋەب ، ئاساسلىق سەۋەبنى ئوتتۇرىغا قويمايدۇ. تۆۋەندە مەن بۇ مەسىلىگە بولغان تونۇشىمىزنى چوڭقۇرلاشتۇرۇش ئۈچۈن ئۈچ تەرەپتىن قول ئېلىشىپ كۆرۈشۈشنىڭ سەۋەبلىرىنى ئۈچ تەرەپتىن تەھلىل قىلىمەن.
ئۈچ يۆنىلىشلىك قول ئېلىشىش تارىختا قايتا-قايتا ئۇلىنىشنىڭ باشلىنىشىدىن ئۈنۈملۈك ساقلىنالايدۇ (ئاساسلىق سەۋەب)
ئۈچ يۆنىلىشلىك قول ئېلىشىش ئىككى تەرەپنىڭ ئىشەنچلىك دەسلەپكى تەرتىپ نومۇرىغا ئېرىشىشىگە كاپالەتلىك قىلىدۇ.
ئۈچ يۆنىلىشلىك قول ئېلىشىش بايلىق ئىسراپچىلىقىدىن ساقلىنىدۇ.
1-سەۋەب: تارىخى كۆپەيتىلگەن قوشۇلۇشتىن ساقلىنىڭ
يىغىنچاقلىغاندا ، ئۈچ يۆنىلىشلىك قول ئېلىشىپ كۆرۈشۈشنىڭ ئاساسلىق سەۋەبى كونا كۆپەيتىلگەن ئۇلىنىشنى باشلاشتىن كېلىپ چىققان قالايمىقانچىلىقتىن ساقلىنىش. مۇرەككەپ تور مۇھىتىدا ، سانلىق مەلۇمات بوغچىسىنىڭ يەتكۈزۈلۈشى ھەمىشە بەلگىلەنگەن ۋاقىتقا ئاساسەن مەنزىلگە ئەۋەتىلمەيدۇ ، كونا سانلىق مەلۇمات بوغچىسى تور قىستاڭچىلىقى ۋە باشقا سەۋەبلەر تۈپەيلىدىن ئالدى بىلەن مەنزىلگە يېتىپ كېلىشى مۇمكىن. بۇنىڭدىن ساقلىنىش ئۈچۈن ، TCP ئۇلىنىشنى ئورنىتىش ئۈچۈن ئۈچ يۆنىلىشلىك قول ئېلىشىپ كۆرۈشتى.
بىر خېرىدار ئارقا-ئارقىدىن كۆپ SYN ئۇلىنىش ئورنى بوغچىسى ئەۋەتكەندە ، تور قىستاڭچىلىقى قاتارلىق ئەھۋاللاردا ، تۆۋەندىكى ئەھۋاللار كۆرۈلىشى مۇمكىن:
1- كونا SYN بولاقلىرى ئەڭ يېڭى SYN بولاقلىرىدىن بۇرۇن مۇلازىمېتىرغا كېلىدۇ.
2- مۇلازىمېتىر كونا SYN بولىقىنى تاپشۇرۇۋالغاندىن كېيىن خېرىدارغا SYN + ACK بولىقىنى جاۋاب قايتۇرىدۇ.
3- خېرىدار SYN + ACK بوغچىسىنى تاپشۇرۇۋالغاندا ، ئۇ باغلىنىشنىڭ ئۆز مەزمۇنىغا ئاساسەن تارىخى ئۇلىنىش (تەرتىپ نومۇرى ۋاقتى توشقان ياكى ۋاقتى ئۆتكەن) ئىكەنلىكىنى بەلگىلەيدۇ ، ئاندىن RST بولىقىنى مۇلازىمېتىرغا ئەۋەتىپ ئۇلىنىشنى ئەمەلدىن قالدۇرىدۇ.
ئىككى قول ئېلىشىپ كۆرۈشۈش ئارقىلىق ، نۆۋەتتىكى باغلىنىشنىڭ تارىخىي باغلىنىش ياكى ئەمەسلىكىنى ئېنىقلاشقا ئامال يوق. ئۈچ يۆنىلىشلىك قول ئېلىشىش خېرىدارنىڭ ئۈچىنچى بولاقنى ئەۋەتىشكە تەييارلانغاندا نۆۋەتتىكى ئۇلىنىشنىڭ مەزمۇنغا ئاساسەن تارىخى باغلىنىش ياكى ئەمەسلىكىنى بەلگىلىيەلەيدۇ.
1- ئەگەر ئۇ تارىخى باغلىنىش بولسا (تەرتىپ نومۇرى ۋاقتى توشقان ياكى ۋاقتى ئۆتكەن) بولسا ، ئۈچىنچى قول ئېلىشىپ ئەۋەتىلگەن بولاق RST بولىقى بولۇپ ، تارىخى باغلىنىشنى ئەمەلدىن قالدۇرىدۇ.
2- ئەگەر ئۇ تارىخى باغلىنىش بولمىسا ، ئۈچىنچى قېتىم ئەۋەتىلگەن بولاق ACK بولاق بولۇپ ، ئىككى ئالاقىچى تەرەپ مۇۋەپپەقىيەتلىك ھالدا ئۇلىنىشنى ئورنىتىدۇ.
شۇڭلاشقا ، TCP نىڭ ئۈچ يۆنىلىشلىك قول ئېلىشىپ كۆرۈشۈشىدىكى ئاساسلىق سەۋەب ، ئۇ تارىخىي باغلىنىشنىڭ ئالدىنى ئېلىش ئۈچۈن ئۇلىنىشنى قوزغىتىدۇ.
2-سەۋەب: ئىككى تەرەپنىڭ دەسلەپكى تەرتىپ نومۇرىنى ماس قەدەمدە قىلىش
TCP كېلىشىمىنىڭ ئىككى تەرىپى چوقۇم تەرتىپ نومۇرىنى ساقلىشى كېرەك ، بۇ ئىشەنچلىك يەتكۈزۈشكە كاپالەتلىك قىلىدىغان مۇھىم ئامىل. تەرتىپ نومۇرى TCP ئۇلىنىشىدا مۇھىم رول ئوينايدۇ. ئۇلار تۆۋەندىكىلەرنى قىلىدۇ:
قوبۇللىغۇچ تەكرارلانغان سانلىق مەلۇماتلارنى چىقىرىپ تاشلاپ ، سانلىق مەلۇماتنىڭ توغرىلىقىغا كاپالەتلىك قىلالايدۇ.
قوبۇللىغۇچ سانلىق مەلۇماتلارنىڭ مۇكەممەللىكىگە كاپالەتلىك قىلىش ئۈچۈن تەرتىپ نومۇرى بويىچە بولاقلارنى تاپشۇرۇۋالالايدۇ.
تەرتىپ نومۇرى قارشى تەرەپ تاپشۇرۇۋالغان سانلىق مەلۇمات بوغچىسىنى پەرقلەندۈرەلەيدۇ ، ئىشەنچلىك سانلىق مەلۇمات يەتكۈزەلەيدۇ.
شۇڭلاشقا ، TCP ئۇلىنىشى ئورناتقاندىن كېيىن ، خېرىدار دەسلەپكى تەرتىپ نومۇرى بىلەن SYN بوغچىسىنى ئەۋەتىدۇ ۋە مۇلازىمېتىردىن خېرىدارلارنىڭ SYN بولىقىنى مۇۋەپپەقىيەتلىك قوبۇل قىلغانلىقىنى كۆرسىتىپ بېرىدىغان ACK بولىقى بىلەن جاۋاب قايتۇرۇشنى تەلەپ قىلىدۇ. ئاندىن ، مۇلازىمېتىر SYN بوغچىسىنى دەسلەپكى تەرتىپ نومۇرى بىلەن خېرىدارغا ئەۋەتىپ ، خېرىدارنىڭ بىر قېتىم جاۋاب قايتۇرۇشىنى ساقلاپ ، دەسلەپكى تەرتىپ نومۇرى ئىشەنچلىك ماس قەدەمدە بولۇشىغا كاپالەتلىك قىلىدۇ.
گەرچە تۆت يۆنىلىشلىك قول ئېلىشىش يەنە ئىككى تەرەپنىڭ دەسلەپكى تەرتىپ نومۇرىنى ئىشەنچلىك ماس قەدەمدە ئەمەلگە ئاشۇرغىلى بولسىمۇ ، ئەمما ئىككىنچى ۋە ئۈچىنچى باسقۇچنى بىر قەدەمدە بىرلەشتۈرۈپ ، ئۈچ يۆنىلىشلىك قول ئېلىشىپ كۆرۈشۈشنى كەلتۈرۈپ چىقىرىدۇ. قانداقلا بولمىسۇن ، ئىككى قېتىملىق قول ئېلىشىپ كۆرۈشۈش پەقەت بىر تەرەپنىڭ دەسلەپكى تەرتىپ نومۇرىنىڭ قارشى تەرەپ تەرىپىدىن مۇۋەپپەقىيەتلىك قوبۇل قىلىنىشىغا كاپالەتلىك قىلالايدۇ ، ئەمما ھەر ئىككى تەرەپنىڭ دەسلەپكى تەرتىپ نومۇرىنى جەزملەشتۈرگىلى بولمايدۇ. شۇڭلاشقا ، TCP ئۇلىنىشىنىڭ مۇقىملىقى ۋە ئىشەنچلىكلىكىگە كاپالەتلىك قىلىش ئۈچۈن ، ئۈچ يۆنىلىشلىك قول ئېلىشىش ئەڭ ياخشى تاللاش.
3-سەۋەب: بايلىق ئىسراپچىلىقىدىن ساقلىنىڭ
ئەگەر پەقەت «ئىككى قول ئېلىشىش» بولسا ، خېرىدار SYN تەلىپى توردا توسۇۋېلىنغاندا ، خېرىدار مۇلازىمېتىر ئەۋەتكەن ACK بولىقىنى تاپشۇرۇۋالالمايدۇ ، شۇڭا SYN بۇنىڭدىن بىزار بولىدۇ. قانداقلا بولمىسۇن ، ئۈچىنچى قېتىم قول ئېلىشىپ كۆرۈشۈش بولمىغاچقا ، مۇلازىمېتىر خېرىدارنىڭ ئۇلىنىش ئورنىتىش ئۈچۈن ACK ئېتىراپنامىسىنى تاپشۇرۇۋالغان-ئالمىغانلىقىنى بەلگىلىيەلمەيدۇ. شۇڭلاشقا ، مۇلازىمېتىر ھەر بىر SYN تەلىپىنى تاپشۇرۇۋالغاندىن كېيىن تەشەببۇسكارلىق بىلەن ئۇلىنىش قۇرالايدۇ. بۇ تۆۋەندىكىلەرنى كەلتۈرۈپ چىقىرىدۇ:
بايلىق ئىسراپچىلىقى: ئەگەر خېرىدارنىڭ SYN تەلىپى توسۇلۇپ قالسا ، كۆپ خىل SYN بوغچىسىنىڭ قايتا-قايتا تارقىتىلىشىنى كەلتۈرۈپ چىقارسا ، مۇلازىمېتىر تەلەپنى تاپشۇرۇۋالغاندىن كېيىن ئارتۇقچە ئىناۋەتسىز ئۇلىنىش ئورنىتىدۇ. بۇ مۇلازىمېتىر بايلىقىنىڭ زۆرۈر بولمىغان ئىسراپچىلىقىنى كەلتۈرۈپ چىقىرىدۇ.
ئۇچۇرنى ساقلاپ قېلىش: ئۈچىنچى قول ئېلىشىپ كۆرۈشمەسلىك سەۋەبىدىن ، مۇلازىمېتىردا خېرىدارنىڭ ACK ئېتىراپنامىسىنى توغرا قوبۇل قىلغان-قىلمىغانلىقىنى بىلگىلى بولمايدۇ. نەتىجىدە ، ئەگەر ئۇچۇرلار تورغا قىسىلىپ قالسا ، خېرىدار SYN تەلەپلىرىنى قايتا-قايتا ئەۋەتىپ ، مۇلازىمېتىرنىڭ يېڭى ئۇلىنىش ئورنىتىشىنى كەلتۈرۈپ چىقىرىدۇ. بۇ تورنىڭ قىستاڭچىلىقىنى ۋە كېچىكىشنى ئاشۇرۇپ ، تورنىڭ ئومۇمىي ئىقتىدارىغا پاسسىپ تەسىر كۆرسىتىدۇ.
شۇڭلاشقا ، تور ئۇلىنىشىنىڭ مۇقىملىقى ۋە ئىشەنچلىكلىكىگە كاپالەتلىك قىلىش ئۈچۈن ، TCP ئۈچ تەرەپلىك قول ئېلىشىپ كۆرۈشۈپ ، بۇ مەسىلىلەرنىڭ يۈز بېرىشىنىڭ ئالدىنى ئالىدۇ.
خۇلاسە
Theتور بولىقى ۋاسىتىچىسىTCP ئۇلىنىش ئورنى ئۈچ يۆنىلىشلىك قول ئېلىشىپ كۆرۈشۈش ئارقىلىق ئېلىپ بېرىلىدۇ. ئۈچ يۆنىلىشلىك قول ئېلىشىش جەريانىدا ، خېرىدار ئالدى بىلەن SYN بايرىقى بار بولاقنى مۇلازىمېتىرغا ئەۋەتىدۇ ، بۇ ئۇنىڭ ئۇلىنىش ئورنىتىشنى خالايدىغانلىقىنى كۆرسىتىدۇ. مۇلازىمېتىر خېرىدارنىڭ تەلىپىنى تاپشۇرۇۋالغاندىن كېيىن ، خېرىدارغا SYN ۋە ACK بايرىقى چۈشۈرۈلگەن بىر بولاققا جاۋاب قايتۇرىدۇ ، بۇ ئۇلىنىش تەلىپىنىڭ قوبۇل قىلىنغانلىقىنى كۆرسىتىپ بېرىدۇ ھەمدە ئۆزىنىڭ دەسلەپكى تەرتىپ نومۇرىنى ئەۋەتىدۇ. ئاخىرىدا ، خېرىدار ACK بايرىقى بىلەن مۇلازىمېتىرغا جاۋاب بېرىپ ، ئۇلىنىشنىڭ مۇۋەپپەقىيەتلىك ئورنىتىلغانلىقىنى كۆرسىتىپ بېرىدۇ. شۇڭا ، ئىككى تەرەپ ESTABLISHED ھالەتتە بولۇپ ، بىر-بىرىگە سانلىق مەلۇمات ئەۋەتىشنى باشلايدۇ.
ئومۇملاشتۇرۇپ ئېيتقاندا ، TCP ئۇلىنىش ئورنىتىشنىڭ ئۈچ تەرەپلىك قول ئېلىشىش جەريانى ئۇلىنىشنىڭ مۇقىملىقى ۋە ئىشەنچلىكلىكىگە كاپالەتلىك قىلىش ، تارىخى ئۇلىنىشتىكى قالايمىقانچىلىق ۋە بايلىق ئىسراپچىلىقىدىن ساقلىنىش ھەمدە ئىككى تەرەپنىڭ سانلىق مەلۇماتلارنى قوبۇل قىلىش ۋە ئەۋەتىشكە كاپالەتلىك قىلىش ئۈچۈن لايىھەلەنگەن.
يوللانغان ۋاقتى: 1-يانۋاردىن 20-يانۋارغىچە