TCP/IP

Протокол управления передачей и межсетевой протокол (TCP/IP) - это стандартный набор протоколов, разработанный в конце 1970-х Агентством передовых оборонных исследовательских проектов (DARPA) как средство взаимодействия между различными типами компьютеров и компьютерными сетями. TCP/IP является движущей силой интернета и поэтому является самым популярным стеком сетевых протоколов на Земле.

Введение в TCP/IP

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

Настройка TCP/IP

Настройка протокола TCP/IP состоит из нескольких элементов, которые должны быть установлены через редактирование конфигурационных файлов, или использования таких решений как сервер DHCP, который будучи включен может быть настроен на раздачу правильных TCP/IP настроек клиентам сети автоматически. Эти параметры настроек должны быть установлены корректно для облегчения правильного сетевого взаимодействия вашей системы Ubuntu.

Общие элементы настройки TCP/IP и их назначение следующие:

  1. IP адрес IP адрес - это уникальная идентифицирующая строка, представленная в виде четырех десятичных чисел от 0 до 255, разделенных точками, каждое из которых представляет 8-битный адрес, составляющие полный 32-битный адрес Этот формат называют точечной четверичной записью (dotted quad notation).

  2. Сетевая маска Маска подсети (или просто сетевая маска) - это локальная побитовая маска или набор флагов, которые разделяют IP адрес на часть, значимую для всей сети, и биты, значимые для данной подсети. Например, в сети класса C стандартная сетевая маска 255.255.255.0, которая маскирует первые 3 байта IP адреса и делает последний байт адреса доступным для хостов, определенных в подсети.

  3. Адрес сети Адрес сети представляет собой байты, составляющие сетевую часть IP адреса. Например, хост 12.128.1.2 в сети класса A будет использовать 12.0.0.0 в качестве адреса сети, где 12 представляет первый байт IP адреса (сетевая часть) и нули в оставшихся трех байтах для предоставления возможных значений для хостов. Сетевой хост, использующий частный IP адрес 192.168.1.100 будет использовать для адреса сети 192.168.1.0, который определяет первые три байта сети 192.168.1 класса C и 0 для всех возможных хостов сети.

  4. Адрес рассылки Адрес рассылки - это IP адрес, который позволяет посылать сетевые данные на все хосты заданной подсети вместо того чтобы задавать определенный хост. Стандартный общий адрес рассылки для IP сетей 255.255.255.255, но этот адрес рассылки не может быть использован для отправки сообщения каждому хосту в интернете, поскольку роутеры его блокируют. Более уместно устанавливать адрес рассылки, соответствующий вашей подсети. Например, в частной IP сети класса С 192.168.1.0 адрес рассылки будет 192.168.1.255. Широковещательные сообщения обычно создаются сетевыми протоколами, такими как протокол определения адреса (ARP) и информационный протокол маршрутизации (RIP).

  5. Адрес шлюза Адрес шлюза - это IP адрес, через который можно соединится с определенной сетью или хостом в сети. Если один сетевой хост хочет соединиться с другим хостом в сети, и этот хост находится не в этой же сети, необходимо использовать шлюз. В большинстве случаев адрес шлюза является адресом роутера в этой сети, который включается для пропускания трафика к другим сетям или хостам, таким как интернет хостам. Значение адреса шлюза должно быть корректным или система не сможет получать доступ к хостам за пределами этой самой сети.

  6. Адрес сервера имен Адрес сервера имен представляет IP адрес системы сервиса доменных имен (DNS), которые разрешают сетевые имена хостов в IP адреса. Существует три уровня адресов серверов имен, которые могут быть определены в порядке старшинства: Первичный сервер имен, Вторичный сервер имен и Третичный сервер имен. Чтобы у вашей системы была возможность разрешения сетевых имен хостов в соответствующие им IP адреса, вы должны определить правильные адреса серверов имен, которые вам разрешено использовать в настройках TCP/IP вашей системы. В большинстве случаев эти адреса могут и предоставляются вашим сетевым провайдером, но есть много свободных и публично доступных серверов имен, которые можно использовать, таких как Level3 (Verizon) сервера с адресами от 4.2.2.1 до 4.2.2.6.

IP адрес, сетевая маска, адрес сети, адрес рассылки и адрес шлюза обычно задаются через соответствующие директивы в файле /etc/network/interfaces. Адреса серверов имен как правило указываются через директиву nameserver в файле /etc/resolv.conf. Для дополнительной информации смотрите страницу системного руководства по интерфейсам или resolv.conf соответственно с помощью следующих команд, набранных в терминале:

Доступ к странице системного руководства по интерфейсам следующей командой:

man interfaces

Доступ к странице системного руководства по resolv.conf следующей командой:

man resolv.conf

IP маршрутизация

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

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

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

TCP и UDP

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

С другой стороны, пользовательский пакетный протокол (UDP) - это протокол без установления соединения, который редко используется для передачи важных данных, поскольку не использует управление потоком и иные методы проверки целостности передаваемых данных. UDP обычно используется в таких приложениях, как передача аудио- и видео-потоков, поскольку он значительно быстрее TCP из-за отсутствия коррекции ошибок и управления потоком, где потеря нескольких пакетов обычно не катастрофично.

ICMP

Протокол межсетевых управляющих сообщений (ICMP) - это расширение протокола IP, определенное в RFC 792, поддерживающее сетевые пакеты сообщений управления, информирующих сообщений и сообщений об ошибках. ICMP используется в таких приложениях как утилита ping, которая определяет доступность сетевого хоста или устройства. Примерами некоторых сообщений об ошибках, возвращаемых ICMP, которые полезны как для сетевых хостов, так и роутеров, являются «адресат недоступен» (Destination Unreachable) и «время вышло» (Time Exceeded).

Сервисы (Daemons)

Сервисы - это специальные системные приложения, которые обычно выполняются длительно в фоновом режиме и ожидающие запросов на выполнение определенных функций от других приложений. Много сервисов связаны с сетевым обменом, то есть большое количество сервисов, работающих в фоне в Ubuntu могут предоставлять сетевую функциональность. Среди таких сетевых сервисов сервис гипертекстового транспортного протокола (httpd), которые обеспечивает функциональность web сервера; сервис безопасной оболочки (sshd), который обеспечивает безопасный удаленный доступ и возможность передачи файлов; и сервис протокола IMAP (imapd), обеспечивающий сервис почтовых сообщений.

Ссылки

  1. Существуют страницы руководств по TCP и IP, которые содержат больше полезной информации.

  2. Также посмотрите TCP/IP Tutorial and Technical Overview из «красной книги» IBM.

  3. Еще ресурс - TCP/IP Network Administration O'Reilly.