| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > Межуровневое взаимодействие в стеке TCP/IP |
| Автор: AstonClinton 11.9.2006, 13:02 |
| LLC - есть интерфейс между сетевым и канальным уровнями!! Мне нужна информация об аналогичных интерфейсах, только между транспортным и сетевым уровнями(как работает и т.д.)!! P.S. Предложение к админам: создать раздел посвященный технологиям программирования! |
| Автор: adonin 11.9.2006, 16:21 |
Откуда такая информация? Как я припоминаю, LLC - это есть подуровень канального уровня модели OSI (Не интерфейс). Что Вы понимаете под интерфейсом? интерфейс между программными модулями операционной системы или логические связи между уровнями модели OSI? |
| Автор: AstonClinton 12.9.2006, 08:26 |
| LLC - подуровень(канального уровня) конечно, который является своеобразным интерфейсом канального и сетевого уровней! Он выполняет две функции: 1 - интерфейс уровней(канальный - сетевой) 2 - определяет тип передачи(если так можно сказать) |
| Автор: adonin 12.9.2006, 09:48 |
| Мне кажется, вы сами не до конца понимаете свой вопрос. Если говорить о транспортном и сетевом уровне модели OSI, то нужно чётко понимать, что это есть ни что иное как набор "стандартов". Уровень модели, на котором функционирует программный модуль определяет функциональность данного модуля. Если говорить о программных модулях, функционирующих на разных уровнях модели OSI, то интерфейсы между ними определяются операционной системой и конкретной реализацией стека протоколов. Если говорить о взаимодействии уровней абстрактно, то более высокие уровни используют для передачи данных более низкие уровни. То есть, модуль транспортного уровня передаёт результаты своей деятельности модулю сетевого уровня. Если Вы имеете ввиду деление сетевого и транспортного уровня на подуровни, то такого деления нет. |
| Автор: AstonClinton 12.9.2006, 10:03 | ||
Можно по подробнее как это происходит? |
| Автор: adonin 13.9.2006, 10:43 |
| Никак. Это абстракция. О механизмах взаимодействия можно говорить только применительно к программным модулям. Если я правильно понял Ваши затруднения, рассмотрим на примере соединения TCP: опустим процесс установления соединения... итак, передача сообщения: 1) приложение формирует сообщение (прикладной уровень), представляет его в нужном формате, допустим, в UNICODE (Представительский уровень) и передаёт ОСи эти данные; 2) Модуль ОСи, функционирующий на транспортном уровне, добавляет к данным заголовок TCP и передает нижележащёму модулю IP средствами операционной системы 3) Модуль IP (Сетевой уровень) дпобавляет свой заголовок, содержащий служебную информацию, и передаёт сетевому драйверу (Канальный уровень). Тот добавляет свой заголовок (например заголовок кадра Ethernet) 4) Затем вся эта куча передаётся в сетевую и затем в кабель (Физический уровень). Вообще то лучше книжку по сетям почитать. В двух словах всего не расскажешь. |
| Автор: Athlon 15.9.2006, 17:21 |
| http://www.syt.edu.severodvinsk.ru/znai/megabook/internet/tcp-ip/gl3/gl3.html Кусок класной книги по сетевому программированию хорошо описан механизм чтения и записи для TCP UDP и многое другое. К сожалению только одна глава, остальные не нашел(наверное плохо искал). |
| Автор: dumb 16.9.2006, 00:46 |
| Athlon, http://www.syt.edu.severodvinsk.ru/znai/megabook/internet/tcp-ip/ |
| Автор: AstonClinton 20.9.2006, 08:43 |
| Может кто нибудь ответить на вопрос как реализована передача данных между СЕТЕВЫМ и ТРАНСПОРТНЫМ уровнями и как программно это реализовано, в общем всё по их взаимодействию! P.S. Книгу почитаю. |
| Автор: Dian 20.9.2006, 10:11 |
| Если кому ещё интересно - http://www.progz.ru/forum/index.php?showtopic=27412&hl= |
| Автор: AstonClinton 20.9.2006, 11:01 |
| Я знаю, не зря ведь темы создавал т.к. люди разные отвечают по разному! |
| Автор: AstonClinton 22.9.2006, 08:15 |
| Всё теперь я понял, просто нужно было пару глав дочитать! Всем спасибо! |
| Автор: adonin 22.9.2006, 09:41 |
| Если говорить о Windows, то функции сетевого и транспортного уровня реализованы в одном программном модуле и передача данных между ними - задача тривиальная. Если Вас интересует передача данных между драйверами, то она осуществляется посредством операционной системы, а точнее диспетчера ввода-вывода, который обеспечивает передачу IRP пакетов - особых структур данных, содержащих всю необходимую служебную информацию и указатель на обрабатываемые данные. Драйверы обращаются к ОСи при помощи спец. интерфейса: Native API ("родные" API). Подробнее читайте в документации DDK. |