К предмету На главную

Конспект лекции 12. Модель TCP/IP.

Описание

Модель TCP/IP - сетевая модель для управления передачей данных, которые представлены в цифровом виде.

Эта модель описывает способ передачи данных от одного устройства к другому.

Документом, регламентирующим уровневую архитектуру модели и описывающий все протоколы, входящие в TCP/IP, является RFC 1122.

Проблематика

Модель OSI имеет замечательную теоретическую проработку, но именно из-за большого количества теории она не может существовать в реальности: много уровней и задач сильно перегружают архитектуру, и задача построения компьютерной сети начинает требовать много ресурсов.

Для того, чтобы облегчить и обобщить задачу построения КС, была придумана модель TCP/IP. Название происходит от самых используемых протоколов этой модели.

Эта модель была принята как стандарт де-факто (негласно). Не смотря на это, данная модель является основой для архитектуры сети Интернет.

История...

Стек протоколов TCP/IP был создан на основе NCP (Network Control Protocol) группой разработчиков под руководством Винтона Серфа в 1972 году. В июле 1976 года Винт Серф и Боб Кан впервые продемонстрировали передачу данных с использованием TCP по трём различным сетям. Пакет прошёл по следующему маршруту: Сан-Франциско — Лондон — Университет Южной Калифорнии. К концу своего путешествия пакет проделал 150 тысяч км, не потеряв ни одного бита. В 1978 году Серф, Джон Постел и Дэнни Кохэн[en] решили выделить в TCP две отдельные функции: TCP и IP (англ. Internet Protocol, межсетевой протокол). TCP был ответственен за разбивку сообщения на датаграммы (англ. datagram) и соединение их в конечном пункте отправки. IP отвечал за передачу (с контролем получения) отдельных датаграмм. Вот так родился современный протокол Интернета. А с 1 января 1983 года ARPANET перешла на новый протокол. Этот день принято считать официальной датой рождения Интернета.

Выделяемые уровни

На рисунке представлена модель TCP/IP в сравнении с моделью OSI.

модель TCP/IP в сравнении с моделью OSI.

Уровень доступа к сети (или Канальный уровень)

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

Канальный уровень иногда разделяют на 2 подуровня — LLC и MAC.

Кроме того, канальный уровень описывает среду передачи данных.

Уровень сети Интернет (или Межсетевой уровень)

Межсетевой уровень предназначен для передачи пакета из одной сети в другую.

На этом уровне работают маршрутизаторы, которые перенаправляют пакеты в нужную сеть путём расчёта адреса сети по маске сети.

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

Транспортный уровень

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

На транспортном уровне появляется понятие «порт». Для передачи данных между процессами устройства (например, передача сообщения из одного приложения «вконтакте» другому приложению «вконтакте») недостаточно знать только IP-адрес и его маску. Ещё необходимо знать, какому процессу адресован пакет данных.

Для передачи пакетов между процессами было принято выделить на каждом хосте виртуальные порты, которые могут прослушиваться процессами.

Порт - это число от 0 до 65535, которое присваивается процессу на время. Порт чем-то похож на кабинку, которую можно занять определённой программе (ну а совокупность портов можно представить как гостиницу).

Порт порт так же может определять, какой протокол используется на прикладном уровне.

Порты выделяются как для TCP, так и для UDP (т.е. порты для одного протокола не пересекаются с портами другого).

Прикладной уровень предназначен для работы сетевых приложений. Для обмена информацией они используют свои протоколы, например: протокол HTTP для обмена гипертекстовой разметкой, протокол FTP (передача файлов), SMTP (электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.

В массе своей эти протоколы работают поверх TCP или UDP и привязаны к определённому порту, например:

С этим уровнем взаимодействует пользователь. Поэтому протоколы на этом уровне могут разрабатывать и прикладные программисты.

Стек протоколов

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

Для удобства определим протоколы по каждому уровню.

распределение часто используемых протоколов по уровням модели TCP/IP.

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

Таким образом, любой пакет содержит в себе стек используемых протоколов, который собирается при отправке, и в обратном порядке разбирается (подобно структуре «стек» в программировании).

формирование пакета данных по модели TCP/IP.