Портове и сокети
Линк за документа за протоколите
http://dox.bg/files/dw?a=fb03df4bac
TCP/IP използва двукомпонентен логически адрес - IP адресът -
за да идентифицира компютрите източници и компютрите местоназначения в
мрежовите комуникации. Какво става обаче, ако две мрежови приложения,
работещи на един и същ компютър, изпращат заявки и получават отговори
едновременно? Например какво става, ако дадено входящо съобщение е
предназначено за вашата e-mail програма, докато друго е Web страница,
която се връща към вашия Web браузър? Протоколът се нуждае от начин, по
който да прави разлика между тях. Ето къде се намесват TCP и UDP
портовете.
Ролята на номерата на портовете.
Знаем, че IP адресът на даден компютър местоназначение се състои
от две части: мрежов адрес, който функционира подобно на име на улица, и
хост адрес, функциониращ подобно на номер на къща. За номерата на
портове можем да си мислим като специфична маршрутизираща информация
вътре в даден адрес. Номерът на порт е допълнение към IP адреса, точно
както името на адресата на пощенския плик е допълнение към адреса на
улицата. По същия начин можете да си мислите за отделните приложения
като за отделни обитатели.
Портът е логическа точка на свързване. Портовете се използват от
транспортните протоколи, TCP и UDP, за да идентифицират специфичното
приложение, което изпраща или получава съобщението.
Широко използваните Интернет приложения имат предефинирани
номера
на портове. Тази стандартизация улеснява комуникациите. В
следващата таблица са показани някои тези широко използвани номера.Предварително назначен порт |
Протокол
|
Приложение |
80
|
TCP
|
HTTP |
21
|
TCP/UDP
|
FTP |
23
|
TCP/UDP
|
Telnet |
25
|
TCP/UDP
|
SMTP |
110
|
TCP/UDP
|
POP3 |
119
|
TCP/UDP
|
NNTP |
137
|
TCP/UDP
|
NetBIOS name service |
161
|
TCP/UDP
|
SNMP |
194
|
TCP/UDP
|
IRC |
389
|
TCP/UDP
|
LDAP |
396
|
TCP/UDP
|
NetWare over IP |
458
|
TCP/UDP
|
Apple QuickTime |
500
|
TCP/UDP
|
ISAKMP |
Съществуват 65 536 използваеми порта. Портове от 0 до 1024 са запазени за предефинирани услуги, като например показаните по горе в таблицата. Те се наричат още „добре познатите портове" (well-known ports) и се определят от Internet Assigned Numbers Authority (IANA).
Друго важно понятие, широко използвано в компютърните мрежи е понятието сокет (socket). Общата дефиниция за сокет е „крайната точка на една връзка". За да може да се осъществи комуникация, трябва да се създаде сокет. Различните типове сокети използват различни методи за адресиране. Най-популярният метод използва IP адрес, комбиниран с номер на порт, за да идентифицира сокета. В UNIX терминологията това се нарича AFINET адресиране. Втори метод за адресиране, AF_UNIX, за идентификация на сокетите използва имена на пътища. Berkeley (BSD) Sockets се превърна в стандартния API интерфейс за TCP/IP комуникации. Популярна адаптация на интерфейса е Windows Sockets, или Winsock. Тази реализация предоставя API интерфейс за Интернет приложения, работещи под Windows операционни системи. Winsock се зарежда под формата на DLL.
Преобразуване на имена
TCP/IP използва IP адреси и номера на портове, за да идентифицира мрежи, компютри и специфични мрежови приложения, до които се изпращат съобщенията. Повечето хора биха предпочели да използват имена, вместо числа, когато осъществяваме достъп до компютър в мрежата или въвеждаме местоположение на Web сървър във Web браузъра. Но, компютрите работят само с числа. Поради тази несъвместимост се нуждаем от услуги, които превръщат „приятелските" имена в IP адреси. Използвайки тези услуги, когато искаме да посетим сайта на Xerox, можем да въведем www.xerox.com в адресната лента на нашия Web браузър, вместо 208.134.240.50. Името определено е по-лесно за запомняне. Но независимо от нашите действия, нашият браузър конвертира хост името в IP адрес, за да открие Web сървъра в Интернет и да извлече заявената страница. Какво представлява едно име? В компютърните мрежови комуникации се използват различни типове имена. В Интернет, имената на хостовете (компютрите) се подреждат в йерархична структура в домейни. Някои от най-известните домейни от най-високо ниво са следните:- com – Комерсиални организации.
- edu – Ограничен за използване от образователни институции на САЩ.
- gov – Ограничен за използване от департаменти на правителството на САЩ.
- int – Ограничен за използване от международни организации
- mil – Ограничен за използване от образователни институции на САЩ.
- net - По начало предназначен за мрежи на Интернет доставчици
- org – Некомерсиални организации.
- xx – Буквен код на държава (съгласно междунаодния стандарт 3166).
- bg - България
- uk - Обединеното Кралство
- аu - Австралия
- са - Канада
- ru - Русия
- fr - Франция
- de - Германия
В мрежите на Microsoft на всеки компютър също така се назначава NetBIOS име. Това е име от максимум 16 знака, назначавано от администратора, което се използва за идентифициране на ресурси в локалната мрежа.
И двата типа имена трябва да се преобразуват в IP адреси, преди да може да се осъществи TCP/IP комуникация. Съществуват няколко подхода за транслиране на имена в IP адреси:
- HOSTS и LMHOSTS файлове, които са чисто текстови и се съхраняват на твърдия диск на компютъра
- DNS или Dynamic DNS(DDNS)
- WINS