В связи с ограничением количества адресов IPv4, из-за роста пользователей глобальных сетей, адресов протокола IPv4 стало не хватать на все работающие ПК даже с учетом их динамического распределения.
В связи с тем, что больше пользователей Internet выступает в качестве потребителей информации и к ним нет необходимости подключаться со стороны внешней сети, была разработана технология NAT.
NAT (Network Address Translation – преобразование сетевых адресов) – механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.
Принцип работы NAT:
NAT делит сети на внешнюю и внутреннюю в зависимости от подключения к его сетевому интерфейсу. Когда узел внутренней сети хочет отправить сообщение во внешнюю сеть, это сообщение попадает в NAT, выступающий в качестве шлюза.
NAT в своей внутренней таблице формирует запись, в которой указывает внутренний адрес источника пакета, внутренний номер пакета, внешний адрес и внешний номер. В сообщении NAT меняет внутренний номер на внешний и в качестве адреса источника ставит свой внешний IP-адрес. Когда NAT получает ответ по номеру в таблице находится адрес и внутренний номер инициатора запроса. В полученном из вне пакете IP-адрес получателя заменяется внутренним IP-адресом инициатора и пакет отправляется во внутреннюю сеть.
Из внешней сети подключиться к какому-либо узлу внутренней сети невозможно из-за отсутствия соответствующей записи в таблице.
Существует механизм, называемый пробросом портов, который позволяет все пакеты пришедшие на определенный порт NATа пересылать на этот или другой порт заданного узла внутренней сети.
Достоинства NAT.
1) Позволяет сэкономить IP-адреса (только в случае использования NAT в режиме PAT), транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних).
2) Позволяет предотвратить или ограничить обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
3) Позволяет скрыть определённые внутренние сервисы внутренних хостов/серверов. По сути, выполняется та же указанная выше трансляция на определённый порт, но возможно подменить внутренний порт официально зарегистрированной службы (например, 80-й порт TCP (HTTP-сервер) на внешний 54055-й). Тем самым, снаружи, на внешнем IP-адресе после трансляции адресов на сайт (или форум) для осведомлённых посетителей можно будет попасть по адресу http://example.org:54055, но на внутреннем сервере, находящемся за NAT, он будет работать на обычном 80-м порту. Повышение безопасности и скрытие «непубличных» ресурсов.
Недостатки NAT.
1) Не все протоколы могут «преодолеть» NAT. Некоторые не в состоянии работать, если на пути между взаимодействующими хостами есть трансляция адресов. Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут исправить этот недостаток, соответствующим образом заменяя IP-адреса не только в заголовках IP, но и на более высоких уровнях (например, в командах протокола FTP).
2) Из-за трансляции адресов «много в один» появляются дополнительные сложности с идентификацией пользователей и необходимость хранить полные логи трансляций.
3) DoS со стороны узла, осуществляющего NAT – если NAT используется для подключения многих пользователей к одному и тому же сервису, это может вызвать иллюзию DoS-атаки на сервис (множество успешных и неуспешных попыток). Частичным решением проблемы является использование пула адресов (группы адресов), для которых осуществляется трансляция.
4) В некоторых случаях, необходимость в дополнительной настройке при работе с пиринговыми сетями и некоторыми другими программами, в которых необходимо не только инициировать исходящие соединения, но также принимать входящие. Однако, если NAT-устройство и ПО, требующее дополнительной настройки, поддерживают технологию Universal Plug & Play, то в этом случае настройка произойдет полностью автоматически и прозрачно для пользователя.
Протокол HTTP.
HTTP (HyperText Transfer Prоtocоl – «протокол передачи гипертекста») – протокол прикладного уровня передачи данных (изначально – в виде гипертекстовых документов). Основой HTTP является технология «клиент-сервер», т.е. предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом. Основным объектом манипуляции в HTTP является ресурс, на который указывает URI (Uniform Resource Identifier) в запросе клиента.
Гипертекст содержит в себе теги, которые определяют тип содержимого или рекомендацию по его представлению (отображению), а также ссылки URL на другие URI.
Браузер в зависимости от настроек пользователя может отбрасывать содержимое некоторых тегов, или игнорировать их предписания.
Достоинства HTTP.
- Простота
- Расширяемость - возможности протокола легко расширяются благодаря внедрению своих собственных заголовков, с помощью которых можно получить необходимую функциональность при решении специфической задачи. При этом сохраняется совместимость с другими клиентами и серверами: они будут просто игнорировать неизвестные им заголовки.
- Распространённость - обилие различной документации по протоколу на многих языках мира, включение удобных в использовании средств разработки в популярные IDE, поддержка протокола в качестве клиента многими программами и обширный выбор среди хостинговых компаний с серверами HTTP.
Недостатки HTP.
- Большой размер сообщений
- Отсутствие «навигации» (кроме внесенной автором страницы)
- Нет поддержки распределенности
Протокол SMTP.
SMTP (Simple Mail Transfer Protocol – простой протокол передачи почты) – сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.
ESMTP (Extended SMTP) - масштабируемое расширение протокола SMTP. В настоящее время под «протоколом SMTP», как правило, подразумевают ESMTP и его расширения.
SMTP используется для отправки сообщений от клиента на сервер и обмена сообщениями между серверами.
Для приёма почты, почтовый клиент должен использовать протоколы POP3 или IMAP. Работа с SMTP происходит непосредственно на сервере получателя. Поддерживает функции: установление соединения, аутентификация, передача данных.
Письма передаются открытым текстом с добавленным к тексту письма служебных заголовков, генерирующих почтовым клиентом и правилами кроме открытых пользователю, заголовков с темой письма, датой создания, адреса отправителя, они содержат описание почтового клиента, данные о маршруте письма, кодировку содержимого, наличие MIME расширений и др. информацию.
Протокол POP3.
POP3 (Post Office Protocol Version 3 – протокол почтового отделения версии 3) используется почтовым клиентом для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP. В отличие от SMTP, где идентификация и аутентификация отправителя необязательна, в протоколе POP3 «выдача» писем осуществляется на основании логина и пароля, но так же как и в SMTP, протокол POP3 без дополнительных опций логин, пароль и письма передает в открытом виде. Хотя большинство почтовых клиентов поддерживает защищенный протокол POP3S, активация систем шифрования на серверах началась с 2010 г.
Протокол IMAP.
IMAP (Internet Message Access Protocol – протокол доступ к электронной почте интернета) – протокол прикладного уровня для доступа к электронной почте. Аналогично POP3, служит для работы со входящими письмами, однако, обеспечивается дополнительные функции, в частности, возможность работы с электронной корреспонденцией без сохранения писем на компьютере пользователя.