Сети персональных компьютеров. Технология «общая шина». Топология «кольцо». Локальные сети, страница 7

Теперь о том, что же такое сокеты. Сокет – это идентификационный номер программы на рабочей станции. Согласитесь, медь на одной машине может одновременно работать несколько программ. При приходе пакета (да и при отправке) мы должны определиться, к кому он пришел, к какой именно программе? Вот их и пронумеровали: socket – (тех.) гнездо. Система сокетов позволяет одновременно работать в сети нескольким типам программ, например: Doom, Quake, netx, StarCraft и т. п., и не пересекаться, не мешать работе друг друга. Сокет как бы предопределяет назначение программы, использующей сетевой уровень, большинство сокетов уже разобрано фирмами-изготовителями программного обеспечения, и они зарезервированы за определенным типом продукта, а иногда на одну программу приходится вообще по несколько сокетов. Например, сервер Novell –  тот вообще «отъедает» добрый десяток сокетов.

Еще есть один момент в сетевом уровне – широковещательные адреса, адреса всех машин в данной сети. Послав пакет на такой адрес, мы можем быть уверены в том, что его получат все машины данной сети. Часто это нужно, когда вновь пришедшая рабочая станция желает идентифицировать себя и/или сориентироваться, кто есть кто в сети. Своего рода клич: «эге-гей, кто-нибудь отзовитесь!», и сразу же – град ответов. В Интернете, в самом начале тоже было такое, но представьте себе – каждый новичок считал своим долгом заявить о себе, пришлось эту возможность запретить. На глобальном уровне. А в локальных сетях, как Novell, так и Интернетовских, эта возможность осталась – пожалуйста, у себя дома балуйся.

Примеры протоколов сетевого уровня: IPX (internetwork exchange protocol) и IP (internet protocol).

Транспортные уровень. Когда речь заходит о протоколах этого уровня, подразумевается, во-первых, гарантированная доставка пакетов, то есть квитирование, контроль ошибок, запросы и повторная передача, во-вторых, оптимизация передачи пакетов по сети, что связано с разбиением исходного сообщения на части и раздельной доставкой их конечному потребителю.

Эти протоколы уже больше логические, нежели чем механистические сетевые. Алгоритм доставки сообщений посредством этих протоколов значительно сложнее, поскольку вначале между двумя компьютерами устанавливается связь, как бы туннель, и потом, не зависимо от того, передаем ли мы данные или нет, оба компьютера будут регулярно «гонять» вспомогательные пакеты, поддерживающие эту связь. Это обеспечивает устойчивость связи. Кроме этого, для повышения надежности связи, исходное сообщение может быть разбито на несколько мелких, которые могут быть отправлены по различным маршрутам. С одной стороны, мелкий пакет и быстрее уйдет в линию связи, что снизит вероятность наложения помехи, с другой стороны, такой пакет не будет большой обузой сети – малым пакетам все ресурсы сети – их можно больше пропустить за единицу времени, в отличие от больших пакетов. Далее, мелкие пакеты, рассылаемые по различным ответвлениям сети, позволят вычислить самый скоростной (оптимальный) путь – по нему можно потом отправлять остальные. Правильно, а зачем ждать подолгу? Как этот подсчет осуществляется? Например, посылаем служебный пакет, в котором указываем время отправки и резервируем место под число пройденных мостов. По мере прохождения маршрутизаторов, число в этом месте будет неуклонно расти. На приемном конце вычисляем разницу во времен отправки и приема и формируем ответ: «этот пакет прошел столько-то сетей за такое-то время, попробуй отправить его по другому пути». Ну и так далее.

Кстати, о туннелях. Кроме этих вещей, этот уровень позволяет организовывать инкапсуляцию протоколов одного уровня. Например, IР в IPX и обратно – это называется туннелированием. Учась в Новосибирске я знавал пару одержимых товарищей, гонявших в WarCraft в пору его расцвета с Москвой. Как известно, эта игра работает по протоколу IPX, они же играли через весь Интернет. Этот механизм позволяет объединять различные сети с различными топологиями и различными протоколами в глобальные сети. На этом уровне, кроме того, может осуществляться согласование протоколов различных уровней через специальные шлюзы.

Примеры протоколов этого уровня: TCP IP (transmition control protocol) для Интернета и SPX (sequenced packet exchange) для Novell.

Остальные уровни сравнительно мало используются, поэтому и внимания им поменьше.