Модулем Socket экспортируются следующие константы:
SOCK_STREAM - Непрерывный поток данных
SOCK_DGRAM - Отдельные пакеты данных
SOCK_RAW - Доступ к внутренним протоколам и интерфейсам
Поддерживаются следующие протоколы:
TCP – Протокол управления передачей для потоковых сокетов
UDP – Пользовательский дейтаграммный протокол для дейтаграммных сокетов
ICMP – Протокол управления сообщениями Internet
RAW - Протокол, предусматривающий создание пакетов IP вручную
Обычно для поддержки каждого конкретного домена и типа сокета применяется единственный протокол. При создании сокета необходимо следить за тем, чтобы домен и тип сокета соответствовали выбранному протоколу. Возможные комбинации этих трех значений приведены ниже.
Число допустимых комбинаций домена, типа и протокола сокета является ограниченным. Тип SOCK STREAM соответствует протоколу TCP, а SOCK_DGRAM — протоколу UDP. Обратите также внимание, что семейству адресов AF_UNIX соответствует не настоящий протокол, а псевдопротокол с именем PF_UNSPEC (сокращение от “unspecified” — неопределенный).
Объектно-ориентированный модуль IO::Socket языка Perl автоматически подставляет правильный тип сокета и протокол при получении неполной информации.
Дейтаграммные сокеты обеспечивают ненадежную передачу неупорядоченных сообщений без установления логического соединения. Протокол UDP — это главный протокол дейтаграммного типа в семействе протоколов Internet.
Как показано ниже, дейтаграммные службы напоминают систему почтовой связи. Как и письмо или телеграмма, каждая дейтаграмма в системе имеет адрес назначения и обратный адрес, а также содержит определенный объем данных. Протоколы Internet выполняют все возможное для того, чтобы дейтаграмма была доставлена по месту назначения.