Глобальная сеть интернет. Протоколы TCP/IP
На сегодняшний день, популярность глобальной сети Internet доходит до массового безумия. Если ещё раньше, лет 10 назад, люди только-только начинали изучать возможности сетевых услуг, то сейчас многие не представляют свою жизнь без интернета. Но как же тут всё работает? Как происходит, к примеру, общение по чатам и серфинг по веб-страничкам? Вот про это я Александр Макаров и попробую сейчас рассказать.
Напомню, что есть два схожих понятия: Internet и Intranet. Второе понятие подразумевает собой работу сетевых устройств в рамках какой-то локальной области (к примеру, два или 10 компьютеров, которые соединены между собой сетевыми кабелями). Первое же понятие, Internet, по большей части относится к так называемой внешней глобальной сети, где уже между собой соединены компьютеры по всему миру.
Чтобы понять, как осуществляется данная связь в подобных сетях, нужно разобраться в принципах работы такого сетевого протокола как TCP/IP (Transmission Control Protocol / Internet Protocol). Здесь TCP работает поверх IP, и часто можно увидеть такие фразы как "на стеке протоколов TCP/IP...".
Данные протоколы спроектированы не совсем по стандарту модели OSI, так как уровни в этих обеих моделях не совпадают полностью. Но если говорить про TCP/IP в рамках OSI, то говорят о следующих спроектированных уровнях:
1. Физический уровень. Он подразумевает под собой среду передачи данных, используя "физические" ресурсы, такие как электрические провода (коаксиальный кабель, оптоволокно), либо воздух (радиопередача). Ну и так же все другие способы передачи информации на расстоянии.
2. Канальный уровень. Здесь можно перечислить такие протоколы как IEEE 802.11 (WiFi сеть), Wireless Ethernet (сеть мобильных устройств, беспроводная передача информации), HDLC/SDLC (что-то похожее на PPP, который используется в модемах). То есть, можно сказать, что на этом уровне происходит обработка описаний того, каким образом передаётся информация (сетевые пакеты) через физический уровень. Как правило, данная передача сопровождается определённым кодированием.
Канальный уровень разделяется на два подуровня: MAC и LLC. Замечу, что этот MAC как раз и есть многим известное понятие как MAC-адрес сетевой карты.
3. Сетевой уровень. Первоначально этот уровень проектировался для передачи данных из одной сети в другую. К примеру, реализация X.25 и IPC в сети ARAPNET.
Со временем в данный уровень были внесены существенные добавления функциональностей. Такими примерами служат появления протоколов ICMP и IGMP. Первый используется для передачи некоторой диагностической информации по IP, а второй используется для работы с multicast-потоками.
Протоколы IGMP и ICMP располагаются "выше" IP и, соответственно, должны попадать на транспортный уровень, который идёт следом.
4. Транспортный уровень. На данном уровне реализована сама транспортировка сообщений. Она может решать проблему как негарантированной доставки, (не ясно пришли ли пакеты до адресата), так и заниматься правильной последовательностью прихода и ухода сообщений (гарантированная доставка).
Примером негарантированной доставки служит протокол UDP. Этот протокол обеспечивает передачу датаграмм, когда как соединение не обязательно должно быть установленным. Через UDP невозможно удостовериться о конечной доставке отправленных сообщений, и он не даёт никаких гарантий на данную операцию. Поэтому в приложениях, где необходима гарантия передачи всей информации, используют протокол TCP. TCP является гарантированным транспортным механизмом, который предоставляет надёжный поток данных.
5. Сенсорный уровень и 6. Предварительный уровень по модели OSI включены в один общий седьмой Прикладной уровень.
7. Прикладной уровень. На этом уровне работают практически все сетевые приложения (в частности Internet).
Этот уровень, позволил программам создавать свои индивидуальные интернет протоколы обмена данных: HTTP для WWW, FTP для передачи файлов, SMTP для реализации электронной почты, SSH для безопасного соединения с другим компьютером, DNS для преобразования доменных имён в IP-адреса.
Замечу, что все эти протоколы работают поверх TCP (или UDP) с привязкой к определённому порту: HTTP на 80 или 8080, FTP на 20 и 21, SSH на 22, DNS на 53 (здесь чаще используется UDP порт, нежели TCP, как у других).
Ну и под конец добавлю, что к этому уровню можно отнести ещё следующие интернет протоколы: DHCP, IMAP, IRC, HTP, POP3 и Telnet.
Тематические статьи