» » » Уильям Стивенс - UNIX: разработка сетевых приложений


Авторские права

Уильям Стивенс - UNIX: разработка сетевых приложений

Здесь можно купить и скачать "Уильям Стивенс - UNIX: разработка сетевых приложений" в формате fb2, epub, txt, doc, pdf. Жанр: Программное обеспечение, издательство Питер, год 2007. Так же Вы можете читать ознакомительный отрывок из книги на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Уильям Стивенс - UNIX: разработка сетевых приложений
Рейтинг:
Название:
UNIX: разработка сетевых приложений
Издательство:
неизвестно
Год:
2007
ISBN:
5-94723-991-4
Вы автор?
Книга распространяется на условиях партнёрской программы.
Все авторские права соблюдены. Напишите нам, если Вы не согласны.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "UNIX: разработка сетевых приложений"

Описание и краткое содержание "UNIX: разработка сетевых приложений" читать бесплатно онлайн.



Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.






Отправка по SCRIPT

На рис. 2.17 показан процесс записи данных в сокет SCRIPT.

Рис. 2.17. Отправка данных через сокет SCRIPT

Для обеспечения надежности в SCRIPT предусмотрен буфер отправки. Приложение может менять размер этого буфера при помощи параметра сокета SO_SNDBUF (см. раздел 7.5), как и при работе с TCP. Когда приложение вызывает функцию write, ядро копирует все данные из буфера приложения в буфер отправки сокета. Если в буфере сокета недостаточно места для размещения всего объема данных приложения (то есть буфер приложения больше буфера сокета или в последнем уже имелись данные), пользовательский процесс приостанавливается. Приостановка производится для блокируемых сокетов. По умолчанию сокеты SCRIPT являются блокируемыми (о неблокируемых сокетах речь пойдет в главе 16). Ядро не возвращает управление процессу до тех пор, пока все байты буфера приложения не будут скопированы в буфер отправки сокета. Успешное возвращение из вызова write для сокета SCRIPT означает лишь, что приложение снова может воспользоваться своим буфером. Оно вовсе не означает, что SCRIPT адресата или приложение-адресат получили отправленные данные.

SCRIPT обрабатывает данные, которые находятся в буфере отправки на основании правил передачи SCRIPT (подробнее см. главу 5 [117]). Передающий SCRIPT должен дождаться получения порции SACK, в которой передается кумулятивное уведомление о приеме, чтобы удалить данные из буфера отправки сокета.

2.12. Стандартные службы Интернета

В табл. 2.1 перечислены некоторые стандартные службы, предоставляемые большинством реализаций TCP/IP. Заметьте, что все они поддерживают и TCP, и UDP, и номер порта для обоих протоколов один и тот же.


Таблица 2.1. Стандартные службы TCP/IP, предоставляемые в большинстве реализаций

Имя Порт TCP Порт UDP RFC Описание echo 7 7 862 Сервер возвращает то, что посылает клиент discard 9 9 863 Сервер игнорирует все данные, присланные клиентом daytime 13 13 867 Сервер возвращает время и дату в формате, удобном для восприятия человеком chargen 19 19 864 TCP-сервер посылает непрерывный поток символов, пока соединение не будет разорвано клиентом. UDP-сервер посылает дейтаграмму со случайным количеством символов каждый раз, когда клиент посылает дейтаграмму time 37 37 868 Сервер возвращает текущее время в виде двоичного 32-разрядного числа. Это число представляет собой количество секунд, прошедших с полуночи 1 января 1900 года (UTC)

Часто эти службы предоставляются демоном inetd на узлах Unix (см. раздел 13.5). Стандартные службы делают возможным простейшее тестирование при помощи стандартного клиента Telnet.

Вот, например, тесты для сервера, определяющего время и дату, и для эхо-сервера.

aix % telnet freebsd daytime

Trying 12.106.32.254...            вывод клиента Telnet

Connected to freebsd.unpbook.com   вывод клиента Telnet

Escape character is '^]'.          вывод клиента Telnet

Mon Jul 28 11:56:22 2003           вывод сервера времени и даты

Connection closed by foreign host. вывод клиента Telnet (сервер закрыл

                                   соединение)


aix % telnet freebsd echo

Trying 12.106.32.254...          вывод клиента Telnet

Connected to freebsd.unpbook.com вывод клиента Telnet

Escape character is '^]'.        вывод клиента Telnet

hello, world                     ввод с клавиатуры

hello, world                     эхо-ответ сервера

^]                 ввод с клавиатуры для обращения к клиенту Telnet

telnet> quit       команда клиенту на завершение соединения

Connection closed. на этот раз соединение завершает клиент

В этих двух примерах мы вводим имя узла и название службы (daytime и echo). Соответствие названий служб и номеров портов (см. табл. 2.1) устанавливается в файле /etc/services (см. раздел 11.5).

Заметьте, что когда мы соединяемся с сервером daytime, сервер выполняет активное закрытие. В случае эхо-сервера активное закрытие выполняет клиент. Вспомним рис. 2.4, где показано, что узел, выполняющий активное закрытие, — это узел, проходящий состояние TIME_WAIT.

В современных системах стандартные службы чаще всего отключены по умолчанию, потому что через них могут быть проведены атаки типа «отказ в обслуживании» и другие, связанные с чрезмерным потреблением ресурсов.

2.13. Использование протоколов типичными приложениями Интернета

Таблица 2.2 иллюстрирует использование протоколов типичными приложениями Интернета.


Таблица 2.2. Использование протоколов типичными приложениями Интернета

Приложение IP ICMP UDP TCP SCRIPT ping • traceroute • • OSPF (протокол маршрутизации) • RIP (протокол маршрутизации) • BGP (протокол маршрутизации) • BOOTP (протокол bootstrap — протокол дистанционной загрузки и запуска устройств в сети) • DHCP (протокол bootstrap) • NTP (синхронизирующий сетевой протокол) • TFTP (упрощенный протокол передачи файлов) • SNMP (управление сетью) • SMTP (электронная почта) • Telnet (удаленный вход в систему) • FTP (передача файлов) • HTTP (протокол передачи HTML-файлов по сети WWW) • NNTP (сетевой протокол передачи новостей) • DNS (система доменных имен) • • NFS (сетевая файловая система) • • Sun RPC (удаленный вызов процедур) • • DCE RPC (удаленный вызов процедур) • • IUA (ISDN поверх IP) • M2UA, M3UA (телефонная связь SS7) • H.248 (управление шлюзом) • • • H.323 (IP-телефония) • • • SIP (IP-телефония) • • •

Первые два приложения, ping и traceroute, являются диагностическими и используют протокол ICMP, traceroute создает свои собственные пакеты UDP и считывает ответы ICMP.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "UNIX: разработка сетевых приложений"

Книги похожие на "UNIX: разработка сетевых приложений" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Уильям Стивенс

Уильям Стивенс - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Уильям Стивенс - UNIX: разработка сетевых приложений"

Отзывы читателей о книге "UNIX: разработка сетевых приложений", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.