Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Linux: Введение
  3. Сеть TCP/IP в Linux

Аппаратный и интерфейсный уровни

Итак, на аппаратном уровне возможна какая угодно среда передачи данных, с точки зрения Linux сеть начинается в месте подключения к этой среде, то есть на сетевом интерфейсе. Список сетевых интерфейсов и их настроек в системе можно посмотреть с помощью команды ifconfig (от interface configuration):

methody@localhost:~ $ ifconfig
 -bash: ifconfig: command not found
methody@localhost:~ $ /sbin/ifconfig 
 Warning: cannot open /proc/net/dev (Permission denied). Limited output.
 Warning: cannot open /proc/net/dev (Permission denied). Limited output.
 eth0     Link encap:Ethernet  HWaddr 00:0C:29:56:C1:36  
          inet addr:192.168.102.125  Bcast:192.168.102.255  Mask:255.255.255.0
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1

 Warning: cannot open /proc/net/dev (Permission denied). Limited output.
 lo       Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1

Пример 1. Запуск ifconfig

Утилитой ifconfig пользуется, в основном, сама система или администратор; некоторые данные ifconfig получает, обращаясь с системным вызовом ioctl() к открытому сетевому сокету, а некоторые считывает из /proc. Название сетевого интерфейса состоит из его типа и порядкового номера (каким по счёту его распознало ядро). Все сетевые интерфейсы Ethernet в Linux называются ethномер, начиная с eth0. Параметр MTU (Maximum Transfer Unit) определяет наибольший размер фрейма. Большинство других параметров относятся к сетевому уровню, но как минимум ещё один — HWaddr — относится к уровню интерфесному.

сетевой интерфейс
Точка взаимодействия утилит Linux с реализацией TCP/IP в ядре системы. Как правило, имеет уникальный сетевой адрес. Интерфейсу может соответствовать некоторое сетевое оборудование (например, карта ethernet), в этом случае определён также и интерфейсный его адрес.

HWaddr (от HardWare address, аппаратный адрес) — это уникальный внутри среды передачи данных идентификатор сетевого устройства. В Ethernet аппаратный адрес называется MAC-address (от Media Access Control, управление доступом к среде), и состоит из шести байтов, которые принято записывать в шестнадцатеричной системе счисления и разделять двоеточиями. Каждая ethernet-карта имеет собственный уникальный MAC-address (в примере — 00:0C:29:56:C1:36), поэтому его легко использовать для определения отправителя и получателя в рамках одной ethernet-среды. Если идентификатор получателя неизвестен, используется аппаратный широковещательный адрес, FF:FF:FF:FF:FF:FF. Сетевая карта, получив широковещательный фрейм или фрейм, MAC-адрес получателя в котором совпадает с её MAC-адресом, обязана отправить его на обработку системе.

Термин «Media Access Control» имеет отношение к алгоритму, с помощью которого решается задача очерёдности передачи. Алгоритм базируется на трёх принципах:

  1. Прослушивание среды. Каждое устройство умеет определять, идёт ли в данное время передача данных по среде. Если среда свободна, значит устройство имеет право само передавать данные.
  2. Обнаружение коллизий. Если решение о начале передаче данных одновременно приняли несколько устройств, в среде возникнет коллизия, и распознать, где чьи были данные, становится невозможно. Зато устройства всегда замечают произошедшую коллизию, и передают данные повторно.
  3. Случайное время ожидания перед повтором. Если бы после коллизии все устройства начали одновременно повторять передачу данных, случилась бы новая коллизия. Поэтому каждое устройство выжидает некторое случайное время, и только после этого повторяет передачу. Если повторная коллизия всё-таки возникает, устройство ждёт вдвое дольше, и т. д. до тех пор, пока не превысится допустимое время ожидания, после чего системе сообщается об ошибке.

Время ожидания не удваивается а выбирается, опять-таки случайно, но из другого временного диапазона.

Приведённый алгоритм обладает двумя недостатками. Во-первых, уже на интерфейсном уровне время передачи одного пакета может быть любым, так как неопределённое промедление с передачей предусмотрено протоколом. Во-вторых, сеть ethernet считается хорошо загруженной, если на протяжении некоторого промежутка времени в среднем треть этого времени была пострачена на передачу данных, а две трети времени среда была свободна. Сеть ethernet, нагруженная наполовину, работает очень медленно и с большим числом коллизий, а сеть, нагруженная на две трети, считается неработающей. Это — плата за отсутствие синхронизации работы всех устройств в сети.

Перекрёстные ссылки книги для Аппаратный и интерфейсный уровни

  • Сетевые протоколы. Семейство протоколов TCP/IP
  • Вверх
  • Сетевой уровень

Book navigation

  • Предисловие
  • Сеанс работы в Linux
  • Терминал и командная строка
  • Структура файловой системы
  • Работа с файловой системой
  • Доступ процессов к файлам и каталогам
  • Права доступа
  • Работа с текстовыми данными
  • Возможности командной оболочки
  • Текстовые редакторы
  • Этапы загрузки системы
  • Работа с внешними устройствами
  • Конфигурационные файлы
  • Управление пакетами
  • Сеть TCP/IP в Linux
    • Сетевые протоколы. Семейство протоколов TCP/IP
    • Аппаратный и интерфейсный уровни
    • Сетевой уровень
    • Транспортный уровень
    • Прикладной уровень
  • Сетевые и серверные возможности
  • Графический интерфейс (X11)
  • Прикладные программы
  • Политика свободного лицензирования

Последние материалы

  • Приложение Zoom
    4 days ago
  • Команда restore
    2 weeks ago
  • Файл sudoers
    3 weeks 1 day ago
  • Утилита visudo
    3 weeks 2 days ago
  • Файловый менеджер Thunar
    1 month ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru