Где описывается работа протоколов

Обновлено: 19.05.2024

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

Содержание

Уровни протоколов

Здесь представлен неполный список сетевых протоколов, отсортированных по ближайшим им уровням модели Open Systems Interconnection (OSI). Однако, многие из данных протоколов изначально основаны на стеке протоколов TCP/IP и прочих моделях, поэтому они не могут быть однозначно соотнесены с уровнями модели OSI.

Наиболее распространённой системой классификации сетевых протоколов является так называемая модель OSI. В соответствии с ней протоколы делятся на 7 уровней по своему назначению - от физического (формирование и распознавание электрических или других сигналов) до прикладного (API для передачи информации приложениями):

Протоколы уровня 1 Physical layer (Физический уровень)

Самый нижний уровень модели, предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель или в радиоэфир и соответственно их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством. На этом уровне работают концентраторы (хабы), повторители (ретрансляторы) сигнала и медиаконверторы. Функции физического уровня реализуются на всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом.

  • ADSL Asymmetric Digital Subscriber Line
  • ISDN Integrated Services Digital Network
  • PDH Плезиохронная цифровая иерархия
    • T-канал (T1, T3, etc.)
    • E-канал (E1, E3, etc.)

    Протоколы уровня 1+2

    Протоколы уровня 2 Data Link layer (Канальный уровень)

    Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Данные, полученные с физического уровня, он упаковывает во фреймы, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня - MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты. В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS

    • ARCNET Attached Resource Computer NETwork
    • CDP Протокол обнаружения Cisco
    • DCAP Data Link Switching Client Access Protocol
    • Dynamic Trunking Protocol Динамический протокол группобразования
    • Econet
    • FDDI Волоконно-оптический интерфейс по распределенным данным
    • Frame Relay
    • Канальный уровень CCITT G.hn
    • HDLC High-Level Data Link Control
    • IEEE 802.11 WiFi
    • IEEE 802.16 WiMAX
    • LocalTalk
    • L2F Layer 2 Forwarding Protocol
    • L2TP Layer 2 Tunneling Protocol
    • LAPD Процедуры доступа к соединению на D-канале
    • LLDP Link Layer Discovery Protocol
    • LLDP-MED Link Layer Discovery Protocol — Media Endpoint Discovery
    • PPP Point-to-Point Protocol
    • PPTP Point-to-Point Tunneling Protocol
    • Q.710 Упрощенный Message Transfer Part
    • NDP Протокол обнаружения соседей
    • RPR IEEE 802.17 Resilient Packet Ring
    • Shortest Path Bridging
    • SLIP Serial Line Internet Protocol (устарел)
    • StarLAN
    • STP Spanning Tree Protocol
    • Token ring — по сути является не протоколом, а топологией
    • VTP VLAN Trunking Protocol

    Протоколы уровня 2+3

    • ATM Asynchronous Transfer Mode
    • Frame relay, упрощенная версия X.25
    • MPLS Multi-protocol label switching
    • X.25
    • ARP Протокол разрешения адреса
    • RARP Протокол разрешения обратного адреса

    Протоколы уровня 1+2+3

    • MTP Message Transfer Part
    • NSP Network Service Part

    Протоколы уровня 3 Network layer (Сетевой уровень)

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

    • CLNP Сетевой протокол без установки соединения
    • EGP протокол внешнего шлюза (устарел)
    • EIGRP Enhanced Interior Gateway Routing Protocol
    • ICMP Internet Control Message Protocol
    • IGMP Internet Group Management Protocol
    • IGRP Interior Gateway Routing Protocol
    • IPv4 Internet Protocol version 4
    • IPv6 Internet Protocol version 6
    • IPsec Internet Protocol Security
    • IPX Internetwork Packet Exchange
    • SCCP Signalling Connection Control Part
    • AppleTalk DDP

    Протоколы уровня 3 (управление на сетевом уровне)

    • IS-IS Intermediate System-to-Intermediate System
    • OSPF Open Shortest Path First
    • BGP Border Gateway Protocol
    • RIP Routing Information Protocol
    • IRDP: Реализация RFC 1256
    • Gateway Discovery Protocol (GDP) — протокол, разработанный Cisco, схожий с IRDP

    Протоколы уровня 3.5

    Протоколы уровня 3+4

    Протоколы уровня 4 Transport layer (Транспортный уровень)

    4-й уровень модели, предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом неважно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка. Пример: TCP, UDP

    • AH Authentication Header Аутентификационный заголовок по IP или IPSec
    • ESP Encapsulating Security Payload over IP or IPSec
    • GRE Generic Routing Encapsulation для туннелирования
    • IL Первоначально разработан как транспортный уровень для 9P
    • SCTP Stream Control Transmission Protocol
    • Sinec H1 для удаленного контроля
    • IPX/SPX Sequenced Packet Exchange
    • TCP Transmission Control Protocol
    • UDP User Datagram Protocol

    Протоколы уровня 5 Session layer (Сеансовый уровень)

    5-й уровень модели отвечает за поддержание сеанса связи, что позволяет приложениям взаимодействовать между собой длительное время. Сеансовый уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия.

    Прочие протоколы

    • Controller Area Network (CAN)
    • Общепромышленный протокол (CIP)
    • Цифровое управление командами (DCC)
    • Financial Information eXchange (FIX)
    • I²C
    • Modbus
    • DECnet — семейство протоколов от Digital Equipment Corporation (ныне HP(Hewlett-Packard))
    • Service Location Protocol SLP
    • Service Advertising Protocol SAP

    Протокол уровня 6 Presentation layer (Уровень представления)

    6-й уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На уровне представления может осуществляться сжатие/распаковка или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.

    Протоколы уровня 7 Application layer (Прикладной уровень)

    Сетевой протокол - это набор правил, позволяющий осуществлять соединение и обмен данными между двумя и более включёнными в сеть компьютерами.Фактически разные протоколы зачастую описывают лишь разные стороны одного типа связи; взятые вместе, они образуют так называемый стек протоколов. Названия "протокол" и "стек протоколов" также указывают и на программное обеспечение, которым реализуется протокол.

    Уровни протоколов

    Наиболее распространённой системой классификации сетевых протоколов является так называемая модель OSI. В соответствии с ней протоколы делятся на 7 уровней по своему назначению - от физического (формирование и распознавание электрических или других сигналов) до прикладного (API для передачи информации приложениями):

    Уровень представления, Presentation layer - 6-й уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с уровня приложений, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На уровне представления может осуществляться сжатие/распаковка или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.

    Сеансовый уровень, Session layer - 5-й уровень модели отвечает за поддержание сеанса связи, что позволяет приложениям взаимодействовать между собой длительное время. Сеансовый уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия.

    Транспортный уровень, Transport layer - 4-й уровень модели, предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом неважно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка. Пример: TCP, UDP.

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

    Канальный уровень, Data Link layer - этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Данные, полученные с физического уровня, он упаковывает во фреймы, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня - MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты. В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS.

    Физический уровень, Physical layer - самый нижний уровень модели, предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель или в радиоэфир и соответственно их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством. На этом уровне работают концентраторы (хабы), повторители (ретрансляторы) сигнала и медиаконверторы. Функции физического уровня реализуются на всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом.

    В основном используются протокол TCP/IP

    Transmission Control Protocol/Internet Protocol, TCP/IP (Протокол управления передачей/Протокол Интернета)

    Большинство операционных систем сетевых серверов и рабочих станций поддерживает TCP/IP, в том числе серверы NetWare, все системы Windows, UNIX, последние версии Mac OS, системы OpenMVS и z/OS компании IBM, а также OpenVMS компании DEC. Кроме того, производители сетевого оборудования создают собственное системное программное обеспечение для TCP/IP, включая средства повышения производительности устройств. Стек TCP/IP изначально применялся на UNIX-системах, а затем быстро распространился на многие другие типы сетей.

    Протоколы локальных сетей

    • IPX/SPX;
    • NetBEUI;
    • AppleTalk;
    • TCP/IP;
    • SNA;
    • DLC;
    • DNA;

    Свойства протоколов локальной сети

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

    Протоколы локальных сетей должны иметь следующие основные характеристики:

    • обеспечивать надежность сетевых каналов;
    • обладать высоким быстродействием;
    • обрабатывать исходные и целевые адреса узлов;
    • соответствовать сетевым стандартам, в особенности - стандарту IEEE 802.

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

    В таблице перечислены протоколы локальных сетей и операционные системы, с которыми эти протоколы могут работать. Далее в главе указаны протоколы и системы (в частности, операционные системы серверов и хост компьютеров) будут описаны подробнее.

    Таблица Протоколы локальных сетей и сетевые операционные системы

    Стек протоколов TCP/IP - это альфа и омега Интернета. Тот самый стек, на базе которого построена всемирная система объединенных компьютерных сетей Интернет, его важно знать и нужно понимать.

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

    Сравнение моделей OSI и TCP/IP

    Последняя включает в себя 4 уровня:

    Самый нижний, уровень сетевых интерфейсов, обеспечивает взаимодействие с сетевыми технологиями (Ethernet, Wi-Fi и т. д.). Это объединение функций канального и физического уровней OSI.

    Уровень Интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.

    Транспортный отвечает за связь между процессами на разных компьютерах, а также за доставку переданной информации без дублирования, потерь и ошибок, в необходимой последовательности.

    Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и собственно, прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.

    Модель OSI обладает хорошей теоретической проработкой, но протоколы не используются. С моделью TCP/IP все иначе: протоколы широко используются, но модель подходит исключительно для описания сетей на базе TCP/IP.

    Важно не путать их:

    TCP/IP -- это стек протоколов, представляющий собой основу Интернета.

    Модель OSI (Базовая Эталонная Модель Взаимодействия Открытых Систем) - подходит для описания самых разных сетей.

    Стек протоколов TCP/IP

    Рассмотрим каждый уровень более подробно:

    Нижний уровень сетевых интерфейсов включает в себя Ethernet, Wi-Fi и DSL (модем). Данные сетевые технологии формально не входят в состав стека, но крайне важны в работе интернета в целом.

    Основной протокол сетевого уровня -- IP (Internet Protocol). Это маршрутизированный протокол, частью которого является адресация сети (IP-адрес). Здесь также работают такие дополнительные протоколы, как ICMP, ARRP и DHCP. Они обеспечивают работу сетей.

    На транспортном уровне расположились TCP -- протокол, обеспечивающий передачу данных с гарантией доставки, и UDP -- протокол для быстрой передачи данных, но уже без гарантии.

    Стек протоколов TCP/IP задает стандарты связи между устройствами и содержит соглашения о межсетевом взаимодействии и маршрутизации.

    Сети подразумевают передачу информации.

    Самый простой способ передачи информации - это текст.

    Протоколы - это наборы соглашений, что обеспечивают передачу данных.

    Поток может быть большим. Как же в этом случае работает протокол? Допустим, вы скачиваете файл, который весит несколько Гб. В протоколе поток будет разбиваться на сегменты, и каждый из этих сегментов - отправляться получателю. На стороне получателя все части снова собираются.

    Как это работает?

    От отправителя к получателю "уходит" некий сегмент данных.

    Приняв этот сегмент, получатель посылает отправителю подтверждение (ACK или Acknowledgement).

    Данный процесс повторяется, пока передаются данные.

    А вот что происходит, если при передаче произошла ошибка: сегмент теряется в сети, не доходит до получателя, и подтверждение не отправляется. Со стороны отправителя есть таймер, который задает время ожидания подтверждения. По истечении этого времени и за неимением ACK сегмент отправляется повторно.

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

    Грубо говоря, это тип разметки, которая добавляется в текстовые документы для определенного отображения текста. Например, в HTML используются теги. Так это выглядит в браузере, все знают.

    Он использует протокол TCP и порт сервера 80 (для клиента порт генерируется операционной системой).

    Большинство из нас знает TCP/IP как "клей", связующий Internet. Но не многие способны дать убедительное описание того, что этот протокол представляет собой и как работает. Итак, что же такое TCP/IP в действительности?

    TCP/IP — это средство для обмена информацией между компьютерами, объединенными в сеть. Не имеет значения, составляют ли они часть одной и той же сети или подключены к отдельным сетям. Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh. TCP/IP — это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами, операционными системами и сетями. Это протокол, который глобально управляет Internet, и в значительной мере благодаря сети TCP/IP завоевал свою популярность.

    Понимание 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 дает решение проблемы данными между двумя компьютерами, подключенными к одной и той же интрасети, но принадлежащими различным физическим сетям. Решение состоит из нескольких частей, причем каждый член семейства протоколов TCP/IP вносит свою лепту в общее дело. IP — самый фундаментальный протокол из комплекта TCP/IP — передает IP-дейтаграммы по интрасети и выполняет важную функцию, называемую маршрутизацией, по сути дела это выбор маршрута, по которому дейтаграмма будет следовать из пункта А в пункт B, и использование маршрутизаторов для "прыжков" между сетями.

    TCP — это протокол более высокого уровня, который позволяет прикладным программам, запущенным на различных главных компьютерах сети, обмениваться потоками данных. TCP делит потоки данных на цепочки, которые называются TCP-сегментами, и передает их с помощью IP. В большинстве случаев каждый TCP-сегмент пересылается в одной IP-дейтаграмме. Однако при необходимости TCP будет расщеплять сегменты на несколько IP-дейтаграмм, вмещающихся в физические кадры данных, которые используют для передачи информации между компьютерами в сети. Поскольку IP не гарантирует, что дейтаграммы будут получены в той же самой последовательности, в которой они были посланы, TCP осуществляет повторную "сборку" TCP-сегментов на другом конце маршрута, чтобы образовать непрерывный поток данных. FTP и telnet — это два примера популярных прикладных программ TCP/IP, которые опираются на использование TCP.

    FTP (File Transfer Protocol, протокол передачи файлов): позволяет передавать файлы с одного компьютера на другой с использованием TCP-соединений. В родственном ему, но менее распространенном протоколе передачи файлов — Trivial File Transfer Protocol (TFTP) — для пересылки файлов применяется UDP, а не TCP.

    IGMP (Internet Group Management Protocol, протокол управления группами Internet): позволяет IP-дейтаграммам распространяться в циркулярном режиме (multicast) среди компьютеров, которые принадлежат к соответствующим группам.

    IP (Internet Protocol, протокол Internet): низкоуровневый протокол, который направляет пакеты данных по отдельным сетям, связанным вместе с помощью маршрутизаторов для формирования Internet или интрасети. Данные "путешествуют" в форме пакетов, называемых IP-дейтаграммами.

    RARP (Reverse Address Resolution Protocol, протокол обратного преобразования адресов): преобразует физические сетевые адреса в IP-адреса.

    TCP (Transmission Control Protocol, протокол управления передачей): протокол ориентирован на работу с подключениями и передает данные в виде потоков байтов. Данные пересылаются пакетами — TCP-сегментами, — которые состоят из заголовков TCP и данных. TCP — "надежный" протокол, потому что в нем используются контрольные суммы для проверки целостности данных и отправка подтверждений, чтобы гарантировать, что переданные данные приняты без искажений.

    UDP (User Datagram Protocol, протокол пользовательских дейтаграмм): протокол, не зависящий от подключений, который передает данные пакетами, называемыми UDP-дейтаграммами. UDP — "ненадежный" протокол, поскольку отправитель не получает информацию, показывающую, была ли в действительности принята дейтаграмма.

    Архитектура TCP/IP

    Проектировщики вычислительных сетей часто используют семиуровневую модель ISO/OSI (International Standards Organization/Open Systems Interconnect, Международная организация по стандартизации/ Взаимодействие открытых систем), которая описывает архитектуру сетей. Каждый уровень в этой модели соответствует одному уровню функциональных возможностей сети. В самом основании располагается физический уровень, представляющий физическую среду, по которой "путешествуют" данные, — другими словами, кабельную систему вычислительной сети. Над ним имеется канальный уровень, или уровень звена данных, функционирование которого обеспечивается сетевыми интерфейсными платами. На самом верху размещается уровень прикладных программ, где работают программы, использующие служебные функции сетей.

    На рисунке показано, как TCP/IP согласуется с моделью ISO/OSI. Этот рисунок также иллюстрирует уровневое строение TCP/IP и показывает взаимосвязи между основными протоколами. При переносе блока данных из сетевой прикладной программы в плату сетевого адаптера он последовательно проходит через ряд модулей TCP/IP. При этом на каждом шаге он доукомплектовывается информацией, необходимой для эквивалентного модуля TCP/IP на другом конце цепочки. К тому моменту, когда данные попадают в сетевую плату, они представляют собой стандартный кадр Ethernet, если предположить, что сеть основана именно на этом интерфейсе. Программное обеспечение TCP/IP на приемном конце воссоздает исходные данные для принимающей программы путем захвата кадра Ethernet и прохождения его в обратном порядке по набору модулей TCP/IP. (Один из наилучших способов разобраться во внутреннем устройстве TCP/IP стоит в использовании программы-"шпиона", чтобы найти внутри кадров, "пролетающих" по сети, информацию, добавленную различными модулями TCP/IP.)

    Уровни сетей и протоколы TCP/IP

    В левой части этой диаграммы показаны уровни модели ISO/OSI. Правая часть диаграммы иллюстрирует корреляцию TCP/IP с этой моделью.

    Если браузер и сервер работают на компьютерах, подключенных к различным физическим сетям (как это обычно бывает), дейтаграммы передаются от сети к сети до тех пор, пока не достигнут той, к которой физически подключен сервер. В конце концов дейтаграммы достигают пункта своего назначения и вновь собираются таким образом, чтобы Web-сервер, который считывает цепочки данных из своего гнезда, получал непрерывный поток данных. Для браузера и сервера данные, записанные в гнездо на одном конце, как по волшебству, "всплывают" на другом конце. Но между этими событиями происходят все виды сложных взаимодействий для создания иллюзии непрерывной передачи данных между вычислительными сетями.

    И это практически все, чем занимается TCP/IP: превращением множества небольших сетей в одну большую и предоставлением услуг, которые нужны прикладным программам для обмена информацией друг с другом по получающейся в итоге Internet.

    Краткое заключение

    О TCP/IP можно было бы рассказать много больше, но есть три ключевых момента:

    * TCP/IP — это набор протоколов, которые позволяют физическим сетям объединяться вместе для образования Internet. TCP/IP соединяет индивидуальные сети для образования виртуальной вычислительной сети, в которой отдельные главные компьютеры идентифицируются не физическими адресами сетей, а IP-адресами.
    * В TCP/IP используется многоуровневая архитектура, которая четко описывает, за что отвечает каждый протокол. TCP и UDP обеспечивают высокоуровневые служебные функции передачи данных для сетевых программ, и оба опираются на IP при передаче пакетов данных. IP отвечает за маршрутизацию пакетов до их пункта назначения.
    * Данные, перемещающиеся между двумя прикладными программами, работающими на главных компьютерах Internet, "путешествуют" вверх и вниз по стекам TCP/IP на этих компьютерах. Информация, добавленная модулями TCP/IP на стороне отправителя, "разрезается" соответствующими TCP/IP-модулями на принимающем конце и используется для воссоздания исходных данных.

    1. Лекция - Введение. Адресация. Протоколы (IP, TCP, UDP). Порты.

    Официальная документация по Internet

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

    Адресация в сети Internet.

    Типы адресов.

    Физический (MAC-адрес)

    Сетевой (IP-адрес)

    Символьный (DNS-имя)

    Компьютер в сети TCP/IP может иметь адреса трех уровней (но не менее двух):

    Локальный адрес компьютера. Для узлов, входящих в локальные сети - это МАС-адрес сетевого адаптера. Эти адреса назначаются производителями оборудования и являются уникальными адресами.

    IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов.

    IPv4 - адрес является уникальным 32-битным идентификатором IP-интерфейса в Интернет.

    IP-адреса принято записывать разбивкой всего адреса по октетам (8), каждый октет записывается в виде десятичного числа, числа разделяются точками. Например, адрес


    10100000010100010000010110000011
    записывается как

    Перевод адреса из двоичной системы в десятичную

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

    160.81.5. - номер сети

    131 - номер хоста

    Базовые протоколы (IP, TCP, UDP)

    Стек протоколов TCP/IP

    TCP/IP - собирательное название для набора (стека) сетевых протоколов разных уровней, используемых в Интернет. Особенности TCP/IP:

    Открытые стандарты протоколов, разрабатываемые независимо от программного и аппаратного обеспечения;

    Независимость от физической среды передачи;

    Система уникальной адресации;

    Стандартизованные протоколы высокого уровня для распространенных пользовательских сервисов.

    Стек протоколов TCP/IP

    Стек протоколов TCP/IP делится на 4 уровня:

    Физический и канальный.

    Позже была принята 7-ми уровневая модель ISO.

    Данные передаются в пакетах. Пакеты имеют заголовок и окончание, которые содержат служебную информацию. Данные, более верхних уровней вставляются, в пакеты нижних уровней.

    Пример инкапсуляции пакетов в стеке TCP/IP

    Физический и канальный уровень.

    Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных. От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу IP-пакетов. Также требуется обеспечить преобразование IP-адреса узла сети, на который передается IP-пакет, в MAC-адрес. Часто в качестве уровня доступа к среде передачи могут выступать целые протокольные стеки, тогда говорят об IP поверх ATM, IP поверх IPX, IP поверх X.25 и т.п.

    Межсетевой уровень и протокол IP.

    Основу этого уровня составляет IP-протокол.

    IP (Internet Protocol) – интернет протокол.

    Первый стандарт IPv4 определен в RFC-760 (DoD standard Internet Protocol J. Postel Jan-01-1980)

    Последняя версия IPv4 - RFC-791 (Internet Protocol J. Postel Sep-01-1981).

    Первый стандарт IPv6 определен в RFC-1883 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1995)

    Последняя версия IPv6 - RFC-2460 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1998).

    Протокол IP доставляет блоки данных от одного IP-адреса к другому.

    Программа, реализующая функции того или иного протокола, часто называется модулем, например, “IP-модуль”, “модуль TCP”.

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

    Если IP-пакет адресован данному компьютеру, то данные из него передаются на обработку модулю вышестоящего уровня (какому конкретно - указано в заголовке IP-пакета).

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

    Структура дейтограммы IP. Слова по 32 бита.

    Версия - версия протокола IP (например, 4 или 6)

    Длина заг. - длина заголовка IP-пакета.

    Тип сервиса (TOS - type of service) - Тип сервиса (подробнее рассмотрен в лекции 8).

    TOS играет важную роль в маршрутизации пакетов. Интернет не гарантирует запрашиваемый TOS, но многие маршрутизаторы учитывают эти запросы при выборе маршрута (протоколы OSPF и IGRP).

    Идентификатор дейтаграммы, флаги (3 бита) и указатель фрагмента - используются для распознавания пакетов, образовавшихся путем фрагментации исходного пакета.

    Время жизни (TTL - time to live) - каждый маршрутизатор уменьшает его на 1, что бы пакеты не блуждали вечно.

    Протокол - Идентификатор протокола верхнего уровня указывает, какому протоколу верхнего уровня принадлежит пакет (например: TCP, UDP).

    Коды некоторые протоколов RFC-1700 (1994)

    Протокол IP является маршрутизируемый, для его маршрутизации нужна маршрутная информация.

    Маршрутная информация, может быть:

    Статической (маршрутные таблицы прописываются вручную)

    Динамической (маршрутную информацию распространяют специальные протоколы)

    Протоколы динамической маршрутизации:

    RIP (Routing Information Protocol) - протокол передачи маршрутной информации, маршрутизаторы динамически создают маршрутные таблицы.

    OSPF (Open Shortest Path First) - протокол "Открой кротчайший путь первым", является внутренним протоколом маршрутизации.

    IGP (Interior Gateway Protocols) - внутренние протоколы маршрутизации, распространяет маршрутную информацию внутри одной автономной системе.

    EGP (Exterior Gateway Protocols) - внешние протоколы маршрутизации, распространяет маршрутную информацию между автономными системами.

    BGP (Border Gateway Protocol) - протокол граничных маршрутизаторов.

    Другие служебные IP-протоколы

    IGMP (Internet Group Management Protocol) - позволяет организовать многоадресную рассылку средствами IP.

    RSVP (Resource Reservation Protocol) - протокол резервирования ресурсов.

    ARP (Address Resolution Protocol) - протокол преобразования IP-адреса и адреса канального уровня.

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

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

    Анализируя заголовок своего пакета, полученного от межсетевого уровня, транспортный модуль определяет по номеру порта получателя, какому из прикладных процессов направлены данные, и передает эти данные соответствующему прикладному процессу. Номера портов получателя и отправителя записываются в заголовок транспортным модулем, отправляющим данные; заголовок транспортного уровня содержит также и другую служебную информацию; формат заголовка зависит от используемого транспортного протокола.

    На транспортном уровне работают два основных протокола: UDP и TCP.

    Первая и последняя версия TCP - RFC-793 (Transmission Control Protocol J. Postel Sep-01-1981).

    Посылает запрос на следующий пакет, указывая его номер в поле "Номер подтверждения" (AS). Тем самым, подтверждая получение предыдущего пакета.

    Делает проверку целостности данных, если пакет битый посылает повторный запрос.

    Структура дейтограммы TCP. Слова по 32 бита.

    Длина заголовка - задается словами по 32бита.

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

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

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

    URG - флаг срочности, включает поле "Указатель срочности", если =0 то поле игнорируется.

    ACK - флаг подтверждение, включает поле "Номер подтверждения, если =0 то поле игнорируется.

    PSH - флаг требует выполнения операции push, модуль TCP должен срочно передать пакет программе.

    RST - флаг прерывания соединения, используется для отказа в соединении

    SYN - флаг синхронизация порядковых номеров, используется при установлении соединения.

    FIN - флаг окончание передачи со стороны отправителя

    UDP (Universal Datagram Protocol) - универсальный протокол передачи данных, более облегченный транспортный протокол, чем TCP.

    Основные отличия от TCP:

    Отсутствует соединение между модулями UDP.

    При потере пакета запрос для повторной передачи не посылается

    UDP используется если не требуется гарантированная доставка пакетов , например, для потокового видео и аудио, DNS (т.к. данные небольших размеров). Если проверка контрольной суммы выявила ошибку или если процесса, подключенного к требуемому порту, не существует, пакет игнорируется (уничтожается). Если пакеты поступают быстрее, чем модуль UDP успевает их обрабатывать, то поступающие пакеты также игнорируются.

    Структура дейтограммы UDP. Слова по 32 бита.


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

    Протокол реального времени RTP

    RTP (Real Time Protocol) - транспортный протокол для приложений реального времени.

    RTCP (Real Time Control Protocol) - транспортный протокол обратной связи для приложения RTP..

    Назначение портов

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

    Порты могут принимать значение от 0-65535 (два байта 2^16).

    Некоторые заданные порты RFC-1700 (1994)

    Программа Ping

    Программа для проверки соединения и работы с удаленным хостом.

    Программа TraceRoute - позволяет проверить маршрут до удаленного хоста.

    Читайте также: