Tcp/ip

Пакетная передача данных

Когда один компьютер хочет передать что-то другому, то он не отправляет байт за байтом по очереди. Вместо этого он отправляет данные мелкими порциями, а получатель собирает из них исходные данные. Этим как раз занимаются протоколы — разбивают всё на части и склеивает заново, потому что каждый пакет пронумерован.

Пакет может быть размером от 1 до 64 килобайт, но в нём всегда есть несколько обязательных полей — по ним протокол понимает, кому какие данные нужно передать.

Протокол IP разбивает исходные данные на пронумерованные пакетыВ каждом пакете: адреса отправителя и получателя, служебная информация, номер пакета и сами данные. Так получатель сможет собрать исходные данные и ответить, что они дошли без потерь

IP[править]

IP — протокол, лежащий в основе Интернета, его название так и расшифровывается: Internet Protocol.

В настоящее время используются следующие две версии протокола IP:

  • IPv6 — сравнительно новая (текущая версия спецификации опубликована в декабре 1998); IP-адрес имеет разрядность 128 бит и записывается в виде восьми 16-битных полей, с использованием шестнадцатеричной системы счисления и с возможностью сокращения двух и более последовательных нулевых полей до ; пример: ;
  • IPv4 — «классическая» (1981 г.); IP-адрес имеет разрядность 32 бита и записывается в виде четырех десятичных чисел в диапазоне 0 … 255 через точку; пример: .

Каждый узел может напрямую связаться только с узлами своей сети (например: подключенными к тому же сегменту Ethernet), для определения которых используется адрес сети — часть IP-адреса, определяемая маской сети. Связь с узлами других сетей осуществляется через промежуточные узлы — маршрутизаторы.

Посмотреть, как выглядит маршрут пакета от вашего компьютера к другим узлам, можно с помощью команды traceroute (в Linux) или tracert (в Windows).

TCP/IP: все о четырех уровнях

В отличие от модели OSI, TCP/IP имеет четыре уровня:

  • Доступ к сети
  • Интернет
  • Транспорт
  • Заявление

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

№1. Доступ к сети (уровень 1)

Этот нижний уровень отвечает за физическое соединение и передачу данных между компьютерами. Другими словами, как данные физически передаются.

Некоторые примеры включают среду, используемую для передачи данных (оптоволокно, беспроводная связь и т. д.), структуру пакета и сопоставление IP-адресов с физическими адресами, используемыми в сети.

В целом, он включает в себя все, что составляет техническую инфраструктуру сетей, включая драйверы устройств и кабели.

RFC 826 (протокол разрешения адресов) — это один из протоколов этого уровня, который сопоставляет IP-адреса с адресами Ethernet.

Уровень доступа к сети скрыт от пользователей и является основой всей модели.

№ 2. Интернет (уровень 2)

Интернет-уровень обрабатывает трафик данных для обеспечения скорости и точности связи.

Данные объединяются в IP-датаграммы, которые включают в себя адрес источника и адрес назначения. Интернет-уровень может пересылать, определять путь и обрабатывать логическую адресацию.

Он должен иметь дело с адресами, независимо от того, находится ли он на стороне отправки/получения.

Учитывая, что он включает в себя адрес источника и назначения. Таким образом, он должен гарантировать, что пакеты данных достигают места назначения правильно и в правильном порядке.

№3. Транспорт (уровень 3)

Транспортный уровень работает с той же целью, что и агенты доставки для Amazon. Брандмауэр также сопровождает этот уровень.

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

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

При отправке сообщения на прикладной уровень основное внимание уделяется количеству отправляемых данных, их порядку и тому, куда они отправляются. А при получении сообщения с прикладного уровня это помогает в десегментации и проверке ошибок

На этом уровне действуют такие протоколы, как TCP и UDP. Чтобы у вас часто была надежная связь.

№ 4. Приложение (уровень 4)

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

Сюда включены пользовательский интерфейс и службы приложений. На этом уровне существуют такие процессы, как шифрование, дешифрование, сжатие и распаковка. Это также помогает форматировать сообщения для правильной отправки транспортного уровня (и получения/интерпретации принимающим приложением).

Такие протоколы, как DNS, HTTP, FTP и SMTP, работают с этим уровнем, чтобы гарантировать, что вы начнете успешно отправлять/получать данные в сети.

Как происходит передача информации

Трансфер пакетов от одного сетевого узла другому обеспечивает протокол IP — протокол сетевого уровня. Чтобы данные перешли от хоста-отправителя к хосту-получателю, необходимо сообщить IP-адрес получателя и отправителя, а также указать номер порта. Сочетание IP-адреса и номера порта по которому осуществляется передача данных называют сокетом. Для упрощения стандартов, принято использовать определенные порты в зависимости от функционального предназначения приложения. Так, например, почтовый SMTP-сервер слушает 25 порт, POP3-сервер настроен на 110 порт и т.д. Большинство приложений на ПК являются клиентами и номера портов для них выделяются динамически операционной системой. Серверные порты имеют номер до 1024, клиентские порты идут с большим значением. Скажем, сокет при обращении к серверу на порт HTTP может быть представлен как: 194.106.118.30:80. Ответ же в данном случае будет поступать на сокет вида aaa.bbb.ccc.ddd:xxxxx.

 Чтобы иметь возможность обращаться к тому или иному сетевому интерфейсу, протоколом применяются IP-адреса, соответствующие одной из двух версий протокола: IPv4 и IPv6. Для версии IPv4 используются 32-битные адреса по 4 октета (восемь позиций под ноль или единицу). Благодаря IP-адресам, закрепленным за пакетами данных, сеть определяет, с какого узла тот или иной пакет поступил и к какому хосту его следует отправить. Применять длинные адресные записи из тридцати двух нулей и единиц не очень удобно, поэтому IP-адрес решили указывать в десятичной системе. Поскольку адресное пространство протокола IPv4 ограничено 4 294 967 296 (два в степени 32) адресами, была разработан обновленный вариант протокола – IPv6, в котором используется длина адреса в 128 бит.

Для удобства адресации, вместо числовых значений применяются символьно-цифровое имя хоста. Чтобы преобразовать IP-адрес в доменное имя применяется сервис доменных имен DNS (Domain Name Server). DNS мониторит 53-й порт UDP (реже – TCP).

Глобальная сеть состоит из множества соединенных локальных сетей. Эта особенность повлияла на запись IP-адреса: она включает в себя как данные об адресе сети, так и информацию об адресе хоста в этой сети. Чтобы можно было определить, где заканчивается адрес сети и начинается адрес компьютера в этой сети, придумали маску подсети. Это своего рода инструкция, которая говорит о том, как следует читать IP-адрес, где граница между адресом сети и адресом хоста.

Теория¶

Обмен информацией между компьютерами (по проводному соединению или нет) происходит путем передачи пакетов (фрагментов) данных через сеть.
Такая передача должна проходить по определённым правилам или стандартам, которые и называют протоколом передачи данных.

Протокол передачи данных — это набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами.

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

Уровни модели TCP/IP:

Уровень

За что отвечает

Протоколы

4 уровень — Прикладной

Формат данных, их шифрование

HTTP (веб-страницы), SMTP (почта), FTP (файлы)

3 уровень — Транспортный

Способ передачи данных

TCP, UDP

2 уровень — Сетевой

Маршрутизация в сети

IP

1 уровень — Сетевых интерфейсов

Физическая передача данных

Ethernet, Wi-Fi

Общий ход передачи информации выглядит следующим образом:

1.4 Виртуальная цепь

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

Рисунок 1.16: Виртуальная цепь

На рисунке 1.16 между узлами A и D создана виртуальная цепь, проходящая через узлы B, F и G. Все пакеты должны проходить по этой цепи.

Датаграммы могут передаваться по виртуальной цепи двумя способами:

  • Цепь не гарантирует доставку датаграммы. (Если возникает перегрузка сети, цепь может отбрасывать датаграммы.) Примером является протокол Frame Relay.
  • Виртуальная цепь может установить соединение и гарантировать доставку данных, т.е. пакеты передаваемых данных считаются, и получатель подтверждает получение. Если данные теряются, высылается запрос на повторную передачу данных. Подобный механизм используется, например, в протоколе X.25.

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

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

