ការចាប់ដៃបីផ្លូវ TCP - ទង់ SYN និង ACK

បឋមកថា UDP តែងតែមានប្រវែង 64 ប៊ីត។ វាលដែលបានកំណត់នៅក្នុងផ្នែក UDP (សូមមើលរូប) រួមមានដូចខាងក្រោម៖
ច្រកប្រភព៖ លេខច្រកប្រភព (16 ប៊ីត)
2. ច្រកគោលដៅ៖ លេខច្រកគោលដៅ (16 ប៊ីត)
3. ប្រវែងសារ៖ ប្រវែងបឋមកថា UDP និង ទិន្នន័យ UDP(១៦ ប៊ីត)
4. Checksum៖ បានគណនា checksum នៃ header និង data fields (16 bits)
5. ទិន្នន័យ៖ ទិន្នន័យពិធីការស្រទាប់ខាងលើ (ULP) (ប្រវែងអថេរ)
ឧទាហរណ៍នៃពិធីការដែលប្រើ UDP: TFTP, SNMP, ឯកសារបណ្តាញប្រព័ន្ធ (NFS) និងដែន ប្រព័ន្ធឈ្មោះ(DNS) ។

បឋមកថា TCP មានព័ត៌មានដែលត្រូវបានកំណត់ ពិធីការ TCP. IN ផ្នែកនេះ។សមាសធាតុនៃបឋមកថា TCP ត្រូវបានពិពណ៌នា។

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

ច្រកប្រភព៖ លេខច្រកប្រភព (16 ប៊ីត)

ច្រកគោលដៅ៖ លេខច្រកគោលដៅ (16 ប៊ីត)

លេខលំដាប់៖ លេខស៊េរី octet ដំបូងនៃទិន្នន័យ
ផ្នែកដែលប្រើដើម្បីធានាថាទិន្នន័យចូលត្រូវបានតម្រៀបត្រឹមត្រូវ។
(៣២ ប៊ីត)

លេខសម្គាល់៖ octet ដែលរំពឹងទុកបន្ទាប់
TCP (32 ប៊ីត)

ប្រវែងបឋមកថា៖ ចំនួនពាក្យ ៣២ ប៊ីតក្នុងបឋមកថា (៤ ប៊ីត)

បម្រុងទុក៖ កំណត់ទៅ ០ (៣ ប៊ីត)

ប៊ីតត្រួតពិនិត្យ៖ មុខងារត្រួតពិនិត្យដូចជាការកំណត់,
ការផ្ទុកលើសទម្ងន់ និងការបញ្ចប់វគ្គ (9 ប៊ីត) ។ ប៊ីតតែមួយគត់ដែលមានលក្ខណៈពិសេស
តម្លៃដែលតែងតែគិតថាជាទង់។

បង្អួច៖ ចំនួន octets ដែលឧបករណ៍មានឆន្ទៈទទួលយក (16 ប៊ីត)

Checksum៖ មូលប្បទានប័ត្រដែលបានគណនានៃបឋមកថា និង
ទិន្នន័យ (១៦ ប៊ីត)

បន្ទាន់៖ បង្ហាញពីការបញ្ចប់នៃទិន្នន័យបន្ទាន់ (16 ប៊ីត)

ជម្រើស៖ បច្ចុប្បន្នជម្រើសមួយត្រូវបានកំណត់ - ទំហំអតិបរមា
ផ្នែក TCP (0 ឬ 32 ប៊ីត)

ទិន្នន័យ៖ ទិន្នន័យពិធីការស្រទាប់ខាងលើ (ULP)
(ប្រវែងអថេរ)

0 - 3

4 - 9

10 - 15

16 - 31

ប្រភពច្រក

កំពង់ផែគោលដៅ,ច្រកគោលដៅ

លេខស៊េរី,លេខលំដាប់ (SN)

លេខបញ្ជាក់

ប្រវែងក្បាល

កក់ទុក

ទង់ជាតិ

ទំហំបង្អួច

មូលប្បទានប័ត្រ

សូចនាករសារៈសំខាន់

ជម្រើស (ជាជម្រើស ប៉ុន្តែស្ទើរតែតែងតែប្រើ)

160/192+

ទិន្នន័យ

ទំ ច្រកប្រភព, ច្រកគោលដៅ

វាល 16 ប៊ីតទាំងនេះមានលេខច្រក - លេខដែលត្រូវបានកំណត់ដោយបញ្ជីពិសេស .

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

ច្រកគោលដៅ កំណត់ច្រកដែលកញ្ចប់ព័ត៌មានត្រូវបានផ្ញើ។

លេខស៊េរី

