Теория:сетевая модель tcp/ip
Содержание:
Пример переноса данных в IP-сети
На примере IP-сети (рис. 2) покажем перенос данных оконечной станции А локальной вычислительной сети (подсети) Ethernet в оконечную станцию В сети (подсети) АТМ. Как видно из рисунка в эту составную сеть еще входит сеть (подсеть) Frame Relay. В основу приведенного упрощенного описания положен пример межсетевого взаимодействия сетей Ethernet и АТМ, приведенный в работе. Дополнительно в эту составную сеть введена сеть (подсеть) Frame Relay. Принцип маршрутизации и краткое описание протоколов маршрутизации в сети Интернет приведены в следующей главе. Для того, чтобы технология TCP/IP могла решать задачу объединения сетей, ей необходима собственная глобальная система адресации, не зависящая от способов адресации узлов в отдельных подсетях. Таким адресом является IP-адрес, состоящий из адреса подсети (префикса) и адреса оконечного устройства (хоста). Приведем пример адресации подсети и хоста. IP-адрес 200.15.45.126/25 означает, что 25 старших бит из выделенных 4-х байт под адресацию являются адресом подсети, а оставшиеся 7 бит означают адрес хоста в этой сети.
Как видно из предыдущих глав, глобальные сети Frame Relay и АТМ имеют различные системы нумерации, которые отличаются от системы нумерации локальной вычислительной сети (ЛВС) технологии Ethernet. Каждый компьютер Ethernet имеет уникальный физический адрес, состоящий из 48 бит. Этот адрес называется МАС-адресом и относится к канальному уровню — управлению доступом к среде MAC (Media Access Control). Для организации межсетевого взаимодействия подсетей различной технологии и адресации используются маршрутизаторы, включающие IP-пакеты. В состав этих пакетов входят глобальные IP-адреса.
Каждый интерфейс маршрутизатора IP-сети и оконечного устройства включает два адреса – локальный адрес оконечного устройства подсети и IP-адрес.
Рис. 2. Пример взаимодействия двух устройств
Рассмотрим продвижение IP-пакета в сети (рис. 2).
- Пользователь компьютера А сети Ethernet, имеющий IP-адрес (IP-адрес 1), обращается по протоколу передачи файла FTP к компьютеру В, подключенному к сети АТМ и имеющий IP-адрес (IP-адрес 6).
- Компьютер А формирует кадр Ethernet для отправки IP-пакета. По таблице маршрутизации в компьютере А на основании IP-адресов А и В определятся маршрутизатор М1 и входящий интерфейс для передачи этого IP-пакета. При этом становится известен IP-адрес интерфейса маршрутизатора М1(IP-адрес 2).
- Компьютер А отправляет по сети Ethernet IP-пакет, инкапсулированный в кадр Ethernet и включающий следующие поля (рис. 3).
Рис. 3. Кадр Ethernet с инкапсулированным в него IP пакетом
МАС-адрес в заголовке кадра Ethernet занимает 6 байт. С помощью протокола разрешения адресов ARP (Address Resolution Protocol) определяются локальные адреса МАС-адрес 1 и МАС-адрес 2 по известным IP-адресам (IP-адрес 1 и IP-адрес 2). - Кадр принимается на входном интерфейсе маршрутизатора М1 в соответствии с протоколом Ethernet. Протокол Ethernet извлекает из принятого кадра IP-пакет, инкапсулированный в него. Из этого IP-пакета маршрутизатор М1 извлекает IP-адрес назначения (IP-адрес 6).
- С помощью таблицы маршрутизации в М1 определяются IP-адреса выходного интерфейса из М1 и входного интерфейса маршрутизатора М2, т.е. IP-адрес 3 и IP-адрес 4.
- По глобальным адресам IP-адрес 3 и IP-адрес 4 определяются соответственно локальные адреса подсети Frame Relay FR-адрес 1 и FR-адрес 2.
- IP-пакет передается по виртуальному каналу сети Frame Relay, используя при этом локальные адреса FR-адрес 1 и FR-адрес 2. Этот IP-пакет инкапсулирован в кадр FR.
- Кадр FR принимается на входном интерфейсе маршрутизатора М2 в соответствии с протоколом сети Frame Relay. Извлекается принятый IP-пакет, сбросив заголовок принятого кадра FR. Извлекается IP-адрес назначения (IP-адрес 6).
- С помощью таблицы маршрутизации в М2 определяется IP-адреса выходного интерфейса (IP-адрес 5) маршрутизатора М2 и IP-адрес назначения (IP-адрес 6). При этом глобальным адресам определяются соответствующие им локальные адреса АТМ-адрес 1 и АТМ-адрес 2. IP-пакет передается по виртуальному каналу сети АТМ, используя эти локальные адреса.
- В результате IP-пакет из компьютера А поступает в компьютер В.
Модель TCP/IP vs. модель OSI
Модель TCP/IP старше модели OSI. На следующем рисунке показана соответствующая взаимосвязь их уровней.
Рисунок 4: модель OSI vs модель TCP/IP и набор протоколов TCP/IP.
Сравнивая слои TCP/IP-модели, и модели OSI, прикладной уровень протокола TCP/IP-модели аналогичен комбинации слоев 5, 6, 7 модели OSI, но TCP/IP-модель не имеет отдельного уровня представления и сеансового уровня. Транспортный уровень протокола TCP/IP включает в себя функции транспортного уровня OSI и некоторые функции сеансового уровня модели OSI. Уровень доступа сети модели TCP/IP охватывает канальный и физический уровни модели OSI
Обратите внимание, что сетевой уровень TCP/IP не использует преимущества служб последовательности и подтверждения, которые могут присутствовать на канальном уровне передачи данных модели OSI. Это ответственность транспортного уровня в модели TCP/IP
Учитывая значения двух моделей, модель OSI является концептуальной моделью. Она в основном используется для описания, обсуждения и понимания отдельных сетевых функций. Однако, TCP/IP в первую очередь сконструирована для того чтобы разрешить специфический круг проблем, а не действовать как описание поколения для всех сетевых взаимодействий как модель OSI. Модель OSI является общей, независимой от протокола, но большинство протоколов и систем придерживаются ее, в то время как модель TCP/IP основана на стандартных протоколах, которые разработал интернет. Другой момент, который следует отметить в модели OSI заключается в том, что не все уровни используются в более простых приложениях. В то время как уровни 1, 2, 3 являются обязательными для любой передачи данных, приложение может использовать какой-то уникальный интерфейс уровня вместо обычных верхних уровней в модели.
Сетевая модель TCP/IP
Модель TCP/IP также является многоуровневой сетевой моделью, но это четырехуровневая модель. Он широко известен как TCP/IP, поскольку основными протоколами являются TCP и IP, но в этой модели используются не только эти два протокола.
Прикладной уровень
На прикладном уровне (Application layer) работает большинство сетевых приложений. Эти программы имеют свои собственные протоколы обмена информацией, например, HTTP для WWW, FTP (передача файлов), SMTP (электронная почта), SSH (безопасное соединение с удалённой машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.
Транспортный уровень
Транспортный уровень, также известный как транспортный уровень хост-хост, отвечает за предоставление прикладного уровня сервисами связи сеанса и датаграмм. Основными протоколами этого уровня являются TCP и UDP. Протокол TCP обеспечивает один-на-один, ориентированную на соединение, надежную службу связи. Он отвечает за последовательность и подтверждение отправленных пакетов, а также восстановление пакетов, потерянных при передаче. UDP предоставляет один-к-одному или один-ко-многим, без подключения, ненадежную службу связи. UDP обычно используется, когда объем передаваемых данных невелик (например, данные помещаются в один пакет).
Сетевой уровень
Сетевой уровень отвечает за адресацию хостов, упаковку и функции маршрутизации. Основными протоколами сетевого уровня являются IP, протокол разрешения адресов (ARP), протокол управляющих сообщений Интернета (ICMP) и протокол управления группами Интернета (IGMP). IP — это маршрутизируемый протокол, отвечающий за IP-адресацию, маршрутизацию и фрагментацию и повторную сборку пакетов. ARP отвечает за обнаружение адреса уровня сетевого доступа, такого как адрес аппаратных средств, связанный с данным доступом к Интернет-уровню. ICMP отвечает за предоставление диагностических функций и отчетов об ошибках из-за неудачной доставки IP-пакетов. IGMP отвечает за управление многоадресными группами IP. На этом уровне IP добавляет заголовок к пакетам, который известен как IP-адрес. Сейчас есть IPv4 (32-битный) адрес и IPv6 (128-битный) адрес.
Прикладные протоколы[править]
Большинство прикладных протоколов базируется на TCP.
У многих протоколов прикладного уровня для серверов определены стандартные порты, используемые по умолчанию. Самые известные прикладные протоколы и их стандартные порты:
- HTTP — основной протокол всемирной паутины (TCP-порт 80)
- SMTP — протокол пересылки почты (TCP-порт 25)
- FTP — протокол передачи файлов (TCP-порт 21)
- DNS — протокол сопоставления доменных имен IP-адресам (UDP-порт 53)
Благодаря использованию стандартных портов мы можем набирать в браузере адреса веб серверов и не указывать порт — наши браузеры сами добавляют стандартный номер порта. Например, адрес на самом деле полностью выглядит так:
Разумеется, стандартный — не значит обязательный. Практически во всех прикладных протоколах можно указать серверу слушать произвольный номер порта. Правда, тогда этот номер уже указывать обязательно, например
Порты в диапазоне от 1 до 1023 называются хорошо известными. Службы, которыми используются эти порты, должны быть описаны как RFC и одобрены IESG. Далее идут зарегистрированные порты (1024 — 49151). Вы можете зарегистрировать в IANA (эта организация как раз занимается всем этим) один или несколько из этих портов под свою программу. Оставшиеся порты с 49152 по 65535 можно использовать без какой-либо регистрации.
Номера портов (IANA)
Summary:
- The full form of TCP/IP model explained as Transmission Control Protocol/ Internet Protocol.
- TCP supports flexible architecture
- Application layer interacts with an application program, which is the highest level of OSI model.
- Internet layer is a second layer of the TCP/IP model. It is also known as a network layer.
- Transport layer builds on the network layer in order to provide data transport from a process on a source system machine to a process on a destination system.
- Network Interface Layer is this layer of the four-layer TCP/IP model. This layer is also called a network access layer.
- OSI model is developed by ISO (International Standard Organization) whereas TCP/IP model is developed by ARPANET (Advanced Research Project Agency Network).
- An Internet Protocol address that is also known as an IP address is a numerical label.
- HTTP is a foundation of the World Wide Web.
- SMTP stands for Simple mail transfer protocol which supports the e-mail is known as a simple mail transfer
- SNMP stands for Simple Network Management Protocol.
- DNS stands for Domain Name System.
- TELNET stands for Terminal Network. It establishes the connection between the local and remote computer
- FTP stands for File Transfer Protocol. It is a mostly used standard protocol for transmitting the files from one machine to another.
- The biggest benefit of TCP/IP model is that it helps you to establish/set up a connection between different types of computers.
- TCP/IP is a complicated model to set up and manage.
-
What are the different types of TCP/IP layers?
There are four types of TCP/IP layers.- Application layer
- Transport layer
- Internet layer
- Network interface
socket()¶
См.также
- http://unixhelp.ed.ac.uk/CGI/man-cgi?socket+2
Создаёт конечную точку соединения и возвращает файловый дескриптор.
Принимает три аргумента:
-
domain указывающий семейство протоколов создаваемого сокета
- AF_INET для сетевого протокола IPv4
- AF_INET6 для IPv6
- AF_UNIX для локальных сокетов (используя файл)
-
type
-
SOCK_STREAM (надёжная потокоориентированная служба (сервис) или
потоковый сокет) -
SOCK_DGRAM (служба датаграмм или датаграммный
сокет) - SOCK_RAW (Сырой сокет — сырой протокол поверх сетевого уровня).
-
SOCK_STREAM (надёжная потокоориентированная служба (сервис) или
-
protocol
Протоколы обозначаются символьными константами с префиксом IPPROTO_*
(например, IPPROTO_TCP или IPPROTO_UDP). Допускается значение
protocol=0 (протокол не указан), в этом случае используется значение по
умолчанию для данного вида соединений.
Примечание
Функция возвращает −1 в случае ошибки. Иначе, она возвращает целое число,
представляющее присвоенный дескриптор.
Пример на Си
#include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol);
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> void error(const char *msg) { perror(msg); exit(); } int main(int argc, char *argv[]) { int sockfd, portno, n; struct sockaddr_in serv_addr; struct hostent *server; char buffer256]; if (argc < 3) { fprintf(stderr,"usage %s hostname port\n", argv]); exit(); } // Задаем номер порта portno = atoi(argv2]); // Создаем сокет sockfd = socket(AF_INET, SOCK_STREAM, ); if (sockfd < ) error("ERROR opening socket"); // Конвертирует имя хоста в IP адрес server = gethostbyname(argv1]); if (server == NULL) { fprintf(stderr,"ERROR, no such host\n"); exit(); } // Указываем тип сокета Интернет bzero((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; // Указаваем адрес IP сокета bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); // Указываем порт сокета serv_addr.sin_port = htons(portno); // Устанавливаем соединение if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < ) error("ERROR connecting"); // Вводим сообщение из консоли printf("Please enter the message: "); bzero(buffer, 256); fgets(buffer, 255, stdin); // Отправляем данные n = write(sockfd, buffer, strlen(buffer)); if (n < ) error("ERROR writing to socket"); // Сбрасываем буфер bzero(buffer, 256); // Читаем ответ n = read(sockfd, buffer, 255); if (n < ) error("ERROR reading from socket"); printf("%s\n", buffer); close(sockfd); return ; }
Пример на Python
Маршрутизация[править]
Протокол IP требует, чтобы в маршрутизации участвовали все узлы (компьютеры). Длина маршрута, по которому будет передан пакет, может меняться в зависимости от того, какие узлы будут участвовать в доставке пакета. Каждый узел принимает решение о том, куда ему отправлять пакет на основании таблицы маршрутизации (routing tables).
Определение: |
Подсеть — логическое разбиение сети IP. |
Маска подсетиправить
Длина префикса не выводится из IP-адреса, поэтому протоколу маршрутизации вынуждены передавать префиксы на маршрутизаторы. Иногда префиксы задаются с помощью указания длины.
Определение: |
Маска подсети — двоичная маска, соответствующая длине префикса, в которой единицы указывают на сетевую часть. |
То есть маска подсети определяет как будут локально интерпретироваться IP адреса в сегменте IP сети, что для нас весьма важно, поскольку определяет процесс разбивки на подсети.
Стандартная маска подсети — все сетевые биты в адресе установлены в ‘1’ и все хостовые биты установлены в ‘0’.
Выполненение операции И между маской и IP-адресом позволяет выделить сетевую часть.
О маске подсети нужно помнить три вещи:
- Маска подсети предназначена только для локальной интерпретации локальных IP адресов (где локальный значит — в том же сетевом сегменте);
- Маска подсети — не IP адрес — она используется для локальной модификации интерпретации IP адреса.
Бесклассовая междоменная маршрутизацияправить
Изначально использовалась классовая адресация (INET), но со второй половины 90-х годов XX века она была вытеснена бесклассовой адресацией (CIDR), при которой количество адресов в сети определяется маской подсети.
Таблицы маршрутизации со временем сильно растут, и с этим нужно что-то делать. Маршрутизатор может узнавать о расположении IP-адресов по префиксам различной длины. Но вместо того чтобы разделять сеть на подсети, мы объединим несколько коротких префиксов в один длинный. Этот процесс называется агрегацией маршрута (route aggregation). Длинный префикс, полученный в результате, иногда называют суперсетью (supernet), в противоположность подсетям с разделением блоков адресов.
При агрегации IP-адреса содержатся в префиксах различной длины. Один и тот же IP-адрес может рассматриваться одним маршрутизатором как часть блока /22 (содержащего 210 адресов), а другим — как часть более крупного блока /20 (содержащего 212 адресов). Это зависит от того, какой информацией обладает маршрутизатор. Такой метод называется CIDR (Classless InterDomain Routing — бесклассовая междоменная маршрутизация).
Также префиксы могут пересекаться. Согласно правилу, пакеты передаются в направлении самого специализированного блока, или самого длинного совпадающего префикса (longest matching prefix), в котором находится меньше всего IP-адресов.
По сути CIDR работает так:
- Когда прибывает пакет, необходимо определить, относится ли данный адрес к данному префиксу; для этого просматривается таблица маршрутизации. Может оказаться, что по значению подойдет несколько записей. В этом случае используется самый длинный префикс. То есть если найдено совпадение для маски /20 и /24, то для выбора исходящей линии будет использоваться запись, соответствующая /24.
- Однако этот процесс был бы трудоемким, если бы таблица маршрутизации просматривалась запись за записью. Вместо этого был разработан сложный алгоритм для ускорения процесса поиска адреса в таблице (Ruiz-Sanchez и др., 2001).
- В маршрутизаторах, предполагающих коммерческое использование, применяются специальные чипы VLSI, в которые данные алгоритмы встроены аппаратно.
Классы IP-сетейправить
Раньше использовали классовую адресацию.
Сколько бит используется сетевым ID и сколько бит доступно для идентификации хостов (интерфейсов) в этой сети, определяется сетевыми классами.
Всего 5 классов IP-адресов: A, B, C, D, E.
Их структура и диапазоны указаны на рисунке.
Существует также специальные адреса, которые зарезервированы для ‘несвязанных’ сетей — это сети, которые используют IP, но не подключены к Internet. Вот эти адреса:
- Одна сеть класса A: 10.0.0.0
- 16 сетей класса B: 172.16.0.0 — 172.31.0.0
- 256 сетей класса С: 192.168.0.0 — 192.168.255.0
Стандартные маски подсети для трех классов сетей:
- A класс — маска подсети: 255.0.0.0
- B класс — маска подсети: 255.255.0.0
- C класс — маска подсети: 255.255.255.0
Статьи по теме тега: «Различие TCP и UDP»
http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>style=»padding-top:6px;padding-bottom:6px;»>
1: протокол передачи гипертекста 1: протокол HTTP определяет, как браузер запросит документацию на сервер и как передавать документы в браузер. С уровня иерархии HTTP-протокол представляет собой прото…
Сводка отличия TCP и UDP: Второй, TCP и UDP Преимущества и недостатки В-третьих, шаги программирования UDP и TCP также несколько разные….
TCP TCP (протокол управления передачей, протокол управления передачей), представляет собой протокол управления передачей, является протоколом транспортного уровня связи Особенности: подключение…
Транспортный уровень отвечает за данные, которые могут быть переданы от отправителя к получателю. Отвечает за сквозную передачу. Сквозная передача эквивалентна передаче данных между двумя процессами. …
Трансфер из:https://www.cnblogs.com/LUO77/p/5801977.html Разница между TCP и UDP Различия в программировании TCP и UDP Основные шаги на стороне сервера для программирования TCP: 1. Создайте сокет, исп…
1. TCP: протокол управления передачей. TCP предоставляет надежные, ориентированные на соединение сервисы для приложений (то есть то, что мы обычно называем надежными протоколами передачи). Порт источн…
Базовое объяснение сети: https://blog.csdn.net/Z_JUAN1/article/details/81281606 Сокет общий API Существует интерфейс от уровня приложения до транспортного уровня: интерфейс API сокета Следовате…
оригинал:https://www.cnblogs.com/chengzhengfu/p/4584510.html 1. Концепция 1. TCP / IP — это группа протоколов, которую можно разделить на три уровня: сетевой уровень, транспортный уровень и прикладной…
Протокол UDP (протокол пользовательских дейтаграмм) Протокол UDP не требует соединения: вам нужно знать только IP-адрес и номер порта для отправки данных. Нет необходимости устанавливать соединение, и…
JDK 1.8 Один, TCP связь Создать TCP-сервер, приемник данных TCPClient, отправка данных Запустите сервер и клиент соответственно, консоль сервера успешно получит сообщение, отправленное клиентом Во-вто…
1. В чем разница между TCP и UDP? 1. TCP ориентирован на соединение, а UDP — без соединения. установить соединение: Чтобы поддерживать соединение между клиентом и сервером, для поддержания состояния в…
1. UDP 1.UDP User Datagram Protocol — это протокол транспортного уровня без установления соединения в эталонной модели OSI (Open System Interconnection), который предоставляет простые и ненадежные усл…
UDP и TCP На транспортном уровне TCP / IP существует два основных протокола: протокол дейтаграмм пользователя UDP и протокол управления передачей TCP. Основные особенности UDP: 1. UDP не имеет соедине…
TCP/UDPНачальные знания и понимание TCP(Протокол управления передачей)с участиемUDP(Протокол пользовательских датаграммВсе протоколы являются протоколами транспортного уровня, и они, а также протоколы…
Для 7-уровневой сетевой модели OSI (физический уровень, уровень канала данных, сетевой уровень, транспортный уровень, сеансовый уровень, уровень представления, прикладной уровень) и TCP, и UDP относят…
Настройка протокола TCP/IP
Далее, на каких системах можно настроить обозначенные протоколы?
Настройка протокола TCP/IP доступна на всех операционных системах. Это — Linux, CentOS, Mac OS X, Free BSD, Windows 7. Протокол TCP/IP требует только наличия сетевого адаптера. Разумеется, серверные операционные системы способны на большее. Очень широко, с помощью серверных служб, настраивается протокол TCP/IP. IP адреса в в обычных настольных компьютерах задаются в настройках сетевых подключений. Там настраивается сетевой адрес, шлюз — IP адрес точки, имеющий выход в глобальную сеть, и адреса точек, на которых располагается DNS сервер.
Протокол интернета TCP/IP может настраиваться в ручном режиме. Хотя не всегда в этом есть необходимость. Можно получать параметры протокола TCP/IP с динамически-раздающего адреса сервера в автоматическом режиме. Такой способ используют в больших корпоративных сетях. На DHCP сервер можно сопоставить локальный адрес к сетевому, и как только в сети появится машина с заданным IP адресом, сервер сразу даст ему заранее подготовленный IP адрес. Этот процесс называется резервирование.
Выводы
Стек модели TCP/IP контролирует взаимодействие различных уровней системы. Ключевыми в нем являются сами протоколы, которые встраиваются друг в друга и обеспечивают передачу данных. Однако если сравнивать модель с OSI, то ее архитектура более простая. Также стоит отметить, что стандарты протоколов постоянно обновляются, в то время как принцип действия TCP/IP остается неизменным.
Надеемся, что вы разобрались в том, что такое TCP/IP и в чем заключаются принципы его работы. Если у вас остались вопросы по теме, то специалисты Xelent обязательно ответят на них.
Популярные услуги
Миграция вашей инфраструктуры в облако за 1 день
Перенесите Вашу физическую инфраструктуру в облако за 1 день.
Размещение серверов (colocation)
Мы советуем размещать сервера на ru-площадках, находящихся в регионе, где работает ваша компания. Это нужно для максимального качества связи. Наши клиенты могут воспользоваться хостингом для размещения серверов в ЦОД Санкт-Петербурга и Москвы.
Публичное облако на базе VMware
Публичное облако на базе VMware позволяет быстро расширить ИТ-инфраструктуру без значительных вложений в модернизацию оборудования.