Рисунок 1.17: IP не использует виртуальные цепи

На Рисунке 1.17 показано, что IP-датаграммы 1, 2 и 3 идут из узла A в узел B, но в этой точке датаграммы 1 и 3 направляются по маршруту, отличному от датаграммы 2. Получатель (узел D) достигается ими разными путями. Обычно IP-датаграммы могут достигать получателя в порядке, отличном от того, в котором они были посланы. Поэтому IP-датаграммы могут быть получены в следующем порядке: 2, 1, а затем 3.

В иерархии Интернета TCP является протоколом высокого уровня, который устанавливает соединение и гарантирует доставку данных. Он используется поверх протокола IP. Если какие-либо пакеты данных потеряны, требуется их повторная передача. Если пакеты данных были потеряны из-за разрушения узла и в сети есть другой возможный маршрут, передача автоматически повторяется по другому пути.

Виртуальные цепи разделяются на следующие группы:

  • Постоянные (Постоянные Виртуальные Цепи — Permanent Virtual Circuit (PVC)), т.е. цепи, созданные сетевым администратором на постоянной основе.
  • Коммутируемые (Коммутируемые Виртуальные Цепи — Switched Virtual Circuit (SVC)), т.е. виртуальные цепи, которые создаются динамически при необходимости. SVC создается с помощью сигнальных протоколов, использующихся для связи пользователя и смой сети. Сеть сигнализирует пользователю о различных событиях, которые могут использоваться для контроля работы сети и ее администрирования. SVC-соединение состоит из двух стадий: создание виртуальной цепи и ее использование в соединение.

PVC соответствует выделенным линиям, а SVC – коммутируемым линиям телефонной сети.

Замечание:
Протоколы, использующие виртуальные цепи, называются Сетевыми услугами с предоставлением физического доступа (Connection—Oriented Network Services — CONS), а протоколы, передающие пакеты без использования виртуальных цепей, называются Сетевыми услугами без предоставления физического доступа (Connection-Less Network Services — CLNS).

www.windowsnetworking.com

Tags: ftp, imap, nat, ppp, qos

Устранение неполадок

Проблемы сети TCP/IP часто возникают из-за неправильной конфигурации трех основных записей в свойствах TCP/IP компьютера. Понимая, как ошибки в конфигурации TCP/IP влияют на сетевые операции, можно решить множество распространенных проблем TCP/IP.

Неправильная маска подсети. Если сеть использует другую маску подсети, чем маска по умолчанию для своего класса адресов, и клиент по-прежнему настроен с помощью маски подсети по умолчанию для класса адресов, связь не будет работать с некоторыми соседними сетями, но не с удаленными. Например, если вы создаете четыре подсети (например, в примере подсетей), но используете неправильную маску подсети 255.255.255.0 в конфигурации TCP/IP, хосты не смогут определить, что некоторые компьютеры находятся в других подсетях, чем их собственные. В этой ситуации пакеты, предназначенные для хостов различных физических сетей, которые являются частью одного и того же адреса класса C, не будут отправлены в шлюз по умолчанию для доставки. Распространенным симптомом этой проблемы является то, что компьютер может связываться с хостами, которые находятся в локальной сети, и может общаться со всеми удаленными сетями, за исключением тех сетей, которые находятся поблизости и имеют один и тот же адрес класса A, B или C. Чтобы устранить эту проблему, просто введите правильную маску подсети в конфигурацию TCP/IP для этого хоста.

Неправильный IP-адрес. Если компьютеры с IP-адресами, которые должны быть в отдельных подсетях, размещаются в локальной сети рядом друг с другом, они не смогут связывается. Они будут пытаться отправлять пакеты друг другу с помощью маршрутизатора, который не может переадресовать их правильно. Симптомом этой проблемы является компьютер, который может связываться с хостами в удаленных сетях, но не может связываться с некоторыми или всеми компьютерами в локальной сети. Чтобы устранить эту проблему, убедитесь, что все компьютеры одной физической сети имеют IP-адреса в одной подсети IP. Если в одном сегменте сети закончились IP-адреса, существуют решения, которые выходят за рамки этой статьи.

Неправильный шлюз по умолчанию. Компьютер, настроенный с неправильным шлюзом по умолчанию, может связываться с хостами в своем сетевом сегменте. Но он не сможет связываться с хостами в некоторых или всех удаленных сетях. Хост может связываться с некоторыми удаленными сетями, но не с другими, если верны следующие условия:

  • Одна физическая сеть имеет несколько маршрутизаторов.
  • Неправильный маршрутизатор настроен как шлюз по умолчанию.

Эта проблема распространена, если в организации есть маршрутизатор к внутренней сети TCP/IP и другой маршрутизатор, подключенный к Интернету.

Понятия порта и сокета, их назначение и сфера применения

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

Совокупность ip и порта называют сокетом. Первый критерий уникален для каждой рабочей станции, а второй является фиксированным для каждого запущенного приложения. При обращении к определенному веб-ресурсу происходит обращение к DNS-серверу, который слушает 53 порт на рабочей станции и преобразует буквенное значение, введенное в строку поиска, в обычный IP.

P.S. В статье про OSI мы писали о ее противостоянии с TCP lPНиже представлено несколько ключевых цитат

Что делает TCP/IP?

TCP/IP позволяет надежно передавать данные между компьютерами.

Чтобы это произошло, TCP/IP отправляет данные, разбивая их на пакеты и реорганизуя их, чтобы они были понятны принимающей стороне.

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

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

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

Четырехслойная модель помогает объяснить это дальше.

Когда данные отправляются с компьютера, они проходят через все четыре уровня в определенном порядке, где они разрезаются на части/пакеты и отправляются (уровень 1 → уровень 4).

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

Порядок следования сообщений

Но подтверждений и повторной отправки данных недостаточно для обеспечения надежной передачи потока байт. Это защищает только от потери сегментов, но не обеспечивает сохранение порядка следования сообщений.

Какие проблемы могут произойти? Протокол IP не сохраняет порядок следования сообщений и поэтому сегменты могут  прийти к  получателю не в том порядке в котором они были отправлены. Кроме того, некоторые сегменты могут прийти два и более раз. Рассмотрим одну из возможных причин дублирования сегментов.

Дублирование сегментов

Предположим, отправитель передал сегмент данных получателю, получатель этот сегмент принял и передал отправителю подтверждение, но при передаче подтверждения произошла ошибка. Отправитель не получил подтверждение, сработал таймер и тот же самый сегмент данных был отправлен второй раз.

Это один из возможных вариантов, на самом деле, таких вариантов еще очень много, поэтому в протокол TCP встроен механизм защиты от дублирования и нарушение порядка следования сообщений.

Механизм очень простой, все сообщения нумеруются. В TCP нумеруются не сегменты, так как разные сегменты могут иметь разный размер, а байты.

В нашем примере 4 сегмента первый сегмент содержит байты от 0 до 1023, второй от 1024 до 2047 и так далее.

Нумерация байтов

При передаче отправитель включают в сегмент номер первого байта данных, которые в нем содержатся.

  • Например сегмент данных, байт 0, он содержит байты с 0 до 1023.
  • Получатель отправляет подтверждение и в подтверждение включает номер следующего байта, который ожидается байт 1024.
  • Отправитель передает следующий сегмент, включая в него номер первого байта, сегмент данных, номер первого байта 1024 содержит данные до номера байта 2047.
  • Получатель отправляет подтверждение, что он ждет байт с номером 2048, если сегменты придут в неправильном порядке, то получатель по номерам байтов всегда сможет выставить их в правильной последовательности.

Дублирование сегментов

Рассмотрим как решается ситуация с дублированием сегментов.

  • Отправитель включает в сегмент номер первого передаваемого байта 1024.
  • Получатель отправляет подтверждение, где говорит что ждет байт в 2048.
  • Но так как подтверждение не дошло, то отправитель передает тот же самый сегмент 1024.
  • Однако получатель видит, что этот сегмент у него уже есть поэтому он этот сегмент игнорирует и снова отправляет подтверждение, где говорит что он ожидает байт 2048.

Сравнение с моделью OSI

Существуют разногласия в том, как вписать модель TCP/IP в модель OSI, поскольку уровни в этих моделях не совпадают.