លេខលំដាប់មានគោលបំណងពីរ៖

  1. ប្រសិនបើទង់ SYN ត្រូវបានកំណត់ នោះនេះគឺជាលេខលំដាប់ដំបូង - ISN (លេខលំដាប់ដំបូង) និងបៃដំបូងនៃទិន្នន័យដែលនឹងត្រូវបានផ្ទេរទៅ កញ្ចប់បន្ទាប់នឹងមានលេខស្មើនឹង ISN + 1 ។
  2. បើមិនដូច្នេះទេ ប្រសិនបើ SYN មិនត្រូវបានកំណត់ នោះបៃដំបូងនៃទិន្នន័យដែលបានបញ្ជូនក្នុងកញ្ចប់ព័ត៌មានដែលបានផ្តល់ឱ្យមានលេខលំដាប់នេះ

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

លេខបញ្ជាក់

លេខ​ទទួល​ស្គាល់ (ACK SN)(32 ប៊ីត) - ប្រសិនបើ ACK ត្រូវបានកំណត់ នោះវាលនេះមានលេខលំដាប់នៃ octet ដែលអ្នកផ្ញើផ្នែកនេះចង់ទទួល។ នេះមានន័យថា octets ពីមុនទាំងអស់ (ជាមួយលេខពី ISN+1 ដល់ ACK-1 រួមបញ្ចូល) ត្រូវបានទទួលដោយជោគជ័យ។

បន្ទាត់បឋមកថា (អុហ្វសិតទិន្នន័យ)

វាលនេះបញ្ជាក់ទំហំក្បាលកញ្ចប់ TCP ជាពាក្យ 4-byte (4-octet) ។ ទំហំអប្បបរមាគឺ 5 ពាក្យ ហើយអតិបរមាគឺ 15 ដែលជា 20 និង 60 បៃរៀងគ្នា។ អុហ្វសិតត្រូវបានគណនាចាប់ពីដើមដំបូងនៃបឋមកថា TCP ។

3 បម្រុង

បានបម្រុងទុក (6 ប៊ីត) សម្រាប់ការប្រើប្រាស់នាពេលអនាគត ហើយត្រូវតែកំណត់ទៅសូន្យ។ ក្នុងចំណោមនោះ ពីរ (ទី៥ និងទី៦) ត្រូវបានកំណត់រួចហើយ៖

  • CWR (បង្អួចការកកស្ទះត្រូវបានកាត់បន្ថយ) - ការកកស្ទះបង្អួចកាត់បន្ថយ - ទង់ដែលកំណត់ដោយអ្នកផ្ញើដើម្បីបង្ហាញថាកញ្ចប់ព័ត៌មានត្រូវបានទទួលជាមួយនឹងទង់ ECE (RFC 3168)
  • ECE (ECN-Echo) - វាល ECN Echo - បង្ហាញថាថ្នាំងនេះមានសមត្ថភាព ECN (ការជូនដំណឹងអំពីការកកស្ទះយ៉ាងច្បាស់) និងដើម្បីចង្អុលបង្ហាញដល់អ្នកផ្ញើអំពីការកកស្ទះបណ្តាញ (RFC 3168)

ភាពយឺតយ៉ាវ (ការគ្រប់គ្រងប៊ីត)

វាលនេះមានទង់ 6 ប៊ីត៖

  • URG - វាល "សន្ទស្សន៍សារៈសំខាន់"ពាក់ព័ន្ធ (ភាសាអង់គ្លេស) វាល​ទ្រនិច​បន្ទាន់​គឺ​សំខាន់)
  • ACK - វាល "លេខបញ្ជាក់"ពាក់ព័ន្ធ (ភាសាអង់គ្លេស) វាល​ការ​ទទួល​ស្គាល់​គឺ​សំខាន់​)
  • PSH - (មុខងារជំរុញភាសាអង់គ្លេស) ណែនាំអ្នកទទួលឱ្យរុញទិន្នន័យដែលបានប្រមូលផ្តុំនៅក្នុងសតិបណ្ដោះអាសន្នទទួលចូលទៅក្នុងកម្មវិធីអ្នកប្រើប្រាស់
  • RST - ផ្តាច់ការតភ្ជាប់ កំណត់សតិបណ្ដោះអាសន្នឡើងវិញ (ការសម្អាតសតិបណ្ដោះអាសន្ន) (eng ។ កំណត់ការតភ្ជាប់ឡើងវិញ)
  • SYN - ធ្វើសមកាលកម្មលេខលំដាប់
  • FIN (ភាសាអង់គ្លេសចុងក្រោយ ប៊ីត) - ទង់ជាតិ នៅពេលកំណត់ បង្ហាញពីការបញ្ចប់នៃការតភ្ជាប់ (ភាសាអង់គ្លេស។ ប៊ីត FIN ប្រើសម្រាប់ការបញ្ចប់ការតភ្ជាប់).

