Листинг | Описание |
---|---|
5.1 | TCP/IPv4, зависимый от протокола |
5.9 | TCP/IPv4, зависимый от протокола, корректно обрабатывает завершение всех дочерних процессов |
6.3 | TCP/IPv4, зависимый от протокола, использует функцию select, один процесс обрабатывает всех клиентов |
6.5 | TCP/IPv4, зависимый от протокола, использует функцию poll, один процесс обрабатывает всех клиентов |
8.1 | UDP/IPv4, зависимый от протокола |
8.14 | TCP и UDP/IPv4, зависимый от протокола, использует функцию select |
14.6 | TCP, использует стандартный ввод-вывод |
15.3 | Доменный сокет Unix, зависимый от протокола |
15.5 | Дейтаграмма домена Unix, зависит от протокола |
15.13 | Доменный сокет Unix, с передачей данных, идентифицирующих клиента |
22.3 | UDP, печатает полученный IP-адрес назначения и имя полученного интерфейса, обрезает дейтаграммы |
22.13 | UDP, связывает все адреса интерфейсов |
25.2 | UDP, использование модели ввода-вывода, управляемого сигналом |
26.2 | TCP, один поток на каждого клиента |
26.3 | TCP, один поток на каждого клиента, машинонезависимая (переносимая) передача аргумента |
27.4 | TCP/IPv4, печатает полученный маршрут от отправителя |
27.6 | UDP/IPv4, печатает полученный маршрут от отправителя и обращает его |
28.21 | UDP, использует функцию icmpd для получения асинхронных ошибок |
Д.9 | UDP, связывает все адреса интерфейсов |
1.7. Модель OSI
Распространенным способом описания уровней сети является предложенная Международной организацией по стандартизации (International Standards Organization, ISO)
Рис. 1.5. Уровни модели OSI и набор протоколов Интернета
Мы считаем, что два нижних уровня модели OSI соответствуют драйверу устройства и сетевому оборудованию, которые имеются в системе. Обычно нам не приходится беспокоиться об этих уровнях, за исключением того, что мы должны знать некоторые свойства канального уровня — например, что MTU (максимальная единица передачи) Ethernet, которая описывается в разделе 2.11, имеет размер 1500 байт.
Сетевой уровень управляется протоколами IPv4 и IPv6, оба они описываются в приложении А. Из протоколов транспортного уровня мы можем выбирать TCP, UDP и SCRIPT, они описываются в главе 2. На рис. 1.5 изображен разрыв между TCP и UDP; это означает, что приложение может обойти транспортный уровень и использовать IPv4 или IPv6 непосредственно. В таких случаях речь идет о
Три верхних уровня модели OSI соответствуют уровню приложений. Приложением может быть веб-клиент (браузер), клиент Telnet, веб-сервер, сервер FTP или любое другое используемое нами приложение. В случае протоколов Интернета три верхние уровня модели OSI разделяются очень редко.
Описанный в этой книге API сокетов является интерфейсом между верхними тремя уровнями («приложением») и транспортным уровнем. Это один из важнейших вопросов книги: как создавать приложения, используя сокеты TCP и UDP. Мы уже упоминали о символьных сокетах, и в главе 29 мы увидим, что можем даже полностью обойти уровень IP, чтобы читать и записывать свои собственные кадры канального уровня.