អាថ៌កំបាំងសំខាន់នៃការតភ្ជាប់របស់មមេញកាសែត TCP របស់បណ្តាញ TCP: demystified តម្រូវការនៃការចាប់ដៃបីដង

ការរៀបចំការតភ្ជាប់ TCP
នៅពេលយើងរកមើលគេហទំព័រសូមផ្ញើអ៊ីមែលឬលេងហ្គេមអនឡាញយើងច្រើនតែមិនគិតអំពីការតភ្ជាប់បណ្តាញស្មុគស្មាញនៅពីក្រោយវា។ ទោះយ៉ាងណាក៏ដោយវាគឺជាជំហានតូចដែលហាក់ដូចជាតូចតាចដែលធានាបាននូវការទំនាក់ទំនងប្រកបដោយស្ថេរភាពរវាងអាមេរិកនិងម៉ាស៊ីនមេ។ ជំហានសំខាន់បំផុតមួយគឺការតំឡើងការភ្ជាប់ TCP ហើយស្នូលនៃការចាប់ដៃគ្នាបីផ្លូវ។

អត្ថបទនេះនឹងពិភាក្សាអំពីគោលការណ៍ដំណើរការនិងសារៈសំខាន់នៃការចាប់ដៃគ្នាបីយ៉ាងលម្អិត។ មួយជំហានម្តង ៗ យើងនឹងពន្យល់ពីមូលហេតុដែលការចាប់ដៃបីផ្លូវគឺចាំបាច់របៀបដែលវាធានាថាស្ថេរភាពផ្សារភ្ជាប់និងភាពជឿជាក់និងសារៈសំខាន់សម្រាប់ការផ្ទេរទិន្នន័យ។ ជាមួយនឹងការយល់ដឹងកាន់តែស៊ីជម្រៅនៃការចាប់ដៃបីផ្លូវយើងនឹងទទួលបានការយល់ដឹងកាន់តែច្បាស់អំពីយន្តការមូលដ្ឋាននៃការប្រាស្រ័យទាក់ទងបណ្តាញនិងទិដ្ឋភាពកាន់តែច្បាស់នៃភាពជឿជាក់នៃការតភ្ជាប់ TCP ។

ដំណើរការចាប់ដៃបីយ៉ាង TCP និងការផ្លាស់ប្តូររដ្ឋ
TCP គឺជាពិធីសារដឹកជញ្ជូនដែលផ្តោតលើការតភ្ជាប់ដែលទាមទារការបង្កើតការតភ្ជាប់មុនពេលបញ្ជូនទិន្នន័យ។ ដំណើរការបង្កើតទំនាក់ទំនងនេះត្រូវបានធ្វើឡើងដោយការចាប់ដៃបីផ្លូវ។

 ការចាប់ដៃបីផ្លូវ

សូមពិនិត្យមើលឱ្យបានដិតដល់នូវកញ្ចប់ TCP ដែលត្រូវបានផ្ញើនៅក្នុងការតភ្ជាប់នីមួយៗ។

ដំបូងទាំងអតិថិជននិងម៉ាស៊ីនមេត្រូវបានបិទ។ ដំបូងម៉ាស៊ីនមេស្តាប់នៅលើកំពង់ផែមួយហើយស្ថិតនៅក្នុងរដ្ឋស្តាប់ដែលមានន័យថាម៉ាស៊ីនមេត្រូវតែចាប់ផ្តើម។ បន្ទាប់អតិថិជនត្រៀមខ្លួនជាស្រេចដើម្បីចាប់ផ្តើមចូលដំណើរការគេហទំព័រគេហទំព័រ .it ត្រូវការបង្កើតការភ្ជាប់ជាមួយម៉ាស៊ីនមេ។ ទ្រង់ទ្រាយនៃកញ្ចប់ព័ត៌មានតភ្ជាប់ដំបូងមានដូចខាងក្រោមៈ

 កញ្ចប់សំភារៈ

នៅពេលអតិថិជនផ្តួចផ្តើមការភ្ជាប់វាបង្កើតលេខលំដាប់ដំបូងចៃដន្យ (CENMIN_ISN) ហើយដាក់វានៅក្នុងវាល "លំដាប់លំដាប់" នៃបឋមកថា TCP ។ ក្នុងពេលជាមួយគ្នានេះម៉ាស៊ីនភ្ញៀវកំណត់ទីតាំងទង់ជាតិទៅ 1 ដើម្បីបង្ហាញថាកញ្ចប់ព័ត៌មានចេញគឺជាកញ្ចប់សំភារៈសំលាប់។ អតិថិជនបង្ហាញថាខ្លួនចង់បង្កើតការតភ្ជាប់ជាមួយម៉ាស៊ីនមេដោយផ្ញើកញ្ចប់ប្រចទីដំបូងទៅម៉ាស៊ីនមេ។ កញ្ចប់ព័ត៌មាននេះមិនមានទិន្នន័យស្រទាប់កម្មវិធីទេ (នោះគឺទិន្នន័យបានផ្ញើ) ។ នៅចំណុចនេះស្ថានភាពរបស់អតិថិជនត្រូវបានសម្គាល់ថាជាការផ្ញើដែលបានផ្ញើ។

សមកាលកម្ម + កញ្ចប់ព័ត៌មាន ACK

នៅពេលដែលម៉ាស៊ីនមេទទួលបានកញ្ចប់ប្រចទីពីម៉ាស៊ីនភ្ញៀវវាចាប់ផ្តើមលេខស៊េរីរបស់វាដោយចៃដន្យ (Server_ISN) ហើយបន្ទាប់មកដាក់លេខនោះនៅក្នុងវាលសៀរៀលរបស់បឋមកថា TCP ។ បន្ទាប់ម៉ាស៊ីនបម្រើបញ្ចូលម៉ាស៊ីនបម្រើ iner_isn + 1 ក្នុង "លេខ" ការទទួលស្គាល់ "វាលនិងសំណុំទាំង Ack Bits ទៅលេខ 1 ម៉ាស៊ីនមេផ្ញើកញ្ចប់ព័ត៌មានរបស់ម៉ាស៊ីនភ្ញៀវ (ហើយគ្មានទិន្នន័យសម្រាប់ម៉ាស៊ីនមេដែលត្រូវផ្ញើ) ។ នៅពេលនេះម៉ាស៊ីនបម្រើនេះស្ថិតនៅក្នុងស្ថានភាពស៊ីសង្វាក់គ្នា។

កញ្ចប់ព័ត៌មានរបស់ ACK

នៅពេលដែលអតិថិជនទទួលបានកញ្ចប់ព័ត៌មានពីម៉ាស៊ីនមេវាចាំបាច់ត្រូវអនុវត្តការឆ្លើយតបដូចខាងក្រោមដើម្បីឆ្លើយតបនឹងកញ្ចប់ព័ត៌មានឆ្លើយតបចុងក្រោយ: ដំបូងម៉ាស៊ីនភ្ញៀវកំណត់បឋមកថារបស់អេចអេសប៊ីអេសប៊ីភីនៃកញ្ចប់ឆ្លើយតបទៅ 1; ទីពីរម៉ាស៊ីនភ្ញៀវចូលម៉ាស៊ីនមេតម្លៃ_ISN + 1 ក្នុងវាល "បញ្ជាក់ចម្លើយចំនួន" ។ ចុងបញ្ចប់ម៉ាស៊ីនភ្ញៀវផ្ញើកញ្ចប់ព័ត៌មានទៅម៉ាស៊ីនមេ។ កញ្ចប់នេះអាចផ្ទុកទិន្នន័យពីម៉ាស៊ីនភ្ញៀវទៅម៉ាស៊ីនមេ។ នៅពេលបញ្ចប់ប្រតិបត្តិការទាំងនេះអតិថិជននឹងចូលក្នុងស្ថានភាពដែលបានបង្កើតឡើង។

នៅពេលដែលម៉ាស៊ីនមេទទួលបានកញ្ចប់ឆ្លើយតបពីអតិថិជនវាក៏ប្តូរទៅរដ្ឋដែលបានបង្កើតឡើងផងដែរ។

ដូចដែលអ្នកអាចមើលឃើញពីដំណើរការខាងលើនៅពេលអនុវត្តការចាប់ដៃបីផ្លូវការចាប់ដៃទីបីត្រូវបានអនុញ្ញាតឱ្យអនុវត្តទិន្នន័យប៉ុន្តែការចាប់ដៃពីរដំបូងមិនមានទេ។ នេះគឺជាសំណួរដែលជារឿយៗត្រូវបានសួរក្នុងបទសម្ភាសន៍។ នៅពេលដែលការចាប់ដៃគ្នាបីផ្លូវបានបញ្ចប់នោះភាគីទាំងពីរបញ្ចូលរដ្ឋដែលបានបង្កើតឡើងដែលបង្ហាញថាការតភ្ជាប់ត្រូវបានបង្កើតឡើងដោយជោគជ័យដែលកូនរបស់អតិថិជននិងម៉ាស៊ីនមេអាចចាប់ផ្តើមបញ្ជូនទិន្នន័យទៅគ្នាទៅវិញទៅមក។

ហេតុអ្វីបានជាការចាប់ដៃបី? មិនពីរដងបួនដង?
ចម្លើយរួមគឺ "ដោយសារតែការចាប់ដៃបីផ្លូវធានានូវសមត្ថភាពក្នុងការទទួលនិងផ្ញើ។ " ចម្លើយនេះត្រឹមត្រូវប៉ុន្តែវាគ្រាន់តែជាហេតុផលផ្ទៃៗប៉ុណ្ណោះដែលមិនដាក់ចេញនូវហេតុផលចំបងទេ។ ដូចខាងក្រោមខ្ញុំនឹងវិភាគមូលហេតុនៃការចាប់ដៃបីដងពីទិដ្ឋភាពបីយ៉ាងដើម្បីឱ្យយើងយល់កាន់តែស៊ីជម្រៅអំពីបញ្ហានេះ។

ការចាប់ដៃបីផ្លូវអាចជៀសវាងពីការចាប់ផ្តើមនៃការចាប់ផ្តើមនៃការតភ្ជាប់ម្តងហើយម្តងទៀតដែលបានកើតឡើងម្តងហើយម្តងទៀត (ហេតុផលចំបង)
ការចាប់ដៃបីផ្លូវធានាថាភាគីទាំងពីរបានទទួលលេខលំដាប់ដំបូងដែលអាចទុកចិត្តបាន។
ការចាប់ដៃបីផ្លូវចៀសវាងការខ្ជះខ្ជាយធនធាន។

ហេតុផលទី 1: ជៀសវាងការចូលរួមស្ទួនប្រវត្តិសាស្ត្រ
ជាសង្ខេបមូលហេតុចម្បងនៃការចាប់ដៃបីផ្លូវគឺដើម្បីជៀសវាងការភាន់ច្រលំដែលបណ្តាលមកពីការចាប់ផ្តើមការតភ្ជាប់ស្ទូឌីយ្យចាស់។ នៅក្នុងបណ្តាញបណ្តាញស្មុគស្មាញការបញ្ជូនកញ្ចប់ទិន្នន័យមិនតែងតែត្រូវបានផ្ញើទៅម្ចាស់គោលដៅស្របតាមពេលវេលាដែលបានបញ្ជាក់ហើយកញ្ចប់ទិន្នន័យចាស់អាចទៅដល់ម្ចាស់ផ្ទះគោលដៅដំបូងដោយសារតែបណ្តាញកកស្ទះនិងហេតុផលផ្សេងទៀត។ ដើម្បីចៀសវាងបញ្ហានេះ TCP ប្រើការចាប់ដៃបីផ្លូវដើម្បីបង្កើតការតភ្ជាប់។

ការចាប់ដៃបីផ្លូវចៀសវាងការតភ្ជាប់ស្ទួនប្រវត្តិសាស្ត្រ

នៅពេលអតិថិជនផ្ញើកញ្ចប់ព័ត៌មានប្រដាប់ប្រសាសន៍ច្រើនក្នុងការបន្តបន្ទាប់ក្នុងស្ថានភាពដូចជាការកកស្ទះបណ្តាញដូចខាងក្រោមអាចកើតឡើង:

1- កញ្ចប់ព័ត៌មានសំភារៈចាស់មកដល់ម៉ាស៊ីនមេមុនពេលកញ្ចប់ព័ត៌មានថ្មីចុងក្រោយ។
2- ម៉ាស៊ីនមេនឹងឆ្លើយតបការធ្វើសមកាលកម្ម + កញ្ចប់ ACK ទៅអតិថិជនបន្ទាប់ពីទទួលបានកញ្ចប់ព័ត៌មានចាស់ចាស់។
3- នៅពេលអតិថិជនទទួលបានសមកាលកម្ម + កញ្ចប់ ACK វាកំណត់ថាការតភ្ជាប់គឺជាការតភ្ជាប់ប្រវត្តិសាស្ត្រ (រយៈពេលផុតកំណត់ឬអស់ពេល) យោងទៅតាមបរិបទរបស់វាហើយបន្ទាប់មកផ្ញើកញ្ចប់ព័ត៌មានទៅម៉ាស៊ីនមេដើម្បីបញ្ឈប់ការភ្ជាប់។

ជាមួយនឹងការភ្ជាប់ការចាប់ដៃគ្នាពីរមិនមានវិធីដើម្បីកំណត់ថាតើការតភ្ជាប់បច្ចុប្បន្នគឺជាការតភ្ជាប់ប្រវត្តិសាស្ត្រទេ។ ការចាប់ដៃបីយ៉ាងនេះអនុញ្ញាតឱ្យអតិថិជនកំណត់ថាតើការតភ្ជាប់បច្ចុប្បន្នគឺជាការតភ្ជាប់ប្រវត្តិសាស្ត្រដោយផ្អែកលើបរិបទនៅពេលដែលរួចរាល់នៅពេលដែលរួចរាល់ក្នុងការផ្ញើកញ្ចប់ទីបី:

1- ប្រសិនបើវាជាការតភ្ជាប់ប្រវត្តិសាស្ត្រ (លំដាប់លំដោយផុតកំណត់ឬអស់ពេល) កញ្ចប់ដែលបានផ្ញើដោយការចាប់ដៃទីបីគឺជាកញ្ចប់ព័ត៌មានដែលត្រូវបញ្ឈប់ការតភ្ជាប់ប្រវត្តិសាស្ត្រ។
2- ប្រសិនបើវាមិនមែនជាការតភ្ជាប់ប្រវត្តិសាស្ត្រទេកញ្ចប់ដែលបានផ្ញើជាលើកទី 3 គឺជាកញ្ចប់ព័ត៌មាន ACK និងភាគីប្រាស្រ័យទាក់ទងពីរបង្កើតដោយជោគជ័យបង្កើតការតភ្ជាប់នេះដោយជោគជ័យ។

ដូច្នេះមូលហេតុចំបងដែល TCP ប្រើការចាប់ដៃបីផ្លូវគឺថាវាចាប់ផ្តើមការតភ្ជាប់ដើម្បីការពារការតភ្ជាប់ប្រវត្តិសាស្ត្រ។

ហេតុផល 2: ដើម្បីធ្វើសមកាលកម្មចំនួនលំដាប់ដំបូងនៃភាគីទាំងពីរ
ទាំងសងខាងនៃពិធីសារ TCP ត្រូវតែរក្សាលេខលំដាប់ដែលជាកត្តាសំខាន់ដើម្បីធានាបាននូវការបញ្ជូនដែលអាចទុកចិត្តបាន។ លេខលំដាប់ដើរតួយ៉ាងសំខាន់ក្នុងការតភ្ជាប់ TCP ។ ពួកគេធ្វើដូចខាងក្រោមៈ

អ្នកទទួលអាចលុបបំបាត់ទិន្នន័យស្ទួននិងធានាបាននូវភាពត្រឹមត្រូវនៃទិន្នន័យ។

អ្នកទទួលអាចទទួលកញ្ចប់ព័ត៌មានតាមលំដាប់លំដោយនៃលេខលំដាប់ដើម្បីធានាបាននូវភាពត្រឹមត្រូវនៃទិន្នន័យ។

●លេខលំដាប់អាចកំណត់អត្តសញ្ញាណកញ្ចប់ទិន្នន័យដែលត្រូវបានទទួលដោយភាគីម្ខាងទៀតធ្វើឱ្យការបញ្ជូនទិន្នន័យដែលអាចទុកចិត្តបាន។

ដូច្នេះនៅពេលដែលបង្កើតការភ្ជាប់ TCP អតិថិជនផ្ញើកញ្ចប់ប្រចទឹមដែលមានលេខលំដាប់ដំបូងហើយតម្រូវឱ្យមានម៉ាស៊ីនមេឆ្លើយតបជាមួយកញ្ចប់ព័ត៌មានរបស់ក្រុមហ៊ុន ACK ដែលបង្ហាញពីការទទួលភ្ញៀវប្រកបដោយជោគជ័យរបស់កញ្ចប់ព័ត៌មានសំលេងដែលទទួលបានជោគជ័យរបស់អតិថិជន។ បន្ទាប់មកម៉ាស៊ីនមេផ្ញើកញ្ចប់ប្រចទឹមដែលមានលេខលំដាប់ដំបូងទៅអតិថិជនហើយរង់ចាំឱ្យអតិថិជនឆ្លើយតបម្តងហើយសម្រាប់ទាំងអស់គ្នាដើម្បីធានាថាចំនួនលំដាប់ដំបូងត្រូវបានធ្វើសមកាលកម្មដែលបានធ្វើសមកាលកម្ម។

ធ្វើសមកាលកម្មចំនួនសៀរៀលដំបូងនៃភាគីទាំងពីរ

ទោះបីជាការចាប់ដៃបួនផ្លូវក៏អាចធ្វើសមកាលកម្មចំនួនលំដាប់ដំបូងនៃភាគីទាំងពីរជំហានទី 2 និងទី 3 អាចត្រូវបានបញ្ចូលទៅក្នុងជំហានតែមួយដែលជាលទ្ធផលមានការចាប់ដៃគ្នាបីផ្លូវ។ ទោះយ៉ាងណាការចាប់ដៃទាំងពីរនេះអាចធានាបានថាចំនួនលំដាប់ដំបូងនៃភាគីមួយត្រូវបានទទួលដោយជោគជ័យដោយភាគីផ្សេងទៀតប៉ុន្តែមិនមានការធានាថាចំនួនលំដាប់ដំបូងនៃភាគីទាំងពីរអាចត្រូវបានបញ្ជាក់។ ដូច្នេះការចាប់ដៃបីផ្លូវគឺជាជំរើសល្អបំផុតក្នុងការទទួលយកដើម្បីធានាបាននូវស្ថេរភាពនិងភាពជឿជាក់នៃការតភ្ជាប់ TCP ។

ហេតុផលទី 3: ជៀសវាងការខ្ជះខ្ជាយធនធាន
ប្រសិនបើមានតែ "ការចាប់ដៃគ្នាពីរ" នៅពេលដែលការស្នើសុំការស្នើសុំរបស់អតិថិជនត្រូវបានរារាំងនៅក្នុងបណ្តាញអតិថិជនមិនអាចទទួលបានកញ្ចប់ព័ត៌មានអេសខេអេសដែលបានផ្ញើដោយម៉ាស៊ីនមេទេដូច្នេះការធ្វើសមាធិនឹងមានការអាក់អន់ចិត្ត។ ទោះយ៉ាងណាក៏ដោយដោយសារមិនមានដៃក្រោធនិយលេខសំងាត់ទីបីម៉ាស៊ីនមេមិនអាចកំណត់ថាតើអតិថិជនបានទទួលការទទួលស្គាល់ ACK ដើម្បីបង្កើតការតភ្ជាប់បានទេ។ ដូច្នេះម៉ាស៊ីនមេអាចបង្កើតការតភ្ជាប់យ៉ាងសកម្មបន្ទាប់ពីទទួលបានសំណូមពរនីមួយៗ។ នេះនាំឱ្យមានដូចខាងក្រោមៈ

ការខ្ជះខ្ជាយធនធាន: ប្រសិនបើការស្នើសុំសំណងសមភាពរបស់អតិថិជនត្រូវបានរារាំងលទ្ធផលក្នុងការបញ្ជូនកញ្ចប់ប្រចាដង់ម្តងហើយម្តងទៀតម៉ាស៊ីនមេនឹងបង្កើតការភ្ជាប់មិនត្រឹមត្រូវជាច្រើនបន្ទាប់ពីទទួលបានការស្នើសុំ។ នេះនាំឱ្យមានកាកសំណល់ធនធានរបស់ម៉ាស៊ីនមេដែលមិនចាំបាច់។

ការរក្សាទុកសារ: ដោយសារតែកង្វះការចាប់ដៃទីបីម៉ាស៊ីនមេមិនមានវិធីដឹងថាតើអតិថិជនបានទទួលការទទួលស្គាល់ក្រុមហ៊ុន ACK ថាត្រឹមត្រូវទេក្នុងការបង្កើតការតភ្ជាប់។ ជាលទ្ធផលប្រសិនបើសារជាប់គាំងនៅក្នុងបណ្តាញអតិថិជននឹងបន្តផ្ញើសំណើរម្តងហើយម្តងទៀតដែលបណ្តាលឱ្យម៉ាស៊ីនមេបង្កើតការភ្ជាប់ថ្មីជានិច្ច។ នេះនឹងបង្កើនការកកស្ទះបណ្តាញនិងការពន្យាពេលនិងជះឥទ្ធិពលអវិជ្ជមានដល់ការអនុវត្តបណ្តាញទាំងមូល។

ជៀសវាងការខ្ជះខ្ជាយធនធាន

ដូច្នេះដើម្បីធានាបាននូវស្ថេរភាពនិងភាពជឿជាក់នៃបណ្តាញ TCP ប្រើការចាប់ដៃបីផ្លូវដើម្បីបង្កើតការតភ្ជាប់ដើម្បីជៀសវាងការកើតឡើងនៃបញ្ហាទាំងនេះ។

សង្ខេប
នេះឈ្មួញកណ្តាលបណ្តាញកញ្ចប់ព័ត៌មានការបង្កើតការភ្ជាប់ TCP ត្រូវបានធ្វើរួចជាមួយនឹងការចាប់ដៃបីផ្លូវ។ ក្នុងអំឡុងពេលនៃការចាប់ដៃបីផ្លូវអតិថិជនបានផ្ញើកញ្ចប់ព័ត៌មានជាមុនជាមួយលេខកូដសម្ងាត់ទៅម៉ាស៊ីនមេដែលបង្ហាញថាវាចង់បង្កើតការតភ្ជាប់។ បន្ទាប់ពីទទួលបានសំណើរបស់អតិថិជនម៉ាស៊ីនមេឆ្លើយតបមួយកញ្ចប់ជាមួយទង់ជាតិ ACK ទៅអតិថិជនដែលបង្ហាញថាការស្នើសុំការភ្ជាប់ត្រូវបានទទួលយកហើយផ្ញើលេខលំដាប់ដំបូងរបស់វា។ ចុងបញ្ចប់អតិថិជនឆ្លើយតបជាមួយទង់ ACK ទៅម៉ាស៊ីនមេដើម្បីបង្ហាញថាការតភ្ជាប់ត្រូវបានបង្កើតឡើងដោយជោគជ័យ។ ដូច្នេះគណបក្សទាំងពីរមាននៅក្នុងរដ្ឋដែលបានបង្កើតឡើងហើយអាចចាប់ផ្តើមបញ្ជូនទិន្នន័យទៅគ្នាទៅវិញទៅមក។

ជាទូទៅដំណើរការចាប់ដៃបីយ៉ាងសម្រាប់ការបង្កើត TCP ត្រូវបានរចនាឡើងដើម្បីធានាបានដើម្បីធានាបាននូវស្ថេរភាពនៃការតភ្ជាប់និងភាពជឿជាក់, ជៀសវាងការភាន់ច្រលំនិងការខ្ជះខ្ជាយធនធានលើការតភ្ជាប់ប្រវត្តិសាស្ត្រនិងធានាថាភាគីទាំងពីរអាចទទួលបាននិងផ្ញើទិន្នន័យ។


ពេលវេលាក្រោយ: មករា -20125