К тому же, модель OSI не использует дополнительный уровень — «Internetworking» — между канальным и сетевым уровнями. Примером спорного протокола может быть ARP или STP.

Вот как традиционно протоколы TCP/IP вписываются в модель OSI:

Распределение протоколов по уровням модели OSI
TCP/IP OSI
7 Прикладной Прикладной напр., HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP
6 Представления напр., XDR, AFP, TLS, SSL
5 Сеансовый напр., ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
4 Транспортный Транспортный напр., TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
3 Сетевой Сетевой напр., IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP, ARP
2 Канальный Канальный напр., Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS
1 Физический напр., электрические провода, радиосвязь, волоконно-оптические провода, инфракрасное излучение

Обычно в стеке TCP/IP верхние 3 уровня модели OSI (прикладной, представительский и сеансовый) объединяют в один — прикладной. Поскольку в таком стеке не предусматривается унифицированный протокол передачи данных, функции по определению типа данных передаются приложению.

Назначение TCP

TCP/IP — это средство для обмена информацией между компьютерами, объединенными в сеть. Не имеет значения, составляют ли они часть одной и той же сети или подключены к отдельным сетям. Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh. TCP/IP — это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами, операционными системами и сетями. Это протокол, который глобально управляет Internet, и в значительной мере благодаря сети TCP/IP завоевал свою популярность.

Основными протоколами стека, давшими ему название, являются протоколы IР и ТСР. Эти протоколы в терминологии модели 051 относятся к сетевому и транспортному уровням соответственно. IР обеспечивает продвижение пакета по составной сети, а ТСР гарантирует надежность его доставки.

Причина, по которой TCP/IP столь важен сегодня, заключается в том, что он позволяет самостоятельным сетям подключаться к Internet или объединяться для создания частных интрасетей. Вычислительные сети, составляющие интрасеть, физически подключаются через устройства, называемые маршрутизаторами или IP-маршрутизаторами.

Маршрутизатор — это компьютер, который передает пакеты данных из одной сети в другую. В интрасети, работающей на основе TCP/IP, информация передается в виде дискретных блоков, называемых IP-пакетами (IP packets) или IP-дейтаграммами (IP datagrams). Благодаря программному обеспечению TCP/IP все компьютеры, подключенные к вычислительной сети, становятся «близкими родственниками». По существу оно скрывает маршрутизаторы и базовую архитектуру сетей и делает так, что все это выглядит как одна большая сеть. Точно так же, как подключения к сети Ethernet распознаются по 48-разрядным идентификаторам Ethernet, подключения к интрасети идентифицируются 32-разрядными IP-адресами, которые мы выражаем в форме десятичных чисел, разделенных точками (например, 128.10.2.3). Взяв IP-адрес удаленного компьютера, компьютер в интрасети или в Internet может отправить данные на него, как будто они составляют часть одной и той же физической сети.

TCP/IP дает решение проблемы данными между двумя компьютерами, подключенными к одной и той же интрасети, но принадлежащими различным физическим сетям. Решение состоит из нескольких частей, причем каждый член семейства протоколов TCP/IP вносит свою лепту в общее дело. IP — самый фундаментальный протокол из комплекта TCP/IP — передает IP-дейтаграммы по интрасети и выполняет важную функцию, называемую маршрутизацией, по сути дела это выбор маршрута, по которому дейтаграмма будет следовать из пункта А в пункт B, и использование маршрутизаторов для «прыжков» между сетями.

Особенности TCP

Поскольку стек ТСР/IР изначально создавался для глобальной сети Internet он имеет много особенностей, дающих ему преимущество перед другими протоколами, когда речь заходит о построении сетей, включающих глобальные связи. В частности, очень полезным свойством, делающим возможным применение этого протокола в больших сетях, является его способность фрагментировать пакеты. Действительно, большая составная сеть часто состоит из сетей, построенных на совершенно разных принципах. В каждой из этих сетей может быть установлена собственная величина максимальной длины единицы передаваемых данных (кадра). В таком случае при переходе из одной сети, имеющей большую максимальную длину, в сеть с меньшей максимальной длиной может возникнуть необходимость деления передаваемого кадра на несколько частей. Протокол IP стека ТСР/IР эффективно решает эту задачу.

