- •Подсистема управления вводом-выводом
- •Int creat(const char *path, mode_t mode);
- •Int open(const char *path, int oflag, ...);
- •Int fildes;
- •Int close(int fildes);
- •Int fildes;
- •1.Взаимодействие драйверов с программной и аппаратной средой
- •10.3.4 Опрос терминала
- •2. Основы tcp/ip
- •2.1. Модуль ip создает единую логическую сеть
- •-----------------------------¬ --------------------------------¬
- •--------------------------------------------¬
- •Ip-сеть "development" ip-сеть "accounting"
- •223.1.2.1 Alpha
- •Int socket(int domain, int type, int protocol)
- •11.20. Процесс создает в домене "unix system" гнездо потокового
-----------------------------¬ --------------------------------¬
¦ прикладные процессы ¦ ¦ прикладные процессы ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
¦ ------- ------- ¦ ¦ ------- ------- ¦
| ¦ TCP ¦ ¦ UDP ¦ ¦ ¦ ¦ TCP ¦ ¦ UDP ¦ ¦
¦ ------- ------- ¦ ¦ ------- ------- ¦
¦ \ / ¦ ¦ \ / ¦
¦ -----¬ ¦ ¦ -----¬ ¦
¦ ------¬ ¦ IP ¦ ¦ ¦ ------¬ ¦ IP ¦ ------¬ ¦
¦ ¦ ARP ¦ ------ ¦ ¦ ¦ ARP ¦ ------ ¦ ARP ¦ ¦
¦ ------- ¦ ¦ ¦ ------- ¦ ¦ ------- ¦
¦ \ ¦ ¦ ¦ \ ¦ ¦ / ¦
¦ -------¬ ¦ ¦ -------¬ -------¬ ¦
¦ ¦ ENET ¦ ¦ ¦ ¦ ENET ¦ ¦ ENET ¦ ¦
¦ ---@---- ¦ ¦ ---@---- ---@---- ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
------------+----------------- ----------+---------+------------
¦ ¦ ¦ кабель Ethernet
---------------o-------- ¦ ---o---------------
--------------o---- Ethernet 2
p- Порт (TCPилиUDP)
* - IP-адрес, должен быть уникальным в пределах всей сети Internet.
IP-адрес выбирает менеджер сети с учетом положения машины в сети.
@ - Шестибайтный Ethernet-адрес является уникальным для каждого сетевого адаптера и распознается драйвером.
TCP (Transmission Control Protocol - протокол управления передачей)
UDP (User Datagram Protocol - протокол пользовательских датаграмм
Когда Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet, он может быть направлен либо в модуль ARP (Address Resolution Protocol - адресный протокол), либо в модуль IP (Internet Protocol - межсетевой протокол). На то, куда должен быть направлен Ethernet-кадр, указывает значение поля типа в заголовке кадра.
Протокол ARP
Для отображения IP-адресов в Ethernet-адреса используется протокол ARP (Address Resolution Protocol - адресный протокол). Отображение выполняется только для отправляемых IP-пакетов т.е. при создании IP и Ethernet заголовков.
Преобразование адресов выполняется путем поиска в ARP-таблице, которая хранится в памяти и содержит строки для каждого узла сети.
--------------------------------------------¬
¦ IP-адрес Ethernet-адрес ¦
+-------------------------------------------+
¦ 223.1.2.1 08:00:39:00:2F:C3 ¦
¦ 223.1.2.3 08:00:5A:21:A7:22 ¦
L--------------------------------------------
Она заполняется автоматически модулем ARP, по мере необходимости. Когда с помощью существующей ARP-таблицы не удается преобразовать IP-адрес, то происходит следующее:
1) По сети передается широковещательный ARP-запрос.
2) Исходящий IP-пакет ставится в очередь. (Или просто уничтожается с расчетом на таймаут и повторную посылку от TCP или UDP или прик.Процесса).
3) Все карты Ethernet проверяют поле типа в принятом Ethernet-кадре и передают ARP-пакеты модулю ARP. Если искомый адрес совпадает со своим, то формируется ответ, в котором прописан Ethernet-адрес.
Межсетевой протокол IP
Модуль IP занимается маршрутизацией в сети и имеет свою таблицу.
----- D -------
A B C | | E F G
| | | | | | | |
----o-----o-----o-----o-- --o-----o-----o-----o---
Ethernet 1 Ethernet 2
