ជម្រើសណាដែលកំណត់លក្ខណៈពិធីការ UDP យ៉ាងត្រឹមត្រូវ។ តើ TCP និង UDP មានន័យដូចម្តេច? កន្លែងដែលត្រូវមើលការកំណត់បណ្តាញទាំងអស់។

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

តើ TCP និង UDP មានន័យដូចម្តេច?

TCPពិធីការដឹកជញ្ជូនការបញ្ជូនទិន្នន័យនៅក្នុងបណ្តាញ TCP/IP ដែលបង្កើតការតភ្ជាប់ទៅបណ្តាញជាមុន។
UDP- ពិធីការដឹកជញ្ជូនដែលបញ្ជូនសារ datagram ដោយមិនចាំបាច់បង្កើតការតភ្ជាប់នៅលើបណ្តាញ IP ។

ភាពខុសគ្នារវាងពិធីការ TCP និង UDP

ភាពខុសគ្នារវាងពិធីការ TCP និង UDP គឺជាអ្វីដែលគេហៅថា "ការធានាការដឹកជញ្ជូន" ។ TCP ទាមទារការឆ្លើយតបពីអតិថិជនដែលកញ្ចប់ទិន្នន័យត្រូវបានបញ្ជូន ការបញ្ជាក់ពីការដឹកជញ្ជូន ហើយសម្រាប់បញ្ហានេះ វាត្រូវការការតភ្ជាប់ដែលបានបង្កើតជាមុន។ ផងដែរ។ ពិធីការ TCPត្រូវបានគេចាត់ទុកថាអាចទុកចិត្តបាន ខណៈពេលដែល UDP ថែមទាំងបានទទួលឈ្មោះ "ពិធីការទិន្នន័យមិនគួរឱ្យទុកចិត្ត" ។ TCP លុបបំបាត់ការបាត់បង់ទិន្នន័យ ការចម្លង និងការបញ្ចូលគ្នានៃកញ្ចប់ព័ត៌មាន និងការពន្យារពេល។ UDP អនុញ្ញាតឱ្យអ្វីៗទាំងអស់នេះ ហើយមិនត្រូវការការតភ្ជាប់ដើម្បីដំណើរការទេ។ ដំណើរការដែលទិន្នន័យត្រូវបានបញ្ជូនតាមរយៈ UDP ត្រូវតែធ្វើជាមួយនឹងអ្វីដែលពួកគេទទួលបាន ទោះបីជាមានការខាតបង់ក៏ដោយ។ TCP គ្រប់គ្រងការកកស្ទះនៃការតភ្ជាប់ UDP មិនគ្រប់គ្រងអ្វីទាំងអស់លើកលែងតែភាពសុចរិតនៃ datagrams ដែលទទួលបាន។
ម្យ៉ាងវិញទៀត ដោយសារភាពមិនរើសអើង និងកង្វះការគ្រប់គ្រងនេះ UDP ផ្តល់កញ្ចប់ទិន្នន័យ (datagram) លឿនជាងមុន ដូច្នេះសម្រាប់កម្មវិធីដែលត្រូវបានរចនាឡើងសម្រាប់កម្រិតបញ្ជូនខ្ពស់ និង ការផ្លាស់ប្តូររហ័ស,UDP អាចត្រូវបានចាត់ទុកថាជាពិធីការដ៏ល្អប្រសើរ។ ទាំងនេះរួមមានហ្គេមបណ្តាញ និងកម្មវិធីរុករក ក៏ដូចជាការផ្សាយកម្មវិធីមើលវីដេអូ និងកម្មវិធីសម្រាប់ការទំនាក់ទំនងវីដេអូ (ឬសំឡេង)៖ ការបាត់បង់កញ្ចប់ពេញលេញ ឬដោយផ្នែក មិនផ្លាស់ប្តូរអ្វីទាំងអស់ វាមិនចាំបាច់ក្នុងការស្នើសុំម្តងទៀត ប៉ុន្តែ ការទាញយកគឺលឿនជាង។ ពិធីការ TCP ដែលមានភាពជឿជាក់ជាងមុន ត្រូវបានប្រើដោយជោគជ័យសូម្បីតែនៅក្នុង កម្មវិធីសំបុត្រអនុញ្ញាតឱ្យអ្នកគ្រប់គ្រងមិនត្រឹមតែចរាចរណ៍ប៉ុណ្ណោះទេប៉ុន្តែថែមទាំងរយៈពេលនៃសារនិងល្បឿននៃការផ្លាស់ប្តូរចរាចរណ៍ផងដែរ។

TheDifference.ru បានកំណត់ថាភាពខុសគ្នារវាង TCP និង UDP មានដូចខាងក្រោម៖

TCP ធានាការចែកចាយកញ្ចប់ទិន្នន័យក្នុងទម្រង់មិនផ្លាស់ប្តូរ លំដាប់ និងដោយគ្មានការបាត់បង់ UDP មិនធានាអ្វីទាំងអស់។
TCP ទាមទារជាមុន ការតភ្ជាប់ដែលបានបង្កើតឡើង, ការតភ្ជាប់ UDP មិនត្រូវបានទាមទារ។
UDP ផ្តល់ច្រើនទៀត ល្បឿនលឿនការផ្ទេរទិន្នន័យ។
TCP មានភាពជឿជាក់ជាងមុន និងគ្រប់គ្រងដំណើរការផ្លាស់ប្តូរទិន្នន័យ។
UDP ត្រូវបានគេពេញចិត្តសម្រាប់កម្មវិធីដែលលេង ការផ្សាយវីដេអូហ្គេមវីដេអូ និងទូរសព្ទ។

ខ្ញុំពិតជាចូលចិត្តអត្ថបទទាំងមូល ហើយខ្ញុំតែងតែចង់សាកល្បងខ្លួនឯងជាអ្នកបកប្រែ។ ប្រហែលជាអត្ថបទនឹងហាក់ដូចជាច្បាស់ពេកសម្រាប់អ្នកអភិវឌ្ឍន៍ដែលមានបទពិសោធន៍ ប៉ុន្តែវាហាក់ដូចជាខ្ញុំថាវានឹងមានប្រយោជន៍ក្នុងករណីណាក៏ដោយ។

ជំរាបសួរ ឈ្មោះរបស់ខ្ញុំគឺ Glenn Fiedler ហើយខ្ញុំសូមស្វាគមន៍អ្នកចំពោះអត្ថបទដំបូងនៅក្នុងសៀវភៅអនឡាញរបស់ខ្ញុំ កម្មវិធីបណ្តាញសម្រាប់អ្នកអភិវឌ្ឍន៍ហ្គេម។

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

អ្នកទំនងជាធ្លាប់បានឮអ្វីមួយរួចហើយអំពីរន្ធ ហើយអ្នកប្រហែលជាដឹងថាពួកវាមានពីរប្រភេទសំខាន់ៗ - TCP និង UDP ។ រឿងដំបូងដែលអ្នកត្រូវសម្រេចចិត្តនៅពេលបង្កើតហ្គេមដែលមានអ្នកលេងច្រើនគឺប្រភេទរន្ធដែលត្រូវប្រើ - TCP, UDP ឬទាំងពីរ?

ជម្រើសនៃប្រភេទរន្ធគឺអាស្រ័យទាំងស្រុងលើប្រភេទហ្គេមដែលអ្នកកំពុងអភិវឌ្ឍ។ សម្រាប់ស៊េរីនៃអត្ថបទនេះ ខ្ញុំនឹងសន្មត់ថាអ្នកកំពុងសរសេរហ្គេមសកម្មភាព ដូចជា Halo, Battlefield 1942, Quake, Unreal, CounterStrike, Team Fortress ជាដើម។

ឥឡូវនេះយើងនឹងពិនិត្យមើលឱ្យកាន់តែដិតដល់នូវលក្ខណៈសម្បត្តិនៃប្រភេទរន្ធនីមួយៗ (ដែលបានផ្តល់ឱ្យការពិតដែលថាយើងកំពុងបង្កើតហ្គេមបែបសកម្មភាព) ហើយចូលជ្រៅបន្តិចទៅក្នុងព័ត៌មានលម្អិតអំពីរបៀបដែលអ៊ីនធឺណិតដំណើរការ។ បន្ទាប់ពី ការពិនិត្យលម្អិតជម្រើសត្រឹមត្រូវនឹងក្លាយជាជាក់ស្តែង!

TCP តំណាងឱ្យ "ពិធីការត្រួតពិនិត្យការបញ្ជូន" ហើយ IP តំណាងឱ្យ "ពិធីការអ៊ីនធឺណិត" ។ ពួកគេរួមគ្នាគាំទ្រស្ទើរតែគ្រប់អ្វីៗទាំងអស់ដែលអ្នកធ្វើនៅលើអ៊ីនធឺណិត ចាប់ពីការរុករកគេហទំព័ររហូតដល់ IRC និងការទំនាក់ទំនងតាមអ៊ីមែល - ទាំងអស់ដំណើរការលើ TCP/IP ។

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

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

ម្តងទៀត - អ្វីគ្រប់យ៉ាងគឺសាមញ្ញដូច ការចូលទៀងទាត់ឬការអានពីឯកសារ។ បឋមសិក្សា វ៉ាត់សុន!

ប៉ុន្តែភាពងាយស្រួលនៃការប្រើប្រាស់នេះគឺខុសគ្នាទាំងស្រុងពីអ្វីដែលកើតឡើង "នៅក្រោមក្រណាត់" នៅកម្រិតទាបជាង - កម្រិតពិធីការ IP ។

នៅកម្រិតនេះមិនមានគំនិតនៃការតភ្ជាប់ទេ - ផ្ទុយទៅវិញកញ្ចប់ព័ត៌មាននីមួយៗត្រូវបានបញ្ជូនពីកុំព្យូទ័រមួយទៅកុំព្យូទ័រមួយទៀត។ អ្នកអាចគិតពីដំណើរការនេះថាជាការឆ្លងកាត់កំណត់ត្រាពីមនុស្សម្នាក់ទៅមនុស្សម្នាក់ទៀតនៅក្នុងបន្ទប់ដែលពោរពេញដោយមនុស្ស៖ នៅទីបញ្ចប់ កំណត់ចំណាំបានទៅដល់មនុស្សត្រឹមត្រូវ ប៉ុន្តែក្នុងពេលតែមួយបានឆ្លងកាត់ដៃជាច្រើន។

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

ចុះប្រសិនបើយើងចង់ផ្ទេរព័ត៌មានរវាងកុំព្យូទ័រដែលមិនមែនជាទម្រង់អាន/សរសេរឯកសារ ប៉ុន្តែដោយការផ្ញើ និងទទួលកញ្ចប់ព័ត៌មានដោយផ្ទាល់?

ជាការប្រសើរណាស់, យើងអាចធ្វើវាបានដោយប្រើ UDP ។ UDP តំណាងឱ្យ "user datagram protocol" ហើយវាដំណើរការលើ IP (ដូចជា TCP) ប៉ុន្តែជំនួសឱ្យការបន្ថែមមុខងារជាច្រើន វាគ្រាន់តែជា add-on តូចមួយទៅ IP ប៉ុណ្ណោះ។

ដោយប្រើ UDP យើងអាចផ្ញើកញ្ចប់ព័ត៌មានទៅអាសយដ្ឋាន IP ជាក់លាក់មួយ (ឧទាហរណ៍ 112.140.20.10) និងច្រក (ឧទាហរណ៍ 52423) ហើយវានឹងត្រូវបានបញ្ជូនពីកុំព្យូទ័រមួយទៅកុំព្យូទ័ររហូតដល់វាទៅដល់គោលដៅ (ឬបាត់តាម វិធី)។

ក្នុងពេលជាមួយគ្នានេះ នៅផ្នែកអ្នកទទួល យើងគ្រាន់តែអង្គុយរង់ចាំ ស្តាប់ច្រកជាក់លាក់មួយ (52423 ក្នុងករណីរបស់យើង) ហើយនៅពេលដែលកញ្ចប់ព័ត៌មានមកដល់ពីនរណាម្នាក់ (ចងចាំថាគ្មានការតភ្ជាប់ណាមួយត្រូវបានប្រើប្រាស់) យើងទទួលបានការជូនដំណឹងអំពីបញ្ហានេះជាមួយ អាសយដ្ឋាន និងច្រកនៃកុំព្យូទ័របញ្ជូន ទំហំកញ្ចប់ព័ត៌មាន ហើយបន្ទាប់ពីនោះយើងអាចអានទិន្នន័យពីកញ្ចប់ព័ត៌មាននេះ។

ពិធីការ UDP មិនធានាការចែកចាយទិន្នន័យទេ។ នៅក្នុងការអនុវត្តជាក់ស្តែង កញ្ចប់ភាគច្រើនបានមកដល់ ប៉ុន្តែតែងតែមានការខាតបង់ប្រហែល 1-5% ហើយជួនកាលមានកំឡុងពេលដែលកញ្ចប់ព័ត៌មានមិនមកដល់ទាល់តែសោះ (សូមចាំថារវាងអ្នកផ្ញើ និងអ្នកទទួលអាចមាន។ ជា​កុំព្យូទ័រ​រាប់​ពាន់​ដែល​វា​អាច​នឹង​បរាជ័យ ឬ​ខូច)។

ដូចគ្នានេះផងដែរ UDP មិនធានាការបញ្ជាទិញដែលកញ្ចប់ត្រូវបានចែកចាយទេ។ អ្នកអាចផ្ញើកញ្ចប់ចំនួនប្រាំតាមលំដាប់ - 1, 2, 3, 4, 5 - ប៉ុន្តែពួកគេអាចនឹងមកដល់ក្នុងលំដាប់ខុសគ្នាទាំងស្រុង - ឧទាហរណ៍ 3, 1, 2, 5, 4។ ជាថ្មីម្តងទៀត នៅក្នុងការអនុវត្ត ពួកវាភាគច្រើនទំនងជា មកដល់តាមលំដាប់លំដោយត្រឹមត្រូវភាគច្រើន ប៉ុន្តែអ្នកមិនអាចពឹងផ្អែកលើវាបានទេ!

ទីបំផុត ខណៈពេលដែល UDP មិនបន្ថែមច្រើនទៅ IP វាធានារឿងមួយ។ ប្រសិនបើអ្នកបញ្ជូនកញ្ចប់ព័ត៌មាន វានឹងមកដល់ទាំងស្រុង ឬអត់ទាំងអស់។ ដូច្នេះប្រសិនបើអ្នកផ្ញើកញ្ចប់ព័ត៌មាន 256 បៃទៅកុំព្យូទ័រផ្សេងទៀត នោះវាមិនអាចទទួលបានត្រឹមតែ 100 បៃដំបូងពីកញ្ចប់ព័ត៌មាននោះទេ - វាត្រូវតែទទួលទាំងអស់ 256 បៃ។ នេះពិតជារឿងតែមួយគត់ដែលពិធីការ UDP ធានា - អ្វីៗផ្សេងទៀតធ្លាក់លើស្មារបស់អ្នក។

ដូច្នេះយើងត្រូវសម្រេចចិត្ត - តើយើងគួរប្រើរន្ធ TCP ឬ UDP? តោះ​ទៅ​មើល​លក្ខណៈ​សម្បត្តិ​របស់​ពួក​គេ​ទាំង​អស់​គ្នា៖

  • ប្រើគោលការណ៍តភ្ជាប់
  • ធានាការដឹកជញ្ជូននិងការផ្លាស់ប្តូរ
  • បំបែកព័ត៌មានដោយស្វ័យប្រវត្តិទៅជាកញ្ចប់ព័ត៌មាន
  • ធានាថាទិន្នន័យមិនត្រូវបានបញ្ជូនខ្លាំងពេក (ការគ្រប់គ្រងលំហូរទិន្នន័យ)
  • ងាយស្រួលប្រើ - ដូចជាការសរសេរ/អានពីឯកសារ
UDP៖
  • មិនប្រើគោលការណ៍តភ្ជាប់ - អ្នកនឹងត្រូវអនុវត្តវាដោយដៃ
  • មិនធានាការដឹកជញ្ជូននិងការបញ្ជាទិញនៃការដឹកជញ្ជូនកញ្ចប់ - ពួកគេអាចមកដល់ក្នុងការបញ្ជាទិញខុសដោយមានស្ទួនឬមិនមកដល់ទាំងអស់!
  • អ្នកត្រូវបំបែកទិន្នន័យដោយដៃទៅជាកញ្ចប់ព័ត៌មាន ហើយផ្ញើពួកវា
  • អ្នក​ត្រូវ​ប្រយ័ត្ន​កុំ​ផ្ញើ​ទិន្នន័យ​ខ្លាំង​ពេក
  • ប្រសិនបើកញ្ចប់ព័ត៌មានត្រូវបានបាត់បង់ អ្នកត្រូវតាមដានវា ហើយប្រសិនបើចាំបាច់ សូមផ្ញើវាឡើងវិញ
ជាមួយនឹងបញ្ជីបែបនេះ ដំណោះស្រាយហាក់ដូចជាជាក់ស្តែង - TCP អនុវត្តមុខងារទាំងអស់ដែលយើងត្រូវការ និងងាយស្រួលប្រើ ខណៈពេលដែលការប្រើប្រាស់ UDP សន្យាថានឹងកើតជំងឺឬសដូងបាតជាមួយនឹងការសរសេរអ្វីគ្រប់យ៉ាងដោយដៃពីទទេ។ ដូច្នេះយើងប្រើ TCP មែនទេ?

ប៉ុន្តែទេ។

ប្រហែលជាការប្រើប្រាស់ TCP កំហុសដ៏អាក្រក់បំផុត។ដែលអាចសម្រេចបាននៅពេលបង្កើតហ្គេមដែលមានអ្នកលេងច្រើន។ ដើម្បីយល់ពីមូលហេតុ តោះមើលអ្វីដែលធ្វើឱ្យ TCP ងាយស្រួលប្រើ!