Другой особенностью технологии ТСР/IР является гибкая система адресации, позволяющая более просто по сравнению с другими протоколами аналогичного назначения включать в интерсеть сети других технологий. Это свойство также способствует применению стека ТСР/IР для построения больших гетерогенных сетей.

В стеке ТСР/ IР очень экономно используются возможности широковещательных рассылок. Это свойство совершенно необходимо при работе на медленных каналах связи, характерных для территориальных сетей.

Практика¶

1. Напишите функции для передачи данных с помощью модели TCP/IP от клиента сети.
Каждая функция должна имитировать работу одного из уровней передачи данных.
Используйте заготовку кода ниже:

''' 4 уровень, функция application() - отвечает за формат данных, их шифрование
   input функции - данные, которые хотим отправить по сети, протокол данных ('SMTP','HTTP','FTP')
   output: данные + информация про формат данных и шифрование '''
def application (data, protocol):
  ...

''' 3 уровень, функция transport() - отвечает за способ передачи данных и их транспортировку
   input: результат работы функции application(), протокол транспортировки данных ('TCP', 'UDP')
   output: данные + информация про транспортировку'''

def transport(data, protocol):
  ...

''' 2 уровень, функция internet() - отвечает за маршрутизацию в сети. Она ищет кому и как доставить данные
   input: результат работы функции transport()
   output: данные + информация про адресата и маршрут доставки'''

def internet(data):
  ...

'''1 уровень, функция network_interface - отвечает за соединение с сетью
   input: результат работы функции internet(), информация о соединении
   output: кортеж из 2 значений:
       1. данные, преобразованные в бинарный формат
       2. информация о типе соединения (1 - 'Ethernet', 2 -'Wi-Fi', другие числа - "No connection")'''

def network_interface (data, connection):
  ...

data = '01101'
print (data)
data_app = application(data,'SMTP')
print ('application level - ', data_app)
data_transport = transport (data_app,'TCP')
print ('transport level - ', data_transport)
data_ip = internet (data_transport)
print ('internet level - ', data_ip)
data_from_network = network_interface (data_ip,'Wi-Fi')
print ('network_interface level - ', data_from_network)

2. Напишите функции для получения данных из сети клиентом с помощью модели TCP/IP.
Каждая функция должна имитировать работу одного из уровней передачи данных.
Используйте заготовку кода ниже, учтите потери данных:

'''1 уровень, функция network_interface - отвечает за соединение с сетью
   передаём в функцию 2 аргумента:
    1 аргумент, data - это данные в виде бинарного числа
    2 аргумент, connection - это тип соединения (1 - 'Ethernet', 2 -'Wi-Fi', другие числа - "No connection")
   возвращаем:
    - если удалось установить соединение - то кортеж из 2 значений: данные в виде строки из нулей и единиц и тип соединения
    - если не удалось установить соединение, то строку "No connection"'''

def network_interface(data, connection):
   ...

''' 2 уровень, функция internet() - отвечает за маршрутизацию в сети. Она ищет кому и как доставить данные
передаём в функцию результат работы функции  network_interface()
возвращаем данные в виде строки, если данные переданы в кортеже и адресованы нам, иначе - передаём None'''

def internet(data):
   ...

''' 3 уровень, функция transport() - отвечает за способ передачи данных и их транспортировку
передаём в функцию результат работы функции internet()
возвращаем:
 - если c предыдущего уровня получены данные, то формируем кортеж из 2 значений: данные, протокол передачи
 - None - если данные не получены'''

def transport(data):
   ...

''' 4 уровень, функция application() - отвечает за формат данных, их расшифровку
передаём в функцию результат работы функции transport()
возвращаем:  '''

def application (data):
   ...

data = 0b110110111
print (bin(data))
data_from_network = network_interface (data,1)
print ('network_interface level - ', data_from_network)
data_ip = internet (data_from_network)
print ('internet level - ', data_ip)
data_transport = transport (data_ip)
print ('transport level - ', data_transport)
data_app = application(data_transport)
print ('application level - ', data_app)
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: