Преглед на програмирање на Socket за компјутерско вмрежување

Сокетот е една од најфундаменталните технологии за програмирање на компјутерски мрежи. Сокети овозможуваат мрежните софтверски апликации да комуницираат со користење на стандардни механизми вградени во мрежниот хардвер и оперативни системи.

Иако тоа би можело да звучи како само уште една карактеристика на развојот на интернет софтверот, технологијата на сокети постоеше многу пред веб. И, многу од најпопуларните мрежни софтверски апликации денес се потпираат на приклучоци.

Што сокети можат да направат за вашата мрежа

Сокетот претставува единствена врска помеѓу точно две парчиња софтвер (т.н. точка-до-точка врска). Повеќе од две парчиња софтвер можат да комуницираат со клиент / сервер или дистрибуирани системи со користење на повеќе сокети. На пример, многу веб прелистувачи можат истовремено да комуницираат со еден веб-сервер преку група сокети направени на серверот.

Сокет-базиран софтвер обично работи на два одделни компјутери на мрежата, но сокети, исто така, може да се користат за да комуницираат локално ( interprocess ) на еден компјутер. Сокети се двонасочни , што значи дека двете страни од врската можат да испраќаат и примаат податоци. Понекогаш едната апликација која иницира комуникација се нарекува "клиент", а другата апликација "серверот", но оваа терминологија доведува до конфузија во мрежната мрежа од друга страна и обично треба да се избегнува.

API за Socket и библиотеки

Неколку библиотеки кои имплементираат стандардни апликациски програмски интерфејси (APIs) постојат на Интернет. Првиот мејнстрим пакет - Библиотеката на Беркли Socket сеуште е широко користен во UNIX-системите. Друг многу чест API е библиотеката на Windows Sockets (WinSock) за Microsoft оперативните системи. Во однос на другите компјутерски технологии, API-то сокет се доста зрели: WinSock е во употреба од 1993 година и со Беркли сокети од 1982 година.

АПИ на сокетот се релативно мали и едноставни. Многу од функциите се слични на оние што се користат во датотечните влезни / излезни рутини како што се read () , write () и close () . Конкретните повици за употреба зависат од избраниот програмски јазик и приклучната библиотека.

Типови на приклучници за сокет

Сокет интерфејси може да се подели во три категории:

  • Сокот за проток , најчестиот тип, бара двете страни кои комуницираат прво да воспостават конекција со сокак, по што сите податоци што се пренесуваат преку таа врска ќе бидат гарантирани да пристигнат во истиот редослед во кој биле испратени - т.н. модел.
  • Приклучоците на Datagram нудат "семантика без поврзување". Со датаграми, врските се имплицитни, а не експлицитни, како и со потоци. Секоја страна едноставно испраќа датаграми колку што е потребно и чека другиот да одговори; пораките може да се изгубат во преносот или да не се на ред, но одговорноста на апликацијата е одговорност, а не приклучоци за справување со овие проблеми. Имплементацијата на датаграмски сокети може да им даде на некои апликации зголемување на перформансите и дополнителна флексибилност во споредба со употребата на струјни приклучоци, што ја оправдува нивната употреба во некои ситуации.
  • Третиот тип на приклучок - суровиот приклучок - ја заобиколува вградената поддршка на библиотеката за стандардни протоколи како што се TCP и UDP . Суровини сокети се користат за прилагодување на ниско ниво на протокол.

Поддршка на Socket во мрежни протоколи

Современите мрежни сокети обично се користат во врска со интернет протоколите - IP, TCP и UDP. Библиотеките што ги спроведуваат приклучоците за Интернет протокол користат TCP за потоци, UDP за датаграми и самата IP за суровини сокети.

За да комуницираат преку Интернет, библиотеките со IP-приклучоци ја користат IP-адресата за да идентификуваат специфични компјутери. Многу делови од Интернет работат со имиња на услуги, така што корисниците и сокет програмерите можат да работат со компјутери по име (на пример , "thiscomputer.wireless.about.com"), наместо преку адреса (на пример , 208.185.127.40). Поток и datagram сокети, исто така, користат броеви на IP- порта за разликување на повеќе апликации едни од други. На пример, веб-прелистувачите на Интернет знаат да користат порт 80 како стандардно за приклучоци за комуникација со веб-сервери.