ទំហំបង្អួច

ចំនួនបៃទិន្នន័យចាប់ផ្តើមពី បញ្ហាចុងក្រោយការបញ្ជាក់ដែលអ្នកផ្ញើអាចទទួលយកបាន។ នៃកញ្ចប់នេះ។. ម៉្យាងទៀតអ្នកផ្ញើកញ្ចប់ព័ត៌មានមានបណ្តុំនៃ "ទំហំបង្អួច" បៃដើម្បីទទួលទិន្នន័យ។

TO ឆេកសាំ

វាល ឆេកសាំគឺជាការបំពេញបន្ថែម 16 ប៊ីតនៃផលបូកនៃពាក្យ 16 ប៊ីតទាំងអស់នៃបឋមកថា (រួមទាំងបឋមកថា pseudo-header) និងទិន្នន័យ។ ប្រសិនបើផ្នែកដែល checksum ត្រូវបានគណនាមានប្រវែងដែលមិនមែនជាពហុគុណនៃ 16 ប៊ីត នោះប្រវែងនៃចម្រៀកត្រូវបានកើនឡើងដល់ពហុគុណនៃ 16 ដោយបន្ថែមលេខសូន្យទៅវានៅខាងស្តាំ។ Padding bits (0) មិន​ត្រូវ​បាន​បញ្ជូន​ក្នុង​សារ​ទេ ហើយ​បម្រើ​តែ​ដើម្បី​គណនា checksum ប៉ុណ្ណោះ។ នៅពេលគណនា checksum តម្លៃនៃវាល checksum ខ្លួនវាត្រូវបានសន្មតថាជា 0 ។

យូ សូចនាករសារៈសំខាន់

តម្លៃ 16 ប៊ីតនៃអុហ្វសិតវិជ្ជមានពីលេខលំដាប់នៅក្នុងផ្នែកនេះ។ វាលនេះបញ្ជាក់លេខលំដាប់ octet ដែលបញ្ចប់ទិន្នន័យបន្ទាន់។ វាលនេះត្រូវបានគេយកមកពិចារណាសម្រាប់តែកញ្ចប់ព័ត៌មានដែលមានទង់ URG ប៉ុណ្ណោះ។ ប្រើសម្រាប់ទិន្នន័យក្រៅបណ្តាញ .

អំពីជម្រើស

អាចត្រូវបានប្រើក្នុងករណីខ្លះដើម្បីពង្រីកពិធីការ។ ពេលខ្លះប្រើសម្រាប់ការសាកល្បង។ បើក នៅពេលនេះជម្រើសស្ទើរតែតែងតែរួមបញ្ចូល 2 បៃណុប (វ ក្នុងករណីនេះ 0x01) និង 10 បៃបញ្ជាក់ត្រាពេលវេលា . អ្នកអាចគណនាប្រវែងនៃវាលជម្រើសដោយប្រើតម្លៃនៃវាលអុហ្វសិត។

យន្តការនៃពិធីការ

មិនដូច ជម្រើសប្រពៃណី- UDP ដែលអាចចាប់ផ្តើមបញ្ជូនកញ្ចប់ភ្លាមៗ TCP បង្កើតការតភ្ជាប់ដែលត្រូវតែបង្កើតមុនពេលបញ្ជូនទិន្នន័យ។ ការតភ្ជាប់ TCPអាចបែងចែកជា ៣ ដំណាក់កាល៖

  • ការបង្កើតទំនាក់ទំនង
  • ការផ្ទេរទិន្នន័យ
  • ការបញ្ចប់ការតភ្ជាប់

ជាមួយ ស្ថានភាពសម័យ TCP

ដ្យាក្រាមរដ្ឋ TCP សាមញ្ញ។ ព័ត៌មានលម្អិតបន្ថែមនៅក្នុងដ្យាក្រាម TCP EFSM (ជាភាសាអង់គ្លេស)

សម័យ TCP ចែង

បិទ

ស្ថានភាពដំបូងនៃថ្នាំង។ តាមពិតប្រឌិត

ស្តាប់

ម៉ាស៊ីនមេរង់ចាំការស្នើសុំការតភ្ជាប់ពីអតិថិជន

SYN-SENT

ម៉ាស៊ីនភ្ញៀវបានផ្ញើសំណើទៅម៉ាស៊ីនមេដើម្បីបង្កើតការតភ្ជាប់ ហើយកំពុងរង់ចាំការឆ្លើយតប

SYN-បានទទួល

ម៉ាស៊ីនមេបានទទួលសំណើតភ្ជាប់ ផ្ញើសំណើឆ្លើយតប និងកំពុងរង់ចាំការបញ្ជាក់

បានបង្កើតឡើង

ការតភ្ជាប់ត្រូវបានបង្កើតឡើង ការផ្ទេរទិន្នន័យកំពុងដំណើរការ

FIN-WAIT-1

ភាគីមួយក្នុងចំណោមភាគី (សូមហៅវាថា node-1) បញ្ចប់ការតភ្ជាប់ដោយផ្ញើផ្នែកដែលមានទង់ FIN

បិទ-រង់ចាំ

ផ្នែកម្ខាងទៀត (node-2) ចូលទៅក្នុងស្ថានភាពនេះដោយការបញ្ជូន ACK segment និងបន្តការបញ្ជូនមួយផ្លូវ

FIN-WAIT-2

Node-1 ទទួលបាន ACK បន្តអាន ហើយរង់ចាំទទួលផ្នែកដែលមានទង់ FIN

ចុងក្រោយ-ACK

Node-2 បញ្ចប់ការបញ្ជូន និងបញ្ជូនផ្នែកដែលមានទង់ FIN

TIME-WIT

Node-1 បានទទួលផ្នែកដែលមានទង់ FIN ផ្ញើផ្នែកដែលមានទង់ ACK ហើយរង់ចាំ 2*MSL វិនាទី មុនពេលបិទការតភ្ជាប់

ការបិទ

ភាគីទាំងពីរបានចាប់ផ្តើមការបិទការតភ្ជាប់ក្នុងពេលតែមួយ៖ បន្ទាប់ពីផ្ញើផ្នែកដែលមានទង់ FIN នោះ node-1 ក៏ទទួលបានផ្នែក FIN ផ្ញើ ACK និងរង់ចាំផ្នែក ACK (ទទួលស្គាល់សំណើរផ្តាច់របស់វា)

យូ ការបង្កើតការតភ្ជាប់

ដំណើរការនៃការចាប់ផ្តើមសម័យ TCP (ហៅផងដែរថា "ការចាប់ដៃ" (ភាសាអង់គ្លេស ការចាប់ដៃ

)) មានបីជំហាន។ 1. ម៉ាស៊ីនភ្ញៀវដែលមានបំណងបង្កើតការតភ្ជាប់ ផ្ញើផ្នែកមួយទៅម៉ាស៊ីនមេដែលមានលេខលំដាប់ និង.

  • ទង់ SYN
  • ម៉ាស៊ីនមេទទួលបានផ្នែក ចងចាំលេខលំដាប់ និងព្យាយាមបង្កើតរន្ធ (ទ្រនាប់ និងរចនាសម្ព័ន្ធអង្គចងចាំ) ដើម្បីបម្រើអតិថិជនថ្មី។
  • ប្រសិនបើជោគជ័យ នោះម៉ាស៊ីនមេបញ្ជូនអតិថិជននូវផ្នែកមួយដែលមានលេខលំដាប់ និងទង់ SYN និង ACK ហើយចូលទៅក្នុងស្ថានភាព SYN-RECEIVED ។

ក្នុង​ករណី​បរាជ័យ ម៉ាស៊ីនមេ​បញ្ជូន​អតិថិជន​នូវ​ផ្នែក​មួយ​ជាមួយ​ទង់ RST ។

  • 2. ប្រសិនបើអតិថិជនទទួលបានផ្នែកដែលមានទង់ SYN នោះវាចងចាំលេខលំដាប់ ហើយផ្ញើផ្នែកដែលមានទង់ ACK ។
  • ប្រសិនបើវាទទួលទង់ ACK ក្នុងពេលតែមួយ (ដែលជាធម្មតាកើតឡើង) នោះវាចូលទៅក្នុងស្ថានភាព ESTABLISHED ។
  • ប្រសិនបើអតិថិជនទទួលបានផ្នែកដែលមានទង់ RST វាឈប់ព្យាយាមភ្ជាប់។

ប្រសិនបើម៉ាស៊ីនភ្ញៀវមិនទទួលបានការឆ្លើយតបក្នុងរយៈពេល 10 វិនាទីទេ វាដំណើរការឡើងវិញនូវដំណើរការតភ្ជាប់ម្តងទៀត។

  • 3. ប្រសិនបើម៉ាស៊ីនមេនៅក្នុងស្ថានភាព SYN-RECEIVED ទទួលបានផ្នែកដែលមានទង់ ACK នោះវាប្តូរទៅស្ថានភាព ESTABLISHED ។

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

ឧទាហរណ៍នៃការអនុម័ត 3 ជំហានជាមូលដ្ឋាន៖

TCP A TCP B

1. បិទស្តាប់

2. SYN-SENT --> --> SYN-បានទទួល

3. បង្កើត<-- <-- SYN-RECEIVED

4. បង្កើតឡើង --> --> បានបង្កើតឡើង

5. បង្កើតឡើង<-- <-- ESTABLISHED

នៅលើបន្ទាត់ទី 2 TCP A ចាប់ផ្តើមផ្ញើផ្នែក SYN ដែលបង្ហាញពីការប្រើប្រាស់លេខលំដាប់ ដោយចាប់ផ្តើមពីលេខ 100។ នៅលើបន្ទាត់ទី 3 TCP B ផ្ញើ SYN និងការទទួលស្គាល់សម្រាប់ SYN ដែលបានទទួលទៅ TCP A ។ គួរកត់សំគាល់ថា វាលទទួលស្គាល់ បង្ហាញថា TCP B កំពុងរង់ចាំលេខលំដាប់ដែលត្រូវទទួល 101 ដោយបញ្ជាក់លេខ SYN 100។

នៅលើបន្ទាត់ទី 4 TCP A ឆ្លើយតបជាមួយនឹងផ្នែកទទេជាមួយនឹង ACK សម្រាប់ផ្នែក SYN ពី TCP B ។ នៅលើបន្ទាត់ទី 5 TCP B ផ្ញើទិន្នន័យមួយចំនួន។ ចំណាំថាលេខការទទួលស្គាល់ផ្នែកក្នុងជួរទី 5 (ACK=101) គឺដូចគ្នាទៅនឹងលេខលំដាប់ក្នុងជួរទី 4 (SEQ=101) ដោយហេតុថា ACK មិនកាន់កាប់ចន្លោះលេខលំដាប់ (ប្រសិនបើអ្នកធ្វើដូចនេះ អ្នកនឹងត្រូវទទួលស្គាល់ការទទួលស្គាល់ - ACK សម្រាប់ ACK) ។ក្បួនដោះស្រាយរបស់ Nagle និងការចាប់ផ្តើមយឺត

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

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

ក្នុងករណីខ្លះ កម្មវិធីផ្ញើអាចស្នើសុំយ៉ាងច្បាស់លាស់ថាទិន្នន័យត្រូវបានរុញតាមលំដាប់លំដោយទៅកាន់កម្មវិធីទទួលដោយមិនបាច់ផ្ទុកវា។ ទង់ PSH ត្រូវបានប្រើសម្រាប់ការនេះ។ ប្រសិនបើទង់ PSH ត្រូវបានរកឃើញនៅក្នុងផ្នែកដែលបានទទួលនោះ ការអនុវត្ត TCP ត្រឡប់ទិន្នន័យដែលបានផ្ទុកបច្ចុប្បន្នទាំងអស់ទៅកម្មវិធីទទួល។ Push ត្រូវបានប្រើជាឧទាហរណ៍ក្នុងកម្មវិធីអន្តរកម្ម។ នៅក្នុងបណ្តាញ terminals មិនមានចំណុចណាមួយក្នុងការរង់ចាំការបញ្ចូលរបស់អ្នកប្រើទេ បន្ទាប់ពីគាត់បានបញ្ចប់ការវាយបញ្ចូលពាក្យបញ្ជា។ ដូច្នេះផ្នែកចុងក្រោយដែលមានពាក្យបញ្ជាត្រូវតែមានទង់ PSH ដូច្នេះកម្មវិធីនៅផ្នែកទទួលអាចចាប់ផ្តើមប្រតិបត្តិវា។

Z ការបញ្ចប់ការតភ្ជាប់

ការបញ្ចប់ការតភ្ជាប់អាចត្រូវបានពិចារណាជាបីជំហាន៖

  1. ការផ្ញើទង់ FIN ទៅម៉ាស៊ីនមេពីម៉ាស៊ីនភ្ញៀវ ដើម្បីបញ្ចប់ការតភ្ជាប់។
  2. ម៉ាស៊ីនមេផ្ញើទង់ការឆ្លើយតបរបស់អតិថិជន ACK, FIN ដែលបង្ហាញថាការតភ្ជាប់ត្រូវបានបិទ។
  3. បន្ទាប់ពីទទួលបានទង់ទាំងនេះ អតិថិជនបិទការតភ្ជាប់ ហើយផ្ញើ ACK ទៅម៉ាស៊ីនមេ ដើម្បីបញ្ជាក់ថាការតភ្ជាប់ត្រូវបានបិទ។

ដោយប្រើកម្មវិធីដែលវិភាគចរាចរណ៍ និងពិធីការដែលបានប្រើ - Wireshark អ្នកអាចសង្កេតមើលប្រតិបត្តិការនៃការចាប់ដៃ TCP បីដំណាក់កាល៖


ជំហានទី 1

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

តួលេខបង្ហាញពីរបៀបដែលលទ្ធផលអ្នកវិភាគពិធីការបង្ហាញទង់វត្ថុបញ្ជា SYN និងលេខលំដាប់ដែលទាក់ទង។

ទង់វត្ថុបញ្ជា SYN ត្រូវបានកំណត់ ហើយលេខលំដាប់ដែលទាក់ទងគឺ 0។ ទោះបីជាក្រាហ្វកម្មវិធីវិភាគពិធីការបង្ហាញពីតម្លៃដែលទាក់ទងសម្រាប់លេខលំដាប់ និងលេខទទួលស្គាល់ក៏ដោយ តម្លៃពិតគឺជាលេខគោលពីរ 32 ប៊ីត។ យើង​អាច​កំណត់​លេខ​ពិត​ដែល​បាន​ផ្ញើ​ក្នុង​ផ្នែក​បឋមកថា​ដោយ​ពិនិត្យ​មើល​តំបន់ "Packet Bytes"។ នៅទីនេះអ្នកអាចមើលឃើញបៃចំនួនបួនដែលតំណាងនៅក្នុង លេខគោលដប់ប្រាំមួយ។ទម្រង់។

ជំហានទី 2

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

ពិធីការ TCP/IP ត្រូវបានបង្កើតឡើងដំបូងនៅដើមទសវត្សរ៍ឆ្នាំ 1970 ហើយត្រូវបានប្រើដើម្បីបង្កើត ARPANET ។ បច្ចេកវិទ្យានេះត្រូវបានបង្កើតឡើងជាផ្នែកមួយនៃគម្រោងស្រាវជ្រាវដែលមានគោលបំណងសិក្សាពីលទ្ធភាពសក្តានុពលនៃការរួមបញ្ចូលគ្នារវាងកុំព្យូទ័រនៅក្នុងបណ្តាញការងារអ៊ីនធឺណិតក្នុងស្រុក ឬនិម្មិតដូចគ្នា។

ការបង្កើតការតភ្ជាប់នៅក្នុង TCP ត្រូវបានធ្វើឡើងដោយប្រើកម្មវិធីអតិថិជនពិសេស ដូចជាកម្មវិធីរុករកតាមអ៊ីនធឺណិត កម្មវិធីអ៊ីមែល ឬកម្មវិធីផ្ញើសារ។

រចនាសម្ព័ន្ធ TCP

រចនាសម្ព័ន្ធ TCP/IP អនុញ្ញាតឱ្យអ្នកបង្កើតការចូលប្រើកុំព្យូទ័រពីចម្ងាយ ក៏ដូចជារួមបញ្ចូលគ្នានូវឧបករណ៍នីមួយៗដើម្បីបង្កើតបណ្តាញមូលដ្ឋានដែលដំណើរការដាច់ដោយឡែកពីឧបករណ៍សាធារណៈ។ TCP គឺជាពិធីការផ្ទេរទិន្នន័យដែលអាចទុកចិត្តបាន។ ដូច្នេះព័ត៌មានទាំងអស់ដែលនឹងត្រូវបានផ្ញើនៅលើបណ្តាញត្រូវបានធានាថានឹងត្រូវបានទទួលដោយអ្នកទទួលអាសយដ្ឋាន i.e. អ្នកប្រើប្រាស់ដែលទិន្នន័យត្រូវបានផ្តល់ឱ្យ។

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

ការបញ្ជូនទិន្នន័យតាមរយៈ TCP

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

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

ពិធីការឆានែលគឺទទួលខុសត្រូវចំពោះដំណើរការព័ត៌មានដោយកុំព្យូទ័រ និងបញ្ជូនវាទៅសមាសភាគផ្សេងទៀត ដែលក្នុងនោះមាន អ៊ីសឺរណិត អេធីអឹម អេសអាយភី អាយអេអ៊ី 802.11 ។ បណ្តាញទាំងនេះមិនត្រឹមតែផ្តល់នូវការបញ្ជូនទិន្នន័យប៉ុណ្ណោះទេ ប៉ុន្តែក៏ជាទម្រង់នៃការបញ្ជូនទៅកាន់អ្នកទទួលផងដែរ។ ដូច្នេះនៅក្នុងបណ្តាញ IEEE 802.11 ព័ត៌មានត្រូវបានបញ្ជូនដោយប្រើសញ្ញាវិទ្យុឥតខ្សែ។ ក្នុងករណីនេះ សញ្ញាត្រូវបានផ្គត់ផ្គង់ពីកាតបណ្តាញរបស់កុំព្យូទ័រ ដែលមានលេខកូដ MAC របស់វាផងដែរ។ ក្នុងករណី Ethernet ការបញ្ជូនទិន្នន័យទាំងអស់ត្រូវបានអនុវត្តដោយប្រើការតភ្ជាប់ខ្សែ។

វីដេអូលើប្រធានបទ

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

បណ្តាញសកល (GCN) គឺជាបណ្តាញមួយដែលមានកុំព្យូទ័រដែលគ្របដណ្តប់លើទឹកដីដ៏ធំទូលាយ ជាមួយនឹងចំនួនប្រព័ន្ធកុំព្យូទ័រគ្មានដែនកំណត់រួមបញ្ចូលនៅក្នុងបណ្តាញនេះ។ លក្ខខណ្ឌចម្បងសម្រាប់ដំណើរការនៃបណ្តាញបែបនេះគឺការបញ្ជូនព័ត៌មានភ្លាមៗនៅលើបណ្តាញដោយមិនគិតពីចម្ងាយនៃកុំព្យូទ័របញ្ជូននិងទទួល។

បណ្តាញសកលខុសពីបណ្តាញមូលដ្ឋាន ជាដំបូង អត្រាផ្ទេរទិន្នន័យទាប។ បណ្តាញសកលដំណើរការតាមរយៈ TCP/IP, MPLS, ATM និងពិធីការមួយចំនួនទៀត។ ភាពល្បីល្បាញបំផុតគឺពិធីការ TCP/IP ដែលរួមបញ្ចូលពិធីការរងនៃកម្រិតផ្សេងៗគ្នា៖ កម្មវិធី ការដឹកជញ្ជូន បណ្តាញ រូបវន្ត និងឆានែល។

នៅកម្រិតកម្មវិធី កម្មវិធីភាគច្រើនដំណើរការដែលមានពិធីការផ្ទាល់ខ្លួនរបស់ពួកគេ ដែលត្រូវបានគេស្គាល់យ៉ាងទូលំទូលាយចំពោះអ្នកប្រើប្រាស់កុំព្យូទ័រធម្មតា (HTTP, WWW, FTP ។ល។)។ ពិធីការទាំងនេះផ្តល់នូវការមើលឃើញ និងការបង្ហាញព័ត៌មានដែលត្រូវការដោយអ្នកប្រើប្រាស់។

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

ស្រទាប់បណ្តាញពិតជាស្រទាប់ទទួលនៅពេលបញ្ជូនព័ត៌មាន និងផ្ញើសំណើទៅស្រទាប់ខាងក្រោមដើម្បីទទួលបានព័ត៌មានទាំងអស់។ វាត្រូវបានគេហៅថាពិធីការ IP ។

ស្រទាប់រូបវន្ត និងតំណគឺទទួលខុសត្រូវក្នុងការកំណត់លក្ខខណ្ឌ និងវិធីសាស្រ្តក្នុងការបញ្ជូនព័ត៌មាន។

បណ្តាញសកលដ៏ល្បីបំផុតគឺ WWW (World Wide Web) ដែលជាបណ្តុំនៃ Servers ដែលរក្សាទុកព័ត៌មានចាំបាច់សម្រាប់អ្នកប្រើប្រាស់ និងកុំព្យូទ័រដែលអាចទទួលព័ត៌មានពី Servers និង Upload ទៅកាន់ពួកគេ។ WWW ត្រូវបានសម្គាល់ដោយភាពងាយស្រួល និងភាពងាយស្រួលរបស់វា ក៏ដូចជាតម្រូវការល្បឿនផ្ទេរទិន្នន័យទាប។ នេះបានអនុញ្ញាតឱ្យបណ្តាញនេះអភិវឌ្ឍក្នុងរយៈពេលជាងមួយទសវត្សរ៍។

វីដេអូលើប្រធានបទ

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

ការ​តភ្ជាប់​អ៊ីនធឺណិត​ត្រូវ​បាន​បង្កើត​ឡើង​ដោយ​ប្រើ​ក្រុម​លេខ​នៃ​តម្លៃ 4 ដែល​បំបែក​ដោយ​និមិត្តសញ្ញា “ ។ និងហៅថាអាសយដ្ឋាន IP ។ ឈ្មោះនិមិត្តសញ្ញានៃស្មុគ្រស្មាញឈ្មោះដែនគឺជាសេវាកម្មដែលត្រូវបានរចនាឡើងដើម្បីធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការស្វែងរកអាសយដ្ឋាន IP ដែលត្រូវការនៅលើបណ្តាញ សូចនាករបច្ចេកទេសនៃឈ្មោះដែនគឺ "" ។ នៅក្នុងអាសយដ្ឋានអ៊ីមែលរបស់អ្នកប្រើ។ ដូច្នេះនៅក្នុងអាសយដ្ឋាន google.com ឈ្មោះដែននឹងជា com ឈ្មោះដែនខ្លួនឯង ឈ្មោះមិនអាចផ្តល់នូវការចូលប្រើធនធានអ៊ីនធឺណិតដែលត្រូវការ។ នីតិវិធីសម្រាប់ការប្រើប្រាស់ឈ្មោះ mnemonic មានពីរដំណាក់កាល៖ - អាសយដ្ឋាន IP តាមឈ្មោះក្នុងឯកសារ hosts ដែលមានតារាងនៃការឆ្លើយឆ្លងរវាងអាសយដ្ឋាន IP និងឈ្មោះកុំព្យូទ័រ - ការបង្កើតការតភ្ជាប់ជាមួយធនធានគេហទំព័រពីចម្ងាយនៅអាសយដ្ឋាន IP ជាក់លាក់មួយ។ ភារកិច្ចរបស់សេវាកម្ម DNS គឺដើម្បីទទួលបានអាសយដ្ឋាន IP សម្រាប់បង្កើតការតភ្ជាប់ ដែលធ្វើឱ្យសេវាកម្មនេះជំនួយដល់ពិធីការ TCP/IP និមិត្តសញ្ញា "." គឺ​ជា​អ្នក​បំបែក​ឈ្មោះ​ដែន ទោះបីជា​សម្រាប់គោលបំណង​ជាក់ស្តែង​វា​ជាធម្មតា​ត្រូវ​បាន​គេ​យក​ទៅ​សំដៅ​លើ​ដែន​ឫស​ដែល​មិនមាន​អ្នក​កំណត់​ផ្ទាល់ខ្លួន​ក៏ដោយ។ ឫស - សំណុំទាំងមូលនៃម៉ាស៊ីនអ៊ីនធឺណិត - ត្រូវបានបែងចែកទៅជា: - កម្រិតទីមួយ - gov, edu, com, net; - ដែនជាតិ - uk, jp, ch ជាដើម។ ការអភិរក្សរចនាសម្ព័ន្ធដើមឈើដែលធ្លាប់ស្គាល់នៃឈ្មោះដែនបាននាំឱ្យមានការប្រើប្រាស់ពាក្យដែលបានបង្កើតឡើង - ឫស, ថ្នាំងមែកធាង, ស្លឹក។ ពាក្យ "ម៉ាស៊ីន" នៅក្នុងឋានានុក្រមនេះត្រូវបានកំណត់ទៅស្លឹកដែលមិនមានថ្នាំងតែមួយនៅក្រោមវា។ ឈ្មោះ​ម៉ាស៊ីន​ពេញ​ក្លាយ​ជា​បញ្ជី​បន្តបន្ទាប់​នៃ​ថ្នាំង​កម្រិត​មធ្យម​ទាំងអស់​រវាង​ឫស និង​ស្លឹក ដែល​បំបែក​ដោយ​តួអក្សរ "." ពីឆ្វេងទៅស្តាំ៖ ivan.net.abcd.ru ដែល ru គឺជាឫសនៃដើមឈើ abcd គឺជាឈ្មោះរបស់អង្គការ ivan គឺជាស្លឹករបស់ដើមឈើ (ម៉ាស៊ីន) ។

វីដេអូលើប្រធានបទ

ប្រភព៖

  • ប្រព័ន្ធឈ្មោះដែនអ៊ីនធឺណិតក្នុងឆ្នាំ 2018

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

ជំរាបសួរ ឈ្មោះរបស់ខ្ញុំគឺ 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 រវាងកុំព្យូទ័រគឺ 125 ms ការបញ្ជូនកញ្ចប់ព័ត៌មានឡើងវិញនឹងចំណាយពេលប្រហែលមួយភាគប្រាំនៃវិនាទី ហើយក្នុងករណីដ៏អាក្រក់បំផុតរហូតដល់ពាក់កណ្តាលវិនាទី (ស្រមៃមើលថាតើកញ្ចប់ព័ត៌មានដែលមានអារម្មណ៍សុខស្រួលក៏បាត់បង់ដែរ)។ វិសាខបូជា!

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

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

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

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

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

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

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

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

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