Транспортные протоколы TCP и UDP
Сетевые службы и протоколы.
Сетевые протоколы фактически управляют сетью, указывая сетевым устройствам, что они должны делать. Сетевые протоколы - это набор правил по которым работает сеть. Для передачи информации по сети, компьютеры должны использовать один и тот же набор правил, т.е. единый сетевой протокол.
Сетевые службы предназначены для выполнения определенных функций, в рамках действующего протокола, например служба разрешения имен, служба автоматического выделения адресов и т.д.
Существует множество типов сетевых протоколов, работающих в разных сетях и на разных уровнях модели OSI. Вот некоторые из них:
TCP/IP
NetBEUI
IPX/SPX
NWLink
Apple Talk
DLC
Протоколы удаленного доступа
В состав операционных систем Windows входит служба Routing and Remote Access Service (RRAS), которая позволяет удаленным клиентам прозрачно подключаться к удаленному серверу. Служба RRAS поддерживает три протокола удаленного доступа:
Point-to-Point Protocol(PPP) - стандартизованный набор протоколов обеспечивающий:
механизм согласования параметров устройств передачи данных;
механизм сжатия передаваемой информации с целью повышения эффективности и надежности передачи;
механизм обнаружения и исправления ошибок;
механизмы защиты, предотвращающие несанкционированные подключения.
Serial Line Internet Protocol(SLIP) - простой протокол, не располагающий средствами обнаружения ошибок, возникающих при передаче данных, и позволяющий использовать только один протокол сетевого уровня - IP, что делает его малоэффективным.
Asynchronous NetBEUI (AsyBEUI) - протокол службы удаленного доступа Microsoft, известный также как асинхронный NetBEUI; применяется устаревшими клиентами удаленного доступа под управлением Windows NT, Windows 3.1, Windows for Workgroups, MSDOS и LAN Manager.
Стек протоколов TCP/IP.
Стек TCP/IP - набор протоколов, разработанных для обеспечения взаимосвязи различных устройств в сети Интернет. Стек включает следующие протоколы
Протокол IP (Internet protocol) - основной протокол сетевого уровня. Определяет способ адресации на сетевом уровне. Обеспечивает маршрутизацию в сетях, представляющих собой объединение сетей, базирующихся на разных сетевых технологиях.
Протокол ARP (Address Resolution Protocol) - вспомогательный протокол стека TCP/IP, предназначенный для определения аппаратного адреса узла назначения по заданному IP-адресу.
Протокол ICMP(Internet Control Message Protocol) - вспомогательный протокол стека TCP/IP, предназначенный для обмена информацией об ошибках передачи данных протоколом IP, а также для обмена управляющей информацией на сетевом уровне. В частности, утилита PING использует этот протокол для посылки так называемого "эхо-запроса".
Протокол IGMP(Internet Group Management Protocol) - протокол, используемый для отправки данных определенной группе получателей.
Протокол TCP (Transmission Control Protocol) - протокол, обеспечивающий гарантированную доставку данных с установлением виртуального соединения между программами, которым требуется использовать сетевые услуги. Установление виртуального соединения предполагает, что получатель готов к приему данных от конкретного отправителя. Это означает, что все параметры взаимодействия согласованы, и компьютер-получатель выделил соответствующие ресурсы для обеспечения приема.
Протокол UDP (User Datagram Protocol) - протокол, обеспечивающий негарантированную доставку данных без установления виртуального соединения между программами, которым требуется использовать сетевые услуги.
Транспортные протоколы TCP и UDP.
Протокол IP обеспечивает доставку данных между двумя (или более) компьютерами. Однако на одном узле может функционировать параллельно несколько программ, которым требуется доступ к сети. Следовательно, данные внутри компьютерной системы должны распределяться между программами. Поэтому, при передаче данных по сети недостаточно просто адресовать конкретный узел. Необходимо также идентифицировать программу-получателя, что невозможно осуществить средствами сетевого уровня.
Другой серьезной проблемой IP является невозможность передачи больших массивов данных. Протокол IP разбивает передаваемые данные на пакеты, каждый из которых передается в сеть независимо от других. В случае если какие-либо пакеты потерялись, то модуль IP на принимающей стороне не сможет обнаружить потерю, т.е. нарушение целостности общего массива данных.
Для решения этих проблем разработаны протоколы транспортного уровня TCP и UDP.
Идентификация программ в протоколах TCP и UDP обеспечивается уникальными числовыми значениями, так называемыми номерами портов. Номера портов назначаются программам в соответствии с ее функциональным назначением на основе определенных стандартов. Для каждого протокола существуют стандартные списки соответствия номеров портов и программ. Так, например, программное обеспечение WWW, работающее через транспортный протокол TCP, использует TCP-порт 80, а служба DNS взаимодействует с транспортными протоколами TCP и UDP через TCP-порт 53 и UDP-порт 53 соответственно.
Таким образом, протокол сетевого уровня IP и транспортные протоколы TCP и UDP реализуют двухуровневую схему адресации: номера TCP- и UDP-портов позволяют однозначно идентифицировать программу в рамках узла, однозначно определяемого IP-адресом. Следовательно, комбинация IP-адреса и номера порта позволяет однозначно идентифицировать программу в сети Интернет. Такой комбинированный адрес называется сокетом(socket).
Дополнительно к этому протокол TCP обеспечивает гарантированную доставку данных. Принцип гарантированной доставки основан на том, что передающий компьютер всегда "знает", были ли доставлены данные получателю или нет. Это обеспечивается тем, что принимающий компьютер подтверждает успешный прием данных. Если передающий компьютер не получает подтверждения, он пытается произвести повторную передачу. Режим передачи с гарантией доставки имеет существенный недостаток - сеть дополнительно загружается пакетами-подтверждениями. Это может оказаться принципиальной проблемой на каналах с низкой производительностью. Поэтому для передачи небольших порций данных, если нет необходимости в подтверждении, или для передачи потоковых данных (например, видео или аудио) используется протокол передачи с негарантированной доставкой UDP.