Стек протоколов TCP/IP является наиболее распространенным на сегодняшний день стеком протоколов. Гибкость и возможности маршрутизации трафика позволяют использовать его в сетях различного масштаба. Стек протоколов TCP/IP представляет собой набор сетевых протоколов, регламентирующих все стороны процесса взаимодействия сетевых устройств.
Отказоустойчивость. Сеть, построенная с использованием протокола, должна сохранять свою функциональность, даже если часть сети утратит свою работоспособность.
Расширяемость. Протокол должен допускать возможность легкого расширения сети. Добавление к сети новых сегментов не должно приводить к нарушению работы существующих служб.
Надежность. Протокол должен включать в себя механизмы, обеспечивающие надежную передачу информации внутри сети, независимо от надежности существующих коммуникаций.
Внутренняя простота. Протокол должен иметь простую структуру, чтобы обеспечивать достаточную производительность
Архитектура: Стек TCP/IP с точки зрения системной архитектуры соответствует эталонной модели OSI (Open Systems Interconnection — взаимодействие открытых систем) и позволяет обмениваться данными по сети приложениям и службам, работающим практически на любой платформе, включая Unix, Windows, Macintosh и другие.
Модель и стек протоколов TCP/IP | Курс «Компьютерные сети»
Обзор основных протоколов стека:
ТСP: Протокол управления передачей (Transmission Control Protocol, TCP) берет на себя все обязанности по доставке пакетов, получаемых от протоколов верхних уровней, в неизменном состоянии и в соответствующей последовательности. Поэтому в обязанности протокола транспортного уровня входит функция разбиения этих пакетов на более мелкие TCP-пакеты, которые затем передаются протоколу сетевого уровня.
UDP: В структуре стека протоколов TCP/IP имеется другой протокол, функционирующий на транспортном уровне, который не ориентирован на установку соединения. Речь идет о протоколе пользовательских дейтаграмм (User Datagram Protocol, UDP). Протокол UDP достаточно быстрый протокол, поскольку не включает механизмов, осуществляющих контроль доставки пакетов.
ARP: На канальном уровне адресация осуществляется на основе так называемых МАС-адресов. МАС-адрес представляет собой уникальный 48-разрядный идентификационный код, присваиваемый каждому сетевому адаптеру. Этот код записывается (или, как принято говорить, «зашивается») в специальное ПЗУ на плате сетевого адаптера и тем самым навсегда связывается с этим сетевым адаптером.
Поскольку адресация на канальном уровне осуществляется посредством МАС-адресов, необходим механизм, который бы обеспечивал трансляцию IP-адресов в соответствующие МАС-адреса. Протокол разрешения адресов ARP (Address Resolution Protocol) и предоставляет такой механизм. Его основная задача — установка соответствия между IP-адресом и МАС-адресом.
ICMP: Протокол управляющих сообщений Интернета (Internet Control Message Protocol, ICMP) представляет собой механизм, посредством которого хосты могут обмениваться служебной информацией. Протокол ICMP поддерживает два вида служебных сообщений: сообщения об ошибках и управляющие сообщения.
TCP/IP для чайников. Как работает стек протоколов TCP/IP?
IGMP: Процесс передачи группового трафика регламентируется межсетевым протоколом управления группой (Internet Group Management Protocol, IGMP).
IPsec: Протокол IPsec обеспечивает защиту любых пакетов, передаваемых протоколами верхних уровней
Уровень приложений: Через уровень Приложения модели TCP/IP приложения и службы получают доступ к сети. Доступ к протоколам TCP/IP осуществляется посредством двух программных интерфейсов (API — Application Programming Interface):
- — Сокеты Windows;
- — NetBIOS.
Интерфейс сокетов Windows, или как его называют WinSock, является сетевым программным интерфейсом, предназначенным для облегчения взаимодействия между различными TCP/IP — приложениями и семействами протоколов.
Интерфейс NetBIOS используется для связи между процессами (IPC — Interposes Communications) служб и приложений ОС Windows. NetBIOS выполняет три основных функции: определение имен NetBIOS; служба дейтаграмм NetBIOS; служба сеанса NetBIOS.
Уровень транспорта: Уровень транспорта TCP/IP отвечает за установления и поддержания соединения между двумя узлами. Основные функции уровня:
- — подтверждение получения информации;
- — управление потоком данных;
- — упорядочение и ретрансляция пакетов.
В зависимости от типа службы могут быть использованы два протокола:
- — TCP (Transmission Control Protocol — протокол управления передачей);
- — UDP (User Datagram Protocol — пользовательский протокол дейтаграмм).
TCP обычно используют в тех случаях, когда приложению требуется передать большой объем информации и убедиться, что данные своевременно получены адресатом. Приложения и службы, отправляющие небольшие объемы данных и не нуждающиеся в получении подтверждения, используют протокол UDP, который является протоколом без установления соединения.
Межсетевой уровень: Межсетевой уровень отвечает за маршрутизацию данных внутри сети и между различными сетями. На этом уровне работают маршрутизаторы, которые зависят от используемого протокола и используются для отправки пакетов из одной сети (или ее сегмента) в другую (или другой сегмент сети). В стеке TCP/IP на этом уровне используется протокол IP.
Уровень сетевого интерфейса: Этот уровень модели TCP/IP отвечает за распределение IP-дейтаграмм. Он работает с ARP для определения информации, которая должна быть помещена в заголовок каждого кадра. Затем на этом уровне создается кадр, подходящий для используемого типа сети, такого как Ethernet, Token Ring или ATM, затем IP-дейтаграмма помещается в область данных этого кадра, и он отправляется в сеть.
ipconfig [/all | /release | /renew [adapter] /flushdns /registerdns [adapter] /displaydns /showclassid [adapter] /setclassid [adapter] class_id]
/all — в результате выполнения утилиты выводится полная информация о конфигурации протокола для всех интерфейсов локального компьютера. В том числе и для сетевых интерфейсов, работающих со службой маршрутизации и удаленного доступа (Routing and Remote Access Service, RAS);
/release — выполнение утилиты с этим ключом приводит к освобождению выделенного IP-адреса. Ключ применим для использования только на клиентах DHCP;
/renew [adapter] — использование этого ключа предписывает системе обновить конфигурацию стека протоколов TCP/IP. Если вы указываете имя сетевого адаптера, обновляется конфигурация протокола только для выбранного адаптера. В противном случае обновляется конфигурация стека протоколов для всех сетевых адаптеров;
/displaydns — в результате выполнения утилиты будет выведена информация о содержимом локального кэша клиента DNS, используемого для разрешения доменных имен;
- -t — использование данного ключа предписывает системе непрерывно посылать специальные ICMP-пакеты к удаленному компьютеру вплоть до остановки пользователем выполнения утилиты;
- -а — использование данного ключа позволяет определить доменное имя удаленного компьютера по его IP-адресу. Полезность этого ключа зачастую недооценивается пользователями. Тем не менее при работе в локальной сети нередко возникают ситуации, когда необходимо узнать доменное имя компьютера по его IP-адресу;
- -n count — в отличие от предыдущего ключа, позволяет задать число ICMP-пакетов, которые будут посланы в процессе проверки возможности установления соединения. По умолчанию утилита отправляет четыре пакета;
- -w timeout — по умолчанию утилита ping ожидает подтверждения от удаленного хоста в течение одной секунды. По окончании этого времени утилита делает вывод о том, что с хостом невозможно установить соединение. Особенно часто подобная ситуация возникает в случае, когда удаленный компьютер соединяется посредством медленных линий связи. Использование этого ключа позволяет увеличить время ожидания подтверждения до определенного значения, задаваемого в миллисекундах в виде параметра timeout;
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
- -d — по умолчанию утилита, предоставляя информацию о проходимых пакетами маршрутизаторах, указывает не только IP-адреса, но и их доменные имена. Использование этого ключа предписывает утилите не производить преобразование IP-адресов в доменные имена. Это позволяет сократить время выполнения утилиты;
- -h maximum_hops — использование утилиты с данным ключом позволяет ограничить допустимое число переходов из одной подсети в другую в процессе отслеживания маршрута. Параметр maximum_hops определяет максимально допустимое количество переходов;
- -w timeout — ключ позволяет явно определить максимальное время ожидания ответа от удаленного маршрутизатора. При этом время задается параметром timeout в миллисекундах;
target_name — определяет имя удаленного хоста, маршрут к которому необходимо проследить.
Утилита netstat. Позволяет получить статистическую информацию по некоторым из протоколов стека (TCP, UDP, IP и ICMP), а также приводит сведения о текущих сетевых соединениях.
Утилита nbtstat . Утилита используется для получения информации, связанной с вопросом функционирования NetBIOS поверх TCP/IP. Используя данную утилиту, можно получить информацию как о локальном, так и об удаленном компьютере.
IP-адрес: Согласно концепции TCP/IP, каждый хост, чтобы работать в сети, должен иметь определенный IP-адрес
IP-адрес представляет собой 32-разрядное двоичное число, которое для удобства запоминания разбито на октеты — восьмибитовые группы
Правила назначения IP-адреса:
- 1. Компьютеру нельзя присвоить первый адрес в данной сети (адрес, заканчивающийся на число 0). Такие адреса зарезервированы для обозначения всей сети.
- 2. Компьютеру нельзя присвоить последний адрес в данной сети (адрес, заканчивающийся на число 255). Такие адреса служат для широковещательных передач (broadcasting) — обращения ко всем компьютерам в сети.
- 3. Каждый из октетов — это число в диапазоне от 0 до 255.
- 4. IP-адрес каждого компьютера должен быть уникален в пределах сети. Если присвоить новому компьютеру уже существующий в сети адрес, то возникнет конфликт адресов. Операционная система сообщит о конфликте, показав окно предупреждения, и оба компьютера не будут допущены к работе в сети до исправления ситуации.
Адрес подсети и адрес хоста: В любом IP-адресе можно выделить две составляющие: адрес подсети и адрес хоста в этой подсети. На этапе разработки создатели протокола разделили все IP-адреса на три категории, объединив их в три класса подсетей — А, В и С.
Источник: www.studwood.net
Стек протоколов tcp ip что это
Стек протоколов TCP/IP — собирательное название для сеевых протоколов разных уровней, используемых в сетях. Слово «стек» подразумевает, что протокол TCP работает поверх IP.
В модели OSI данный стек занимает (реализует) все уровни и делится сам на 4 уровня: прикладной, транспортный, межсетевой, уровень доступа к сети (в OSI это уровни — физический, канальный и частично сетевой). На стеке протоколов TCP/IP построено всё взаимодействие пользователей в сети, от программной оболочки до канального уровня модели OSI. По сути это база, на которой завязано всё взаимодействие. При этом стек является независимым от физической среды передачи данных.
Уровни стека TCP/IP
Существуют разногласия в том, как вписать Модель DOD|модель TCP/IP в модель OSI, поскольку уровни в этих моделях не совпадают.
К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между транспортным и сетевым уровнями. Примером спорного протокола может быть ARP или STP.
Вот как традиционно протоколы TCP/IP вписываются в модель OSI:
7 | Прикладной | NFS, RTSP, BGP |
6 | Представительный | XDR, ASN.1, Apple Filing Protocol|AFP |
5 | Сеансовый | RPC, NetBIOS, AppleTalk|ASP |
4 | Транспортный | ATP, DCCP, GRE (протокол)|GRE |
3 | Сетевой | RIP, IPX, DDP (протокол)|DDP |
2 | Канальный | PPP, HDLC, X.25, Frame relay, ISDN, ATM, MPLS, Wi-Fi, ARP, RARP |
1 | Физический | напр. Электричество, Радио, Оптоволокно |
Обычно в стеке TCP/IP верхние 3 уровня (Прикладной уровень|прикладной, Представительный уровень|представительный и Сеансовый уровень|сеансовый) модели OSI объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению. Упрощенно интерпретацию стека TCP/IP можно представить так:
4 | Прикладной «7 уровень» |
RIP, работающий поверх UDP, и BGP, работающий поверх TCP, являются частью сетевого уровня) |
3 | Транспортный | напр. TCP, UDP, RTP, SCTP, DCCP (протоколы маршрутизации, подобные OSPF, что работают поверх IP, являются частью сетевого уровня) |
2 | Сетевой | Для TCP/IP это IP (IP) (вспомогательные протоколы, вроде ICMP и IGMP работают поверх IP, но являются частью сетевого уровня; ARP не работает поверх IP) |
1 | Физический | E1 |
Физический уровень
Физический уровень описывает среду передачи данных (будь то кабель, Оптоволокно или Радиоканал), физические характеристики такой среды и принцип передачи данных (Разделение каналов, Модуляция|модуляцию, амплитуду сигналов, частоту сигналов, способ синхронизации передачи, время ожидания ответа и максимальное расстояние).
Канальный уровень
Примеры протоколов канального уровня — Ethernet, IEEE 802.11 Wireless Ethernet, SLIP, Token Ring, ATM и MPLS.
PPP (сетевой протокол)|PPP не совсем вписывается в такое определение, поэтому обычно описывается в виде пары протоколов HDLC/SDLC.
MPLS занимает промежуточное положение между канальным и сетевым уровнем и, строго говоря, его нельзя отнести ни к одному из них.
Канальный уровень иногда разделяют на 2 подуровня — LLC и MAC.
Сетевой уровень
Изначально разработан для передачи данных из одной (под)сети в другую. Примерами такого протокола является X.25 и IPC в сети ARPANET.
С развитием концепции Интернет|глобальной сети в уровень были внесены дополнительные возможности по передаче из любой сети в любую сеть, независимо от протоколов нижнего уровня, а также возможность запрашивать данные от удалённой стороны, например в протоколе ICMP (используется для передачи диагностической информации IP-соединения) и IGMP (используется для управления Multicast-потоками).
ICMP и IGMP расположены над IP и должны попасть на следующий — транспортный — уровень, но функционально являются протоколами сетевого уровня, а поэтому их невозможно вписать в модель OSI.
Пакеты сетевого протокола IP могут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальный IP-номер протокола. ICMP и IGMP имеют номера, соответственно, 1 и 2.
Транспортный уровень
Протоколы транспортного уровня могут решать проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»), а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют, для какого именно приложения предназначены эти данные.
Протоколы автоматической маршрутизации, логически представленные на этом уровне (поскольку работают поверх IP), на самом деле являются частью протоколов сетевого уровня; например OSPF (IP идентификатор 89).
TCP (IP идентификатор 6) — «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный Поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие от UDP.
UDP (IP идентификатор 17) протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протокол TCP.
UDP обычно используется в таких приложениях, как потоковое видео и Компьютерные игры, где допускается потеря пакетов, а повторный запрос затруднён или не оправдан, либо в приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения занимает больше ресурсов, чем повторная отправка.
И TCP, и UDP используют для определения протокола верхнего уровня число, называемое Порт .
Прикладной уровень
На прикладном уровне работает большинство сетевых приложений.
Эти программы имеют свои собственные протоколы обмена информацией, например, HTTP для WWW, FTP (передача файлов), SMTP (Электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.
В массе своей эти протоколы работают поверх TCP или UDP и привязаны к определённому порту, например:
- HTTP на TCP-порт 80 или 8080,
- FTP на TCP-порт 20 (для передачи данных) и 21 (для управляющих команд),
- SSH на TCP-порт 22,
- запросы DNS на порт UDP (реже TCP) 53,
- обновление маршрутов по протоколу RIP2|RIP на UDP-порт 520.
Эти порты определены Агентством по выделению имен и уникальных параметров протоколов (IANA).
Бесспорно, к этому уровню относятся: DHCP, Echo, Протокол finger|Finger, Gopher (сетевой протокол)|Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.
Источник: pl-e.ru
Архитектура стека протоколов TCP/IP
Стек протоколов TCP/IP (англ. Transmission Control Protocol/Internet Protocol — протокол управления передачей) — набор сетевых протоколов разных уровней модели сетевого взаимодействия DOD, используемых в сетях. Протоколы работают друг с другом в стеке (англ. stack, стопка) — это означает, что протокол, располагающийся на уровне выше, работает «поверх» нижнего, используя механизмы инкапсуляции. Например, протокол TCP работает поверх протокола IP.
Стек протоколов TCP/IP основан на модели сетевого взаимодействия DOD и включает в себя протоколы четырёх уровней:
· канального (data link).
Протоколы этих уровней полностью реализуют функциональные возможности модели OSI. На стеке протоколов TCP/IP построено всё взаимодействие пользователей в IP-сетях. Стек является независимым от физической среды передачи данных.
Физический уровень
Физический уровень описывает среду передачи данных (будь то коаксиальный кабель, витая пара, оптическое волокно или радиоканал), физические характеристики такой среды и принцип передачи данных (разделение каналов, модуляцию, амплитуду сигналов, частоту сигналов, способ синхронизации передачи, время ожидания ответа и максимальное расстояние).
Канальный уровень
Канальный уровень описывает, каким образом передаются пакеты данных через физический уровень, включая кодирование (то есть специальные последовательности бит, определяющих начало и конец пакета данных). Ethernet, например, в полях заголовка пакета содержит указание того, какой машине или машинам в сети предназначен этот пакет.
Примеры протоколов канального уровня — Ethernet, IEEE 802.11Wireless Ethernet, SLIP, Token Ring, ATM и MPLS.
PPP не совсем вписывается в такое определение, поэтому обычно описывается в виде пары протоколов HDLC/SDLC.
MPLS занимает промежуточное положение между канальным и сетевым уровнем и, строго говоря, его нельзя отнести ни к одному из них.
Канальный уровень иногда разделяют на 2 подуровня — LLC и MAC.
Сетевой уровень
Сетевой уровень изначально разработан для передачи данных из одной (под)сети в другую. Примерами такого протокола является X.25 и IPC в сети ARPANET.
С развитием концепции глобальной сети в уровень были внесены дополнительные возможности по передаче из любой сети в любую сеть, независимо от протоколов нижнего уровня, а также возможность запрашивать данные от удалённой стороны, например в протоколе ICMP (используется для передачи диагностической информации IP-соединения) и IGMP (используется для управления multicast-потоками).
ICMP и IGMP расположены над IP и должны попасть на следующий — транспортный — уровень, но функционально являются протоколами сетевого уровня, и поэтому их невозможно вписать в модель OSI.
Пакеты сетевого протокола IP могут содержать код, указывающий, какой именно протокол следующего уровня нужно использовать, чтобы извлечь данные из пакета. Это число — уникальный IP-номер протокола. ICMP и IGMP имеют номера, соответственно, 1 и 2.
К этому уровню относятся: DHCP [1] , DVMRP, ICMP, IGMP, MARS, PIM, RIP, RIP2, RSVP
Транспортный уровень
Протоколы транспортного уровня могут решать проблему негарантированной доставки сообщений («дошло ли сообщение до адресата?»), а также гарантировать правильную последовательность прихода данных. В стеке TCP/IP транспортные протоколы определяют, для какого именно приложения предназначены эти данные.
Протоколы автоматической маршрутизации, логически представленные на этом уровне (поскольку работают поверх IP), на самом деле являются частью протоколов сетевого уровня; например OSPF (IP идентификатор 89).
TCP (IP идентификатор 6) — «гарантированный» транспортный механизм с предварительным установлением соединения, предоставляющий приложению надёжный поток данных, дающий уверенность в безошибочности получаемых данных, перезапрашивающий данные в случае потери и устраняющий дублирование данных. TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие от UDP.
UDP (IP идентификатор 17) протокол передачи датаграмм без установления соединения. Также его называют протоколом «ненадёжной» передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протокол TCP.
UDP обычно используется в таких приложениях, как потоковое видео и компьютерные игры, где допускается потеря пакетов, а повторный запрос затруднён или не оправдан, либо в приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения занимает больше ресурсов, чем повторная отправка.
И TCP, и UDP используют для определения протокола верхнего уровня число, называемое портом.
См. также: Список портов TCP и UDP
Прикладной уровень
На прикладном уровне работает большинство сетевых приложений.
Эти программы имеют свои собственные протоколы обмена информацией, например, HTTP для WWW, FTP (передача файлов), SMTP (электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.
В массе своей эти протоколы работают поверх TCP или UDP и привязаны к определённому порту, например:
· HTTP на TCP-порт 80 или 8080,
· FTP на TCP-порт 20 (для передачи данных) и 21 (для управляющих команд),
· SSH на TCP-порт 22,
· запросы DNS на порт UDP (реже TCP) 53,
· обновление маршрутов по протоколу RIP на UDP-порт 520.
Эти порты определены Агентством по выделению имен и уникальных параметров протоколов (IANA).
К этому уровню относятся: Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.
Методы доступа в сети
Метод доступа – набор правил, определяющих использование сети.
Реализуется на физическом уровне.
Задачей метода доступа является решение вопроса об использовании кабеля, соединяющего пользователей в сети.
Метод Ethernet
Множественный доступ с прослушиванием несущей и разрешением конфликтов.
Любой ПК в сети «слышит» каждую передачу, однако не любой ПК ее принимает.
Любой ПК передает сообщение, в котором есть адрес приемника и отправителя. Все ПК слышат сообщения, но только один распознает его, принимает, посылает подтверждение.
Конфликт происходит, если два ПК одновременно передают сообщения. Тогда они прекращают передачу на случайный интервал времени, а затем возобновляют ее.
Метод Archnet
Метод доступа с эстафетной передачей для сети со звездообразной топологией.
ПК может передать сообщение, если получит маркер (token) – последовательность битов, созданную одним из ПК. Маркер перемещается по цепи как по кольцу. Все ПК имеют номер (от 0 до 255). Маркер идет от ПК к ПК. Когда ПК получает маркер, он может передать пакет данных (до 512 байт), включая адрес отправителя и приемника.
Весь пакет идет от узла к узлу, пока не достигнет адресата. В этом узле данные выводятся, а маркер идет дальше.
Преимущество данного метода – предсказуемость, т.к. известен путь маркера, т.е. можно посчитать, сколько нужно времени для передачи.
Недостаток – любой узел функционирует в качестве повторителя, принимая и регенерируя маркер. В случае неправильной работы маркер мржет быть искажен или потерян.
Метод TokenRing
Передача маркера по кольцу (кольцевая топология)
При получении пустого маркера ПК может передать сообщение в течении определенного времени. Такое сообщение называется кадр (frame). Приемник копирует сообщение в свою память, но не выводит его из кольца. Это делает передающий компьютер, когда получает свое сообщение обратно.
Существует механизм приоритетов.
Преимущество – надежность и простота.
Можно отключать неисправные ПК
Источник: cyberpedia.su