Читаем Linux API. Исчерпывающее руководство полностью

В этой главе вы познакомитесь с основными концепциями компьютерных сетей и сетевых протоколов TCP/IP. Понимание данной темы является обязательным для эффективного использования сокетов интернет-домена, описанных в следующей главе.

Здесь мы начнем упоминать различные RFC-документы (от англ. Request for Comments — «рабочие предложения»). В них находится формальное описание каждого сетевого протокола, который будет обсуждаться в данной книге. Больше о них можно узнать в разделе 54.7; там же перечислены RFC-документы, имеющие особую важность с точки зрения представленных здесь тем.

54.1. Интерсети

Интерсеть (или интернет с маленькой буквы «и») соединяет разные компьютерные сети, позволяя взаимодействовать входящим в них компьютерам. Иными словами, это сеть компьютерных сетей. Составные части интерсетей называют подсетями. Интерсеть призвана инкапсулировать разные физические сети, представляя всем подключенным к ней компьютерам унифицированную сетевую архитектуру. Это, к примеру, означает, что для идентификации всех узлов интерсети используются адреса в едином формате.

Несмотря на существование множества межсетевых протоколов, именно технология TCP/IP стала доминирующей, вытеснив даже коммерческие решения, которые когда-то применялись в локальных и глобальных сетях. Интерсеть на основе протокола TCP/IP, соединяющая миллионы компьютеров по всему миру, называется Интернетом (с прописной буквы «И»).

Первая широко распространенная реализация TCP/IP была разработана для системы 4.2BSD в 1983 году. Непосредственно из данного кода происходит несколько других реализаций, хотя некоторые версии TCP/IP, в том числе и та, что применяется в Linux, были созданы с нуля, а код системы BSD использовался в качестве эталонного образца.

Начало стека TCP/IP было положено в проекте, спонсируемом Управлением перспективных исследовательских проектов Министерства обороны США (англ. US Department of Defense Advanced Research Projects Agency — ARPA, а позже DARPA), целью которого являлась разработка сетевой компьютерной архитектуры для одной из первых глобальных сетей под названием ARPANET. Если быть точным, используемая там технология называлась пакетом межсетевых протоколов DARPA, но широкой публике она известна как семейство протоколов TCP/IP, или просто TCP/IP.

Краткая история Интернета и TCP/IP приведена на веб-странице http://www.internetsociety.org/internet/what-internet/history-internet/brief-history-internet.

Простая интерсеть представлена на рис. 54.1. На этой диаграмме компьютер tekapo играет роль маршрутизатора — узла, соединяющего одну подсеть с другой, передавая данные между ними. Помимо действующего межсетевого протокола, маршрутизатор должен понимать протоколы второго (канального) уровня, используемые в каждой соединяемой подсети (они могут быть разными).

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

Рис. 54.1.Интерсеть использует маршрутизатор для соединения двух подсетей

54.2. Сетевые протоколы и уровни

Сетевой протокол — набор правил, определяющий способ передачи информации по сети. Такие протоколы в целом делятся на уровни, которые «наслаиваются» друг на друга, добавляя все новые возможности.

Семейство протоколов TCP/IP представляет собой многоуровневый протокол (рис. 54.2). Он состоит из протокола IP (от англ. Internet Protocol) и разных других протоколов, функционирующих поверх него (код, реализующий эти уровни, обычно называют стеком протоколов). Свое название стек TPC/IP получил ввиду того факта, что TCP (от англ. Transmission Control Protocol) является основным протоколом транспортного уровня.

На рис. 54.2 нет целого ряда протоколов, основанных на TCP/IP, поскольку они не имеют отношения к данной главе. Протокол ARP (от англ. Address Resolution Protocol) предназначен для связывания интернет-адресов с физическими адресами (например, Ethernet). Протокол ICMP (от англ. Internet Control Message Protocol) служит для уведомления об ошибках и управления информацией внутри сети (он применяется в программе ping, с помощью которой обычно проверяют работоспособность и доступность узла в сети TCP/IP, а также в утилите traceroute, которая отслеживает путь, проделанный IP-пакетом внутри сети). Протокол IGMP (от англ. Internet Group Management Protocol) используется в обычных узлах и маршрутизаторах для поддержки многоадресной передачи IP-датаграмм.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных