ພາບລວມຂອງ Socket Programming for Computer Networking

ເຕົ້າຮັບແມ່ນຫນຶ່ງໃນເຕັກໂນໂລຢີທີ່ສໍາຄັນທີ່ສຸດຂອງການຂຽນໂປຼແກຼມຄອມພິວເຕີ້. ຊັອກເກັດຊ່ວຍໃຫ້ຄໍາຮ້ອງສະຫມັກຂອງລະບົບເຄືອຂ່າຍສາມາດສື່ສານຜ່ານກົນໄກມາດຕະຖານທີ່ສ້າງຂຶ້ນໃນຮາດແວເຄືອຂ່າຍແລະລະບົບປະຕິບັດການ.

ເຖິງແມ່ນວ່າມັນອາດຈະຄ້າຍຄືກັບລັກສະນະອື່ນຂອງການພັດທະນາຊອບແວອິນເຕີເນັດ, ເຕັກໂນໂລຢີຊັອກເຕີກໍ່ມີຢູ່ແລ້ວດົນກ່ອນຫນ້າເວັບ. ແລະ, ຈໍານວນຫຼາຍຂອງຄໍາຮ້ອງສະຫມັກຊອບແວເຄືອຂ່າຍທີ່ສຸດທີ່ສຸດໃນມື້ນີ້ແມ່ນອີງໃສ່ຊັອກເກັດ.

What sockets ສາມາດເຮັດໄດ້ສໍາລັບເຄືອຂ່າຍຂອງທ່ານ

ເຕົ້າຮັບສະແດງເຖິງການເຊື່ອມຕໍ່ດຽວກັນລະຫວ່າງສອງຊິ້ນຂອງຊອບແວ (ການ ເຊື່ອມຕໍ່ຈຸດທີ່ຈຸດທີ່ ເອີ້ນວ່າ). ຫຼາຍກວ່າສອງຊິ້ນຂອງຊໍແວສາມາດຕິດຕໍ່ສື່ສານກັບ ລູກຄ້າ / ເຄື່ອງແມ່ຂ່າຍ ຫຼືລະບົບແຈກຢາຍໄດ້ໂດຍການໃຊ້ sockets ຫຼາຍ. ຕົວຢ່າງເຊັ່ນ, ຫລາຍຕົວທ່ອງເວັບສາມາດຕິດຕໍ່ສື່ສານພ້ອມກັນກັບເຄື່ອງແມ່ຂ່າຍເວັບດຽວໂດຍຜ່ານກຸ່ມຂອງຊັອກເກັດທີ່ເຮັດໃນເຄື່ອງແມ່ຂ່າຍ.

ຊອບແວທີ່ໃຊ້ຊັອກເກັດມັກຈະໃຊ້ໃນສອງຄອມພິວເຕີແຍກຕ່າງຫາກຢູ່ໃນເຄືອຂ່າຍ, ແຕ່ຫຼັກເຕັກໂນໂລຢີຍັງສາມາດໃຊ້ໃນການສື່ສານພາຍໃນ ( interprocess ) ໃນຄອມພິວເຕີ້ດຽວ. ຊັອກເກັດແມ່ນ ສອງສາມໃບ , ຊຶ່ງຫມາຍຄວາມວ່າທັງສອງດ້ານຂອງການເຊື່ອມຕໍ່ສາມາດສົ່ງແລະຮັບຂໍ້ມູນ. ບາງຄັ້ງຄໍາຮ້ອງສະຫມັກຫນຶ່ງທີ່ເລີ່ມການສື່ສານແມ່ນຄໍາວ່າ "ລູກຄ້າ" ແລະຄໍາຮ້ອງສະຫມັກອື່ນ "ເຄື່ອງແມ່ຂ່າຍ" ແຕ່ຄໍາສັບນີ້ເຮັດໃຫ້ເກີດຄວາມສັບສົນໃນ ການເປັນ ເຄືອຂ່າຍ ຂອງຫມູ່ເພື່ອນ ແລະມັກຈະຫຼີກເວັ້ນ.

Socket APIs ແລະຫ້ອງສະຫມຸດ

ຫ້ອງສະຫມຸດຈໍານວນຫນຶ່ງທີ່ປະຕິບັດ ການໂຕ້ຕອບການຂຽນໂປລແກລມແບບ ມາດຕະຖານ (APIs) ຢູ່ເທິງອິນເຕີເນັດ. ຊຸດປະຫວັດສາດທໍາອິດ - ຫ້ອງສະຫມຸດ Berkeley Socket ຍັງໃຊ້ຢູ່ໃນລະບົບ UNIX ຢ່າງກວ້າງຂວາງ. ອີກປະການຫນຶ່ງ API ທີ່ເປັນປະໂຫຍດຫຼາຍແມ່ນຫ້ອງສະຫມຸດ Windows Sockets (WinSock) ສໍາລັບລະບົບປະຕິບັດການຂອງ Microsoft. ກ່ຽວກັບເຕັກໂນໂລຊີຄອມພິວເຕີອື່ນໆ, API ຊັອກເກັດແມ່ນມີຄວາມຂ້ອນຂ້າງສູງ: WinSock ໄດ້ຖືກນໍາໃຊ້ຕັ້ງແຕ່ປີ 1993 ແລະ Berkeley sockets ນັບຕັ້ງແຕ່ປີ 1982.

API socket ແມ່ນຂ້ອນຂ້າງນ້ອຍແລະງ່າຍດາຍ. ຫຼາຍຫນ້າທີ່ມີຄວາມຄ້າຍຄືກັນກັບການນໍາໃຊ້ໃນການປະຕິບັດງານເຂົ້າ / ອອກໄຟລ໌ເຊັ່ນ read () , ຂຽນ () ແລະ ປິດ () ທີ່ຢູ່ ຟັງຊັ່ນການເອີ້ນໃຊ້ຈິງໆໃຊ້ຂຶ້ນກັບພາສາການຂຽນໂປຼແກຼມແລະຫໍສະຫມຸດຊັອກເກັດທີ່ເລືອກ.

Socket Interface Types

ການເຊື່ອມຕໍ່ຊັອກເກັດສາມາດແບ່ງອອກເປັນສາມປະເພດ:

  • ຮວບຮວມ ນ້ໍາ , ປະເພດທີ່ພົບເລື້ອຍທີ່ສຸດ, ຮຽກຮ້ອງໃຫ້ທັງສອງຝ່າຍທີ່ຕິດຕໍ່ພົວພັນຄັ້ງທໍາອິດສ້າງການເຊື່ອມຕໍ່ສຽບ, ຫຼັງຈາກນັ້ນ, ຂໍ້ມູນທີ່ຜ່ານຜ່ານການເຊື່ອມຕໍ່ນັ້ນຈະໄດ້ຮັບການຮັບປະກັນທີ່ຈະມາຮອດໃນຄໍາສັ່ງດຽວກັນທີ່ມັນຖືກສົ່ງໄປ - model
  • ຊ່ອງຂໍ້ມູນຂໍ້ມູນສະເຫນີຂໍ້ມູນກ່ຽວກັບ "ການເຊື່ອມຕໍ່ຫນ້ອຍ". ມີ datagrams, ການເຊື່ອມຕໍ່ແມ່ນ implicit ຫຼາຍກ່ວາ explicit ເຊັ່ນດຽວກັບສາຍນ້ໍ. ທັງສອງຝ່າຍຈະສົ່ງຂໍ້ມູນ datagrams ຕາມຄວາມຕ້ອງການແລະລໍຖ້າອີກເພື່ອຕອບສະຫນອງ; ຂໍ້ຄວາມສາມາດຖືກສູນເສຍໃນການສົ່ງຫລືຮັບເອົາຄໍາສັ່ງ, ແຕ່ວ່າມັນແມ່ນຄວາມຮັບຜິດຊອບຂອງແອັບພລິເຄຊັນແລະບໍ່ແມ່ນຊ່ອງທີ່ຈະແກ້ໄຂບັນຫາເຫຼົ່ານີ້. ການປະຕິບັດບັນທຶກຂໍ້ມູນ datagram ສາມາດໃຫ້ຄໍາຮ້ອງສະຫມັກບາງປະຕິບັດການເພີ່ມປະສິດທິພາບແລະຄວາມຍືດຫຍຸ່ນເພີ່ມເຕີມເມື່ອທຽບກັບການໃຊ້ sockets ນ້ໍາ, justifying ການນໍາໃຊ້ໃນບາງສະຖານະການ.
  • ປະເພດຂອງຊັອກເກັດທີສາມ - ເຕົ້າໄຂ່ ວັດຖຸດິບ - ຜ່ານການສະຫນັບສະຫນູນທີ່ມີຢູ່ໃນຫ້ອງສະມຸດສໍາລັບໂປຣແກຣມມາດຕະຖານເຊັ່ນ TCP ແລະ UDP . ຮາດດິສຖືກນໍາໃຊ້ສໍາລັບການພັດທະນາໂປໂຕຄອນລະດັບຕ່ໍາທີ່ກໍານົດເອງ.

Socket Support in Network Protocols

ເຕົ້າໂຮມເຄືອຂ່າຍທີ່ທັນສະໄຫມຖືກນໍາໃຊ້ໂດຍປົກກະຕິພ້ອມກັນກັບໂປຣແກຣມອິນເຕີເນັດ - IP, TCP ແລະ UDP. ຫ້ອງສະຫມຸດປະຕິບັດເຕົ້າໂຮມສໍາລັບໂປຣແກຣມອິນເຕີເນັດໃຊ້ TCP ສໍາລັບສາຍນ້ໍາ, UDP ສໍາລັບ datagrams, ແລະ IP ຕົວເອງສໍາລັບຮຽບຮ້ອຍດິບ.

ເພື່ອຕິດຕໍ່ສື່ສານຜ່ານທາງອິນເຕີເນັດ, ຫ້ອງສະຫມຸດລ໊ອກ IP ໃຊ້ IP address ເພື່ອລະບຸຄອມພິວເຕີເສພາະ. ຫຼາຍພາກສ່ວນຂອງອິນເຕີເນັດເຮັດວຽກຮ່ວມກັບການບໍລິການການຕັ້ງຊື່ເພື່ອໃຫ້ຜູ້ໃຊ້ແລະຜູ້ຂຽນໂປລແກລມຊັອກເຕີສາມາດເຮັດວຽກຮ່ວມກັບຄອມພິວເຕີໂດຍຊື່ ( ເຊັ່ນ: "thiscomputer.wireless.about.com") ແທນທີ່ຈະຢູ່ໂດຍທີ່ຢູ່ ( ເຊັ່ນ , 208.185.127.40). ຊ່ອງເຕົ້າສລົບແລະຂໍ້ມູນ datagram ຍັງໃຊ້ ຕົວເລກ IP port ເພື່ອແຍກແຍະຂໍ້ມູນຕ່າງໆຈາກແຕ່ລະອັນອື່ນ. ຕົວຢ່າງເຊັ່ນ, ຕົວທ່ອງເວັບໃນອິນເຕີເນັດຮູ້ວ່າຈະໃຊ້ພອດ 80 ເປັນຄ່າເລີ່ມຕົ້ນສໍາລັບການສື່ສານກັບຄອມພິວເຕີ້ກັບເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌.