Isang Pangkalahatang-ideya ng Socket Programming para sa Computer Networking

Ang socket ay isa sa mga pinaka-pangunahing teknolohiya ng programming computer network. Pinapayagan ng mga socket ang mga application ng software ng network na makipag-usap gamit ang mga standard na mekanismo na binuo sa hardware ng network at mga operating system.

Kahit na ito ay maaaring tunog tulad lamang ng isa pang tampok ng pag-unlad ng software ng Internet, socket teknolohiya umiiral mahaba bago ang Web. At, marami sa mga pinakasikat na application ng network ng software sa ngayon ay umaasa sa mga socket.

Ano ang Maaaring Sockets Para sa Iyong Network

Isang socket ay kumakatawan sa isang solong koneksyon sa pagitan ng eksaktong dalawang piraso ng software (isang tinatawag na point-to-point koneksyon). Mahigit sa dalawang piraso ng software ang maaaring makipag-usap sa client / server o mga sistema ng ibinahagi sa pamamagitan ng paggamit ng maraming socket. Halimbawa, maraming Web browser ang maaaring sabay na makipag-usap sa isang solong Web server sa pamamagitan ng isang grupo ng mga socket na ginawa sa server.

Karaniwang tumatakbo ang software na batay sa socket sa dalawang magkahiwalay na mga computer sa network, ngunit maaari ring gamitin ang mga socket upang makipag-usap sa isang lokal ( interprocess ) sa iisang computer. Sockets ay bidirectional , ibig sabihin na ang alinman sa bahagi ng koneksyon ay may kakayahang parehong pagpapadala at pagtanggap ng data. Minsan ang isang application na nagpasimula ng komunikasyon ay tinatawag na "kliyente" at ang iba pang application na "server," ngunit ang terminolohiya na ito ay humahantong sa pagkalito sa peer to peer networking at sa pangkalahatan ay iiwasan.

Socket API at Mga Aklatan

Maraming mga aklatan na nagpapatupad ng karaniwang mga interface ng programming application (API) ay umiiral sa Internet. Ang unang mainstream na pakete - ang Berkeley Socket Library ay malawak na ginagamit sa mga sistemang UNIX. Ang isa pang karaniwang API ay ang Windows Sockets (WinSock) library para sa mga operating system ng Microsoft. Kaugnay sa iba pang mga teknolohiya ng computer, ang socket API ay masyadong mature: WinSock ay ginagamit mula noong 1993 at Berkeley sockets mula noong 1982.

Ang socket API ay medyo maliit at simple. Karamihan sa mga function ay katulad ng mga ginamit sa file na input / output na gawain tulad ng read () , write () , at close () . Ang aktwal na function ng tawag na ginagamit depende sa piniling programming language at socket library.

Mga Uri ng Socket Interface

Ang mga interface ng socket ay maaaring nahahati sa tatlong kategorya:

  • Ang mga socket ng stream , ang pinaka-karaniwang uri, ay nangangailangan na ang dalawang partido sa pakikipag-usap ay unang magtatag ng isang koneksyon sa socket, pagkatapos kung saan ang anumang data na dumaan sa koneksyon na iyon ay garantisadong dumating sa parehong pagkakasunud-sunod kung saan ito ay ipinadala - tinatawag na koneksyon-oriented programming modelo.
  • Datagram sockets nag-aalok ng "koneksyon-mas mababa" semantika. Sa mga datagrams, ang mga koneksyon ay pahiwatig sa halip na tahasang tulad ng mga daluyan. Ang alinmang partido ay nagpapadala lamang ng mga datagrams kung kinakailangan at naghihintay para sa iba na tumugon; maaaring mawala ang mga mensahe sa pagpapadala o natanggap mula sa pagkakasunud-sunod, ngunit responsibilidad ng application at hindi ang mga socket upang harapin ang mga problemang ito. Ang pagpapatupad ng datagram sockets ay maaaring magbigay ng ilang mga application na isang pagpapalakas ng pagganap at karagdagang kakayahang umangkop kumpara sa paggamit ng mga socket ng stream, na nagpapawalang-bisa sa kanilang paggamit sa ilang sitwasyon.
  • Ang ikatlong uri ng socket - ang raw socket - bypasses ang built-in na suporta ng library para sa karaniwang mga protocol tulad ng TCP at UDP . Ang mga raw socket ay ginagamit para sa pagpapaunlad ng mga pasadyang pag-unlad ng mababang antas.

Socket Support sa Network Protocols

Ang mga modernong socket ng network ay kadalasang ginagamit kasabay ng mga protocol ng Internet - IP, TCP, at UDP. Ang mga aklatang nagpapatupad ng mga socket para sa Internet Protocol ay gumagamit ng TCP para sa daluyan, UDP para sa mga datagrams, at IP mismo para sa raw sockets.

Upang makipag-usap sa Internet, ang mga IP socket library ay gumagamit ng IP address upang makilala ang mga partikular na computer. Maraming bahagi ng Internet ang nagtatrabaho sa mga serbisyo sa pagpapangalan, upang ang mga programmer ng mga gumagamit at socket ay maaaring gumana sa mga computer sa pamamagitan ng pangalan ( hal. , "Thiscomputer.wireless.about.com") sa halip na sa pamamagitan ng address ( hal. , 208.185.127.40). Ang mga stream at datagram sockets ay gumagamit din ng mga numero ng IP port upang makilala ang maraming mga application mula sa bawat isa. Halimbawa, alam ng mga Web browser sa Internet na gamitin ang port 80 bilang default para sa mga komunikasyon ng socket sa mga server ng Web.