Межсетевой уровень определяет официальный формат пакета и протокол IP, с дополнительным протоколом ICMP (Internet Control Message Protocol, межсетевой протокол управления сообщениями). Задачей межсетевого протокола является доставка IP-пакетов к пунктам назначения. Основными аспектами здесь являются выбор маршрута пакета и недопущение закупорки транспортных артерий (хотя IP не оказался эффективным для избегания скоплений).
Рис. 1.18. Эталонная модель TCP/IP
Транспортный уровень
Уровень, расположенный над межсетевым уровнем модели TCP/IP, как правило, называют транспортным. Он создан для того, чтобы объекты одного ранга на приемных и передающих хостах могли поддерживать связь, подобно транспортному уровню модели OSI. На этом уровне должны быть описаны два сквозных протокола. Первый, TCP (Transmission Control Protocol — протокол управления передачей), является надежным протоколом с установлением соединений, позволяющим без ошибок доставлять байтовый поток с одной машины на любую другую машину объединенной сети. Он разбивает входной поток байтов на отдельные сообщения и передает их межсетевому уровню. На пункте назначения получающий TCP-процесс собирает из полученных сообщений выходной поток. Кроме того, TCP осуществляет управление потоком, чтобы быстрый отправитель не завалил информацией медленного получателя.
Второй протокол этого уровня, UDP (User Dataram Protocol — протокол пользовательских дейтограмм2), является ненадежным протоколом без установления соединения, не использующим последовательное управление потоком протокола TCP, а предоставляющим свое собственное. Он также широко используется в одноразовых клиент-серверных запросах и приложениях, в которых оперативность важнее аккуратности, например при передаче речи и видео. Взаимоотношения протоколов IP, TCP и UDP показаны на рис. 1.19. Со времени создания протокола IP этот протокол был реализован во многих других сетях.
Рис. 1.19. Протоколы и сети в модели TCP/IP
Прикладной уровень
В модели TCP/IP нет сеансового уровня и уровня представления. В этих уровнях просто не было необходимости, поэтому они не были включены в модель. Вместо этого приложения просто включают все функции сеансов и представления, которые им нужны. Опыт работы с моделью OSI доказал правоту этой точки зрения: большинство приложений мало нуждаются в этих уровнях.
Над транспортным уровнем располагается прикладной уровень. Он содержит все протоколы высокого уровня. К старым протоколам относятся протокол виртуального терминала (TELNET), протокол переноса файлов (FTP) и протокол электронной почты (SMTP). С годами было добавлено много других протоколов. Некоторые наиболее важные, которые мы рассмотрим, показаны на рис. 1.19. Это DNS (Domain Name Service — служба имен доменов), позволяющая преобразовывать имена хостов в сетевые, HTTP, протокол, используемый для создания страниц на World Wide Web, а также RTP, протокол для представления мультимедиа в реальном времени, таких как звук или фильмы.
1.4.3. Модель, используемая в книге
Как упомянуто ранее, сила эталонной модели OSI — сама модель (минус представление и уровни сеансов), которая оказалась исключительно полезной для обсуждения компьютерных сетей. Напротив, сила эталонной модели TCP/IP — протоколы, которые широко использовались много лет. Чтобы совместить эти качества, мы будем использовать в книге гибридную модель, показанную на рис. 1.20.
Рис. 1.20. Эталонная модель, используемая в этой книге
Задача сетевого уровня объединить многочисленные каналы в сети и сети сетей, а также в объединенные сети, чтобы мы могли посылать пакеты между удаленными компьютерами. Это включает задачу обнаружения пути, по которому можно послать пакеты. IP — основной протокол, который мы изучим в качестве примера для этого уровня. Транспортный уровень усиливает гарантии доставки сетевого уровня, обычно с увеличенной надежностью, и обеспечивает параметры доставки, такие как надежный поток байтов, соответствующий потребности различных приложений. TCP — важный пример протокола транспортного уровня.
Наконец, прикладной уровень содержит программы, которые используют сеть. У многих, но не всех сетевых приложений есть пользовательские интерфейсы, такие как веб-браузер. Нас интересует, однако, та часть программы, которая использует сеть. Это — протокол HTTP в случае веб-браузера. Есть также важные программы поддержки в прикладном уровне, такие как DNS, которые используются многими приложениями.