Протокол контроля передачи данных и Интернет протокол (The Transmission Control Protocol and Internet Protoco - TCP/IP) - это стандартный набор протоколов, разработанных в конце 70-х годов управлением перспективного планирования оборонных научно-исследовательских работ (DARPA) в качестве средства коммуникации между различными типами компьютеров и компьютерных сетей. Так как сеть Интернет построена на стеке протоколов TCP/IP, они представляют самый популярный набор сетевых протоколов на Земле.
Две компоненты протокола TCP/IP имеют дело с различными аспектами компьютерных сетей. Интернет протокол (Internet Protocol), "IP" в TCP/IP - это протокол без организации соединения, который обеспечивает лишь пересылку сетевых пакетов, используя IP датаграммы в качестве единицы представления сетевой информации. IP датаграмма состоит из заголовка, за которым следует тело сообщения. Протокол управления передачей(Transmission Control Protocol), TCP в TCP/IP, обеспечивает хостам сети возможности устанавливать соединения, которые могут быть использованы для обмена потоками данных. TCP обеспечивает гарантированную доставку данных между соединенными системами, а также то, что эти данные доставляются на принимающий хост в том же самом порядке, в котором они были отправлены с другого хоста.
Настройка протокола TCP/IP состоит из нескольких элементов, которые должны быть указаны в соответствующих файлах конфигураций, или получены с помощью дополнительных служб таких как сервер протокола динамической настройки хостов (Dynamic Host Configuration Protocol, DHCP), который, в свою очередь, может быть настроен для автоматического предоставления правильных настроек TCP/IP клиентам сети. Следующим параметрам настройки должны быть указаны правильные значения, чтобы обеспечить нормальную работу вашей системы Ubuntu в сети.
Обычные элементы настроек TCP/IP и их назначение таковы:
- IP адрес. IP адрес - это уникальная идентификационная строка, представленная в виде четырёх десятичных чисел в диапазоне от нуля (0) до двухсот пятидесяти пяти (255), разделённых точками, каждое из четырёх чисел представляет восемь (8) бит адреса, полная длина которого тридцать два (32) бита. Этот формат называют dotted quad notation (четырехкомпонентная система обозначений адресов с точками).
- Маска сети (Netmask) Маска подсети (или просто, netmask) - это локальная битовая маска, или наборы флагов, отделяющая часть IP-адреса, значимую для сети, от битов, значимых для подсети (subnetwork). Например, в сети класса C, стандартная маска сети определена как 255.255.255.0, она маскирует первые три байта IP адреса и позволяет последнему байту IP адреса оставаться доступным для обозначения хостов в подсети.
- Адрес сети (Network Address) Адрес сети представляется байтами, включающими в себя сетевую часть IP адреса. К примеру, хост 12.128.1.2 в сети класса А будет использовать 12.0.0.0 в качестве адреса сети, которая использует двенадцать (12) для представления первого байта IP адреса (сетевая часть), тогда как нули (0) в оставшихся трех байт представляют потенциальные значения для хостов. Хосты сети использующие стандартные закрытые и не маршрутизируемые IP адреса, подобные 192.168.1.100, будут, в свою очередь, использовать в качестве адреса сети 192.168.1.0, которая определяет первые три байта 192.168.1 сети класса C и нуль (0) для всех возможных хостов в сети.
- Широковещательный адрес (Broadcast Address) Широковещательный адрес - это такой IP адрес, который позволяет передать сетевые данные одновременно на все хосты заданной подсети, вместо передачи на конкретный хост. Стандартным общим широковещательным адресом для IP сетей является 255.255.255.255, однако этот адрес не может быть использован для передачи широковещательных сообщений всем хостам сети Интернет, так как роутеры блокируют данный адрес. Более приемлем широковещательный адрес соответствующий конкретной подсети. Например, для популярной закрытой сети класса C, 192.168.1.0, широковещательный адрес должен быть настроен как 192.168.1.255. Широковещательные сообщения обычно рассылаются сетевыми протоколами такими, как протокол разрешения адресов (Address Resolution Protocol или ARP) и информационный протокол маршрутизации (Routing Information Protocol, RIP).
- Адрес шлюза (Gateway Address) Адрес шлюза - это IP адрес, через который некоторая сеть, или хост в сети, могут быть доступны. Пусть один сетевой хост желает организовать соединение с другим сетевым хостом, но они расположены в разных сетях, в таких случаях должен использоваться шлюз (gateway). Во многих случаях адрес шлюза будет совпадать с адресом маршрутизатора той же сети, который, в свою очередь, будет перенаправлять трафик в другие сети или на другие хосты, такие как хосты Интернет. Адресу шлюза должно быть присвоено правильное значение, в противном случае ваша система не сможет связаться ни с одним хостом, находящимся за пределами вашей сети.
- Адрес сервера имен (Nameserver Address) Адреса серверов имен представляют IP адреса систем службы именования доменов (Domain Name Service, DNS), которые разрешают имена хостов сети в IP адреса. Есть три уровня адресов серверов имен, которые могут быть определены в порядке приоритета: основной (Primary) сервер имен, вспомогательный (Secondary) сервер имен, и третичный (Tertiary) сервер имен. Для того, чтобы ваша система могла разрешать сетевые имена хостов в соответствующие IP адреса, вы должны определить допустимые адреса серверов имен, которые вам разрешено использовать в настройках TCP/IP вашей системы. Во многих случаях эти адреса будут предоставлены вашим провайдером сетевых услуг, но также существуют свободные и открыто доступные сервера имен, которые можно использовать, такие как серверы Level3 (Verizon) с IP адресами от 4.2.2.1 до 4.2.2.6.
IP адрес, маска сети, адрес сети, широковещательный адрес и адрес шлюза обычно определяются с помощью подходящих инструкций в файле /etc/network/interfaces
. Адреса серверов имен обычно задаются с помощью директивы nameserver в файле /etc/resolv.conf
. Для получения более полной информации, смотрите страницы системного руководства для interfaces
или resolv.conf
, соответственно, введя следующие команды в терминале:
Обратитесь к соответствующей странице системного руководства о interfaces
с помощью команды:
man interfaces
Обратитесь к соответствующей странице системного руководства о resolv.conf
с помощью команды:
man resolv.conf
IP маршрутизация
IP маршрутизация (роутинг) - это способы определения и нахождения путей доставки сетевых данных в сети TCP/IP. Маршрутизация использует набор таблиц маршрутизации (routing tables) для управления передачей сетевых пакетов данных от отправителя к получателю, зачастую через множество промежуточных сетевых узлов, именуемых маршрутизаторы (routers). IP маршрутизация - это основной способ определения путей доставки в сети Интернет. Есть две основных формы IP маршрутизации: статическая маршрутизация (Static Routing) и динамическая маршрутизация (Dynamic Routing).
Static routing involves manually adding IP routes to the system's routing table, and this is usually done by manipulating the routing table with the route command. Static routing enjoys many advantages over dynamic routing, such as simplicity of implementation on smaller networks, predictability (the routing table is always computed in advance, and thus the route is precisely the same each time it is used), and low overhead on other routers and network links due to the lack of a dynamic routing protocol. However, static routing does present some disadvantages as well. For example, static routing is limited to small networks and does not scale well. Static routing also fails completely to adapt to network outages and failures along the route due to the fixed nature of the route.
Динамическая маршрутизация зависит от больших сетей со множеством возможных IP маршрутов от отправителя к получателю и использует специальные протоколы маршрутизации, такие как протокол маршрутной информации (Router Information Protocol, RIP), который поддерживает автоматические изменения в таблицах маршрутизации, что делает возможным саму динамическую маршрутизацию. Динамический роутинг имеет несколько преимуществ над статическим, в числе которых отличная масштабируемость и возможность подстройки при возникновении сбоев и ошибок на маршрутах доставки данных. В дополнение к этому, при этом способе необходимо меньше ручных настройек таблиц маршрутизации, так как роутеры обмениваются друг с другом информацией о существовании других роутеров и доступных маршрутах. Это также устраняет возможность внесения ошибочной информации в таблицы маршрутов из-за ошибок операторов. Однако, динамический способ маршрутизации тоже несовершенен. Из недостатков мы отметим повышенную сложность и дополнительную нагрузку на сети, связанную с передачей информации между роутерами, которые не дают мгновенных преимуществ пользователю, но в то же время используют часть пропускной способности сети.
TCP - протокол с установлением соединения, предоставляющий коррекцию ошибок и гарантированную доставку данных через так называемое управление передачей (flow control). Управление передачей определяет когда поток данных необходимо остановить и заново отправить предыдущие пакеты данных вследствие таких проблем как коллизии (collisions). TCP обычно используется при обмене важной информацией, такой как транзакции баз данных.
Протокол пользовательских датаграмм (UDP - User Datagram Protocol), с другой стороны, является протоколом без установления соединения, который редко используется для передачи важных данных, поскольку в нем отсутствует управление передачей или другие способы гарантированной доставкой данных. UDP обычно используется в приложениях для передачи потокового аудио или видео, в которых он является быстрее TCP из-за отсутствия коррекции ошибок и управления передачей, и где потеря нескольких пакетов не является катастрофичной.
Протокол управляющих сообщений сети Интернет (Internet Control Messaging Protocol, ICMP) - это расширение Интернет протокола (IP), определенное в документе RFC#792 (Request For Comments), поддерживающее сетевые пакеты, содержащие управляющие и информационные сообщения, а также сообщения об ошибках. ICMP используется сетевыми приложениями, например, утилитой ping, с помощью которой можно определить доступность сетевого хоста или устройства. Например, сообщения об ошибках, возвращаемых ICMP, которые полезны как хостам в сети, так и устройствам типа маршрутизаторов, включают в себя адресат недоступен (Destination Unreachable) и превышено время ожидания (Time Exceeded).
Демоны - это специальные системные программы, которые, как правило, выполняются постоянно в фоновом режиме и ожидают запросов на функции, которые они предоставляют для других программ. Многие демоны направлены на работу с сетью; то есть, большое число демонов, выполняющихся в фоновом режиме в системе Ubuntu могут предоставлять сетевую функциональность. В качестве примера таких сетевых демонов можно привести Hyper Text Transport Protocol Daemon (httpd), который предоставляет функции веб-сервера, Secure SHell Daemon (sshd), который предоставляет безопасный удаленный доступ к консоли и возможность передачи файлов и Internet Message Access Protocol Daemon (imapd), который предоставляет службы электронной почты.