Tcp ip модель: Компьютерные сети от А до Я: стек протоколов TCP/IP
Компьютерные сети от А до Я: стек протоколов TCP/IP
Стек протоколов TCP/IP – это альфа и омега Интернета, и нужно не только знать, но также понимать модель и принцип работы стека.
Предыдущая статья
Мы разобрались с классификацией, стандартами сетей и моделью OSI. Теперь поговорим о стеке, на базе которого построена всемирная система объединенных компьютерных сетей Интернет.
Изначально данный стек создавался для объединения больших компьютеров в университетах по телефонным линиям связи соединения «точка-точка». Но когда появились новые технологии, широковещательные (Ethernet) и спутниковые, возникла необходимость адаптировать TCP/IP, что оказалось непростой задачей. Именно поэтому наряду с OSI появилась модель TCP/IP.
Через модель описывается, как необходимо строить сети на базе различных технологий, чтобы в них работал стек протоколов TCP/IP.
В таблице представлено сравнение моделей OSI и TCP/IP. Последняя включает в себя 4 уровня:
- Самый нижний, уровень сетевых интерфейсов, обеспечивает взаимодействие с сетевыми технологиями (Ethernet, Wi-Fi и т. д.). Это объединение функций канального и физического уровней OSI.
- Уровень интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.
- Транспортный отвечает за связь между процессами на разных компьютерах, а также за доставку переданной информации без дублирования, потерь и ошибок, в необходимой последовательности.
- Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.
Иногда специалисты пытаются объединить обе модели в нечто общее. Например, ниже приведено пятиуровневое представление симбиоза от авторов «Компьютерные сети» Э. Таненбаума и Д. Уэзеролла:
Модель OSI обладает хорошей теоретической проработкой, но протоколы не используются. С моделью TCP/IP все иначе: протоколы широко используются, но модель подходит исключительно для описания сетей на базе TCP/IP.
Не путайте их:
- TCP/IP – это стек протоколов, представляющий собой основу Интернета.
- Модель OSI (Базовая Эталонная Модель Взаимодействия Открытых Систем) подходит для описания самых разных сетей.
Рассмотрим каждый уровень более подробно.
Нижний уровень сетевых интерфейсов включает в себя Ethernet, Wi-Fi и DSL (модем). Данные сетевые технологии формально не входят в состав стека, но крайне важны в работе интернета в целом.
Основной протокол сетевого уровня – IP (Internet Protocol). Это маршрутизированный протокол, частью которого является адресация сети (IP-адрес). Здесь также работают такие дополнительные протоколы, как ICMP, ARRP и DHCP. Они обеспечивают работу сетей.
На транспортной уровне расположились TCP – протокол, обеспечивающий передачу данных с гарантией доставки, и UDP – протокол для быстрой передачи данных, но уже без гарантии.
Прикладной уровень – это HTTP (для web), SMTP (передача почты), DNS (назначение IP-адресам понятных доменных имен), FTP (передача файлов). Протоколов на прикладном уровне стека TCP/IP больше, но приведенные можно назвать самыми значимыми для рассмотрения.
Помните, что стек протоколов TCP/IP задает стандарты связи между устройствами и содержит соглашения о межсетевом взаимодействии и маршрутизации.
Следующая статья
Модель стека протоколов TCP/IP и ее особенности. Уровни модели TCP/IP и принципы их работы.
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать основы работы компьютерных сетей, напомню, что эти записи основаны на программе Cisco ICND1 и помогут вам подготовиться к экзаменам CCENT/CCNA. Продолжаем разговор об эталонных моделях и на этот раз мы рассмотрим модель, которая была разработана путем практических наработок, эта модель называется модель стека протоколов TCP/IP, она похожа на модель OSI 7, но имеются и свои отличия, которые довольно значительны и их стоит обсудить, а также обозначить.
Помимо разбора самой модели TCP/IP в общем и целом, а также каждого уровня этой модели в отдельности, которых кстати четыре, мы сделаем сравнение эталонной модели OSI 7 и модели стека протоколов TCP/IP, чтобы понять какими недостатками и преимуществами обладают эти концепции передачи данных, в завершении мы выведем компромиссную модель передачи данных, которая будет включать в себя преимущества обеих упомянутых концепций.
Перед началом я хотел бы вам напомнить, что ознакомиться с опубликованными материалами первой части нашего курса можно по ссылке: «Основы взаимодействия в компьютерных сетях».
1.15.1 Введение
Содержание статьи:
Ранее мы рассмотрели модель OSI 7 и уделили особое внимание той ее части, за которую отвечает сетевой инженер. Также в блоге есть отдельная публикация, где эталонная модель сетевого взаимодействия рассмотрена более подробно. Мы отмечали, что модель OSI 7 была разработана теоретиками и имеет огромное количество сложных протоколов, которые так и не были реализованы на практике.
Давайте теперь взглянем на модель, которая была разработана практиками и протоколы которой применяются в реальных компьютерных сетях, эта модель называется модель стека протоколов TCP/IP, я уверен, что эти протоколы вы уже слышали и каждый день ими пользуетесь, даже не зная того. До этих протоколов мы еще доберемся, сейчас рассмотрим саму модель.
1.15.2 Общий принцип работы модели стека протоколов TCP/IP
Общий принцип работы модели стека протоколов TCP/IP очень похож на принцип работы модели OSI 7, разница только в количестве уровней и их функционале. Думаю, что не будет лишним отметить следующее (тут многие могут со мной согласиться): модель OSI 7 более полно описывает взаимодействие компьютерной сети с точки зрения логики ее работы, но ее протоколы абсолютно не прижились в современных реалиях, а модель стека протоколов TCP/IP описывает компьютерную сеть не так полно, зато ее протоколы используются повсеместно.
Вообще модель TCP/IP более удобна для сетевого инженера, здесь более четко описаны его границы ответственности. Давайте посмотрим на структуру модели TCP/IP, которая показана на Рисунке 1.15.1.
Рисунок 1.15.1 Модель стека протоколов TCP/IP
Как видим, отличие модели TCP/IP от OSI 7 заключается в количестве уровней, у эталонной модели их семь, в модели стека протоколов их четыре. В модели TCP/IP объединены первых два уровня модели OSI 7 (канальный и физический), здесь первый уровень называется уровень доступа к сети или канальный уровень. На уровне доступа к сети в модели сетка протоколов TCP/IP работают такие технологии и протоколы как: Ethernet, который есть практически в каждой локальной сети, IEEE 802.11 (Wi-Fi), PPP, в общем и целом на первом уровне модели стека протоколов TCP/IP реализуется функционал физического и канального уровней модели OSI 7.
Второй уровень модели TCP/IP соответствует третьему уровню модели OSI 7, в разных источниках вы можете встретить разные названия третьего уровня: уровень сети Интернет, сетевой уровень, межсетевой уровень. Можно сказать, что это основной и самый интересный для сетевого инженера уровень. Так как на этом уровне определяется логическая адресация узлов сети Интернет и, по сути, этот уровень является конечным для сетевого оборудования, за взаимодействие компьютеров на более высоких уровнях уже отвечают конечные устройства: клиентское и серверное оборудование.
Третий уровень модели TCP/IP имеет такое же название, как и в модели OSI – Транспортный уровень, правда в модели OSI этот уровень в порядке нумерации идет четвертым. Транспортный уровень отвечает за надёжность передачи для конечных устройств поверх ненадежной компьютерной сети, в которой в любой момент могут возникать самые разные проблемы. К тому же транспортный уровень помогает различать компьютерам следующее: какой трафик какое приложение генерирует и какому приложению предназначены те или иные пакеты, это возможно благодаря сокетам. На транспортном уровне для нас будут интересны два протокола: TCP, который обеспечивает надежную передачу с установкой соединения, этот протокол используется для передачи данных типа текст, файлов и так далее, а также протокол UDP, этот протокол без установки соединения и используется он для передачи данных в системах реального времени: аудио и видео связь. Про работу служб с установлением соединения и без вы можете узнать из записи, опубликованной ранее.
Ну а на самом верху модели TCP/IP находится уровень приложений или прикладной уровень, который отвечает за взаимодействие с конечным пользователем. Этот уровень модели TCP/IP включает в себя сразу три уровня модели OSI 7 (сеансовый, представительский и прикладной уровни), что на самом деле очень удобно как для программистов и разработчиков, так и для сетевых инженеров. Программист может писать приложения, не задумываясь об уровнях, сосредоточившись на своих абстракциях, а сетевому инженеру многие вещи верхних уровней просто неинтересны, но об этом чуть позже.
1.15.3 Первый уровень модели TCP/IP или уровень доступа к сети
Первый уровень – это фундамент компьютерной сети, поверх которого строится вся логика взаимодействия. Пожалуй, основной недостаток модели стека протоколов TCP/IP заключается в том, что физический и канальный уровень модели OSI здесь объединены в один под названием уровень доступа к сети или канальный уровень. На мой взгляд, нужно отделять физические процессы, происходящие на первом уровне от логики, которая реализована в канале связи на втором уровне. Хотя тут могут быть возражения в следующем ключе: такие популярные технологии как Ethernet и IEEE 802.11 в контексте модели OSI 7 работают на двух уровнях (канальном и физическом), тогда как в контексте модели TCP/IP эти технологии реализуют свой функционал на одном уровне – уровне доступа.
Итак, на уровне доступа модели TCP/IP решаются физические вопросы, связанные с передачей сигнала в различных средах:
- максимальный и минимальный допустимые уровни сигнала в среде передачи данных: если с минимальным все более-менее очевидно, то с максимальным немного поясню: с усилением полезного сигнала усиливаются и помехи;
- какой уровень сигнала нужно принимать за логический ноль (логический ноль – это не отсутствие сигнала), а какой уровень сигнала будет считаться логической единицей;
- на физическом уровне определяются технические и конструктивные требования к среде передачи данных, например, если передача по медной линии, то тут можно выделить сетевые интерфейсы типа RJ-45 и RJ-11 или, например, витая пара или коаксиальный кабель;
- данные в чистом виде никогда не передаются по сети, по сети передаются два объединенных сигнала: полезный сигнал с данными (его еще называют модулирующий) и несущий сигнал, процесс объединения этих двух сигналов называется модуляцией, более подробно об этом читайте в книгах, указанных в самой первой теме.
На самом деле этот список можно было продолжать, но для темы нашего курса физический уровень не так важен, так как разработчики сетевого оборудования уже решили за нас все самые сложные аспекты, касающиеся физики передачи данных, нам лишь придется оперировать простыми параметрами, о которых мы поговорим, когда коснемся технологий Ethernet и Wi-Fi.
Уровень доступа к сети в модели TCP/IP включает в себя еще и функционал канального уровня эталонной модели. Собственно, разработчики модели TCP/IP считают канальные функции более важными, и они правы с точки зрения логики процесса передачи данных. Вообще на уровне доступа решается задача кодирования данных для их передачи по физической среде, также на этом уровне реализуется адресация, при помощи которой коммутаторы понимают: какому устройству какой кадр отправить, эти адреса называются мак-адресами, если говорить про Ethernet сети.
Вообще, если говорить про названия единиц передачи данных на уровне доступа в модели TCP/IP, то здесь используются кадры (общую информацию о единицах измерения в компьютерной сети вы можете получить из этой публикации), которые получаются путем логического объединения битов в последовательности. Например, если говорить про Ethernet, то его заголовок, как минимум, будет содержать мак-адрес назначения, мак-адрес источника, тип вышестоящего протокола, а также специальное поле для проверки целостности данных.
Можно выделить следующие протоколы и технологии, которые работают на канальном уровне модели TCP/IP: Ethernet, IEEE 802.11 WLAN, SLIP, Token Ring, ATM. Первым двум мы выделим по целой части, так как в локальных сетях вы будете чаще всего сталкиваться именно с ними.
Еще на канальном уровне реализуется механизм обнаружения и исправления ошибок при помощи специальных кодов, очень подробно про канальные коды рассказано в книге Бернарда Скляра «Цифровая связь», здесь мы на них не останавливаемся. Из физических устройств, работающих на уровне доступа к сети можно выделить (дополнительно можете почитать про основные физические компоненты компьютерной сети): усилители сигнала, преобразователи сигнала (SFP-модули, медиаконвертеры и т.д.), ретрансляторы, хабы, концентраторы, радио антенны, а также коммутаторы уровня L2, которые будет представлять для нас наибольший интерес, так как их можно и нужно настраивать и у них есть различные по своей полезности механизмы для защиты сети и обеспечения надежности передачи данных.
1.15.4 Второй уровень или уровень сети Интернет
Второй уровень модели TCP/IP называется уровнем сети Интернет, сетевым или межсетевым уровнем. Это один из самых важных уровней для сетевого инженера, так как именно здесь работает протокол IP, отвечающий за логическую адресацию в компьютерных сетях и в сети Интернет, если говорить о частностях. Непосредственно протоколу IP мы уделим целых две части, сначала мы поговорим про версию IPv4, а затем разберемся с версией протокола IPv6. Также на этом уровне работают протоколы динамической маршрутизации, в этом курсе мы разберемся с протоколом RIP, который очень прост, но уже практически нигде не используется. А если будет продолжение, то мы еще будем разбираться с такими замечательными протоколами динамической маршрутизации, как OSPF и EIGRP.
Также на сетевом уровне модели TCP/IP работает такой протокол как NAT, отвечающий за магию превращения (трансляцию) частных IP-адресов в публичные, которые маршрутизируются в сети Интернет. Вообще, этот уровень разрабатывался для того, чтобы появилась возможность взаимодействия между двумя независимыми сетями. Основным физическим устройством уровня сети Интернет является маршрутизатор, который определяет куда направить пакет по IP-адресу, находящемуся в заголовке IP-пакета, для этого маршрутизатор использует маски, а также в этом ему помогают протоколы динамической маршрутизации, при помощи которых один роутер рассказывает о известных ему IP-адресах другому роутеру.
Вообще, как я уже говорил, мы будем разбираться с протоколом IP и IP-адресами в дальнейшем, сейчас же стоит отметить, что есть так называемый мультикаст трафик и специальные IP-адреса, если нужен пример использования, то это IPTV (вот здесь вы можете немного узнать о видах сетевого взаимодействия и сетевого трафика). Так вот для работы с мультикаст IP-адресами используются такие протоколы как IGMP и PIM, которые мы не будем затрагивать в рамках этого трека, но упомянуть о них стоит. Вообще, протоколов сетевого уровня достаточно много, самые важные для нас на данном этапе мы уже перечислили, однако не упомянули протокол ARP, который помогает определить мак-адрес по известному IP-адресу, этот протокол работает между канальным и сетевым уровнем.
На межсетевом уровне единица измерения данных или PDU называется пакетом, хотя об этом вы уже догадались, когда я использовал слово IP-пакет. При этом структура заголовка IP-пакета в IPv4 достаточно сильно отличается от структуры пакета в IPv6, как и сами IP-адреса этих протоколов.
Стоит еще добавить, что настройки, производимые на сетевом уровне модели TCP/IP влияют на логику работу компьютерной сети, то есть на ее логическую топологию, в то время как действия выполняемые на первом уровне влияют на физическую топологию компьютерной сети.
1.15.5 Третий или транспортный уровень стека протоколов TCP/IP
Транспортный уровень в современных компьютерных сетях в сущности представлен двумя протоколами: TCP и UDP. Первый большой и толстый, в основном используется для передачи текстовых данных и файлов по сети, второй маленький, тонкий и очень простой и используется для передачи аудио и видео данных по сети. У протокола TCP есть механизм повторной передачи битых или потерянных данных, у UDP такого механизма нет. Принципиальных отличий у этих двух протоколов много, но самое важное отличие заключается в том, что у TCP есть механизм установки соединения, а вот у UDP такого механизма нет.
Вообще, протоколы транспортного уровня должны обеспечить надежное соединение поверх ненадёжной компьютерной сети, на которой в любой момент может произойти авария, или же где-то, на каком-то участке сети, могут быть потери. Механизмы транспортного уровня реализуются на конечных компьютерах, будь то сервер или клиент, в зависимости от типа конечного устройства немного изменяется его логика работы на транспортном уровне.
Если говорить про протокол TCP, то данные передаваемые по сети при помощи этого протокола называются сегментами, а вот у данных, передаваемых по сети при помощи протокола UDP имеется другое название – датаграммы/дейтаграммы, кому как удобно, второй вариант я использую чаще. Транспортный уровень гарантирует целостность и правильность поступления данных на конечных устройствах, а также помогает компьютерам разобраться кому какие данные принадлежат, работает это примерно так (смотрите на Рисунок 1.15.2): какому-либо приложению назначается определенный TCP/UDP порт или же этот порт генерируется динамически, допустим со стороны клиента этот порт был сгенерирован динамически, а со стороны серверов порт был задан разработчиками или же системным администратором вручную (если интересно, то вот здесь описан принцип взаимодействия клиент-сервер).
Рисунок 1.15.2 Сильно упрощенная схема взаимодействия на транспортном уровне
Итак, получаем, что у клиентского ПК IP-адрес: 192.168.2.3, а также клиентский ПК выдал клиентскому приложению порт с номером 23678 для установки соединения с первым сервером (пусть приложением будет браузер), а для установки со вторым сервером браузер получил порт 23698. Клиентский ПК делает запросы к веб-серверам, находящимся в одной сети с клиентом: у первого сервера IP-адрес: 192.168.2.8, а у второго: 192.168.2.12, при этом порт серверного приложения как в первом, так и во втором случае одинаковый – 80, также хочу обратить внимание на то, что клиентский ПК сообщает серверам разные порты, на которые нужно слать ответы. Таким образом, если клиентский компьютер хочет сделать запрос к первому серверу, то он использует примерно следующую конструкцию для запроса: 192.168.2.8:80, это означает, что запрос был послан машине с IP-адресом 192.168.2.8 на 80 порт, сервер же пошлет ответ, используя вот такую конструкцию 192.168.2.3:23678. Если же запрос идет на 192.168.2.12:80, то ответ будет передан на 192.168.2.3:23698.
Таким образом происходит разделение трафика и компьютер не путается. Вообще, это описание предельно упрощено, более подробно мы будем говорить о протоколах транспортного уровня в отдельной части, так как эта тема довольно большая и требует отдельного разговора, кстати сказать, в курсах Cisco ICND1 и ICND2 достаточно мало времени уделено транспортному уровню. Здесь же стоит добавить что комбинация IP-адрес + порт транспортного уровня обычно называется сокетом, при этом не имеет значения протокол транспортного уровня (TCP или UDP).
За работу транспортного уровня отвечает компьютер и его операционная система или же специальная сетевая библиотека на этом компьютере, к которой может обращаться любое приложение, желающее передавать или получать данные.
1.15.6 Четвертый уровень или уровень приложений
Четвертый уровень модели TCP/IP представляет наименьший интерес для сетевого инженера, этот уровень создают и обслуживают: программисты, системные администраторы, devops-инженеры, хотя на уровне приложений есть несколько протоколов, которые важны и нужны сетевому инженеру. Вообще, основная задача прикладного уровня заключается в том, чтобы предоставить пользователю удобный интерфейс для взаимодействия с компьютерами и компьютерными сетями, но это если говорить коротко.
Пожалуй, самым известным протоколом уровня приложений является протокол HTTP, который используют ваши браузеры для того, чтобы получить данные с того или иного сайта в сети Интернет. Протокол HTTP работает по схеме клиент-сервер, как и многие другие подобные протоколы, взаимодействием в протоколе HTTP управляет клиент, который отправляет специальные HTTP сообщения, так называемые запросы, а сервер, получив это сообщение, анализирует его и дает клиенту свои сообщения, которые называются ответами, вообще, если тема вам интересна, то у меня блоге вы найдете рубрику, по протоколу HTTP.
Из важных для сетевого инженера протоколов на четвертом уровне находятся:
- DHCP – протокол, позволяющий динамически выдавать клиентским машинам IP-адреса и другие данные для подключения к сети;
- DNS – этот протокол придумали люди с дырявой памятью, которые не хотели запоминать IP-адреса, DNS позволяет преобразовывать IP-адреса в доменные имена сайтов и наоборот, для практики можете разобраться с командой nslookup;
- SNMP – протокол, который используется во всех системах управления и мониторинга компьютерных сетей;
- SSH – протокол для безопасного удаленного управления, при использовании SSH данные шифруются;
- Telnet – еще один протокол удаленного управления, этот протокол реализует простой текстовый сетевой интерфейс.
Вообще этот список можно продолжить, но пока этого нам достаточно. В рамках курса мы разберемся как подключаться к коммутаторам и маршрутизаторам при помощи протоколов Telnet и SSH, научимся управлять соединениями и его параметрами, также мы немного разберемся с протоколами DHCP и DNS, возможно, в дальнейшем знакомство будет продолжено, а вот протокол SNMP мы трогать не будем.
Также стоит отметить следующие протоколы, относящиеся к прикладному уровню модели стека протоколов TCP/IP: RDP для удаленного управления компьютером, SMPT, IMAP, POP3 это всё почтовые протоколы для реализации разного функционала, FTP и SFTP это протоколы для передачи файлов по сети, первый использует протокол TCP, а второй более простой использует UDP.
Список протоколов на прикладном уровне очень велик и перечислять их все не имеет смысла. На четвертом уровне уже нельзя выделить отдельных аппаратных средств, так как задачи уровня приложений решаются программным способом, а в качестве PDU, то есть единиц измерения, выступают просто данные, которые могут выглядеть тем или иным образом в зависимости от приложения, которое работает, обрабатывает или передает данные.
1.15.7 Сравнение моделей OSI 7 и TCP/IP, а также поиск компромисса
Прежде чем перейти к сравнению моделей OSI 7 и TCP/IP, нам следует сказать, что модель стека протоколов TCP/IP использовалась для создания сети ARPANET, которая спустя годы превратилась в тот Интернет, которым мы пользуемся, сеть ARPANET – была исследовательской сетью, финансируемой министерством обороны США, эта сеть объединила сотни университетов и правительственных зданий в единую систему передачи данных при помощи телефонных линий, но с развитием технологий появилась спутниковая связь, радиосвязь, связь при помощи оптических линий и появились проблемы с передачей данных во всем этом зоопарке, разработка моделей передачи данных должна была решить возникшие проблемы и в принципе задача была решена.
Давайте же теперь попробуем сравнить эталонную модель сетевого взаимодействия OSI 7 с моделью стека протоколов TCP/IP и посмотрим, чем практическая модель отличается от теоретической. Для начала обратите внимание на Рисунок 1.15.3.
Рисунок 1.15.3 Сравнение эталонных моделей передачи данных TCP/IP и OSI 7
Слева показана эталонная модель сетевого взаимодействия, а справа вы видите модель стека протоколов TCP/IP. Сначала очевидные вещи: физический и канальный уровень модели OSI 7 соответствует уровню доступа к сети в модели TCP/IP, сетевой и транспортный уровень у обеих моделей совпадают, а вот три верхних уровня модели OSI соответствуют прикладному уровню модели TCP/IP.
Сразу отметим, что функциональность уровней этих моделей во многом схожа, а вот протоколы двух этих моделей очень разнятся, стоит заметить, что протоколы модели OSI 7 так и не были реализованы или же не получили широкого практического применения, поэтому их мы не упоминаем. Вообще, данной теме люди посвящают целые книги, мы же попробуем уложиться побыстрее.
В основе модели OSI 7 лежат три важных объекта: протокол, интерфейс и служба, модель OSI 7 четко выделяет эти три концепции и подчеркивает, что это совершенно разные вещи. Сервис или служба определяют то, что именно делает тот или иной уровень, но он никак не описывает каким образом это все происходит, другими словами сервис описывает услугу, которую нижележащий уровень предоставляет вышестоящему уровню, но он не говорит как это делается и как вообще третий уровень получает доступа ко второму, а второй к первому.
Интерфейс в эталонной модели рассказывает и описывает то, как верхний уровень может получить доступ к услугам нижележащего уровня. Интерфейс описывает требуемые входные параметры, а также то, что должно получиться на выходе, но, как и сервис, интерфейс ничего не рассказывает о интимных вещах, которые происходят внутри него.
И наконец протоколы, которые еще называют равноранговыми протоколами, поскольку они описывают то, как взаимодействуют устройства на конкретном уровне, являются инструментами конкретного уровня, каждый протокол использует для решения каких-либо конкретных задач. При этом сам уровень для решения той или иной задачи волен выбирать протокол по своему усмотрению и даже изменять этот протокол, при этом не происходит никаких изменений на более высоких уровнях, об этом мы говорили, когда разбирались с декомпозицией задачи сетевого взаимодействия.
А вот в первоначальном виде модели стека протоколов TCP/IP не было таких четких границ между тремя вышеописанными сущностями, поэтому реализация протоколов здесь скрыта хуже, чем в модели OSI 7, да и замена одного протокола на другой может происходить более болезненно, чем в модели OSI 7, в общем, на практике не все так гладко.
Еще одним важны отличием моделей TCP/IP и OSI 7 является то, что эталонная модель OSI 7 была разработана раньше, чем ее протоколы появились на бумаге. С одной стороны, это говорит про универсальность модели передачи данных, но с другой стороны: универсальные вещи хуже решают конкретные задачи. Например, простым кухонным ножом можно открыть банку сгущенки, но это гораздо удобнее сделать специальным консервным ножом. Отсюда и основные проблемы эталонной модели: у разработчиков модели OSI не было четкого понимания того, какие функции на каком уровне должны быть реализованы.
Также модель OSI изначально не была рассчитана на то, что когда-нибудь появятся широковещательные сети. Передача данных в сетях, построенных на принципах модели OSI 7, велась от узла к узлу, с вероятностью 99% ваша домашняя сеть и сеть вашего поставщика услуг доступа в Интернет широковещательная. Поэтому разработчикам пришлось вносить коррективы, добавив новый подуровень в модель OSI. Городульки в модели OSI не закончились на канальном уровне, когда на основе модели OSI 7 начали реализовывать первые компьютерные сети, оказалось, что существующие протоколы не соответствуют спецификациям служб, поэтому в модель были добавлены дополнительные подуровни для устранения несоответствия. И в заключении: при разработке модели OSI 7 не был учтен момент интеграции и объединения нескольких небольших сетей в одну большую, предполагалось, что в каждой стране будет одна большая единая сеть, находящаяся под управлением государства.
В TCP/IP все вышло ровным счетом наоборот: сначала были придуманы и реализованы протоколы этой модели, а затем появилась необходимость в том, чтобы создать модель, которая описывает сетевое взаимодействие с использованием этих протоколов. Таким образом протоколы модели стека TCP/IP четко соответствуют уровням и функциям этих уровней. Единственный минус, этот минус не такой значительный для современного мира, заключается в том, что модель стека протоколов TCP/IP не соответствует никаким другим моделям. Минус незначительный, так как большинство компьютерных сетей построены на основе модели TCP/IP и ее протоколов.
Еще одно важное отличие моделей TCP/IP и OSI 7 кроется на сетевом и транспортном уровнях. Модель TCP/IP на сетевом уровне реализуется связь без установления соединения при помощи протокола IP, а на транспортном уровне предлагает два протокола: UPD и TCP. А вот модель OSI 7 предлагает инженерам выбор на сетевом уровне: можно выбрать связь с установлением соединения или без него, а на транспортном уровне есть один протокол, который поддерживает связь только с установлением соединения.
Можно выделить четыре основных пункта, из-за которых критикуют эталонную модель сетевого взаимодействия:
- Несвоевременность.
- Неудачная технология.
- Неудачная реализация.
- Неудачная политика распространения.
Этим мы и ограничимся и перейдем к основным недостаткам модели TCP/IP. Во-первых, модель стека протоколов TCP/IP не проводит четких границ между службами, интерфейсами и протоколами, поэтому в модель TCP/IP не всегда легко вписать новые протоколы и технологии. Второй недостаток заключается в том, что при помощи модели TCP/IP можно описать не все сети и не все технологии, например, вы не сможете достаточно полно описать технологию Bluetooth при помощи модели TCP/IP.
Канальный уровень модели TCP/IP на самом деле никакой не уровень и всё, что было описано выше про канальный уровень модели TCP/IP в большей степени подходит для физического и уровня передачи данных модели OSI 7, а не для первого уровня модели TCP/IP. На самом деле канальный уровень модели TCP/IP – это даже не уровень, а интерфейс, позволяющий взаимодействовать сетевому уровню с физической средой передачи данных из этого следует и то, что здесь нет различия между физическим уровнем и канальной логикой, хотя это абсолютно разные вещи.
Итак, из всех вышеописанных недостатков модели TCP/IP для инженеров, обеспечивающих передачу данных по сети, самым важным недостатком является то, что фундаментальный, то есть первый уровень этой модели вовсе никакой не уровень, а интерфейс, а также то, что нет деления на физику и канальную логику. Исходя из этого, а также из того, что модель TCP/IP используется для построения большинства компьютерных сетей, мы можем сделать свою компромиссную модель, которая устранит вышеописанный недостаток и будет удобной для сетевого инженера, эта модель показана на Рисунке 1.15.4.
Рисунок 1.15.4 Компромиссная модель сетевого взаимодействия
Итак, эта модель разделяет уровень доступа к сети на два уровня: физический уровень, описывающий физические параметры среды передачи данных и ее свойства, и канальный уровень, который призван решать задачу объединения бит в кадры, логическое деление ресурсов физической среды, объединение нескольких компьютеров в сеть и надежность передачи данных. Естественно, что эта модель в качестве протоколов должна использовать протоколы модели TCP/IP.
Ее сетевой уровень должен решать задачи объединения нескольких небольших сетей в одну большую. А транспортный уровень должен увеличивать надежность передачи данных по сети, организуя туннельное соединение между конечными участниками обмена данных. Ну а на самом верхнем уровне решаются задачи взаимодействия пользователей с ПК и компьютерной сетью.
1.15.8 Выводы
Подводя итог разговору у модели передачи данных, которая называется модель стека протоколов TCP/IP следует отметить, что в отличие от модели OSI 7, данная модель сформировалась уже после того, как были разработаны и введены в реальный мир ее протоколы и на данные момент большинство компьютерных сетей работают именно по модели стека протоколов TCP/IP. У этой модели есть два минуса: первый заключается в том, что здесь нет четкой границы между протоколом и службой, вторым недостатком является то, что в модели TCP/IP нет явного деления на канальный и физический уровень, здесь канальный уровень представляет собой интерфейс между сетевым уровнем и средой передачи данных.
Второй минус легко исправить самостоятельно, выработав для себя компромиссную модель передачи данных, где есть деление на физический и канальный уровень. Также стоит сказать, что для сетевого инженера наличие на верху модели TCP/IP только прикладного уровня – это скорее плюс, чем минус, формально говоря, в задачи сетевого инженера не входит настройка пользовательских приложений, работающих с сетью, это должны делать системные администраторы, задача сетевого инженера заключает в том, чтобы обеспечить канал связи между точкой А и Б, то есть выполнить необходимые настройки на оборудование, которое работает на уровня от физического до транспортного, модель TCP/IP это демонстрирует четко.
Еще в этой теме мы разобрались с тем, что происходит на каждом из важных для нас уровней модели TCP/IP и посмотрели, что происходит с данными, когда они переходят с одного уровня на другой, нужно запомнить этот принцип, так как его мы уже увидим в действие, когда будем разговаривать о принципах работы роутеров, тогда мы увидим, что роутер, оперирующий IP-пакетами, для того чтобы до них добраться, распаковывает Ethernet кадр, а после обработки IP пакета роутер его упаковывает в кадр и отправляет дальше.
Модели OSI и TCP/IP
В 1982 году Международной организацией по стандартизации (International Organization for Standardization, ISO) при поддержке ITU-T был начат новый проект в области сетевых технологий, который был назван Open System Intercommunication (OSI). Эта модель является первым шагом к международной стандартизации протоколов, используемых на различных уровнях (Day и Zimmerman, 1983). Затем она была пересмотрена в 1995 году (Day, 1995). Открытым называется взаимодействие, которое может поддерживаться в неоднородных средах, содержащих системы разных поставщиков. Модель OSI устанавливает глобальный стандарт, определяющий состав функциональных уровней при открытом взаимодействии между компьютерами.
У моделей OSI и TCP имеется много общих черт. Обе модели основаны на концепции стека независимых протоколов. Функциональность уровней также во многом схожа. Например, в каждой модели уровни, начиная с транспортного и выше, предоставляют сквозную, не зависящую от сети транспортную службу для процессов, желающих обмениваться информацией. Эти уровни образуют поставщика транспорта. Также в каждой модели уровни выше транспортного являются прикладными потребителями транспортной службы.
Прикладной уровень
Обеспечивает преобразование данных, специфичных для каждого приложения. Отвечает за доступ приложений в сеть.
Протоколы
HTTP, gopher, Telnet, DNS, SMTP, SNMP, CMIP, FTP, TFTP, SSH, IRC, AIM, NFS, NNTP, NTP, SNTP, XMPP, FTAM, APPC, X.400, X.500, AFP, LDAP, SIP, ITMS, ModbusTCP, BACnetIP, IMAP, POP3, SMB, MFTP, BitTorrent, eD2k, PROFIBUS
Уровень представления
Осуществляет преобразование данных общего характера (кодирование, компрессия и т.п.) прикладного уровня в поток информации для транспортного уровня. Отвечает за возможность диалога между приложениями на разных машинах.
Протоколы
HTTP, ASN.1, XML-RPC, TDI, XDR, SNMP, FTP, Telnet, SMTP, NCP, AFP
Сеансовый уровень
Добавляет транспортной функции удобства обращения, управляет диалогом на протяжении установленной сессии связи. Отвечает за организацию сеансов обмена данными между оконечными машинами.
Протоколы
ASP, ADSP, DLC, Named Pipes, NBT, NetBIOS, NWLink, Printer Access Protocol, Zone Information Protocol, SSL, TLS, SOCKS
Транспортный уровень
Выполняет свободную от ошибок, ориентированную на работу с сообщениями сквозную передачу. Делит потоки информации на достаточно малые фрагменты (пакеты) для передачи их на сетевой уровень.
Протоколы
TCP, UDP, NetBEUI, AEP, ATP, IL, NBP, RTMP, SMB, SPX, SCTP, DCCP, RTP, TFTP
Сетевой уровень
Обеспечивает маршрутизацию, и управление загрузкой канала передачи, предоставляет необработанный маршрут передачи, состоящий лишь из конечных точек. Отвечает за деление пользователей на группы. На этом уровне происходит маршрутизация пакетов на основе преобразования MAC-адресов в сетевые адреса. Сетевой уровень обеспечивает также прозрачную передачу пакетов на транспортный уровень.
Протоколы
IP, IPv6, ICMP, IGMP, IPX, NWLink, NetBEUI, DDP, IPSec, ARP, RARP, DHCP, BootP, SKIP, RIP
Канальный уровень
Осуществляет свободную от ошибок передачу по отдельному каналу связи. Обеспечивает создание, передачу и прием кадров данных. Этот уровень обслуживает запросы сетевого уровня и использует сервис физического уровня для приема и передачи пакетов. Спецификации IEEE 802.x делят канальный уровень на два подуровня: управление логическим каналом (LLC) и управление доступом к среде (MAC). LLC обеспечивает обслуживание сетевого уровня, а подуровень MAC регулирует доступ к разделяемой физической среде.
Протоколы
ARCnet, ATM, DTM, SLIP, SMDS, Ethernet, FDDI, Frame Relay, LocalTalk, Token ring, StarLan, WiFi, L2F, L2TP, PPTP, PPP, PPPoE, PROFIBUS,STP
Физический уровнь
Выполняет реальную физическую передачу бит данных. Получает пакеты данных от вышележащего канального уровня и преобразует их в оптические или электрические сигналы, соответствующие 0 и 1 бинарного потока. Эти сигналы посылаются через среду передачи на приемный узел. Механические и электрические/оптические свойства среды передачи определяются на физическом уровне и включают:
- Тип кабелей и разъемов
- Разводку контактов в разъемах
- Схему кодирования сигналов для значений 0 и 1
Протоколы
RS-232, RS-422, RS-423, RS-449, RS-485, ITU-T, xDSL, ISDN, T-carrier (T1, E1), модификации стандарта Ethernet: 10BASE-T, 10BASE2, 10BASE5, 100BASE-T (включает 100BASE-TX, 100BASE-T4, 100BASE-FX), 1000BASE-T, 1000BASE-TX, 1000BASE-SX
Cтек TCP/IP
Модель TCP/IP называют также моделью DARPA (сокращение от Defense Advanced Research Projects Agency, организация, в которой в свое время разрабатывались сетевые проекты, в том числе протокол TCP/IP, и которая стояла у истоков сети Интернет) или моделью Министерства обороны CША (модель DoD, Department of Defense, проект DARPA работал по заказу этого ведомства).
Модель TCP/IP разрабатывалась для описания стека протоколов TCP/IP (Transmission Control Protocol/Internet Protocol). Она была разработана значительно раньше, чем модель OSI — в 1970 г. был разработан необходимый набор стандартов, а к 1978 году окончательно оформилось то, что сегодня мы называем TCP/IP. Позже стек адаптировали для использования в локальных сетях. В начале 1980 г. протокол стал составной частью ОС UNIX. В том же году появилась объединенная сеть Internet..
Стек протоколов TCP/IP — набор сетевых протоколов, на которых базируется интернет. Обычно в стеке TCP/IP верхние 3 уровня (прикладной, представительный и сеансовый) модели OSI объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению.
В отличие от эталонной модели OSI, модель ТСР/IP в большей степени ориентируется на обеспечение сетевых взаимодействий, нежели на жесткое разделение функциональных уровней. Для этой цели она признает важность иерархической структуры функций, но предоставляет проектировщикам протоколов достаточную гибкость в реализации. Соответственно, эталонная модель OSI гораздо лучше подходит для объяснения механики межкомпьютерных взаимодействий, но протокол TCP/IP стал основным межсетевым протоколом.
Модель И Стек Протоколов TCP/IP Для Чайников
Название стека протоколов TCP/IP было выбрано в честь самых популярных уровней Сетевого и Транспортного. Стек протоколов делали для глобальных сетей, чтобы: соединить компьютеры между собой, и телефонные линии связи методом “Точка-Точка”.
При появлении современных технологий сетей, Ethernet, спутниковых технологий, адаптировать TCP IP для этих технологий оказалось не просто. Выяснилось, что стека протоколов недостаточно необходима модель, которая будет говорить о том, как люди должны создавать сети на основе разных технологий, чтобы в этих сетях мог действовать стек протоколов tcp ip.
Всего 4 уровня Модели TCP/IP
На рисунке модель представлена рядом с моделью открытых систем (OSI), у этих моделей функции большинства уровней одинаковы.
Первый уровень Сетевых Интерфейсов
Нижний уровень сетевых интерфейсов — это интерфейс который обеспечивает связь с разными сетевыми технологиями, например очень популярными сейчас Ethernet, Wi-Fi и остальными подобными, но и со стареющими технологиями DSL для передачи данных через модем.
Второй уровень Интернет
Уровень Интернет аналогичен сетевому уровню в OSI. Это уровень необходим для того, чтобы найти маршрут в составной сети, объединяющей сети созданные на основе других технологий. Передавая данные используем протоколы ip.
Третий уровень Транспортный
Объединяет процессы происходящие между 2-мя абсолютно разными компьютерами (ноутбуками). В стеке TCP/IP существуют 2 протокола, tcp необходимый для передачи данных гарантируя доставку и udp который передаёт данные с большой скоростью, но к сожалению, не гарантируя доставку.
Четвертый уровень Прикладной
Объединил в себе функции аж три уровня модели OSI, видно по картинке. В модели TCP IP считается, если приложению нужны какие-либо функции уровня представления или сеансового, то оно должно их само реализовывать. На практике это оправдано.
Здесь находятся определенные протоколы необходимые для решения тех или иных задач. HTTP нужен для веб, SMTP для передачи почты, DNS для назначения ip адресам человеко понятных url доменных имен, FTP для передачи файлов. На самом деле протоколов в прикладном уровне большое количество.
Автор Э. Таненбаум в книге Компьютерные сети, объединил достоинства двух моделей OSI и TCP/IP. Именно такая модель, изображенная на картинке, применяется на практике.
Сравнение моделей OSI и TCP/IP
Достоинства модели открытых систем в хорошей теоретической проработке, именно в это модели разделено понятие интерфейса и реализации. В модели tcp|ip такого не было, сетевой уровень предоставлял транспортному, сервис отправить ip пакет, при вызове нужной функции пользователь должен был передать туда ссылку на полностью сформированный ip пакет, это было неудобно.
Достоинства модели tcp — стек протоколов, которые широко используются на практике и лежат в основе интернет. К сожалению, модель TCP IP теоретически проработана не очень хорошо и не пригодна для описания, каких либо сетей, кроме тех в которых работает стек протоколов tcp.
Где применяют
Модель взаимодействия открытых систем часто используют для описания работы различных сетей, например Fiber Channel, SS7)
Заключение
Стек протоколов TCP/IP популярный в современное время — набор сетевых протоколов, такой стек является фундаментом интернет. Модель TCP/IP это defacto стандарт на организацию сети. Модель описывает, как нужно строить сети, для работы стека протоколов TCP/IP. Рекомендую почитать статью про модель OSI для полного понимания.
Основы TCP/IP для будущих дилетантов / Хабр
Предположим, что вы плохо владеете сетевыми технологиями, и даже не знаете элементарных основ. Но вам поставили задачу: в быстрые сроки построить информационную сеть на небольшом предприятии. У вас нет ни времени, ни желания изучать толстые талмуды по проектированию сетей, инструкции по использованию сетевого оборудования и вникать в сетевую безопасность. И, главное, в дальнейшем у вас нет никакого желания становиться профессионалом в этой области. Тогда эта статья для вас.
Вторая часть этой статьи, где рассматривается практическое применение изложенных здесь основ: Заметки о Cisco Catalyst: настройка VLAN, сброс пароля, перепрошивка операционной системы IOS
Понятие о стеке протоколов
Задача — передать информацию от пункта А в пункт В. Её можно передавать непрерывно. Но задача усложняется, если надо передавать информацию между пунктами AB и AC по одному и тому же физическому каналу. Если информация будет передаваться непрерывно, то когда С захочет передать информацию в А — ему придётся дождаться, пока В закончит передачу и освободит канал связи. Такой механизм передачи информации очень неудобен и непрактичен. И для решения этой проблемы было решено разделять информацию на порции.
На получателе эти порции требуется составить в единое целое, получить ту информацию, которая вышла от отправителя. Но на получателе А теперь мы видим порции информации как от В так и от С вперемешку. Значит, к каждой порции надо вписать идентификационный номер, что бы получатель А мог отличить порции информации с В от порций информации с С и собрать эти порции в изначальное сообщение. Очевидно, получатель должен знать, куда и в каком виде отправитель приписал идентификационные данные к исходной порции информации. И для этого они должны разработать определённые правила формирования и написания идентификационной информации. Далее слово «правило» будет заменяться словом «протокол».
Для соответствия запросам современных потребителей, необходимо указывать сразу несколько видов идентификационной информации. А так же требуется защита передаваемых порций информации как от случайных помех (при передаче по линиям связи), так и от умышленных вредительств (взлома). Для этого порция передаваемой информации дополняется значительным количеством специальной, служебной информацией.
В протоколе Ethernet находятся номер сетевого адаптера отправителя (MAC-адрес), номер сетевого адаптера получателя, тип передаваемых данных и непосредственно передаваемые данные. Порция информации, составленная в соответствии с протоколом Ethernet, называется кадром. Считается, что сетевых адаптеров с одинаковым номером не существует. Сетевое оборудование извлекает передаваемые данные из кадра (аппаратно или программно), и производит дальнейшую обработку.
Как правило, извлечённые данные в свою очередь сформированы в соответствии с протоколом IP и имеют другой вид идентификационной информации — ip адрес получателя (число размером в 4 байта), ip адрес отправителя и данные. А так же много другой необходимой служебной информации. Данные, сформированные в соответствии с IP протоколом, называются пакетами.
Далее извлекаются данные из пакета. Но и эти данные, как правило, ещё не являются изначально отправляемыми данными. Этот кусок информации тоже составлен в соответствии определённому протоколу. Наиболее широко используется TCP протокол. В нём содержится такая идентификационная информация, как порт отправителя (число размером в два байта) и порт источника, а так же данные и служебная информация. Извлечённые данные из TCP, как правило, и есть те данные, которые программа, работающая на компьютере В, отправляла «программе-приёмнику» на компьютере A.
Вложность протоколов (в данном случае TCP поверх IP поверх Ethernet) называется стеком протоколов.
ARP: протокол определения адреса
Существуют сети классов A, B, C, D и E. Они различаются по количеству компьютеров и по количеству возможных сетей/подсетей в них. Для простоты, и как наиболее часто встречающийся случай, будем рассматривать лишь сеть класса C, ip-адрес которой начинается на 192.168. Следующее число будет номером подсети, а за ним — номер сетевого оборудования. К примеру, компьютер с ip адресом 192.168.30.110 хочет отправить информацию другому компьютеру с номером 3, находящемуся в той же логической подсети. Это значит, что ip адрес получателя будет такой: 192.168.30.3
Важно понимать, что узел информационной сети — это компьютер, соединённый одним физическим каналом с коммутирующим оборудованием. Т.е. если мы отправим данные с сетевого адаптера «на волю», то у них одна дорога — они выйдут с другого конца витой пары. Мы можем послать совершенно любые данные, сформированные по любому, выдуманному нами правилу, ни указывая ни ip адреса, ни mac адреса ни других атрибутов. И, если этот другой конец присоединён к другому компьютеру, мы можем принять их там и интерпретировать как нам надо. Но если этот другой конец присоединён к коммутатору, то в таком случае пакет информации должен быть сформирован по строго определённым правилам, как бы давая коммутатору указания, что делать дальше с этим пакетом. Если пакет будет сформирован правильно, то коммутатор отправит его дальше, другому компьютеру, как было указано в пакете. После чего коммутатор удалит этот пакет из своей оперативной памяти. Но если пакет был сформирован не правильно, т.е. указания в нём были некорректны, то пакет «умрёт», т.е. коммутатор не будет отсылать его куда либо, а сразу удалит из своей оперативной памяти.
Для передачи информации другому компьютеру, в отправляемом пакете информации надо указать три идентификационных значения — mac адрес, ip адрес и порт. Условно говоря, порт — это номер, который, выдаёт операционная система каждой программе, которая хочет отослать данные в сеть. Ip адрес получателя вводит пользователь, либо программа сама получает его, в зависимости от специфики программы. Остаётся неизвестным mac адрес, т.е. номер сетевого адаптера компьютера получателя. Для получения необходимой данной, отправляется «широковещательный» запрос, составленный по так называемому «протоколу разрешения адресов ARP». Ниже приведена структура ARP пакета.
Сейчас нам не надо знать значения всех полей на приведённой картинке. Остановимся лишь на основных.
В поля записываются ip адрес источника и ip адрес назначения, а так же mac адрес источника.
Поле «адрес назначения Ethernet» заполняется единицами (ff:ff:ff:ff:ff:ff). Такой адрес называется широковещательным, и такой фрейм будер разослан всем «интерфейсам на кабеле», т.е. всем компьютерам, подключённым к коммутатору.
Коммутатор, получив такой широковещательный фрейм, отправляет его всем компьютерам сети, как бы обращаясь ко всем с вопросом: «если Вы владелец этого ip адреса (ip адреса назначения), пожалуйста сообщите мне Ваш mac адрес». Когда другой компьютер получает такой ARP запрос, он сверяет ip адрес назначения со своим собственным. И если он совпадает, то компьютер, на место единиц вставляет свой mac адрес, меняет местами ip и mac адреса источника и назначения, изменяет некоторую служебную информацию и отсылает пакет обратно коммутатору, а тот обратно — изначальному компьютеру, инициатору ARP запроса.
Таким образом ваш компьютер узнаёт mac адрес другого компьютера, которому вы хотите отправить данные. Если в сети находится сразу несколько компьютеров, отвечающих на этот ARP запрос, то мы получаем «конфликт ip адресов». В таком случае необходимо изменить ip адрес на компьютерах, что бы в сети не было одинаковых ip адресов.
Построение сетей
Задача построения сетей
На практике, как правило, требуется построить сети, число компьютеров в которой будет не менее ста. И кроме функций файлообмена, наша сеть должна быть безопасной и простой в управлении. Таким образом, при построении сети, можно выделить три требования:
- Простота в управлении. Если бухгалтера Лиду переведут в другой кабинет, ей по-прежнему понадобится доступ к компьютерам бухгалтеров Анны и Юлии. И при неправильном построении своей информационной сети, у администратора могут возникнуть трудности в выдаче Лиде доступа к компьютерам других бухгалтеров на её новом месте.
- Обеспечение безопасности. Для обеспечения безопасности нашей сети, права доступа к информационным ресурсам должны быть разграничены. Так же сеть должна быть защищена от угроз раскрытия, целостности и отказа в обслуживании. Подробнее читайте в книге «Атака на Internet» автора Илья Давидович Медведовский, глава «Основные понятия компьютерной безопасности».
- Быстродействие сети. При построении сетей есть техническая проблема — зависимость скорости передачи от количества компьютеров в сети. Чем больше компьютеров — тем ниже скорость. При большом количестве компьютеров, быстродействие сети может стать настолько низким, что она станет неприемлемой заказчику.
Из-за чего при большом количестве компьютеров снижается скорость сети? — причина проста: из-за большого количества широковещательных сообщений (ШС). ШС — это сообщение, которое, приходя на коммутатор, отправляется всем хостам сети. Или, грубо говоря, всем компьютерам, находящимся в вашей подсети. Если компьютеров в сети 5, то каждый компьютер будет принимать по 4 ШС. Если их будет 200, то каждый компьютер в такой большой сети будет принимать по 199 ШС.
Существует большое множество приложений, программных модулей и сервисов, которые, для своей работы отправляют в сеть широковещательные сообщения. Описанный в пункте ARP: протокол определения адреса лишь один из множества ШС, отправляемый вашим компьютером в сеть. Например, когда вы заходите в «Сетевое окружение» (ОС Windows), ваш компьютер посылает ещё несколько ШС со специальной информацией, сформированной по протоколу NetBios, что бы просканировать сеть на наличие компьютеров, находящихся в той же рабочей группе. После чего ОС рисует найденные компьютеры в окне «Сетевое окружение» и вы их видите.
Так же стоит заметить, что во время процесса сканирования той или иной программой, ваш компьютер отсылает ни одно широковещательное сообщение, а несколько, к примеру для того, что бы установить с удалёнными компьютерами виртуальные сессии или ещё для каких либо системных нужд, вызванных проблемами программной реализации этого приложения. Таким образом, каждый компьютер в сети для взаимодействия с другими компьютерами вынужден посылать множество различных ШС, тем самым загружая канал связи не нужной конечному пользователю информацией. Как показывает практика, в больших сетях широковещательные сообщения могут составить значительную часть трафика, тем самым замедляя видимую для пользователя работу сети.
Виртуальные локальные сети
Для решения первой и третьей проблем, а так же в помощь решения второй проблемы, повсеместно используют механизм разбиения локальной сети на более маленькие сети, как бы отдельные локальные сети (Virtual Local Area Network). Грубо говоря, VLAN — это список портов на коммутаторе, принадлежащих одной сети. «Одной» в том смысле, что другой VLAN будет содержать список портов, принадлежащих другой сети.
Фактически, создание двух VLAN-ов на одном коммутаторе эквивалентно покупке двух коммутаторов, т.е. создание двух VLAN-ов — это всё равно, что один коммутатор разделить на два. Таким образом происходит разбиение сети из ста компьютеров на более маленькие сети, из 5-20 компьютеров — как правило именно такое количество соответствует физическому местонахождению компьютеров по надобности файлообмена.
- При разбиении сети на VLAN-ы достигается простота управления. Так, при переходе бухгалтера Лиды в другой кабинет, администратору достаточно удалить порт из одного VLAN-а и добавить в другой. Подробнее это рассмотрено в пункте VLAN-ы, теория.
- VLAN-ы помогают решить одно из требований к безопасности сети, а именно разграничение сетевых ресурсов. Так, студен из одной аудитории не сможет проникнуть на компьютеры другой аудитории или компьютер ректора, т.к. они находятся в фактически разных сетях.
- Т.к. наша сеть разбита на VLAN-ы, т.е. на маленькие «как бы сети», пропадает проблема с широковещательными сообщениями.
VLAN-ы, теория
Возможно, фраза «администратору достаточно удалить порт из одного VLAN-а и добавить в другой» могла оказаться непонятной, поэтому поясню её подробнее. Порт в данном случае — это не номер, выдаваемый ОС приложению, как было рассказано в пункте Стек протоколов, а гнездо (место) куда можно присоединить (вставить) коннектор формата RJ-45. Такой коннектор (т.е. наконечник к проводу) прикрепляется к обоим концам 8-ми жильного провода, называемого «витая пара». На рисунке изображён коммутатор Cisco Catalyst 2950C-24 на 24 порта:
Как было сказано в пункте ARP: протокол определения адреса каждый компьютер соединён с сетью одним физическим каналом. Т.е. к коммутатору на 24 порта можно присоединить 24 компьютера. Витая пара физически пронизывает все помещения предприятия — все 24 провода от этого коммутатора тянутся в разные кабинеты. Пусть, к примеру, 17 проводов идут и подсоединяются к 17-ти компьютерам в аудитории, 4 провода идут в кабинет спецотдела и оставшиеся 3 провода идут в только что отремонтированный, новый кабинет бухгалтерии. И бухгалтера Лиду, за особые заслуги, перевели в этот самый кабинет.
Как сказано выше, VLAN можно представлять в виде списка принадлежащих сети портов. К примеру, на нашем коммутаторе было три VLAN-а, т.е. три списка, хранящиеся во flash-памяти коммутатора. В одном списке были записаны цифры 1, 2, 3… 17, в другом 18, 19, 20, 21 и в третьем 22, 23 и 24. Лидин компьютер раньше был присоединён к 20-ому порту. И вот она перешла в другой кабинет. Перетащили её старый компьютер в новый кабинет, или она села за новый компьютер — без разницы. Главное, что её компьютер присоединили витой парой, другой конец которой вставлен в порт 23 нашего коммутатора. И для того, что бы она со своего нового места могла по прежнему пересылать файлы своим коллегам, администратор должен удалить из второго списка число 20 и добавить число 23. Замечу, что один порт может принадлежать только одному VLAN-у, но мы нарушим это правило в конце этого пункта.
Замечу так же, что при смене членства порта в VLAN, администратору нет никакой нужды «перетыкать» провода в коммутаторе. Более того, ему даже не надо вставать с места. Потому что компьютер администратора присоединён к 22-ому порту, с помощью чего он может управлять коммутатором удалённо. Конечно, благодаря специальным настройкам, о которых будет рассказано позже, лишь администратор может управлять коммутатором. О том, как настраивать VLAN-ы, читайте в пункте VLAN-ы, практика [в следующей статье].
Как вы, наверное, заметили, изначально (в пункте Построение сетей) я говорил, что компьютеров в нашей сети будет не менее 100. Но к коммутатору можно присоединить лишь 24 компьютера. Конечно, есть коммутаторы с большим количеством портов. Но компьютеров в корпоративной сети/сети предприятия всё равно больше. И для соединения бесконечно большого числа компьютеров в сеть, соединяют между собой коммутаторы по так называемому транк-порту (trunk). При настройки коммутатора, любой из 24-портов можно определить как транк-порт. И транк-портов на коммутаторе может быть любое количество (но разумно делать не более двух). Если один из портов определён как trunk, то коммутатор формирует всю пришедшую на него информацию в особые пакеты, по протоколу ISL или 802.1Q, и отправляет эти пакеты на транк-порт.
Всю пришедшую информацию — имеется в виду, всю информацию, что пришла на него с остальных портов. А протокол 802.1Q вставляется в стек протоколов между Ethernet и тем протоколом, по которому были сформированные данные, что несёт этот кадр.
В данном примере, как вы, наверное, заметили, администратор сидит в одном кабинете вместе с Лидой, т.к. витая пора от портов 22, 23 и 24 ведёт в один и тот же кабинет. 24-ый порт настроен как транк-порт. А сам коммутатор стоит в подсобном помещении, рядом со старым кабинетом бухгалтеров и с аудиторией, в которой 17 компьютеров.
Витая пара, которая идёт от 24-ого порта в кабинет к администратору, подключается к ещё одному коммутатору, который в свою очередь, подключён к роутеру, о котором будет рассказано в следующих главах. Другие коммутаторы, которые соединяют другие 75 компьютеров и стоят в других подсобных помещениях предприятия — все они имеют, как правило, один транк-порт, соединённый витой парой или по оптоволокну с главным коммутатором, что стоит в кабинете с администратором.
Выше было сказано, что иногда разумно делать два транк-порта. Второй транк-порт в таком случае используется для анализа сетевого трафика.
Примерно так выглядело построение сетей больших предприятий во времена коммутатора Cisco Catalyst 1900. Вы, наверное, заметили два больших неудобства таких сетей. Во первых, использование транк-порта вызывает некоторые сложности и создаёт лишнюю работу при конфигурировании оборудования. А во вторых, и в самых главных — предположим, что наши «как бы сети» бухгалтеров, экономистов и диспетчеров хотят иметь одну на троих базу данных. Они хотят, что бы та же бухгалтерша смогла увидеть изменения в базе, которые сделала экономистка или диспетчер пару минут назад. Для этого нам надо сделать сервер, который будет доступен всем трём сетям.
Как говорилось в середине этого пункта, порт может находиться лишь в одном VLAN-е. И это действительно так, однако, лишь для коммутаторов серии Cisco Catalyst 1900 и старше и у некоторых младших моделей, таких как Cisco Catalyst 2950. У остальных коммутаторов, в частности Cisco Catalyst 2900XL это правило можно нарушить. При настройке портов в таких коммутаторах, каждый пор может иметь пять режимов работы: Static Access, Multi-VLAN, Dynamic Access, ISL Trunk и 802.1Q Trunk. Второй режим работы именно то, что нам нужно для выше поставленной задачи — дать доступ к серверу сразу с трёх сетей, т.е. сделать сервер принадлежащим к трём сетям одновременно. Так же это называется пересечением или таггированием VLAN-ов. В таком случае схема подключения может быть такой:
Продолжение следует
Вторая часть этой статьи, где рассматривается практическое применение изложенных здесь основ: Заметки о Cisco Catalyst: настройка VLAN, сброс пароля, перепрошивка операционной системы IOS
Об этой статье
Статья опробована на реальных студентах. Я давал им прочитать часть статьи и оценить на понятность. Затем редактировал и упрощал материал до тех пор, пока он ни стал понятен даже самым отпетым двоечникам.
Протоколы TCP/IP простым языком | webonto.ru
Содержание статьи:
Протоколы TCP/IP основа работы глобальной сети Интернет. Если быть более точным, то TCP/IP это список или стек протоколов, а по сути, набор правил по которым происходит обмен информации (реализуется модель коммутации пакетов).
В этой статье разберем принципы работы стека протоколов TCP/IP и попробуем понять принципы их работы.
Примечание: Зачастую, аббревиатурой TCP/IP называют всю сеть, работающую на основе этих двух протоколов, TCP и IP.
В модель такой сети кроме основных протоколов TCP (транспортный уровень) и IP (протокол сетевого уровня) входят протоколы прикладного и сетевого уровней (смотри фото). Но вернемся непосредственно к протоколам TCP и IP.
Что такое протоколы TCP/IP
TCP — Transfer Control Protocol. Протокол управления передачей. Он служит для обеспечения и установление надежного соединения между двумя устройствами и надежную передачу данных. При этом протокол TCP контролирует оптимальный размер передаваемого пакета данных, осуществляя новую посылку при сбое передачи.
IP — Internet Protocol. Интернет протокол или адресный протокол — основа всей архитектуры передачи данных. Протокол IP служит для доставки сетевого пакета данных по нужному адресу. При этом информация разбивается на пакеты, которые независимо передвигаются по сети до нужного адресата.
Форматы протоколов TCP/IP
Формат IP протокола
Существуют два формата для IP адресов IP протокола.
Формат IPv4. Это 32-битовое двоичное число. Удобная форма записи IP-адреса (IPv4) это запись в виде четырёх групп десятичных чисел (от 0 до 255), разделённых точками. Например: 193.178.0.1.
Формат IPv6. Это 128-битовое двоичное число. Как правило, адреса формата IPv6 записываются в виде уже восьми групп. В каждой группе по четыре шестнадцатеричные цифры разделенные двоеточием. Пример адреса IPv6 2001:0db8:85a3:08d3:1319:8a2e:0370:7889.
Как работают протоколы TCP/IP
Если удобно представьте передаче пакетов данных в сети, как отправку письма по почте.
Если неудобно, представьте два компьютера соединенных сетью. Причем сеть соединения может быть любой как локальной, так и глобальной. Разницы в принципе передачи данных нет. Компьютер в сети также можно считать хостом или узлом.
Протокол IP
Каждый компьютер в сети имеют свой уникальный адрес. В глобальной сети Интернет, компьютер имеет этот адрес, который называется IP-адрес (Internet Protocol Address).
По аналогии с почтой, IP- адрес это номер дома. Но номера дома для получения письма недостаточно.
Передаваемая по сети информация передается не компьютером, как таковым, а приложениями, установленными на него. Такими приложениями являются сервер почты, веб-сервер, FTP и т.п. Для идентификации пакета передаваемой информации, каждое приложение прикрепляется к определенному порту. Например: веб-сервер слушает порт 80, FTP слушает порт 21, почтовый SMTP сервер слушает порт 25, сервер POP3 читает почту почтовых ящиков на порте 110.
Таким образом, в адресном пакете в протоколе TCP/IP, в адресатах появляется еще одна строка: порт. Аналог с почтой — порт это номер квартиры отправителя и адресата.
Пример:
Source address (Адрес отправителя):
IP: 82.146.47.66
Port: 2049
Destination address (Адресполучателя):
IP: 195.34.31.236
Port: 53
Стоит запомнить: IP адрес + номер порта — называется «сокет». В примере выше: с сокета 82.146.47.66:2049 пакет отправляется на сокет 195.34.31.236: 53.
Протокол TCP
Протокол TCP это протокол следующего после протокола IP уровня. Предназначен этот протокол для контроля передачи информации и ее целостности.
Например, Передаваемая информация разбивается на отдельные пакеты. Пакеты доставят получателю независимо. В процессе передачи один из пакетов не передался. Протокол TCP обеспечивает повторные передачи, до получения этого пакета получателем.
Транспортный протокол TCP скрывает от протоколов высшего уровня (физического, канального, сетевого IP все проблемы и детали передачи данных).
Специально для Webonto.ru
Другие статьи раздела
Поделиться ссылкой:
Похожие статьи
Руководство по TCP/IP для начинающих
Большинство из нас знает TCP/IP как «клей», связующий Internet. Но не многие способны дать убедительное описание того, что этот протокол представляет собой и как работает. Итак, что же такое TCP/IP в действительности?
TCP/IP — это средство для обмена информацией между компьютерами, объединенными в сеть. Не имеет значения, составляют ли они часть одной и той же сети или подключены к отдельным сетям. Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh. TCP/IP — это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами, операционными системами и сетями. Это протокол, который глобально управляет Internet, и в значительной мере благодаря сети TCP/IP завоевал свою популярность.
Понимание TCP/IP главным образом подразумевает способность разбираться в наборах таинственных протоколов, которые используются главными компьютерами TCP/IP для обмена информацией. Давайте рассмотрим некоторые из этих протоколов и выясним, что составляет оболочку TCP/IP.
TCP/IP — это аббревиатура термина Transmission Control Protocol/Internet Protocol (Протокол управления передачей/Протокол Internet). В терминологии вычислительных сетей протокол — это заранее согласованный стандарт, который позволяет двум компьютерам обмениваться данными. Фактически TCP/IP не один протокол, а несколько. Именно поэтому вы часто слышите, как его называют набором, или комплектом протоколов, среди которых TCP и IP — два основных.
Программное обеспечение для TCP/IP, на вашем компьютере, представляет собой специфичную для данной платформы реализацию TCP, IP и других членов семейства TCP/IP. Обычно в нем также имеются такие высокоуровневые прикладные программы, как FTP (File Transfer Protocol, Протокол передачи файлов), которые дают возможность через командную строку управлять обменом файлами по Сети.
TCP/IP — зародился в результате исследований, профинансированных Управлением перспективных научно-исследовательских разработок (Advanced Research Project Agency, ARPA) правительства США в 1970-х годах. Этот протокол был разработан с тем, чтобы вычислительные сети исследовательских центров во всем мире могли быть объединены в форме виртуальной «сети сетей» (internetwork). Первоначальная Internet была создана в результате преобразования существующего конгломерата вычислительных сетей, носивших название ARPAnet, с помощью TCP/IP.
Причина, по которой TCP/IP столь важен сегодня, заключается в том, что он позволяет самостоятельным сетям подключаться к Internet или объединяться для создания частных интрасетей. Вычислительные сети, составляющие интрасеть, физически подключаются через устройства, называемые маршрутизаторами или IP-маршрутизаторами. Маршрутизатор — это компьютер, который передает пакеты данных из одной сети в другую. В интрасети, работающей на основе TCP/IP, информация передается в виде дискретных блоков, называемых IP-пакетами (IP packets) или IP-дейтаграммами (IP datagrams). Благодаря программному обеспечению TCP/IP все компьютеры, подключенные к вычислительной сети, становятся «близкими родственниками». По существу оно скрывает маршрутизаторы и базовую архитектуру сетей и делает так, что все это выглядит как одна большая сеть. Точно так же, как подключения к сети Ethernet распознаются по 48-разрядным идентификаторам Ethernet, подключения к интрасети идентифицируются 32-разрядными IP-адресами, которые мы выражаем в форме десятичных чисел, разделенных точками (например, 128.10.2.3). Взяв IP-адрес удаленного компьютера, компьютер в интрасети или в Internet может отправить данные на него, как будто они составляют часть одной и той же физической сети.
TCP/IP дает решение проблемы данными между двумя компьютерами, подключенными к одной и той же интрасети, но принадлежащими различным физическим сетям. Решение состоит из нескольких частей, причем каждый член семейства протоколов TCP/IP вносит свою лепту в общее дело. IP — самый фундаментальный протокол из комплекта TCP/IP — передает IP-дейтаграммы по интрасети и выполняет важную функцию, называемую маршрутизацией, по сути дела это выбор маршрута, по которому дейтаграмма будет следовать из пункта А в пункт B, и использование маршрутизаторов для «прыжков» между сетями.
TCP — это протокол более высокого уровня, который позволяет прикладным программам, запущенным на различных главных компьютерах сети, обмениваться потоками данных. TCP делит потоки данных на цепочки, которые называются TCP-сегментами, и передает их с помощью IP. В большинстве случаев каждый TCP-сегмент пересылается в одной IP-дейтаграмме. Однако при необходимости TCP будет расщеплять сегменты на несколько IP-дейтаграмм, вмещающихся в физические кадры данных, которые используют для передачи информации между компьютерами в сети. Поскольку IP не гарантирует, что дейтаграммы будут получены в той же самой последовательности, в которой они были посланы, TCP осуществляет повторную «сборку» TCP-сегментов на другом конце маршрута, чтобы образовать непрерывный поток данных. FTP и telnet — это два примера популярных прикладных программ TCP/IP, которые опираются на использование TCP.
Другой важный член комплекта TCP/IP — User Datagram Protocol (UDP, протокол пользовательских дейтаграмм), который похож на TCP, но более примитивен. TCP — «надежный» протокол, потому что он обеспечивает проверку на наличие ошибок и обмен подтверждающими сообщениями чтобы данные достигали своего места назначения заведомо без искажений. UDP — «ненадежный» протокол, ибо не гарантирует, что дейтаграммы будут приходить в том порядке, в котором были посланы, и даже того, что они придут вообще. Если надежность — желательное условие, для его реализации потребуется программное обеспечение. Но UDP по-прежнему занимает свое место в мире TCP/IP, и испльзуется во многих программах. Прикладная программа SNMP (Simple Network Management Protocol, простой протокол управления сетями), реализуемый во многих воплощениях TCP/IP, — это один из примеров программ UDP.
Другие TCP/IP протоколы играют менее заметные, но в равной степени важные роли в работе сетей TCP/IP. Например, протокол определения адресов (Address Resolution Protocol, ARP) ппреобразует IP-адреса в физические сетевые адреса, такие, как идентификаторы Ethernet. Родственный протокол — протокол обратного преобразования адресов (Reverse Address Resolution Protocol, RARP) — выполняет обеспечивает обратное действие, преобразуя физические сетевые адреса в IP-адреса. Протокол управления сообщениями Internet (Internet Control Message Protocol, ICMP) представляет собой протокол сопровождения, который использует IP для обмена управляющей информацией и контроля над ошибками, относящимися к передаче пакетов IP. Например, если маршрутизатор не может передать IP-дейтаграмму, он использует ICMP, с тем чтобы информировать отправителя, что возникла проблема. Краткое описание некоторых других протоколов, которые «прячутся под зонтиком» TCP/IP, приведено во врезке.
Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур
ARP (Address Resolution Protocol, протокол определения адресов): конвертирует 32-разрядные IP-адреса в физические адреса вычислительной сети, например, в 48-разрядные адреса Ethernet.
FTP (File Transfer Protocol, протокол передачи файлов): позволяет передавать файлы с одного компьютера на другой с использованием TCP-соединений. В родственном ему, но менее распространенном протоколе передачи файлов — Trivial File Transfer Protocol (TFTP) — для пересылки файлов применяется UDP, а не TCP.
ICMP (Internet Control Message Protocol, протокол управляющих сообщений Internet): позволяет IP-маршрутизаторам посылать сообщения об ошибках и управляющую информацию другим IP-маршрутизаторам и главным компьютерам сети. ICMP-сообщения «путешествуют» в виде полей данных IP-дейтаграмм и обязательно должны реализовываться во всех вариантах IP.
IGMP (Internet Group Management Protocol, протокол управления группами Internet): позволяет IP-дейтаграммам распространяться в циркулярном режиме (multicast) среди компьютеров, которые принадлежат к соответствующим группам.
IP (Internet Protocol, протокол Internet): низкоуровневый протокол, который направляет пакеты данных по отдельным сетям, связанным вместе с помощью маршрутизаторов для формирования Internet или интрасети. Данные «путешествуют» в форме пакетов, называемых IP-дейтаграммами.
RARP (Reverse Address Resolution Protocol, протокол обратного преобразования адресов): преобразует физические сетевые адреса в IP-адреса.
SMTP (Simple Mail Transfer Protocol, простой протокол обмена электронной почтой): определяет формат сообщений, которые SMTP-клиент, работающий на одном компьютере, может использовать для пересылки электронной почты на SMTP-сервер, запущенный на другом компьютере.
TCP (Transmission Control Protocol, протокол управления передачей): протокол ориентирован на работу с подключениями и передает данные в виде потоков байтов. Данные пересылаются пакетами — TCP-сегментами, — которые состоят из заголовков TCP и данных. TCP — «надежный» протокол, потому что в нем используются контрольные суммы для проверки целостности данных и отправка подтверждений, чтобы гарантировать, что переданные данные приняты без искажений.
UDP (User Datagram Protocol, протокол пользовательских дейтаграмм): протокол, не зависящий от подключений, который передает данные пакетами, называемыми UDP-дейтаграммами. UDP — «ненадежный» протокол, поскольку отправитель не получает информацию, показывающую, была ли в действительности принята дейтаграмма.
Что такое стек TCP IP? Уровни протокола, преимущества
- Домашняя страница
Тестирование
- Назад
- Гибкое тестирование
- BugZilla
- Cucumber
- Тестирование базы данных счетчика
- 00030003
- 9000 J3000 J20003
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- Центр качества (ALM) So
- RPA
- SAP4 Testing Management
- TestLink
SAP
- Назад
- ABAP
- AP O
- Начинающий
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- MMO
- HANA
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- SAP Tutorials
000
Web
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
- Perl
js
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
000
000
0003 SQL
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Business Analyst
- Создание веб-сайта
- CCNA
- Облачные вычисления
- 00030003 COBOL 9000 Compiler
- 9000 Встроенные системы
- 00030002 9000 Compiler 9000
- Ethical Hacking
- Учебники по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сеть
- Операционная система
- Назад
- Управление проектами Обзоры
- Salesforce
- SEO
- Разработка программного обеспечения
- VB A
Big Data
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- HBOps
- HBOps
- MicroStrategy
- MongoDB
0003
0003
0003
.Модель
TCP / IP с разными уровнями
Полное руководство по уровням TCP / IP Модель:
Мы узнали все о Firewall Security в нашем предыдущем руководстве. Здесь, в этом руководстве, мы узнаем о модели TCP / IP.
Модель TCP / IP относится к протоколу управления передачей и Интернет-протоколу.
Текущая модель Интернета использует эту модель сети для целей связи. Прочтите Training Tutorials on Networking для ясного понимания концепции.
Эти протоколы представляют собой просто комбинацию правил, которые регулируют каждый обмен данными по сети. Они, в свою очередь, определяют путь, по которому следует идти для связи между источником и местом назначения или Интернетом.
Модель TCP / IP состоит из четырех уровней, которые завершают общий процесс связи. В этом уроке мы подробно рассмотрим функциональность каждого слоя.
Как тестировщик программного обеспечения, необходимо сопереживать модели TCP / IP, поскольку программные приложения работают на верхнем уровне i.е прикладной уровень этой модели.
Сетевая архитектура
Четырехуровневая архитектура выглядит следующим образом:
Протоколы и сети, используемые в этой сетевой модели, показаны на рисунке ниже:
Подведем итоги протоколов и основных применений каждого уровня в модели TCP / IP с помощью диаграммы ниже.
Функции каждого уровня в модели TCP / IP
Ниже перечислены различные функции каждого уровня в модели TCP / IP.
Уровень доступа к сети
Функции уровня доступа к сети приведены ниже:
- Это нижний уровень модели TCP / IP, который включает в себя все функции физического уровня и уровня канала передачи данных. эталонной модели OSI.
- Таким образом, он характеризует протоколы, оборудование и среду, которые будут использоваться для связи.
- Пакеты данных с уровня Интернета передаются на этот уровень для отправки в пункт назначения через физический носитель.
- Основная задача этого уровня — объединить байты данных в кадры и предоставить некоторый механизм для передачи кадра IP-данных через физическую среду.
- Точка-точка (PPP) — это протокол, который используется для установления связи точка-точка по выделенным линиям. Он также используется для обеспечения связи между конечным пользователем и поставщиками интернет-услуг через модемы. Он также поддерживает предоставление IP-адресов по каналам PPP.
- Большинство конечных пользователей предпочитают канал Ethernet, который работает только по протоколу канала передачи данных Ethernet.Таким образом создается PPP через Ethernet, который позволяет передавать инкапсулированные кадры данных внутри кадров Ethernet.
- PPPoE изначально создает туннель между сетевыми устройствами конечного пользователя, такими как маршрутизатор и маршрутизатор ISP. Затем маршрутизатор отправляет кадры PPP по этому туннелю, поскольку туннель работает как точка-точка между маршрутизаторами. Теперь с помощью этой технологии данные передаются и по WAN-сетям.
- PPP также использует процесс аутентификации для проверки ответственности за использование данных у интернет-провайдеров.Эти методы включают протокол аутентификации по паролю (PAP) и протокол аутентификации с установлением связи канала (CHAP).
Уровень Интернета
- Второй снизу уровень — это уровень Интернета.
- После того, как данные сегментированы TCP или UDP путем добавления соответствующих заголовков в пакет данных, он отправит их на нижний уровень для дальнейшей связи.
- Целевой хост, которому предназначен пакет данных, может находиться в какой-либо другой сети, путь к которой может быть достигнут через различные маршрутизаторы.Уровень Интернета обязан назначать логические адреса и эффективно направлять пакеты данных в сеть назначения.
- Уровень Интернета (IP) — самый популярный протокол, который используется для выполнения этой задачи.
Интернет-протокол
Целью этого протокола является маршрутизация пакетов данных к месту назначения в соответствии с информацией в заголовке пакета, следуя набору протоколов.
Путем добавления заголовка, содержащего IP-адрес источника и назначения, сегмент, полученный от TCP или UDP, преобразуется в PDU, известный как пакет.Когда пакет прибывает на маршрутизатор, он смотрит на адрес назначения в заголовке и затем пересылает пакет соответственно следующему маршрутизатору, чтобы достичь места назначения.
Давайте разберемся с этим на примере:
На рисунке ниже, когда хост A хочет взаимодействовать с хостом B, он не будет использовать какой-либо протокол маршрутизации, поскольку оба находятся в одном сетевом диапазоне и имеют одинаковые IP-адреса. установлен.
Но если хост A хочет отправить пакет хосту C, то с помощью протокола он обнаруживает, что хост-адресат принадлежит какой-то другой сети.Таким образом, указанный выше формат будет искать в таблице маршрутизации, чтобы узнать адрес следующего перехода для достижения пункта назначения.
В этом случае хост A достигнет хоста C через маршрутизаторы A, B и C. Поскольку маршрутизатор C напрямую подключен к сети назначения через коммутатор, пакет доставляется на хост C.
Маршрутизатор получает все информация, связанная с маршрутизацией, из полей заголовка IP. Сетевой уровень TCP / IP (уровень канала передачи данных) будет отвечать за сквозную доставку пакетов данных.
Поток пакетов в Интернет-протоколе
- Версия: IPV4 имеет номер версии 4.
- Длина заголовка: Показывает размер заголовка.
- Поле DS: Поле DS обозначает поле дифференцированных услуг и используется для построения пакетов.
- Общая длина: Обозначает размер заголовка плюс размер пакета данных.
- Идентификация: Это поле используется для фрагментации пакетов данных и для выделения каждого поля и, таким образом, помогает построить исходный пакет данных.
- Флаги: Используется для обозначения процедуры фрагментации.
- Смещение фрагмента: Указывает номер фрагмента и хост-источник, который использует их для переупорядочивания фрагментированных данных в правильном порядке.
- Время выхода: Устанавливается на стороне исходного хоста.
- Протокол: Обозначает протокол, который используется для передачи данных. TCP имеет номер протокола как 6, а UDP имеет номер протокола как 17.
- Контрольная сумма заголовка: Это поле используется для обнаружения ошибок.
- IP-адрес источника: Сохраняет IP-адрес конечного узла источника.
- IP-адрес назначения: Сохраняет IP-адрес хоста назначения.
Мы обсудим это подробно в наших следующих руководствах.
Транспортный уровень
- Это третий уровень снизу, он отвечает за общую передачу данных и помогает установить сквозное логическое соединение между исходным и целевым хостом и устройствами в сети.
- Для выполнения этих задач используются два протокола:
- Первый — это протокол управления передачей (TCP), который является надежным протоколом на основе соединений.
- Второй — это протокол дейтаграмм пользователя (UDP), который не требует установления соединения.
- Перед тем, как подробно изучить эти два протокола, мы обсудим концепцию НОМЕРА ПОРТА, который используется обоими этими протоколами.
Номер порта:
В сети хост-устройство может отправлять или получать трафик из нескольких источников одновременно.
В такой ситуации система не распознает, какому из приложений принадлежат данные. Протоколы TCP и UDP решают эти проблемы, помещая номер порта в свои заголовки. Хорошо известным протоколам прикладного уровня назначается номер порта в диапазоне от 1 до 1024.
На стороне источника каждому сеансу TCP или UDP назначается случайный номер порта. IP-адрес, номер порта и тип протокола, используемые в сочетании, изменяют сокет как на стороне источника, так и на стороне назначения.Поскольку каждый сокет является эксклюзивным, несколько хостов могут отправлять или получать трафик в один и тот же интервал времени.
В таблице ниже показан номер порта, назначенный нескольким протоколам прикладного уровня, соответствующим протоколу транспортного уровня.
Множественный сеанс с использованием номера порта
TCP
- Всякий раз, когда прикладному уровню требуется циркулировать поток огромного трафика или данных, он отправляет его на транспортный уровень, на котором TCP осуществляет сквозную связь между сетями.
- TCP первоначально устанавливает трехсторонний процесс установления связи между источником и получателем, а затем разбивает данные на небольшие фрагменты, известные как сегменты, и включает заголовок в каждый сегмент, а затем пересылает его на уровень Интернета.
На рисунке ниже показан формат заголовка TCP.
- Трехстороннее рукопожатие: Это процесс, развертываемый TCP для установления соединения между исходным и конечным узлами в сети.Он используется для надежной передачи данных. Он развертывает флаги SYN и ACK кодовых битов заголовка TCP для выполнения задачи. Он обеспечивает надежную связь посредством выполнения положительного подтверждения с повторной передачей и также известен как PAR. Система, использующая PAR, будет повторно передавать сегмент данных, пока не получит ACK. Всякий раз, когда получатель отбрасывает данные, отправитель должен повторно передать данные, пока он не получит положительный ACK от получателя.
Существует 3 шага трехстороннего подтверждения связи, а именно:
- Шаг 1: Исходный хост A хочет установить соединение с целевым хостом B, он передает сегмент с SYN и порядковый номер, который означает, что хост A хочет инициировать сеанс связи с хостом B, и с каким порядковым номером он определен в этом сегменте.
- Шаг 2: Хост B отвечает на запрос хоста A с помощью SYN и ACK, установленных в сигнальном бите. ACK обозначает ответ принятого сегмента, а SYN обозначает порядковый номер.
- Шаг 3: Хост A подтверждает ответ от хоста B, и оба устанавливают безопасное соединение между собой, а затем начинают передачу данных через него.
Как показано на рисунке ниже, в процессе трехэтапного установления связи сначала исходный хост отправляет заголовок TCP на хост назначения, устанавливая флаг SYN.В ответ он возвращает установленный SYN и флаг подтверждения. Хост назначения использует полученный порядковый номер плюс 1 в качестве номера подтверждения.
TCP IP поддерживает модель системы связи клиент-сервер.
Процесс трехстороннего установления связи
- Сегментация данных :
- Это одна из особенностей протокола TCP. Прикладной уровень отправляет огромное количество данных для передачи в пункт назначения на транспортный уровень.Но транспортный уровень ограничивает размер данных, отправляемых за один раз. Это делается путем разделения данных на небольшие сегменты.
- Для распознавания последовательности сегментов данных в заголовке TCP используется порядковый номер, который описывает номер байта всего сегмента данных.
- Управление потоком:
- Исходный хост будет отправлять данные в виде кластера сегментов. Заголовок TCP, имеющий бит окна, используется для определения количества сегментов, которые могут быть отправлены в один момент времени.Он используется, чтобы избежать незначительного трафика на стороне назначения.
- Когда сеанс запущен, размер окна крошечный, но по мере увеличения трафика со временем размер окна может стать огромным. Хост назначения может настроить окно в соответствии с управлением потоком. Таким образом, окно называется скользящим окном.
- Источник может передавать только то количество сегментов, которое разрешено окном. Чтобы отправить больше сегментов, сначала он будет ждать подтверждения от принимающей стороны, как только он получит ACK, а затем он может увеличить размер окна в соответствии со своими потребностями.
- На приведенном ниже рисунке хост назначения увеличивает размер с 500 до 600, а затем до 800 после отправки ACK обратно на хост-источник.
- Надежная доставка и восстановление после ошибок :
- После того, как последний сегмент решенного окна получен адресатом, он должен отправить ACK исходной стороне. Флаг ACK устанавливается в заголовке TCP, и номер ACK ставится как предполагаемый порядковый номер следующего байта. Если пункт назначения не получает сегменты в правильном порядке, он не будет передавать ACK обратно источнику.
- Это объясняет источник, что несколько сегментов неуместны во время передачи, и он будет повторно передавать все сегменты.
- На приведенном ниже рисунке было проиллюстрировано, что, когда источник не получил ACK для сегмента с номером SEQ 200, он повторно передает данные, а после получения ACK он отправляет следующую последовательность данных. сегмент в соответствии с размером окна.
- Заказанная доставка :
- TCP обеспечивает последовательную доставку данных к месту назначения.Он доставляет данные в том порядке, в котором они получают их от уровня приложения для доставки на хост назначения. Таким образом, для поддержания упорядоченной доставки он использует порядковый номер во время передачи сегментов данных.
- Завершение соединения :
- Когда передача данных между источником и получателем завершена, TCP завершит сеанс, отправив флаги FIN и ACK и используя четырехстороннее рукопожатие, чтобы закрыть его.
Скользящее окно TCP и надежная доставка
Протокол дейтаграмм пользователя (UDP):
Это ненадежный протокол передачи данных без установления соединения.В этом протоколе, в отличие от TCP, он не генерирует никаких флагов ACK, следовательно, исходный хост не будет ждать ответа от конечной стороны и будет передавать данные без какой-либо задержки и ждать ACK.
В сценарии реального времени используется UDP, поскольку отбрасывание пакетов данных выбирается вместо ожидания пакетов для повторной передачи. Таким образом, он наиболее широко используется в играх, просмотре видео в Интернете, чате и т. Д., Где подтверждение данных не является проблемой. В этих сценариях проверка и исправление ошибок происходят на уровне приложения.
Заголовок UDP:
- Порт источника: Классифицирует информацию конечного пакета источника, размер которой составляет 16 бит.
- Порт назначения : он также имеет размер 16 бит и используется для классификации типа службы данных на узле назначения.
- Длина : указывает общий размер дейтаграммы UDP. Максимальный размер поля длины может быть общим размером самого заголовка UDP.
- Контрольная сумма : сохраняет значение контрольной суммы, вычисленное исходной стороной перед передачей.Если он не содержит никакого значения, тогда все его биты устанавливаются в ноль.
UDP Applications :
- Он предоставляет дейтаграмму, поэтому подходит для IP-туннелирования и сетевой файловой системы.
- Простой в использовании, поэтому он используется в DHCP и простом протоколе передачи файлов.
- Отсутствие состояния делает его эффективным для потоковых мультимедийных приложений, таких как IPTV.
- Также подходит для передачи голоса по IP и потоковых программ в реальном времени.
- Он поддерживает многоадресную рассылку, поэтому подходит для широковещательных услуг, таких как Bluetooth и протокол маршрутной информации.
Уровень приложения
(i) Это верхний уровень модели TCP / IP.
(ii) Он выполняет все задачи сеансового уровня, уровня представления и уровня приложений модели TCP / IP.
(iii) Он сочетает в себе функции взаимодействия с различными приложениями, кодирования данных, трансляции данных и предоставляет пользователям доступ для связи с различными сетевыми системами.
Наиболее распространенные протоколы прикладного уровня определены ниже:
# 1) TELNET: Это означает протокол эмуляции терминала.Обычно это практикует доступ к удаленным приложениям. Сервер telnet, который действует как хост, инициирует приложение сервера telnet для установления соединения с удаленным конечным хостом, известным как клиент telnet.
После того, как соединение установлено, оно передается в ОС сервера telnet. Люди на стороне сервера используют клавиатуру и мышь для работы и доступа к удаленному узлу через TELNET.
# 2) HTTP: Это протокол передачи гипертекста.Это база Всемирной паутины (WWW). Этот протокол используется для обмена гипертекстом между различными системами. Это тип протокола запроса-ответа.
Например, веб-браузер , такой как Internet Explorer или Mozilla, действует как веб-клиент, а потоковая передача приложения на ПК, на котором размещен веб-сайт, будет действовать как веб-сервер.
Таким образом, сервер, который предоставляет ресурсы, такие как файлы HTML, и другие функции, запрошенные клиентом, возвращает клиенту ответное сообщение, которое содержит данные о состоянии завершения и запрошенные данные в строке сообщения.
Ресурсы HTTP распознаются и позиционируются в сети с помощью единых указателей ресурсов (URL), использующих унифицированные идентификаторы ресурсов (URI), методы HTTP и https.
# 3) FTP: Обозначает протокол передачи файлов. Он используется для обмена или передачи файлов между двумя хостами. Хост, на котором запущено приложение FTP, ведет себя как FTP-сервер, а другой — как FTP-клиент.
Клиентский хост, запрашивающий общий доступ к файлам, требует аутентификации от сервера для доступа к данным.После авторизации он может получать доступ к файлам любого типа с сервера, отправлять или получать файлы.
# 4) SMTP: Простой транспортный протокол электронной почты — это упражнение для отправки электронной почты. Когда мы настраиваем хост для отправки электронной почты, мы используем SMTP.
# 5) DNS: Каждое из хост-устройств в любой сети имеет уникальный логический адрес, называемый IP-адресом. Как уже говорилось, IP-адреса представляют собой группу из множества чисел, и их нелегко запомнить. Когда мы вводим любой веб-адрес в веб-браузере, таком как Google.com, то мы фактически запрашиваем хост, имеющий IP-адрес.
Но нам не нужно запоминать IP-адрес веб-страницы, которую мы запрашиваем, поскольку DNS (сервер доменных имен) сопоставляет имя с каждым логическим IP-адресом и сохраняет его.
Таким образом, когда мы вводим в браузере любую веб-страницу, он отправляет DNS-запрос своему DNS-серверу, чтобы сопоставить IP-адрес с именем. Как только он получает адрес, создается сеанс HTTP с IP-адресом.
# 6) DHCP: Каждому хост-устройству в любой сети требуется IP-адрес для связи с другими устройствами в сети.Он получает этот адрес вручную или с помощью протокола динамической конфигурации хоста (DHCP). При использовании DHCP хосту автоматически будет назначен IP-адрес.
Предположим, что сеть состоит из 10 000 хост-устройств. Тогда назначение IP-адреса каждому хосту вручную очень сложно и требует времени, поэтому мы используем протокол DHCP для назначения IP-адреса и другой информации подключенным хост-устройствам, такой как IP-маска подсети или IP-адрес шлюза.
Программы тестирования программного обеспечения будут работать на этом уровне модели TCP / IP, поскольку они предоставляют конечным пользователям возможность тестировать различные службы и использовать эти службы.
Заключение
Мы видели различные протоколы, которые используются на каждом уровне модели TCP / IP для выполнения задач, связанных с этим уровнем, и их преимуществ в системе связи.
Все указанные выше протоколы имеют свое собственное значение и разные роли в тестировании и применении программных инструментов.
PREV Tutorial | СЛЕДУЮЩИЙ Учебник
.
Введение в TCP / IP эталонная модель
TCP / IP означает протокол управления передачей и Интернет-протокол. Эта сетевая модель также используется в текущей архитектуре Интернета. Протоколы — это набор правил, которые регулируют все возможные коммуникации по сети. Эти протоколы описывают перемещение данных между источником и местом назначения или Интернетом. Они также предлагают простые схемы именования и адресации.
Протоколы и сети в модели TCP / IP:
Обзор эталонной модели TCP / IP
TCP / IP, который представляет собой протокол управления передачей и интернет-протокол, был разработан отделом Defence’s Project Research Agency (ARPA, позже DARPA) в рамках исследовательского проекта сетевого взаимодействия для подключения удаленных машин.
В ходе исследования, которое привело к созданию эталонной модели TCP / IP, выделялись следующие особенности:
- Поддержка гибкой архитектуры. Добавить больше машин в сеть было легко.
- Сеть была надежной, и соединения оставались нетронутыми до тех пор, пока исходная и конечная машины не работали.
Общая идея заключалась в том, чтобы разрешить одному приложению на одном компьютере взаимодействовать (отправлять пакеты данных) другому приложению, работающему на другом компьютере.
Различные уровни TCP / IP Эталонная модель
Ниже мы обсудили 4 уровня, которые образуют эталонную модель TCP / IP:
Уровень 1: Уровень между хостом и сетью
- Самый низкий уровень из всех.
- используется для подключения к хосту, так что пакеты могут быть отправлены через него.
- Зависит от хоста к хосту и от сети к сети.
Протокол
Уровень 2: Интернет-уровень
- Выбор сети с коммутацией пакетов, которая основана на межсетевом уровне без установления соединения, называется интернет-уровнем.
- Это слой, который скрепляет всю архитектуру.
- Помогает пакету самостоятельно добраться до пункта назначения.
- Порядок получения пакетов отличается от способа их отправки.
- IP (Интернет-протокол).
- Интернет-уровень выполняет следующие различные функции:
- Доставка IP-пакетов
- Выполнение маршрутизации
- Как избежать пробок
На этом уровне используется
Уровень 3: Транспортный уровень
- Он решает, передавать ли данные
.
Модели OSI и TCP / IP
Модель OSI
Модель OSI ( Взаимодействие открытых систем ) была создана Международной организацией по стандартизации (ISO) , международным органом по стандартизации. Он был разработан как эталонная модель для описания функций системы связи. Модель OSI обеспечивает основу для создания и внедрения сетевых стандартов и устройств и описывает, как сетевые приложения на разных компьютерах могут обмениваться данными через сетевые носители.
Модель OSI состоит из семи уровней, каждый из которых описывает различные функции передачи данных по сети. Вот графическое представление этих уровней:
Уровни обычно нумеруются, начиная с последнего, что означает, что физический уровень считается первым уровнем. Эти уровни полезно запомнить, поскольку на экзамене CCNA по ним наверняка возникнет пара вопросов. Большинство людей изучают мнемонику «, пожалуйста, не выбрасывайте пиццу с сосисками »:
Итак, какова цель этих слоев?
Чаще всего используются поставщиками.Они позволяют им реализовать некоторые функции в сетевом устройстве, что затем упрощает взаимодействие с устройствами других производителей.
Вот краткое описание каждого из уровней модели OSI.
- Physical — определяет, как перемещать биты с одного устройства на другое. В нем подробно описано, как должны работать кабели, разъемы и сетевые карты, а также как отправлять и получать биты.
- Data Link — инкапсулирует пакет во фрейм.Фрейм содержит заголовок и трейлер, которые позволяют устройствам обмениваться данными. Заголовок (чаще всего) содержит MAC-адрес источника и назначения. Трейлер содержит поле «Последовательность проверки кадра», которое используется для обнаружения ошибок передачи. Уровень канала передачи данных имеет два подуровня:
1. Управление логическим каналом — используется для управления потоком и обнаружения ошибок.
2. Media Access Control — используется для аппаратной адресации и управления методом доступа.
- Сеть — определяет адресацию устройства, маршрутизацию и определение пути.(Логическая) адресация устройства используется для идентификации хоста в сети (например, по его IP-адресу).
- Транспортный — сегментирует большие блоки данных, полученных от протоколов верхнего уровня. Устанавливает и разрывает соединения между двумя компьютерами. Используется для управления потоком и восстановления данных.
- Сеанс — определяет, как установить и завершить сеанс между двумя системами.
- Presentation — определяет форматы данных. На этом уровне определяются сжатие и шифрование.
- Приложение — этот слой наиболее близок к пользователю. Он позволяет сетевым приложениям взаимодействовать с другими сетевыми приложениями.
Обычно для ссылки на протокол используется номер уровня или имя уровня. Например, HTTPS называется протоколом приложения (или уровня 7). Сетевые устройства также иногда описываются в соответствии с уровнем OSI, на котором они работают — например, коммутатор уровня 2 или межсетевой экран уровня 7.
В следующей таблице показано, какие протоколы находятся на каком уровне модели OSI:
Модель TCP / IP
Модель TCP / IP была создана в 1970-х годах Агентством Defense Advance Research Project Agency (DARPA) как открытая, независимая от поставщика модель общедоступных сетей.Как и модель OSI, он описывает общие рекомендации по разработке и реализации компьютерных протоколов. Он состоит из четырех уровней: доступ к сети, Интернет, транспорт и приложение:
На следующем рисунке показано сравнение модели TCP / IP и модели OSI:
Как видно из рисунка выше, Модель TCP / IP имеет меньше уровней, чем модель OSI. Уровни приложения, представления и сеанса модели OSI объединены в один уровень модели TCP / IP.Кроме того, физический уровень и уровень канала передачи данных называются уровнем доступа к сети в модели TCP / IP. Вот краткое описание каждого уровня:
- Link — определяет протоколы и оборудование, необходимые для доставки данных по физической сети.
- Интернет — определяет протоколы логической передачи пакетов по сети.
- Transport — определяет протоколы для настройки уровня обслуживания передачи для приложений.Этот уровень отвечает за надежную передачу данных и безошибочную доставку пакетов.
- Приложение — определяет протоколы для межузловой связи приложений и предоставляет услуги прикладному программному обеспечению, запущенному на компьютере.
Различия между моделями OSI и TCP / IP
Между этими двумя моделями есть и другие различия, помимо очевидной разницы в количестве уровней. Модель OSI предписывает шаги, необходимые для передачи данных по сети, и она очень специфична, определяя, какой протокол используется на каждом уровне и как.Модель TCP / IP не так уж специфична. Можно сказать, что модель OSI предписывает, а модель TCP / IP описывает.
.