Файл: Понятие прикладных протоколов и серверы приложений (Сетевой сокет и многопоточный вариант сервера).pdf
Добавлен: 19.06.2023
Просмотров: 521
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. Взаимодействие компьютеров в сети
1.1 Общие понятия взаимодействия
1.3 Функции уровней модели ISO/OSI
1.4 Сетевой сокет и многопоточный вариант сервера
Глава 2. Разработка сети передачи данных
2.1 Протоколы передачи данных в компьютерных сетях
Глава 3 Исследование стандартных стеков коммуникационных протоколов
3.2 Стек IPX/SPX
Стек протоколов IPX/SPX (англ. Internetwork Packet Exchange / Sequenced Packet Exchange – межсетевой обмен пакетами / последовательный обмен пакетами) является собственностью компании Novell. Он был разработан в начале 80-х годов для сетевой операционной системы NetWare, которая еще до недавнего времени занимала одну из лидирующих позиций среди серверных операционных систем.[85]
Протоколы IPX (Internetwork Packet Exchange) и SPX, которые дали имя стеку, являются прямой адаптацией протоколов XNS фирмы Xerox, распространенных в гораздо меньше степени, чем IPX/SPX.[Источник 1] По количеству установок протоколы IPX/SPX лидируют, и это обусловлено тем, что сама ОС NetWare занимает лидирующее положение с долей установок в мировом масштабе примерно в 65%.[86]
Протоколы IPX и SPX работают на сетевом и транспортном уровнях модели ISO/ OSI соответственно, поэтому отлично дополняют друг друга. Протокол IPX может передавать данные с помощью датаграмм, используя для этого информацию о маршрутизации в сети. Однако для того, чтобы передать данные по найденному маршруту, необходимо сначала установить соединение между отправителем и получателем. Этим и занимается протокол SPX или любой другой транспортный протокол, работающий в паре с IPX.
Этот стек является оригинальным стеком протоколов фирмы Novell, который она разработала для своей сетевой операционной системы NetWare еще в начале 80-х годов.[87] Протоколы Internetwork Packet Exchange (IPX) и Sequenced Packet Exchange (SPX), которые дали имя стеку, являются прямой адаптацией протоколов XNS фирмы Xerox, распространенных в гораздо меньше степени, чем IPX/SPX. По количеству установок протоколы IPX/SPX лидируют, и это обусловлено тем, что сама ОС NetWare занимает лидирующее положение с долей установок в мировом масштабе примерно в 65%.[88]
Семейство протоколов фирмы Novell и их соответствие модели ISO/OSI представлено на рисунке 5.
На физическом и канальном уровнях в сетях Novell используются все популярные протоколы этих уровней (Ethernet, Token Ring, FDDI и другие).[89]
На сетевом уровне в стеке Novell работает протокол IPX, а также протоколы обмена маршрутной информацией RIP и NLSP (аналог протокола OSPF стека TCP/IP). IPX является протоколом, который занимается вопросами адресации и маршрутизации пакетов в сетях Novell. Маршрутные решения IPX основаны на адресных полях в заголовке его пакета, а также на информации, поступающей от протоколов обмена маршрутной информацией.
Транспортному уровню модели OSI в стеке Novell соответствует протокол SPX, который осуществляет передачу сообщений с установлением соединений. На верхних прикладном, представительном и сеансовом уровнях работают протоколы NCP и SAP. Протокол NCP (NetWare Core Protocol) является протоколом взаимодействия сервера NetWare и оболочки рабочей станции.[90]
SAP (Service Advertising Protocol) - протокол объявления о сервисе - концептуально подобен протоколу RIP. Подобно тому, как протокол RIP позволяет маршрутизаторам обмениваться маршрутной информацией, протокол SAP дает возможность сетевым устройствам обмениваться информацией об имеющихся сетевых сервисах.[91]
В сетях Novell серверы NetWare 3.x каждую минуту рассылают широковещательные пакеты SAP. Пакеты SAP в значительной степени засоряют сеть, поэтому одной из основных задач маршрутизаторов, выходящих на глобальные связи, является фильтрация трафика SAP-пакетов и RIP-пакетов.[92] Это обстоятельство, а также тот факт, что стек IPX/SPX является собственностью фирмы Novell и на его реализацию нужно получать у нее лицензию, долгое время ограничивали распространенность его только сетями NetWare. Именно компания Novell ответственна за использование IPX в качестве популярного компьютерного сетевого протокола из-за их преобладания на рынке программного обеспечения сетевой операционной системы (с NetWare) с конца 1980-х и до середины 1990-х. Чотя в последнее время ее популярность намного снизилась, и по темпам роста она заметно отстает от Microsoft Windows NT.
Многие особенности стека IPX/SPX обусловлены ориентацией ранних версий ОС NetWare (до версии 4.0) на работу в локальных сетях небольших размеров, состоящих из персональных компьютеров со скромными ресурсами. Понятно, что для таких компьютеров компании Novell нужны были протоколы, на реализацию которых требовалось бы минимальное количество оперативной памяти (ограниченной в IBM-совместимых компьютерах под управлением DOS (Disk Operating System) объемом 640 Кбайт) и которые быстро работали бы на процессорах небольшой вычислительной мощности.[93]
В результате протоколы стека IPX/SPX до недавнего времени хорошо работали в локальных сетях и не очень — в больших корпоративных сетях, так как они слишком перегружали медленные глобальные связи широковещательными пакетами, которые интенсивно используются несколькими протоколами этого стека (например, для установления связи между клиентами и серверами).[94]
Это обстоятельство, а также тот факт, что стек IPX/SPX является собственностью фирмы Novell, и на его реализацию нужно получать лицензию (то есть открытые спецификации не поддерживались), долгое время ограничивали его поле деятельности только сетями NetWare.[95] Однако с момента выпуска версии NetWare 4.0 специалисты Novell внесли и продолжают вносить в протоколы серьезные изменения, направленные на их адаптацию для работы в корпоративных сетях. Сейчас стек IPX/SPX реализован не только в NetWare, но и в нескольких других популярных сетевых ОС, например SCO UNIX, Sun Solaris, Microsoft Windows NT.
DOS
Изначально NetWare клиент был написан компанией Novell для DOS. Первые версии требовали жестко связанный стек протоколов, где исполняемый файл создавался бы администратором для каждой сетевой карты в отдельности. Этот исполняемый файл был бы загружен в течение установленного времени и оставался бы в памяти до тех пор, пока система не завершит программу.[96] Позже реализации позволили сетевому стеку загружаться и разгружаться динамически с помощью исполняемых модулей. Это значительно упростило процедуру обслуживания клиентских терминалов в сети.
Протокол IPX/SPX на деле был образцом для многопользовательских сетевых игр эры DOS. Жизненный цикл многих игр был увеличен за счет туннельных программ таких, как Kali Linux и Kahn, которые позволили играть в них через Интернет.[97]
Windows
Вследствие распространенности IPX/SPX в локальных сетях в 1990-х, Microsoft Corporation добавил поддержку для протоколов в сетевые стеки Microsoft Windows, начиная с Windows for Workgroups и Microsoft Windows NT. Microsoft даже назвал свои реализации "NWLink", подразумевая, что включение транспортов уровня 3/4 обеспечит связь с серверами NetWare.[98]
В действительности, протоколы поддерживались как исходный транспорт для Microsoft Windows SMB (Server Message Block)/NetBIOS, и связь с NetWare требовала дополнительную установку NCP клиента (Microsoft Corporation предоставила Microsoft Windows 95 базовому клиенту NetWare, но она не установилась автоматически, и первоначально поддерживался только режим системной базы данных NetWare).
NWLink был все еще обеспечен Microsoft Windows (ранними версиями по Windows Server 2003 включительно), но не поддерживался Microsoft Windows Vista. Его использованию строго препятствовали, так как он не мог быть использован для организации сети Microsoft Windows за исключением транспорта для NetBIOS, который устарел.[99]
Главным образом, 32-битное клиентское программное обеспечение Microsoft Windows компании Novell избежало NWLink благодаря альтернативе, разработанной Novell, хотя некоторые версии допускают использование реализации IPX/SPX Microsoft Corporation (с предупреждением о потенциальной несовместимости).
Другие
В течение нескольких лет компания Novell поставляла исходный клиент NetWare для OS/2.[Источник 3] По структуре он напоминал клиент для DOS.
Novell также выпускала IPX клиент для Classic Mac OS X, называемый MacIPX. Он использовался не только Mac NetWare клиентом, а также играми такими, как Doom и Warcraft III для многопользовательской игры.[100]
Реализации были написаны для разновидностей Unix/Linux, обе компанией Novell и другими разработчиками. В частности, Novell’s UnixWare изначально поддерживала IPX/SPX. Конечно, пока UnixWare могла выступать в качестве клиента NetWareслужбы, и приложения могли дополнительно поддерживать IPX/SPX как транспорт, UnixWare не предоставляла возможности совместно использовать файлы или принтеры в NetWare сети без дополнительного программного пакета. Open Enterprise Server – Linux не поддерживает IPX/SPX.[101]
Открытая исходная операционная система FreeBSD включает IPX/SPX стек, чтобы поддержать файловый системный клиент NetWare и службу NetWare, использующий Mars NWE (обеспечивая тем самым некоторую функциональность). OpenBSD отказалась от поддержки с версии 4.2 и 4.1 понадобилось немного доработать, чтобы скомпилировать с IPX.
Заключение
Если вспомнить достаточно распространенную фразу “дипломатический протокол”, то суть та же — вы в определенных случаях должны говорить фразы из определенного набора слов, фраз и другая сторона делает то же самое. В ИТ-сфере все очень похоже -вы посылаете определенные байты и ждете в ответ определенные байты. Этот обмен и есть протокол. Если он соблюдается обеими сторонами, то они смогут о чем-нибудь договориться.
Если рассматривать полную сетевую модель OSI (Open System Interconnection — взаимодействие открытых систем), то прикладного программиста на Java затрагивают в основном протоколы Прикладного уровня — HTTP, FTP, SMTP, SNMP и протоколы Транспортного уровня — TCP и UDP. (там еще есть парочка, но они крайне редко встречаются)
В этой статье я хочу поговорить именно о транспортном уровне, а точнее о протоколе TCP — Transmission Control Protocol (Протокол Управления Передачей). Именно этот протокол является основой для очень широкого круга задач — подключения к базам данных, работа через Интернет, web-сервисы. Это очень важный протокол и на мой взгляд, крайне важно знать инструменты, которые позволяют с ним работать.
Что касается протокола UDP, то он тоже важен и нужен, но в моей практике он встречается реже. Хотя конечно же многое зависит от того, какую задачу вы решаете. Были у меня проекты, где мы работали с UDP достаточно плотно. Для прикладного программиста на Java работа с TCP — это работа с сокетами. Сокет — это специальная структура на уровне операционной системы, которая в упрощенном понимании может быть описана следующим образом:
В памяти выделяется структура, которая описывается двумя главными параметрами:
IP-адрес — это по сути адрес компьютера в сети. Опять же — это упрощенно, но для первого знакомства вполне подойдет
Порт — это число, которое должно быть уникально в рамках указанного компьютера. Только какое-то одно приложение должно владеть этим портом в рамках операционной системы
В результате предложений по развертыванию локальных сетей можно сформулировать следующие выводы:
1. Наибольшее предпочтение по развертыванию абонентской части локальной сети следует отдать технологии беспроводного радиодоступа компании D-Link, так как она обладает:
- большим радиусом зоны действия;
- большим количеством предоставляемых услуг, в том числе и шифрования (кодирования) передаваемой информации для исключения ее разглашения;
- минимальными потерями в антенно-фидерном тракте для уменьшения утечек информации из сети;
- возможностью подключения к уже существующим кабельным сетям и т.д.
2. Предложена локальная компьютерная сеть с комплексной защитой объектов информатизации, которая позволяет увеличить не менее, чем на 15-20 % число пользователей (абонентской емкости) и на 10-15 % ее протяженность.
Список использованной литературы
- Андреев, Остроух Автоматизация управления компьютерными сетями / Остроух Андрей , Нгуен Дык Тхань und Эдгар Чернов. - М.: LAP Lambert Academic Publishing, 2014. - 284 c.
- Антонова, Галина Технологии передачи информации на физическом уровне модели OSI / Галина Антонова. - М.: Palmarium Academic Publishing, 2018. - 192 c.
- Баринов, Андрей Безопасность сетевой инфраструктуры предприятия / Андрей Баринов. - М.: LAP Lambert Academic Publishing, 2016. - 331 c.
- Беззатеев, Сергей Классы кодов Гоппы / Сергей Беззатеев. - М.: LAP Lambert Academic Publishing, 2017. - 320 c.
- Дансмор, Брэдли Справочник по телекоммуникационным технологиям / Брэдли Дансмор , Тоби Скандьер. - М.: Вильямс, 2017. - 640 c.
- Епанешников, А.М. Локальные вычислительные сети / А.М. Епанешников. - М.: Диалог-Мифи, 2014. - 793 c.
- Жуков, Юрий Основы веб-хакинга. Нападение и защита: моногр. / Юрий Жуков. - М.: Книга по Требованию, 2018. - 208 c.
- Ибе, О. Компьютерные сети и службы удаленного доступа / О. Ибе. - М.: Книга по Требованию, 2017. - 334 c.
- Корячко, Вячеслав Петрович Анализ и проектирование маршрутов передачи данных в корпоративных сетях / Корячко Вячеслав Петрович. - М.: Горячая линия - Телеком, 2014. - 971 c.
- Кузьменко, Николай Гаврилович Компьютерные сети и сетевые технологии / Кузьменко Николай Гаврилович. - М.: Наука и техника, 2015. - 564 c.
- Майкл, Дж. Монкур Дженкинс-мл. Джон У. Переход к NetWare 5 (тест 50-638) / Дж. Майкл Дженкинс-мл. Монкур, У. Джон, Джеймс Челлис. - М.: ЛОРИ, 2016. - 272 c.
- Малыгин, Иван Широкополосные системы связи / Иван Малыгин. - М.: LAP Lambert Academic Publishing, 2018. - 200 c.
- Михеев, М. Администрирование VMware vSphere / М. Михеев. - М.: Книга по Требованию, 2014. - 408 c.
- Надежда, Лутфуллина und Елена Рудская Информационные технологии для государства и бизнеса / Надежда Лутфуллина und Елена Рудская. - М.: LAP Lambert Academic Publishing, 2014. - 260 c.
- Найэл, Ричард Мэрфи IPv6. Администрирование сетей / Найэл Ричард Мэрфи, Дэвид Мэлоун. - М.: КУДИЦ-Пресс, 2014. - 320 c.
- Орлов, С. А. Организация ЭВМ и систем / С.А. Орлов, Б.Я. Цилькер. - М.: Книга по Требованию, 2018. - 688 c.
- Павел, Михеев und Сергей Сущенко Анализ сетей абонентского доступа / Павел Михеев und Сергей Сущенко. - М.: LAP Lambert Academic Publishing, 2015. - 172 c.
- Палмер, Майкл Проектирование и внедрение компьютерных сетей / Майкл Палмер , Роберт Брюс Синклер, Майкл Палмер. - М.: БХВ-Петербург, 2018. - 740 c.
- Поляк-Брагинский, А. В. Локальная сеть. Самое необходимое / А.В. Поляк-Брагинский. - М.: БХВ-Петербург, 2016. - 576 c.
- Поляк-Брагинский, А. Сеть под Microsoft Windows. Экспресс-курс / А. Поляк-Брагинский. - М.: БХВ-Петербург, 2015. - 336 c.
- Семенов, А. Б. Волоконно-оптические подсистемы современных СКС / А.Б. Семенов. - М.: ДМК Пресс, Компания АйТи, 2014. - 632 c.
- Семенов, А. Б. Структурированные кабельные системы. Стандарты, компоненты, проектирование, монтаж и техническая эксплуатация / А.Б. Семенов, С.К. Стрижаков, И.Р. Сунчелей. - М.: КомпьютерПресс, 2018. - 482 c.
- Смирнова, Е.В. Технологии современных сетей Ethernet. Методы коммутации и управления потоками данных / Е.В. Смирнова. - М.: БХВ-Петербург, 2017. - 480 c.
- Стахнов, Алексей Сеть для офиса и LINUX-сервер своими руками / Алексей Стахнов. - М.: БХВ-Петербург, 2017. - 320 c.
- Сухов, Андрей Научные основы анализа качества интернет трафика / Андрей Сухов. - М.: LAP Lambert Academic Publishing, 2017. - 264 c.
- Таненбаум, Э.С. Компьютерные сети / Э.С. Таненбаум. - М.: Питер, 2017. - 608 c.
- Чекмарев, Ю.В. Локальные вычислительные сети / Ю.В. Чекмарев. - М.: Книга по Требованию, 2017. - 204 c.
- Черноухов, Дмитрий Сравнительный анализ веб-сайтов федеральных университетов России / Дмитрий Черноухов. - М.: LAP Lambert Academic Publishing, 2014. - 124 c.
- Шалак, В. И. Логический анализ сети Интернет / В.И. Шалак. - Москва: Машиностроение, 2016. - 100 c.