История развития сетей. Сетевые архитектуры, достоинства и недостатки. Эталонная модель OSI, описание уровней. Модель TCP/IP. Почтовые агенты. Браузеры, страница 7

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

UDP (User Datagram Protocol) – протокол датаграмм пользователя, предназначен для передачи больших массивов данных, он более простой, чем TCP, но менее надежный

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

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

поле - "контрольная сумма" - позволяет поддерживать целостность данных.

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

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

11. Порты.

Протокол TCP осуществляет связь между программами и для того чтобы понять какой программе предназначена информация он использует адрес программы. Этот адрес называется порт. Программы Internet используют определенные номера портов для определенных приложений. Протокол передачи файлов FTP использует порт 21, протокол удаленного терминала (Telnet Protocol) использует порт 23. Протокол простой передачи почты SMTP использует порт 25, протокол точного времени использует порт 37, время суток – порт 13, протокол «кто есть кто» Whois Protocol – порт 43, информация о пользователях Finger – 79 порт.

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

     Например, сервер SNMP всегда ожидает поступлений  сообщений  в  порт 161.   Если клиент SNMP желает получить услугу, он посылает запрос в UDP-порт 161 на машину, где работает сервер.  В каждом узле может быть только один  сервер  SNMP,  так как существует только один UDP-порт 161.  Данный номер порта является общеизвестным, то есть фиксированным номером, официально выделенным для услуг SNMP.  Общеизвестные номера определяются стандартами Internet.

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

12. Протокол TCP, выбор транспортного протокола.

TCP (Transport Control Protocol) – протокол, управляющий передачей, это протокол транспортного уровня, осуществляющий передачу данных с контролем ошибок.

Протокол TCP ориентирован на соединение, здесь уместна аналогия с телефонным разговором, поскольку TCP ждет ответа от приложения с которым он общается через порт. Ответ нужен протоколу TCP для отслеживания правильности передачи пакетов. Может показаться странным что надежный протокол TCP пользуется не надежным протоколом IP не ориентированным на соединение и тем не менее протокол TCP остается ориентированным на соединение. Обеспечение надежности удается протоколу TCP за счет подтверждений, как только приемник получает блок данных он передает подтверждение о приеме источнику данных, каждый раз при передаче сообщения протокол TCP запускает специальный таймер, по истечение определенного времени протокол TCP повторяет попытку передачи сообщения, если подтверждение о приеме не было получено.  Это простой способ передачи и работает он крайне не эффективно, поскольку одна из сторон все время ждет подтверждения о доставке от другой стороны. Для повышения эффективности передачи протокол TCP работает по другому, он использует метод «скользящего окна», когда сразу посылается несколько сообщений. (Сообщения – подтверждения- прием подтверждений – передача очередного пакета сообщений). Такой метод позволяет существенно ускорить процесс передачи. Если при передаче сообщения с номером i подтверждение о приеме не получено, в этом случае протокол TCP смещает начало окна сообщений к сообщению с номером i, то есть сообщение с номером i становится первым в новом окне сообщений и процесс передачи сообщений с использованием «скользящего окна» повторяется снова.