របៀបដែល TCP ដំណើរការ
TCP និង UDP ទាំងពីរដំណើរការលើ IP ប៉ុន្តែតាមពិតពួកគេខុសគ្នាទាំងស្រុង។ UDP មានឥរិយាបទស្រដៀងគ្នាទៅនឹង IP ខណៈពេលដែល TCP អរូបីអ្នកប្រើប្រាស់នៅឆ្ងាយពីបញ្ហាកញ្ចប់ព័ត៌មានទាំងអស់ ធ្វើអន្តរកម្មជាមួយវាស្រដៀងនឹងការអាន/សរសេរទៅកាន់ឯកសារ។

ដូច្នេះតើគាត់ធ្វើវាដោយរបៀបណា?

ទីមួយ TCP ប្រើ abstraction ស្ទ្រីមទិន្នន័យ - អ្នកគ្រាន់តែអាចសរសេរបៃទិន្នន័យទៅស្ទ្រីមនោះ ហើយ TCP នឹងធ្វើឱ្យប្រាកដថាវាទៅដល់គោលដៅរបស់វា។ ដោយសារ IP បញ្ជូនទិន្នន័យនៅក្នុងកញ្ចប់ព័ត៌មាន ហើយ TCP ដំណើរការនៅលើកំពូលនៃ IP នោះ TCP ត្រូវតែបំបែកចរន្តបញ្ចូលរបស់អ្នកប្រើប្រាស់ទៅក្នុងកញ្ចប់ព័ត៌មាននីមួយៗ។ ដូច្នេះ នៅខាងក្នុង TCP តក្កវិជ្ជាខ្លះប្រមូលទិន្នន័យជាជួរ ហើយនៅពេលដែលវាគ្រប់គ្រាន់ វាបង្កើតជាកញ្ចប់ព័ត៌មាន ហើយបញ្ជូនវាទៅគោលដៅ។

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

TCP មានជម្រើសដើម្បីជួសជុលវា - "TCP_NODELAY" ។ វាប្រាប់ពិធីការកុំឱ្យរង់ចាំទិន្នន័យកកកុញក្នុងជួរបញ្ជូន ប៉ុន្តែត្រូវផ្ញើភ្លាមៗ។

ជាអកុសល សូម្បីតែជម្រើសនេះត្រូវបានដំឡើងក៏ដោយ TCP មានបញ្ហាជាច្រើននៅពេលប្រើ ហ្គេមអនឡាញ.

ឫសគល់នៃបញ្ហាទាំងអស់ស្ថិតនៅក្នុងវិធីដែល TCP ដោះស្រាយកញ្ចប់ព័ត៌មានដែលបាត់ ឬមិនមានការបញ្ជាទិញ បង្កើតការបំភាន់នៃការតភ្ជាប់ដែលអាចទុកចិត្តបាន និងជាប់លាប់។

របៀបដែល TCP ធានាភាពជឿជាក់នៃការតភ្ជាប់
នៅ ការបញ្ជូន TCPបំបែកការស្ទ្រីមទិន្នន័យទៅជាកញ្ចប់នីមួយៗ បញ្ជូនពួកវាតាមបណ្តាញដោយប្រើពិធីការ IP ដែលមិនគួរឱ្យទុកចិត្ត ហើយបន្ទាប់មកបង្កើតពួកវាឡើងវិញពីកុំព្យូទ័រទទួល បានទទួលកញ្ចប់លំហូរដើម។

ប៉ុន្តែតើមានអ្វីកើតឡើងប្រសិនបើកញ្ចប់មួយមិនមកដល់? ឬ​បើ​កញ្ចប់​មក​ដល់​មិន​មាន​ការ​បញ្ជា​ទិញ ឬ​មាន​ស្ទួន?

ដោយ​មិន​បាន​ចូល​ទៅ​ក្នុង​លម្អិត​ខ្លាំង​ពេក​ ប្រតិបត្តិការ TCP(ហើយនេះគឺជាប្រធានបទដ៏ស្មុគស្មាញ - អ្នកអាចអានវានៅក្នុង TCP/IP Illustrated) ដំណើរការមើលទៅដូចនេះ៖ TCP ផ្ញើកញ្ចប់ព័ត៌មាន កំណត់ថាកញ្ចប់ព័ត៌មានមិនបានមកដល់ ហើយផ្ញើកញ្ចប់ព័ត៌មានដូចគ្នាទៅអ្នកទទួលវិញ។ កញ្ចប់ព័ត៌មានស្ទួនត្រូវបានលុបចោលនៅខាងអ្នកទទួល ហើយកញ្ចប់ដែលមកដល់មិនប្រក្រតីត្រូវបានតម្រៀបឡើងវិញ ដូច្នេះអ្វីៗទាំងអស់គឺដូចដែលវាគួរតែមាន - អាចទុកចិត្តបាន និងតាមលំដាប់លំដោយ។

បញ្ហាគឺថានៅពេលដែល TCP "ធ្វើសមកាលកម្ម" ស្ទ្រីមទិន្នន័យតាមរបៀបនេះ ប្រសិនបើ packet ត្រូវបានបាត់បង់ ការបញ្ជូនឈប់រហូតដល់កញ្ចប់ដែលបាត់ត្រូវបានបញ្ជូនឡើងវិញ (និងទទួលបានដោយទិសដៅ) ។ ប្រសិនបើទិន្នន័យថ្មីមកដល់ពេលកំពុងរង់ចាំ វានឹងត្រូវបានដាក់ជាជួរ ហើយអ្នកនឹងមិនអាចអានវាបានទេ រហូតដល់កញ្ចប់ដែលបាត់មកដល់។ តើត្រូវចំណាយពេលប៉ុន្មានដើម្បីផ្ញើកញ្ចប់ឡើងវិញ? វាត្រូវចំណាយពេលយ៉ាងហោចពេលវេលាធ្វើដំណើរទៅមកនៃកញ្ចប់ព័ត៌មាន (នៅពេល TCP កំណត់ថាកញ្ចប់ព័ត៌មានមួយណាដែលត្រូវផ្ញើឡើងវិញ) បូកនឹងពេលវេលាដើម្បីបញ្ជូនកញ្ចប់ព័ត៌មានដែលបាត់មកវិញ។ ដូច្នេះប្រសិនបើ ping រវាងកុំព្យូទ័រគឺ 125ms, ការបញ្ជូនបន្តកញ្ចប់ព័ត៌មាននឹងចំណាយពេលប្រហែលមួយភាគប្រាំនៃវិនាទី ហើយក្នុងករណីដ៏អាក្រក់បំផុត - រហូតដល់កន្លះវិនាទី (ស្រមៃមើលប្រសិនបើភ្លាមៗនោះកញ្ចប់ព័ត៌មានដែលបានផ្ញើថ្មីក៏បាត់បង់ដែរ)។ វិសាខបូជា!

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

សូមក្រឡេកមើលឧទាហរណ៍ដ៏សាមញ្ញនៃហ្គេមដែលមានអ្នកលេងច្រើន ដូចជា ហ្គេមបាញ់ប្រហារ 3D ជាដើម។ ផ្នែកបណ្តាញនៃហ្គេមត្រូវបានបង្កើតឡើងយ៉ាងសាមញ្ញ៖ ការធ្វើម្តងទៀតនៃវដ្តហ្គេមនីមួយៗ អតិថិជនផ្ញើទៅម៉ាស៊ីនមេនូវការពិពណ៌នាអំពីសកម្មភាពរបស់អ្នកលេងទាំងអស់ (ចុចគ្រាប់ចុច ទីតាំងកណ្តុរ។ ធ្វើបច្ចុប្បន្នភាពគំរូនៃពិភពហ្គេម និងបញ្ជូនធាតុបច្ចុប្បន្នត្រឡប់ទៅទីតាំងអតិថិជននៃវត្ថុពិភពលោក ដើម្បីឱ្យវាគូរស៊ុមថ្មីសម្រាប់អ្នកលេង។

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

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

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

ប៉ុន្តែចាំមើល! ហេតុអ្វីបានជាខ្ញុំមិនអាចប្រើ UDP និង TCP ជាមួយគ្នា?

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

ជាការពិតណាស់ វាជាការចង់ប្រើ UDP សម្រាប់ការបញ្ចូលរបស់អ្នកប្រើប្រាស់ និងទិន្នន័យស្ថានភាពពិភពលោក និង TCP សម្រាប់ទិន្នន័យដែលត្រូវតែធានាថានឹងត្រូវបានចែកចាយ។ អ្នកប្រហែលជាគិតថាអ្នកអាចបង្កើត "ខ្សែស្រឡាយ" ជាច្រើននៃពាក្យបញ្ជា - ឧទាហរណ៍មួយសម្រាប់កម្រិតផ្ទុក មួយទៀតសម្រាប់ពាក្យបញ្ជា AI ។ អ្នកកំពុងគិតថា "ខ្ញុំមិនត្រូវការក្រុម AI ដែលរង់ចាំជាជួរទេ ប្រសិនបើកញ្ចប់ទិន្នន័យដើម្បីផ្ទុកកម្រិតមួយត្រូវបានបាត់បង់ ព្រោះវាមិនទាក់ទងគ្នាទាំងស្រុង!" IN ក្នុងករណីនេះអ្នកពិតជាត្រឹមត្រូវ ហើយអ្នកអាចសម្រេចចិត្តបង្កើតដោយ រន្ធ TCPសម្រាប់ស្ទ្រីមពាក្យបញ្ជានីមួយៗ។

នៅ glance ដំបូង, នេះ។ គំនិតដ៏អស្ចារ្យ. ប៉ុន្តែបញ្ហាគឺថាចាប់តាំងពី TCP និង UDP ទាំងពីរដំណើរការនៅលើកំពូលនៃ IP នោះកញ្ចប់នៃពិធីការទាំងពីរនឹងប៉ះពាល់ដល់គ្នាទៅវិញទៅមក - រួចទៅហើយនៅកម្រិត IP ។ តើឥទ្ធិពលនេះនឹងបង្ហាញឱ្យឃើញច្បាស់ប៉ុណ្ណាគឺជាសំណួរដ៏ស្មុគស្មាញមួយ ហើយវាទាក់ទងនឹងយន្តការភាពជឿជាក់នៅក្នុង TCP ។ ប៉ុន្តែក្នុងករណីណាក៏ដោយ ត្រូវដឹងថាការប្រើ TCP ជាធម្មតានាំឱ្យមានការខាតបង់កញ្ចប់ UDP កើនឡើង។ បើ​ចង់​ដឹង​បន្ថែម​ទៀត​អាច​អាន​បាន។

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

និយមន័យ

TCP- ពិធីការដឹកជញ្ជូនសម្រាប់ការផ្ទេរទិន្នន័យនៅក្នុងបណ្តាញ TCP/IP ដែលបង្កើតការតភ្ជាប់ទៅបណ្តាញជាមុន។

UDP- ពិធីការដឹកជញ្ជូនដែលបញ្ជូនសារ datagram ដោយមិនចាំបាច់បង្កើតការតភ្ជាប់នៅលើបណ្តាញ IP ។

ការប្រៀបធៀប

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

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

គេហទំព័រសេចក្តីសន្និដ្ឋាន

  1. TCP ធានាការចែកចាយកញ្ចប់ទិន្នន័យក្នុងទម្រង់មិនផ្លាស់ប្តូរ លំដាប់ និងដោយគ្មានការបាត់បង់ UDP មិនធានាអ្វីទាំងអស់។
  2. TCP ទាមទារការតភ្ជាប់ដែលបានបង្កើតជាមុន UDP មិនតម្រូវឱ្យមានការតភ្ជាប់ទេ។
  3. UDP ផ្តល់អត្រាផ្ទេរទិន្នន័យខ្ពស់ជាង។
  4. TCP មានភាពជឿជាក់ជាងមុន និងគ្រប់គ្រងដំណើរការផ្លាស់ប្តូរទិន្នន័យ។
  5. UDP គឺល្អសម្រាប់កម្មវិធីដែលចាក់វីដេអូ ស្ទ្រីមវីដេអូ និងទូរស័ព្ទ និងហ្គេមបណ្តាញ។

ពិធីការ UDP

User Datagram Protocol (UDP)គឺជាពិធីការតម្រង់ទិស datagram ដ៏សាមញ្ញ គ្មានការតភ្ជាប់ ដែលផ្តល់សេវាដឹកជញ្ជូនលឿន ប៉ុន្តែមិនចាំបាច់អាចទុកចិត្តបាន វាគាំទ្រអន្តរកម្មមួយទល់នឹងច្រើន ហើយដូច្នេះវាត្រូវបានគេប្រើជាញឹកញាប់សម្រាប់ការផ្សាយ និងការបញ្ជូនទិន្នន័យពហុខាស។

Internet Protocol (IP) គឺជាពិធីការសំខាន់របស់អ៊ីនធឺណិត។ Transmission Control Protocol (TCP) និង UDP គឺជាពិធីការស្រទាប់ដឹកជញ្ជូនដែលត្រូវបានបង្កើតឡើងនៅលើកំពូលនៃពិធីការមូលដ្ឋាន។

TCP/IP គឺជាសំណុំនៃពិធីការ ដែលត្រូវបានគេហៅថា Internet Protocol Suite ដែលមានបួនស្រទាប់។ សូមចងចាំថា TCP/IP មិនមែនគ្រាន់តែជាពិធីការមួយប៉ុណ្ណោះទេ ប៉ុន្តែជាក្រុមគ្រួសារ ឬសំណុំនៃពិធីការដែលមានពិធីការកម្រិតទាបផ្សេងទៀតដូចជា IP, TCP និង UDP ។ UDP មានទីតាំងនៅស្រទាប់ដឹកជញ្ជូននៅលើកំពូលនៃ IP (ពិធីការ ស្រទាប់បណ្តាញ) ស្រទាប់ដឹកជញ្ជូនផ្តល់នូវទំនាក់ទំនងរវាងបណ្តាញតាមរយៈច្រកផ្លូវ។ វាប្រើអាសយដ្ឋាន IP ដើម្បីផ្ញើកញ្ចប់ទិន្នន័យតាមអ៊ីនធឺណិត ឬបណ្តាញផ្សេងទៀតដោយប្រើកម្មវិធីបញ្ជាឧបករណ៍ផ្សេងៗ។

មុនពេលអ្នកចាប់ផ្តើមសិក្សា ការងារ UDPចូរយើងងាកទៅរកវាក្យសព្ទជាមូលដ្ឋានដែលអ្នកត្រូវដឹងឱ្យបានច្បាស់។ ខាងក្រោម​នេះ​យើង​នឹង​កំណត់​យ៉ាង​ខ្លី​នូវ​ពាក្យ​សំខាន់ៗ​ដែល​ទាក់ទង​នឹង UDP៖

កញ្ចប់

នៅក្នុងការបញ្ជូនទិន្នន័យ កញ្ចប់ព័ត៌មានគឺជាលំដាប់មួយ។ លេខគោលពីរតំណាងឱ្យទិន្នន័យ និងសញ្ញាត្រួតពិនិត្យដែលត្រូវបានបញ្ជូន និងប្តូរតាមរយៈម៉ាស៊ីន។ នៅខាងក្នុងកញ្ចប់ព័ត៌មាននេះមានទីតាំងនៅស្របតាមទម្រង់ពិសេស។

តារាងទិន្នន័យ

datagram គឺជាកញ្ចប់ទិន្នន័យឯករាជ្យតែមួយដែលផ្ទុកព័ត៌មានគ្រប់គ្រាន់ក្នុងការធ្វើដំណើរពីប្រភពទៅគោលដៅ ដូច្នេះមិនចាំបាច់មានចរាចរណ៍បន្ថែមរវាងប្រភព គោលដៅ និងបណ្តាញដឹកជញ្ជូនទេ។

MTU (ឯកតាបញ្ជូនអតិបរមា)

លក្ខណៈ MTU ស្រទាប់តំណនិងត្រូវគ្នា។ ចំនួនអតិបរមាបៃដែលអាចត្រូវបានបញ្ជូនក្នុងកញ្ចប់តែមួយ។ ម៉្យាងទៀត MTU គឺជាកញ្ចប់ធំបំផុតដែលបរិយាកាសបណ្តាញដែលបានផ្តល់ឱ្យអាចផ្ទុកបាន។ ឧទាហរណ៍ Ethernet មាន MTU ថេរនៃ 1500 បៃ។ នៅក្នុង UDP ប្រសិនបើទំហំ datagram ធំជាង MTU នោះ IP protocol ធ្វើការបំបែកដោយបំបែក datagram ទៅជាបំណែកតូចៗ (fragments) ដូច្នេះ fragment នីមួយៗមានតិចជាង MTU ។

ច្រក

ដើម្បីផ្គូផ្គងទិន្នន័យចូលទៅនឹងដំណើរការជាក់លាក់មួយដែលដំណើរការលើកុំព្យូទ័រ UDP ប្រើច្រក។ UDP បញ្ជូនកញ្ចប់ព័ត៌មានទៅទីតាំងសមស្របដោយប្រើលេខច្រកដែលបានបញ្ជាក់នៅក្នុងបឋមកថា UDP នៃ datagram ។ ច្រកត្រូវបានតំណាងដោយលេខ 16 ប៊ីត ដូច្នេះយកតម្លៃចាប់ពី 0 ដល់ 65,535 ច្រកដែលត្រូវបានគេហៅថាចុងបញ្ចប់នៃការតភ្ជាប់ឡូជីខលត្រូវបានបែងចែកទៅជាបីប្រភេទ។

ចំណាំថាច្រក UDP អាចទទួលបានសារច្រើនជាងមួយនៅពេលណាមួយដែលបានកំណត់។ ក្នុងករណីខ្លះ សេវា TCP និង UDP អាចប្រើលេខច្រកដូចគ្នា ដូចជា 7 (អេកូ) ឬ 23 (Telnet) ។

UDP ប្រើច្រកដែលគេស្គាល់ដូចខាងក្រោមៈ

បញ្ជីនៃច្រក UDP និង TCP ត្រូវបានរក្សាទុកដោយ IANA (អាជ្ញាធរលេខដែលបានចាត់តាំងតាមអ៊ីនធឺណិត)។

អាសយដ្ឋាន IP

IP datagram មានប្រភព 32 ប៊ីត និងអាសយដ្ឋាន IP ទិសដៅ។ អាសយដ្ឋាន IP ទិសដៅបញ្ជាក់ចំណុចបញ្ចប់សម្រាប់ UDP datagram ហើយអាសយដ្ឋាន IP ប្រភពត្រូវបានប្រើដើម្បីទទួលបានព័ត៌មានអំពីអ្នកដែលផ្ញើសារ។ នៅគោលដៅ កញ្ចប់ព័ត៌មានត្រូវបានត្រង ហើយអាសយដ្ឋានប្រភពរបស់ពួកគេមិនត្រូវបានរួមបញ្ចូលក្នុងសំណុំអាសយដ្ឋានដែលមានសុពលភាពត្រូវបានលុបចោលដោយគ្មានការជូនដំណឹងដល់អ្នកផ្ញើ។

អាសយដ្ឋាន IP របស់ unicast កំណត់អត្តសញ្ញាណម៉ាស៊ីននៅលើបណ្តាញមួយ ដោយឡែកអាសយដ្ឋាន IP ពហុខាសកំណត់អត្តសញ្ញាណក្រុមជាក់លាក់នៃអាសយដ្ឋាននៅលើបណ្តាញមួយ។ អាសយដ្ឋាន IP ផ្សាយត្រូវបានទទួល និងដំណើរការដោយម៉ាស៊ីនទាំងអស់។ បណ្តាញក្នុងស្រុកឬបណ្តាញរងជាក់លាក់។

TTL

តម្លៃ time-to-live ឬ TTL (time-to-live) អនុញ្ញាតឱ្យអ្នកកំណត់ដែនកំណត់ខាងលើលើចំនួន routers ដែល datagram អាចឆ្លងកាត់បាន។ តម្លៃ TTL រារាំងកញ្ចប់ព័ត៌មានមិនឱ្យទៅដល់ រង្វិលជុំគ្មានទីបញ្ចប់. វាត្រូវបានចាប់ផ្តើមដោយអ្នកផ្ញើ និងបន្ថយដោយមួយដោយរ៉ោតទ័រនីមួយៗដែលដំណើរការ datagram ។ នៅពេលដែលតម្លៃ TTL ក្លាយជាសូន្យ Datagram នឹងត្រូវបោះបង់ចោល។

ការផ្ញើសារជាក្រុម

Multicast គឺជាវិធីសាស្រ្តដែលផ្អែកលើស្តង់ដារបើកចំហសម្រាប់ការចែកចាយព័ត៌មានដូចគ្នាបេះបិទទៅកាន់អ្នកប្រើប្រាស់ច្រើននាក់ក្នុងពេលដំណាលគ្នា។ Multicast គឺជាមុខងារសំខាន់នៃពិធីការ UDP វាមិនអាចទៅរួចទេសម្រាប់ពិធីការ TCP ។ Multicast អនុញ្ញាតឱ្យមានអន្តរកម្មមួយទល់នឹងច្រើន ជាឧទាហរណ៍ ធ្វើឱ្យការប្រើប្រាស់ដែលអាចធ្វើបាន ដូចជាការផ្ញើព័ត៌មាន និងសំបុត្រទៅកាន់អ្នកទទួលច្រើន វិទ្យុអ៊ីនធឺណិត ឬកម្មវិធីសាកល្បងតាមពេលវេលាជាក់ស្តែង។ Multicast មិនផ្ទុកបណ្តាញច្រើនដូចការបញ្ជូនផ្សាយទេ ដោយសារទិន្នន័យត្រូវបានផ្ញើទៅអ្នកប្រើប្រាស់ជាច្រើនក្នុងពេលតែមួយ៖

របៀបដែល UDP ដំណើរការ

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

តួលេខមុនបង្ហាញថាប្រវែងសរុបនៃបឋមកថា UDP គឺប្រាំបីបៃ។ តាមទ្រឹស្តី ទំហំអតិបរមាទិន្នន័យ IP មួយគឺ 65,535 បៃ។ ជាមួយនឹង 20 បៃនៃបឋមកថា IP និង 8 បៃនៃបឋមកថា UDP ប្រវែងទិន្នន័យអ្នកប្រើប្រាស់អាចឡើងដល់ 65,507 បៃ។ ទោះយ៉ាងណាក៏ដោយ កម្មវិធីភាគច្រើនដំណើរការជាមួយទិន្នន័យ ទំហំតូចជាង. ដូច្នេះសម្រាប់កម្មវិធីភាគច្រើន ប្រវែងលំនាំដើមគឺប្រហែល 8192 បៃ ដោយសារនេះជាចំនួនទិន្នន័យដែលត្រូវបានអាន និងសរសេរដោយបណ្តាញ។ ប្រព័ន្ធឯកសារ(NFS) ។ អ្នក​អាច​កំណត់​ទំហំ​នៃ​សតិបណ្ដោះអាសន្ន​បញ្ចូល​និង​ទិន្នផល។

មូលប្បទានប័ត្រគឺចាំបាច់ដើម្បីពិនិត្យមើលថាតើទិន្នន័យត្រូវបានបញ្ជូនទៅកាន់គោលដៅរបស់វាត្រឹមត្រូវឬក៏ខូច។ វាគ្របដណ្តប់ទាំងបឋមកថា UDP និងទិន្នន័យ។ បៃបំពេញត្រូវបានប្រើប្រសិនបើចំនួនសរុបនៃ octets ក្នុង datagram គឺសេស។ ប្រសិនបើបានទទួល ឆេកសាំស្មើសូន្យ អ្នកទទួលរកឃើញកំហុសឆ្គង checksum ហើយបោះបង់ datagram ។ ទោះបីជា checksum គឺជាមុខងារស្រេចចិត្តក៏ដោយ វាត្រូវបានណែនាំឱ្យបញ្ចូលវាជានិច្ច។

នៅជំហានបន្ទាប់ ស្រទាប់ IP បន្ថែម 20 បៃនៃបឋមកថា ដែលរួមមាន TTL អាសយដ្ឋាន IP ប្រភព និងទិសដៅ និងព័ត៌មានផ្សេងទៀត។ សកម្មភាពនេះត្រូវបានគេហៅថា IP encapsulation ។

ដូចដែលបានរៀបរាប់ខាងលើ ទំហំកញ្ចប់អតិបរមាគឺ 65,507 បៃ។ ប្រសិនបើកញ្ចប់ធំជាងលំនាំដើម ទំហំ MTUបន្ទាប់មកស្រទាប់ IP បំបែកកញ្ចប់ព័ត៌មានទៅជាផ្នែក។ ផ្នែកទាំងនេះត្រូវបានគេហៅថា បំណែក ហើយដំណើរការនៃការបំបែកទិន្នន័យទៅជាផ្នែកគឺ ការបែកខ្ញែក. បឋមកថា IP មានព័ត៌មានបំណែកទាំងអស់។

នៅពេលដែលកម្មវិធីផ្ញើ "បោះ" datagram ទៅកាន់បណ្តាញ វាត្រូវបានបញ្ជូនទៅកាន់អាសយដ្ឋាន IP ទិសដៅដែលបានបញ្ជាក់នៅក្នុងបឋមកថា IP ។ នៅពេលឆ្លងកាត់រ៉ោតទ័រ តម្លៃពេលវេលាដើម្បីបន្តផ្ទាល់ (TTL) នៅក្នុងបឋមកថា IP ត្រូវបានកាត់បន្ថយដោយមួយ។

នៅពេលដែល datagram មកដល់គោលដៅ និងច្រកដែលបានផ្តល់ឱ្យ ស្រទាប់ IP ពិនិត្យមើលបឋមកថារបស់វាដើម្បីមើលថាតើ datagram ត្រូវបានបែងចែក។ បើដូច្នេះមែននោះ datagram ត្រូវបានផ្គុំឡើងដោយយោងទៅតាមព័ត៌មាននៅក្នុងបឋមកថា។ ទីបំផុត ស្រទាប់កម្មវិធីទាញយកទិន្នន័យដែលបានត្រងដោយយកបឋមកថាចេញ។

គុណវិបត្តិនៃ UDP

បើប្រៀបធៀបទៅនឹង TCP UDP មានគុណវិបត្តិដូចខាងក្រោមៈ

    គ្មាន​សញ្ញា​ទទួល​ស្គាល់. មុនពេលផ្ញើកញ្ចប់ព័ត៌មាន UDP ភាគីផ្ញើមិនផ្លាស់ប្តូរសញ្ញាចាប់ដៃជាមួយភាគីទទួលទេ។ ដូច្នេះ អ្នក​ផ្ញើ​គ្មាន​វិធី​អាច​ដឹង​ថា​តើ datagram បាន​ទៅ​ដល់​ប្រព័ន្ធ​គោលដៅ​ឬ​អត់។ ជាលទ្ធផល UDP មិនអាចធានាថាទិន្នន័យនឹងត្រូវបានបញ្ជូនទៅគោលដៅពិតប្រាកដ (ឧទាហរណ៍ ប្រសិនបើប្រព័ន្ធបញ្ចប់ ឬបណ្តាញធ្លាក់ចុះ)។

    ផ្ទុយទៅវិញ TCP គឺផ្តោតលើការតភ្ជាប់ និងបើកការទំនាក់ទំនងរវាងម៉ាស៊ីនដែលភ្ជាប់បណ្តាញដោយប្រើកញ្ចប់ព័ត៌មាន។ TCP ប្រើការចាប់ដៃដើម្បីផ្ទៀងផ្ទាត់ថាទិន្នន័យត្រូវបានដឹកជញ្ជូនដោយជោគជ័យ។

    ការប្រើប្រាស់វគ្គ. ធម្មជាតិនៃការតភ្ជាប់តាមទិសរបស់ TCP ត្រូវបានគាំទ្រដោយវគ្គរវាងម៉ាស៊ីន។ TCP ប្រើការកំណត់អត្តសញ្ញាណសម័យដើម្បីតាមដានការតភ្ជាប់រវាងម៉ាស៊ីនទាំងពីរ។ UDP មិន​មាន​ការ​គាំទ្រ​សម័យ​ដោយ​សារ​តែ​លក្ខណៈ​នៃ​ការ​តភ្ជាប់​របស់​វា​។

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

    សុវត្ថិភាព. TCP មានសុវត្ថិភាពជាង UDP ។ នៅក្នុងអង្គការជាច្រើន ជញ្ជាំងភ្លើង និងរ៉ោតទ័រមិនអនុញ្ញាតឱ្យកញ្ចប់ព័ត៌មាន UDP ឆ្លងកាត់ទេ។ នេះគឺដោយសារតែពួក Hacker អាចទាញយកអត្ថប្រយោជន៍ ច្រក UDPដោយមិនបង្កើតទំនាក់ទំនងច្បាស់លាស់។

    ការគ្រប់គ្រងលំហូរ. UDP មិនមានការគ្រប់គ្រងលំហូរទេ ហើយជាលទ្ធផល កម្មវិធី UDP ដែលរចនាមិនសូវល្អអាចចាប់យកផ្នែកសំខាន់នៃ កម្រិតបញ្ជូនបណ្តាញ។

អត្ថប្រយោជន៍របស់ UDP

បើប្រៀបធៀបទៅនឹង TCP UDP មានគុណសម្បត្តិដូចខាងក្រោមៈ

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

    ល្បឿន. UDP លឿនជាង TCP ។ សម្រាប់ហេតុផលនេះ កម្មវិធីជាច្រើនចូលចិត្ត UDP ជាង TCP ។ របស់ដូចគ្នាដែលធ្វើឱ្យ TCP កាន់តែរឹងមាំ (ដូចជាសញ្ញាចាប់ដៃ) ក៏បន្ថយល្បឿនផងដែរ។

    ភាពចម្រុះនៃ topological. UDP គាំទ្រការទំនាក់ទំនងមួយទៅមួយ និងពីមួយទៅច្រើន ខណៈពេលដែល TCP គាំទ្រតែការទំនាក់ទំនងមួយទៅមួយប៉ុណ្ណោះ។

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

    ទំហំក្បាល. សម្រាប់កញ្ចប់នីមួយៗ បឋមកថា UDP មានប្រវែងត្រឹមតែប្រាំបីបៃប៉ុណ្ណោះ ខណៈដែល TCP មានបឋមកថា 20 បៃ ដូច្នេះហើយ UDP ប្រើប្រាស់កម្រិតបញ្ជូនបណ្តាញតិចជាង។