Module 2 → Lesson 9 → Part 3 of 8
Как данные превращаются в пакеты
Lesson contents
What you'll learn
Интернет обычно не отправляет файл целиком
Emma Lee отправляет Alex фотографию размером 5 MB.
Интуитивно можно представить: Emma → фотография 5 MB → Alex.
Как будто вся фотография едет по сети одним большим цифровым чемоданом.
На практике передача данных устроена иначе.
Данные обычно разбиваются на множество небольших частей, которые передаются через сеть отдельно.
Эти части мы будем называть пакетами.
Что такое сетевой пакет
Упрощенно: файл 5 MB разделяется на пакет, пакет, пакет и так далее.
Получатель затем использует пришедшие данные, чтобы восстановить необходимую информацию.
Зачем вообще разбивать данные
Можно спросить: почему не отправить все сразу?
Потому что по одной сети одновременно работают тысячи и миллионы соединений.
Представим, что один пользователь начал загружать файл размером 10 GB и занял канал целиком до окончания передачи.
Остальным пришлось бы терпеливо ждать.
Не самая дружелюбная архитектура.
Маленькие части позволяют делить сеть
Когда данные передаются порциями, сеть может чередовать трафик разных пользователей.
Например: пакет Emma, затем пакет Alex, затем пакет Sofia, затем еще пакет Emma, затем пакет Daniel.
Разные приложения и устройства могут использовать общую инфраструктуру практически одновременно.
Это называется пакетной передачей
Современный Интернет основан на принципах packet switching.
Главная идея: канал не резервируется навсегда под один файл или одного пользователя.
Сетевые ресурсы совместно используют множество потоков данных.
Что находится внутри пакета
Концептуально пакет можно представить как служебную информацию и данные.
Служебную часть часто называют header — заголовок.
А передаваемые данные — payload — полезная нагрузка.
Заголовок — это инструкция для сети
В зависимости от используемого протокола в заголовке могут находиться сведения, необходимые для доставки и обработки.
Например: адрес источника; адрес назначения; информация о типе протокола; другие технические параметры.
То есть пакет состоит не только из «кусочка фотографии».
Он еще несет информацию о том, что с этим кусочком делать.
Аналогия с посылкой
Представим коробку.
Внутри — книга.
Снаружи: адрес отправителя; адрес получателя; служебная маркировка.
Получается: коробка состоит из адресной информации и содержимого.
У сетевого пакета идея похожая: packet состоит из header и payload.
Конечно, маршрутизаторы не наклеивают бумажные этикетки на каждый пакет.
Это могло бы немного снизить пропускную способность Интернета.
- 1Header — служебная информация, необходимая сети для обработки и доставки пакета.
- 2Payload — переносимые данные более высокого уровня, то есть собственно содержимое.
Один файл может породить много пакетов
Emma загружает изображение `photo.jpg` размером 5 MB.
В сети оно может выглядеть концептуально как множество пронумерованных пакетов.
Размер и фактическая структура передачи зависят от используемых технологий и протоколов.
Важно сейчас только одно: пользователь видит один объект, а сеть может передавать множество отдельных порций данных.
Пакеты не обязаны прибывать идеально одновременно
Представим отправку в порядке 1 → 2 → 3 → 4.
Сеть может доставить их не совсем так, например 1 → 3 → 2 → 4, или один из пакетов может задержаться.
Почему?
Потому что сеть состоит из: множества маршрутизаторов; различных каналов; очередей; соединений с разной нагрузкой.
Интернет не является одной прямой трубой между Emma и Alex.
Пакет может и потеряться
Например, отправлены пакеты 1, 2, 3, 4, 5, а получены только 1, 2, 4, 5.
Пакет 3 где-то не дошел.
Это возможно.
Компьютерные сети проектируются с учетом того, что отдельные пакеты иногда теряются, задерживаются или приходят не по порядку.
Это не означает, что Интернет сломан.
Вопрос в другом: что должен делать используемый протокол в такой ситуации?
И вот здесь появятся TCP и UDP
Одни сетевые задачи требуют: «мне нужны все данные и в правильном порядке».
Например, загрузка документа.
Другие могут предпочесть: «лучше получить следующий кусок сейчас, чем ждать старый слишком долго».
Например, некоторые сценарии передачи аудио или видео в реальном времени.
Поэтому поверх сетевой доставки существуют разные транспортные подходы.
Позже мы познакомимся с TCP и UDP.
Но пока достаточно понять, почему они вообще нужны.
Сеть не знает, что вы отправляете фотографию
Это очень важная идея.
На одном уровне приложение понимает: `photo.jpg`.
Но сетевой уровень имеет дело с данными и служебной информацией.
Для сети это уже не «фотография Emma с отпуска».
Это последовательность данных, которую нужно передать.
Слои выполняют разные задачи
Упрощенно можно представить: приложение говорит «отправить фотографию», дальше работает транспортный механизм, затем формируются сетевые пакеты, они проходят через локальную сеть и физическую или беспроводную передачу.
Каждый уровень занимается своей задачей.
Приложению не нужно самостоятельно решать, какой именно маршрутизатор будет следующим.
Маршрутизатору не нужно понимать смысл фотографии.
Так Интернет становится масштабируемым.
Это похоже на разделение обязанностей
Представим службу доставки.
Отправитель знает, что лежит в посылке.
Сортировочный центр знает, куда отправлять коробку дальше.
Водителю не требуется читать книгу внутри коробки, чтобы доставить ее.
В сети используется похожий принцип: разные компоненты работают с той информацией, которая нужна именно им.
Пакет и физический сигнал — тоже не одно и то же
Когда пакет проходит от ноутбука через Wi-Fi к роутеру, данные передаются по радиоканалу.
Дальше, от роутера к провайдеру, они могут идти по Ethernet, по оптоволокну или по другим каналам связи.
Сетевой пакет логически остается частью сетевого обмена, даже если физический способ передачи по пути меняется.
Поэтому Интернет может соединять очень разные сети
Например: Wi-Fi → Ethernet → Fiber → другая сеть → сервер.
Устройства не обязаны использовать одну и ту же физическую технологию от начала до конца.
Это одна из причин огромной гибкости Интернета.
А что тогда такое frame?
На локальном уровне вы можете встретить еще одно слово: frame — кадр.
Не нужно пока подробно его разбирать.
Полезно знать только, что данные одного уровня могут быть помещены внутрь структуры другого уровня для передачи по конкретной сети.
Концептуально: frame содержит IP-пакет, который содержит данные более высокого уровня.
Это называется инкапсуляцией.
Инкапсуляция без страшных слов
Можно представить несколько конвертов: локальная доставка содержит сетевой пакет, который содержит транспортные данные, которые содержат данные приложения.
Каждый уровень добавляет свою информацию.
- 1Local frame — самый внешний уровень, отвечающий за передачу по конкретной локальной сети.
- 2IP packet — сетевой пакет с адресами источника и назначения.
- 3Transport data — данные транспортного уровня, добавляющие свою служебную информацию.
- 4Application data — исходные данные приложения, ради которых все это затевалось.
На принимающей стороне происходит обратное
Когда данные доходят до Alex: сеть передает их устройству Alex, оно обрабатывает сетевую информацию, затем работает транспортный механизм, и наконец данные попадают в приложение.
Приложение снова получает понятные ему данные.
Пользователь видит фотографию.
А не несколько тысяч сетевых заголовков.
И это явно правильное дизайнерское решение.
Почему размеры пакетов ограничены
Сети не передают пакеты произвольного бесконечного размера.
У конкретных сетевых технологий есть ограничения на размер передаваемых единиц данных.
Позже можно встретить термин MTU — Maximum Transmission Unit.
Глубоко разбирать MTU сейчас не нужно.
Важно лишь понять: размеры сетевых частей ограничены техническими характеристиками используемой инфраструктуры.
Почему иногда размер имеет значение
Если данные нужно передавать через сети с разными ограничениями, система должна учитывать допустимые размеры.
Неправильная работа с этим может приводить к довольно странным симптомам: маленькие запросы проходят; некоторые большие — работают плохо; отдельные соединения зависают.
Для обычного пользователя это редкая деталь.
Для диагностики сетей — вполне реальная.
Что видит маршрутизатор
Представим пакет с источником — устройство Emma, назначением — удаленный сервер, и полезной нагрузкой — часть данных.
Маршрутизатору не нужно знать всю историю разговора Emma с сервисом.
Его базовый вопрос гораздо проще: куда этот пакет отправить дальше?
Именно этому будет посвящена следующая часть.
Пакеты могут идти через много устройств
Путь может выглядеть так: ноутбук Emma → домашний роутер → роутер ISP → другая сеть → еще один роутер → дата-центр → сервер.
- 1photo.jpg (5 MB) — исходный файл на устройстве Emma.
- 2Разделение — файл делится на множество меньших частей.
- 3Packets — пакеты передаются через сеть по доступным путям.
- 4Получатель — пакеты доходят до устройства Alex.
- 5Данные приложения — пакеты собираются обратно в понятную приложению форму.
- 6photo.jpg — Alex видит ту же самую фотографию.
Каждый маршрутизатор получает пакет и принимает решение о следующем участке пути.
То есть Интернет работает скорее как серия локальных решений «куда дальше?», чем как один центральный диспетчер, заранее управляющий каждым пакетом мира.
Почему это важно для безопасности
Разные участки сети видят и обрабатывают разные служебные сведения.
Поэтому позже нам придется различать: кто может видеть сетевые адреса; кто может видеть имя сайта; кто может видеть содержимое; что защищает HTTPS; что меняет VPN; что не защищает ни то, ни другое.
Но сначала нужно понимать сам механизм передачи.
Без этого фраза «трафик зашифрован» может звучать так, будто пакет надел темные очки и исчез из Интернета.
Он не исчезает.
Его все равно нужно доставить.
Практический пример
Emma отправляет сообщение Alex: «Привет!» → Send.
Внутри системы: данные приложения разделяются и подготавливаются, превращаются в сетевые пакеты, передаются через несколько сетей и обрабатываются у получателя, снова становясь «Привет!».
Пользователь видит сообщение.
Интернет выполняет всю упаковку, доставку и распаковку почти незаметно.
Главное, что нужно запомнить
- Интернет обычно передает данные не одним огромным объектом, а множеством отдельных порций.
- Сетевой пакет содержит полезные данные и служебную информацию.
- Разбиение данных позволяет множеству пользователей совместно использовать одну сетевую инфраструктуру.
- Пакеты могут задерживаться, теряться или приходить в другом порядке.
- Разные транспортные протоколы по-разному реагируют на такие ситуации.
- Приложение, транспортный механизм и сетевой уровень решают разные задачи.
- Один и тот же пакет может последовательно передаваться через разные физические технологии связи.
- Инкапсуляция позволяет уровням сети добавлять собственную служебную информацию.
- Размер передаваемых сетевых единиц имеет технические ограничения.
- Маршрутизатору прежде всего нужно определить, куда отправить пакет дальше.
- Для понимания сетевой безопасности важно различать содержимое данных и служебную информацию, необходимую для доставки.
Что дальше
Теперь у нас есть пакет с источником Emma и назначением Server.
Но между Emma и сервером могут находиться десятки сетевых устройств.
Откуда домашний роутер знает, куда отправить пакет?
Откуда следующий маршрутизатор знает, что делать дальше?
Почему путь до сервера может изменяться?
И существует ли в Интернете один глобальный диспетчер маршрутов?
Продолжаем — в следующей части — «Маршрутизаторы и путь пакета».
- Интернет обычно передает данные не одним огромным объектом, а множеством отдельных порций.
- Сетевой пакет содержит полезные данные и служебную информацию.
- Разбиение данных позволяет множеству пользователей совместно использовать одну сетевую инфраструктуру.
- Пакеты могут задерживаться, теряться или приходить в другом порядке.
- Разные транспортные протоколы по-разному реагируют на такие ситуации.
- Приложение, транспортный механизм и сетевой уровень решают разные задачи.
- Один и тот же пакет может последовательно передаваться через разные физические технологии связи.
- Инкапсуляция позволяет уровням сети добавлять собственную служебную информацию.
- Размер передаваемых сетевых единиц имеет технические ограничения.
- Маршрутизатору прежде всего нужно определить, куда отправить пакет дальше.
- Для понимания сетевой безопасности важно различать содержимое данных и служебную информацию, необходимую для доставки.
The internet usually doesn't send the whole file at once
Emma Lee sends Alex a photo that's 5 MB.
Intuitively, you might picture it like this: Emma → 5 MB photo → Alex.
As if the entire photo travels across the network as one big digital suitcase.
In practice, data transmission works differently.
Data is usually broken into many small parts, which travel through the network separately.
We'll call these parts packets.
What a network packet is
Simplified: a 5 MB file gets split into packet, packet, packet, and so on.
The recipient then uses the arriving data to reconstruct the needed information.
Why split data at all
You might ask: why not just send it all at once?
Because thousands and millions of connections are working over the same network at the same time.
Imagine one user starts uploading a 10 GB file and occupies the entire channel until the transfer finishes.
Everyone else would have to wait patiently.
Not the friendliest architecture.
Small parts let the network be shared
When data travels in portions, the network can interleave traffic from different users.
For example: a packet from Emma, then a packet from Alex, then one from Sofia, then another packet from Emma, then one from Daniel.
Different applications and devices can use the shared infrastructure almost simultaneously.
This is called packet switching
The modern internet is built on the principles of packet switching.
The main idea: a channel isn't permanently reserved for one file or one user.
Network resources are shared across many data streams at once.
What's inside a packet
Conceptually, a packet can be thought of as supporting information plus data.
The supporting part is often called the header.
And the transmitted data is the payload.
The header is an instruction for the network
Depending on the protocol in use, the header can hold the information needed for delivery and processing.
For example: the source address; the destination address; protocol-type information; other technical parameters.
In other words, a packet isn't just a "piece of the photo."
It also carries information about what to do with that piece.
The shipping-box analogy
Picture a box.
Inside is a book.
On the outside: the sender's address; the recipient's address; supporting markings.
So the box consists of address information and contents.
A network packet works on a similar idea: a packet consists of a header and a payload.
Of course, routers don't stick paper labels on every packet.
That could slow down the internet's throughput a bit.
- 1Header — the supporting information the network needs to process and deliver the packet.
- 2Payload — the higher-level data being carried, i.e., the actual content.
One file can produce many packets
Emma uploads an image, `photo.jpg`, that's 5 MB in size.
On the network it can conceptually look like a large number of numbered packets.
The size and actual structure of the transfer depend on the technologies and protocols in use.
Only one thing matters right now: the user sees a single object, while the network may transmit many separate portions of data.
Packets don't have to arrive in perfect order
Imagine packets sent in the order 1 → 2 → 3 → 4.
The network may deliver them differently, say 1 → 3 → 2 → 4, or one of the packets may be delayed.
Why?
Because the network consists of: many routers; various channels; queues; connections under different loads.
The internet isn't a single straight pipe between Emma and Alex.
A packet can also get lost
For example, packets 1, 2, 3, 4, 5 are sent, but only 1, 2, 4, 5 arrive.
Packet 3 didn't make it somewhere along the way.
That's possible.
Computer networks are designed with the expectation that individual packets sometimes get lost, delayed, or arrive out of order.
That doesn't mean the internet is broken.
The real question is: what should the protocol in use do about it?
This is where TCP and UDP come in
Some networking tasks require: "I need all the data, and in the right order."
For example, downloading a document.
Others might prefer: "better to get the next chunk now than wait too long for an old one."
For example, some real-time audio or video streaming scenarios.
That's why different transport approaches exist on top of network delivery.
Later we'll get acquainted with TCP and UDP.
But for now, it's enough to understand why they're needed at all.
The network doesn't know you're sending a photo
This is a very important idea.
At one level, the application understands: `photo.jpg`.
But the network layer deals with data and supporting information.
To the network, this is no longer "Emma's vacation photo."
It's a sequence of data that needs to be delivered.
Layers handle different jobs
Simplified, you can picture it like this: the application says "send the photo," then a transport mechanism kicks in, then network packets are formed, and they pass through the local network and physical or wireless transmission.
Each layer handles its own task.
The application doesn't need to decide on its own which router comes next.
The router doesn't need to understand the meaning of the photo.
This is what makes the internet scalable.
It's like a division of labor
Picture a delivery service.
The sender knows what's inside the package.
The sorting center knows where to send the box next.
The driver doesn't need to read the book inside to deliver it.
The network uses a similar principle: different components work only with the information they actually need.
A packet and the physical signal aren't the same thing either
When a packet travels from a laptop over Wi-Fi to a router, the data moves over a radio channel.
Further along, from the router to the provider, it may travel over Ethernet, fiber optic, or other communication channels.
The network packet logically remains part of the same network exchange, even if the physical means of transmission changes along the way.
That's why the internet can connect very different networks
For example: Wi-Fi → Ethernet → Fiber → another network → server.
Devices don't have to use the same physical technology from start to finish.
This is one of the reasons for the internet's enormous flexibility.
So what is a frame, then?
At the local level you may come across another word: frame.
There's no need to dig into it in detail yet.
It's just useful to know that data from one layer can be placed inside the structure of another layer for transmission over a particular network.
Conceptually: a frame contains an IP packet, which contains higher-level data.
This is called encapsulation.
Encapsulation without the scary words
Picture a set of nested envelopes: local delivery contains a network packet, which contains transport data, which contains application data.
Each layer adds its own information.
- 1Local frame — the outermost layer, responsible for transmission over a particular local network.
- 2IP packet — the network packet with source and destination addresses.
- 3Transport data — transport-layer data, adding its own supporting information.
- 4Application data — the original application data that all of this exists for.
The receiving side does the reverse
When the data reaches Alex: the network delivers it to Alex's device, which processes the network information, then the transport mechanism does its work, and finally the data reaches the application.
The application once again gets data it understands.
The user sees the photo.
Not several thousand network headers.
And that's clearly the right design decision.
Why packet sizes are limited
Networks don't transmit packets of arbitrary, unlimited size.
Specific network technologies have limits on the size of the data units they can transmit.
Later on you may come across the term MTU — Maximum Transmission Unit.
There's no need to dig deep into MTU right now.
It's only important to understand: the size of network units is limited by the technical characteristics of the underlying infrastructure.
Why size sometimes matters
If data has to travel through networks with different limits, the system needs to account for the allowed sizes.
Getting this wrong can lead to some pretty strange symptoms: small requests go through fine; some large ones work poorly; certain connections hang.
For an ordinary user, this is a rare detail.
For network troubleshooting, it's a very real one.
What a router sees
Picture a packet with Emma's device as the source, a remote server as the destination, and a piece of data as the payload.
The router doesn't need to know the whole history of Emma's conversation with the service.
Its basic question is much simpler: where should this packet go next?
That's exactly what the next part will cover.
Packets can pass through many devices
The path might look like this: Emma's laptop → home router → ISP router → another network → another router → data center → server.
- 1photo.jpg (5 MB) — the original file on Emma's device.
- 2Splitting — the file is broken into many smaller parts.
- 3Packets — the packets travel through the network along available paths.
- 4Recipient — the packets reach Alex's device.
- 5Application data — the packets are reassembled into a form the application understands.
- 6photo.jpg — Alex sees the very same photo.
Each router receives the packet and makes a decision about the next leg of the journey.
In other words, the internet works more like a series of local "where next?" decisions than like a single central dispatcher directing every packet in the world in advance.
Why this matters for security
Different parts of the network see and process different pieces of supporting information.
That's why later we'll need to distinguish: who can see the network addresses; who can see the site name; who can see the content; what HTTPS protects; what a VPN changes; and what neither one protects.
But first we need to understand the delivery mechanism itself.
Without that, the phrase "traffic is encrypted" can sound as if the packet put on sunglasses and vanished from the internet.
It doesn't vanish.
It still has to be delivered.
A practical example
Emma sends Alex a message: "Hi!" → Send.
Inside the system: the application data is split and prepared, turned into network packets, sent across several networks, and processed at the recipient's end, becoming "Hi!" again.
The user sees the message.
The internet handles all the packaging, delivery, and unpacking almost invisibly.
The main things to remember
- The internet usually transmits data not as one huge object, but as many separate portions.
- A network packet contains payload data and supporting information.
- Splitting data lets many users share the same network infrastructure.
- Packets can be delayed, lost, or arrive out of order.
- Different transport protocols respond to these situations differently.
- The application, the transport mechanism, and the network layer each handle different tasks.
- The same packet can travel sequentially through different physical communication technologies.
- Encapsulation lets network layers add their own supporting information.
- The size of transmitted network units is technically limited.
- A router's first job is to determine where to send a packet next.
- Understanding network security requires distinguishing between the content of the data and the supporting information needed to deliver it.
What's next
Now we have a packet with Emma as the source and the server as the destination.
But there may be dozens of network devices between Emma and the server.
How does the home router know where to send the packet?
How does the next router know what to do next?
Why might the path to the server change?
And is there a single global route dispatcher on the internet?
Continued in the next part — "Routers and the Path of a Packet."
- The internet usually doesn't transmit data as one giant object, but as many separate chunks.
- A network packet contains both useful data and supporting information.
- Splitting data lets many users share the same network infrastructure at once.
- Packets can be delayed, lost, or arrive out of order.
- Different transport protocols react to these situations differently.
- The application, the transport mechanism, and the network layer each handle different tasks.
- The same packet can travel through different physical connection technologies along its journey.
- Encapsulation lets each network layer add its own supporting information.
- The size of transmitted network units has technical limits.
- A router's first job is to figure out where to send the packet next.
- Understanding network security requires distinguishing between the content of data and the supporting information needed to deliver it.
Το Διαδίκτυο συνήθως δεν στέλνει ολόκληρο το αρχείο
Η Emma Lee στέλνει στον Alex μια φωτογραφία μεγέθους 5 MB.
Διαισθητικά, θα μπορούσαμε να το φανταστούμε ως εξής: Emma → φωτογραφία 5 MB → Alex.
Σαν όλη η φωτογραφία να ταξιδεύει μέσα στο δίκτυο σαν μία μεγάλη ψηφιακή βαλίτσα.
Στην πράξη, η μεταφορά δεδομένων λειτουργεί διαφορετικά.
Τα δεδομένα συνήθως χωρίζονται σε πολλά μικρά κομμάτια, τα οποία μεταδίδονται μέσω του δικτύου ξεχωριστά.
Αυτά τα κομμάτια θα τα ονομάζουμε πακέτα.
Τι είναι το δικτυακό πακέτο
Απλοποιημένα: ένα αρχείο 5 MB χωρίζεται σε πακέτο, πακέτο, πακέτο και ούτω καθεξής.
Ο παραλήπτης στη συνέχεια χρησιμοποιεί τα δεδομένα που έφτασαν για να ανασυνθέσει τις απαραίτητες πληροφορίες.
Γιατί χωρίζουμε καθόλου τα δεδομένα
Θα μπορούσε κανείς να ρωτήσει: γιατί να μην τα στείλουμε όλα μαζί;
Επειδή σε ένα και μόνο δίκτυο λειτουργούν ταυτόχρονα χιλιάδες και εκατομμύρια συνδέσεις.
Ας φανταστούμε ότι ένας χρήστης άρχισε να κατεβάζει ένα αρχείο μεγέθους 10 GB και κατέλαβε ολόκληρο το κανάλι μέχρι να ολοκληρωθεί η μεταφορά.
Όλοι οι υπόλοιποι θα έπρεπε να περιμένουν υπομονετικά.
Όχι η πιο φιλική αρχιτεκτονική.
Τα μικρά κομμάτια επιτρέπουν τον διαμοιρασμό του δικτύου
Όταν τα δεδομένα μεταδίδονται σε μερίδες, το δίκτυο μπορεί να εναλλάσσει την κίνηση διαφορετικών χρηστών.
Για παράδειγμα: ένα πακέτο της Emma, μετά ένα πακέτο του Alex, μετά ένα πακέτο της Sofia, μετά ξανά ένα πακέτο της Emma, μετά ένα πακέτο του Daniel.
Διαφορετικές εφαρμογές και συσκευές μπορούν να χρησιμοποιούν την κοινή υποδομή σχεδόν ταυτόχρονα.
Αυτό ονομάζεται μεταγωγή πακέτων
Το σύγχρονο Διαδίκτυο βασίζεται στις αρχές του packet switching.
Η βασική ιδέα: το κανάλι δεν δεσμεύεται μόνιμα για ένα αρχείο ή έναν χρήστη.
Οι πόροι του δικτύου μοιράζονται από πολλαπλές ροές δεδομένων.
Τι υπάρχει μέσα σε ένα πακέτο
Εννοιολογικά, ένα πακέτο μπορεί να φανταστεί κανείς ως πληροφορίες υπηρεσίας και δεδομένα.
Το τμήμα υπηρεσίας ονομάζεται συχνά header — κεφαλίδα.
Και τα μεταδιδόμενα δεδομένα — payload — ωφέλιμο φορτίο.
Η κεφαλίδα είναι μια οδηγία για το δίκτυο
Ανάλογα με το πρωτόκολλο που χρησιμοποιείται, η κεφαλίδα μπορεί να περιέχει στοιχεία απαραίτητα για την παράδοση και την επεξεργασία.
Για παράδειγμα: διεύθυνση προέλευσης· διεύθυνση προορισμού· πληροφορίες σχετικά με τον τύπο του πρωτοκόλλου· άλλες τεχνικές παραμέτρους.
Δηλαδή, το πακέτο δεν αποτελείται μόνο από ένα «κομματάκι της φωτογραφίας».
Μεταφέρει επίσης πληροφορίες για το τι πρέπει να γίνει με αυτό το κομμάτι.
Μια αναλογία με ένα δέμα
Ας φανταστούμε ένα κουτί.
Μέσα — ένα βιβλίο.
Απ' έξω: διεύθυνση αποστολέα· διεύθυνση παραλήπτη· ετικέτες υπηρεσίας.
Δηλαδή: το κουτί αποτελείται από πληροφορίες διεύθυνσης και περιεχόμενο.
Στο δικτυακό πακέτο η ιδέα είναι παρόμοια: το packet αποτελείται από header και payload.
Φυσικά, οι δρομολογητές δεν κολλάνε χάρτινες ετικέτες σε κάθε πακέτο.
Αυτό θα μπορούσε να μειώσει λίγο το εύρος ζώνης του Διαδικτύου.
- 1Header — οι πληροφορίες υπηρεσίας που χρειάζεται το δίκτυο για την επεξεργασία και την παράδοση του πακέτου.
- 2Payload — τα δεδομένα υψηλότερου επιπέδου που μεταφέρονται, δηλαδή το ίδιο το περιεχόμενο.
Ένα αρχείο μπορεί να δημιουργήσει πολλά πακέτα
Η Emma ανεβάζει μια εικόνα `photo.jpg` μεγέθους 5 MB.
Στο δίκτυο, αυτή μπορεί να εμφανίζεται εννοιολογικά ως πολλά αριθμημένα πακέτα.
Το μέγεθος και η πραγματική δομή της μετάδοσης εξαρτώνται από τις τεχνολογίες και τα πρωτόκολλα που χρησιμοποιούνται.
Προς το παρόν σημασία έχει μόνο ένα πράγμα: ο χρήστης βλέπει ένα αντικείμενο, ενώ το δίκτυο μπορεί να μεταδίδει πολλές ξεχωριστές μερίδες δεδομένων.
Τα πακέτα δεν είναι υποχρεωμένα να φτάνουν τέλεια συγχρονισμένα
Ας φανταστούμε αποστολή με τη σειρά 1 → 2 → 3 → 4.
Το δίκτυο μπορεί να τα παραδώσει όχι ακριβώς έτσι, για παράδειγμα 1 → 3 → 2 → 4, ή ένα από τα πακέτα μπορεί να καθυστερήσει.
Γιατί;
Επειδή το δίκτυο αποτελείται από: πολλούς δρομολογητές· διαφορετικά κανάλια· ουρές αναμονής· συνδέσεις με διαφορετικό φόρτο.
Το Διαδίκτυο δεν είναι ένας ενιαίος ευθύς σωλήνας ανάμεσα στην Emma και τον Alex.
Ένα πακέτο μπορεί ακόμη και να χαθεί
Για παράδειγμα, στάλθηκαν τα πακέτα 1, 2, 3, 4, 5, αλλά παραλήφθηκαν μόνο τα 1, 2, 4, 5.
Το πακέτο 3 κάπου δεν έφτασε.
Αυτό είναι πιθανό.
Τα υπολογιστικά δίκτυα σχεδιάζονται λαμβάνοντας υπόψη ότι μεμονωμένα πακέτα μερικές φορές χάνονται, καθυστερούν ή φτάνουν εκτός σειράς.
Αυτό δεν σημαίνει ότι το Διαδίκτυο είναι χαλασμένο.
Το ερώτημα είναι άλλο: τι πρέπει να κάνει το πρωτόκολλο που χρησιμοποιείται σε μια τέτοια κατάσταση;
Και εδώ εμφανίζονται το TCP και το UDP
Ορισμένες δικτυακές εργασίες απαιτούν: «χρειάζομαι όλα τα δεδομένα και με τη σωστή σειρά».
Για παράδειγμα, η λήψη ενός εγγράφου.
Άλλες μπορεί να προτιμούν: «καλύτερα να λάβω το επόμενο κομμάτι τώρα, παρά να περιμένω πολύ το παλιό».
Για παράδειγμα, ορισμένα σενάρια μετάδοσης ήχου ή βίντεο σε πραγματικό χρόνο.
Γι' αυτό, πάνω από τη δικτυακή παράδοση υπάρχουν διαφορετικές προσεγγίσεις μεταφοράς.
Αργότερα θα γνωρίσουμε το TCP και το UDP.
Προς το παρόν όμως αρκεί να κατανοήσουμε γιατί χρειάζονται καθόλου.
Το δίκτυο δεν ξέρει ότι στέλνετε μια φωτογραφία
Αυτή είναι μια πολύ σημαντική ιδέα.
Σε ένα επίπεδο, η εφαρμογή καταλαβαίνει: `photo.jpg`.
Όμως το επίπεδο δικτύου ασχολείται με δεδομένα και πληροφορίες υπηρεσίας.
Για το δίκτυο, αυτό δεν είναι πια «η φωτογραφία της Emma από τις διακοπές».
Είναι μια ακολουθία δεδομένων που πρέπει να μεταδοθεί.
Τα επίπεδα εκτελούν διαφορετικές εργασίες
Απλοποιημένα, θα μπορούσαμε να το φανταστούμε ως εξής: η εφαρμογή λέει «στείλε τη φωτογραφία», στη συνέχεια λειτουργεί ο μηχανισμός μεταφοράς, μετά διαμορφώνονται τα δικτυακά πακέτα, τα οποία περνούν μέσα από το τοπικό δίκτυο και τη φυσική ή ασύρματη μετάδοση.
Κάθε επίπεδο ασχολείται με τη δική του εργασία.
Η εφαρμογή δεν χρειάζεται να αποφασίζει μόνη της ποιος ακριβώς δρομολογητής θα είναι ο επόμενος.
Ο δρομολογητής δεν χρειάζεται να καταλαβαίνει το νόημα της φωτογραφίας.
Έτσι το Διαδίκτυο γίνεται επεκτάσιμο.
Αυτό μοιάζει με καταμερισμό αρμοδιοτήτων
Ας φανταστούμε μια υπηρεσία παράδοσης.
Ο αποστολέας ξέρει τι υπάρχει μέσα στο δέμα.
Το κέντρο διαλογής ξέρει πού να στείλει το κουτί στη συνέχεια.
Ο οδηγός δεν χρειάζεται να διαβάσει το βιβλίο μέσα στο κουτί για να το παραδώσει.
Στο δίκτυο χρησιμοποιείται παρόμοια αρχή: διαφορετικά στοιχεία δουλεύουν με τις πληροφορίες που χρειάζονται ακριβώς αυτά.
Το πακέτο και το φυσικό σήμα δεν είναι επίσης το ίδιο πράγμα
Όταν ένα πακέτο περνάει από το laptop μέσω Wi-Fi προς τον router, τα δεδομένα μεταδίδονται μέσω ραδιοκαναλιού.
Στη συνέχεια, από τον router προς τον πάροχο, μπορεί να ταξιδεύουν μέσω Ethernet, οπτικής ίνας ή άλλων καναλιών επικοινωνίας.
Το δικτυακό πακέτο παραμένει λογικά μέρος της δικτυακής ανταλλαγής, ακόμη κι αν ο φυσικός τρόπος μετάδοσης αλλάζει στην πορεία.
Γι' αυτό το Διαδίκτυο μπορεί να συνδέει πολύ διαφορετικά δίκτυα
Για παράδειγμα: Wi-Fi → Ethernet → Fiber → ένα άλλο δίκτυο → server.
Οι συσκευές δεν είναι υποχρεωμένες να χρησιμοποιούν την ίδια φυσική τεχνολογία από την αρχή μέχρι το τέλος.
Αυτός είναι ένας από τους λόγους για την τεράστια ευελιξία του Διαδικτύου.
Τι είναι λοιπόν το frame;
Στο τοπικό επίπεδο μπορεί να συναντήσετε ακόμη μία λέξη: frame — καρέ.
Δεν χρειάζεται προς το παρόν να το αναλύσουμε λεπτομερώς.
Αρκεί να ξέρουμε ότι τα δεδομένα ενός επιπέδου μπορούν να τοποθετηθούν μέσα στη δομή ενός άλλου επιπέδου, ώστε να μεταδοθούν μέσω ενός συγκεκριμένου δικτύου.
Εννοιολογικά: το frame περιέχει το πακέτο IP, το οποίο περιέχει δεδομένα υψηλότερου επιπέδου.
Αυτό ονομάζεται ενθυλάκωση.
Ενθυλάκωση χωρίς τρομακτικές λέξεις
Μπορούμε να το φανταστούμε ως αρκετούς φακέλους: η τοπική παράδοση περιέχει το δικτυακό πακέτο, το οποίο περιέχει δεδομένα μεταφοράς, τα οποία περιέχουν δεδομένα εφαρμογής.
Κάθε επίπεδο προσθέτει τις δικές του πληροφορίες.
- 1Local frame — το πιο εξωτερικό επίπεδο, υπεύθυνο για τη μετάδοση μέσω ενός συγκεκριμένου τοπικού δικτύου.
- 2IP packet — το δικτυακό πακέτο με τις διευθύνσεις προέλευσης και προορισμού.
- 3Transport data — τα δεδομένα του επιπέδου μεταφοράς, που προσθέτουν τη δική τους πληροφορία υπηρεσίας.
- 4Application data — τα αρχικά δεδομένα της εφαρμογής, για χάρη των οποίων έγιναν όλα αυτά.
Στην πλευρά του παραλήπτη συμβαίνει το αντίστροφο
Όταν τα δεδομένα φτάνουν στον Alex: το δίκτυο τα παραδίδει στη συσκευή του Alex, εκείνη επεξεργάζεται τις δικτυακές πληροφορίες, στη συνέχεια λειτουργεί ο μηχανισμός μεταφοράς, και τελικά τα δεδομένα φτάνουν στην εφαρμογή.
Η εφαρμογή λαμβάνει και πάλι δεδομένα που καταλαβαίνει.
Ο χρήστης βλέπει τη φωτογραφία.
Και όχι μερικές χιλιάδες δικτυακές κεφαλίδες.
Και αυτή είναι σαφώς μια σωστή σχεδιαστική απόφαση.
Γιατί το μέγεθος των πακέτων είναι περιορισμένο
Τα δίκτυα δεν μεταδίδουν πακέτα αυθαίρετου, απεριόριστου μεγέθους.
Οι συγκεκριμένες δικτυακές τεχνολογίες έχουν περιορισμούς στο μέγεθος των μεταδιδόμενων μονάδων δεδομένων.
Αργότερα μπορεί να συναντήσετε τον όρο MTU — Maximum Transmission Unit.
Δεν χρειάζεται να αναλύσουμε σε βάθος το MTU τώρα.
Αρκεί να καταλάβουμε: το μέγεθος των δικτυακών τμημάτων περιορίζεται από τα τεχνικά χαρακτηριστικά της χρησιμοποιούμενης υποδομής.
Γιατί μερικές φορές το μέγεθος έχει σημασία
Αν τα δεδομένα πρέπει να μεταδοθούν μέσω δικτύων με διαφορετικούς περιορισμούς, το σύστημα πρέπει να λαμβάνει υπόψη τα επιτρεπόμενα μεγέθη.
Η λανθασμένη διαχείριση αυτού μπορεί να οδηγήσει σε αρκετά περίεργα συμπτώματα: τα μικρά αιτήματα περνάνε· ορισμένα μεγάλα λειτουργούν άσχημα· μεμονωμένες συνδέσεις κολλάνε.
Για τον απλό χρήστη αυτή είναι μια σπάνια λεπτομέρεια.
Για τη διάγνωση δικτύων — αρκετά πραγματική.
Τι βλέπει ο δρομολογητής
Ας φανταστούμε ένα πακέτο με προέλευση τη συσκευή της Emma, προορισμό έναν απομακρυσμένο server, και ωφέλιμο φορτίο ένα κομμάτι δεδομένων.
Ο δρομολογητής δεν χρειάζεται να γνωρίζει όλο το ιστορικό της «συνομιλίας» της Emma με την υπηρεσία.
Το βασικό του ερώτημα είναι πολύ πιο απλό: πού να στείλει αυτό το πακέτο στη συνέχεια;
Ακριβώς σε αυτό θα είναι αφιερωμένο το επόμενο μέρος.
Τα πακέτα μπορούν να περνούν μέσα από πολλές συσκευές
Η διαδρομή μπορεί να μοιάζει κάπως έτσι: το laptop της Emma → οικιακός router → router του ISP → ένα άλλο δίκτυο → ένας ακόμη router → data center → server.
- 1photo.jpg (5 MB) — το αρχικό αρχείο στη συσκευή της Emma.
- 2Διαχωρισμός — το αρχείο χωρίζεται σε πολλά μικρότερα κομμάτια.
- 3Packets — τα πακέτα μεταδίδονται μέσω του δικτύου μέσω των διαθέσιμων διαδρομών.
- 4Παραλήπτης — τα πακέτα φτάνουν στη συσκευή του Alex.
- 5Δεδομένα εφαρμογής — τα πακέτα συναρμολογούνται ξανά σε μορφή κατανοητή από την εφαρμογή.
- 6photo.jpg — ο Alex βλέπει την ίδια ακριβώς φωτογραφία.
Κάθε δρομολογητής λαμβάνει το πακέτο και παίρνει μια απόφαση για το επόμενο τμήμα της διαδρομής.
Δηλαδή, το Διαδίκτυο λειτουργεί μάλλον ως μια σειρά τοπικών αποφάσεων «πού μετά;», παρά ως ένας κεντρικός διαχειριστής που ελέγχει εκ των προτέρων κάθε πακέτο στον κόσμο.
Γιατί αυτό έχει σημασία για την ασφάλεια
Διαφορετικά τμήματα του δικτύου βλέπουν και επεξεργάζονται διαφορετικά στοιχεία υπηρεσίας.
Γι' αυτό αργότερα θα χρειαστεί να διακρίνουμε: ποιος μπορεί να δει τις δικτυακές διευθύνσεις· ποιος μπορεί να δει το όνομα του ιστότοπου· ποιος μπορεί να δει το περιεχόμενο· τι προστατεύει το HTTPS· τι αλλάζει το VPN· τι δεν προστατεύει ούτε το ένα ούτε το άλλο.
Αλλά πρώτα πρέπει να κατανοήσουμε τον ίδιο τον μηχανισμό μετάδοσης.
Χωρίς αυτό, η φράση «η κίνηση είναι κρυπτογραφημένη» μπορεί να ακούγεται σαν το πακέτο να φόρεσε σκούρα γυαλιά και να εξαφανίστηκε από το Διαδίκτυο.
Δεν εξαφανίζεται.
Πρέπει ούτως ή άλλως να παραδοθεί.
Ένα πρακτικό παράδειγμα
Η Emma στέλνει ένα μήνυμα στον Alex: «Γεια!» → Send.
Μέσα στο σύστημα: τα δεδομένα της εφαρμογής χωρίζονται και προετοιμάζονται, μετατρέπονται σε δικτυακά πακέτα, μεταδίδονται μέσω αρκετών δικτύων και επεξεργάζονται στον παραλήπτη, γινόμενα ξανά «Γεια!».
Ο χρήστης βλέπει το μήνυμα.
Το Διαδίκτυο εκτελεί όλη τη συσκευασία, την παράδοση και την αποσυσκευασία σχεδόν απαρατήρητα.
Τα βασικά που πρέπει να θυμάστε
- Το Διαδίκτυο συνήθως μεταδίδει τα δεδομένα όχι ως ένα τεράστιο αντικείμενο, αλλά ως πολλές ξεχωριστές μερίδες.
- Το δικτυακό πακέτο περιέχει ωφέλιμα δεδομένα και πληροφορίες υπηρεσίας.
- Ο διαχωρισμός των δεδομένων επιτρέπει σε πολλούς χρήστες να μοιράζονται την ίδια δικτυακή υποδομή.
- Τα πακέτα μπορούν να καθυστερούν, να χάνονται ή να φτάνουν με διαφορετική σειρά.
- Διαφορετικά πρωτόκολλα μεταφοράς αντιδρούν διαφορετικά σε τέτοιες καταστάσεις.
- Η εφαρμογή, ο μηχανισμός μεταφοράς και το επίπεδο δικτύου επιλύουν διαφορετικά ζητήματα.
- Το ίδιο πακέτο μπορεί να μεταδίδεται διαδοχικά μέσω διαφορετικών φυσικών τεχνολογιών επικοινωνίας.
- Η ενθυλάκωση επιτρέπει στα επίπεδα του δικτύου να προσθέτουν τις δικές τους πληροφορίες υπηρεσίας.
- Το μέγεθος των μεταδιδόμενων δικτυακών μονάδων έχει τεχνικούς περιορισμούς.
- Ο δρομολογητής χρειάζεται πρώτα απ' όλα να καθορίσει πού θα στείλει το πακέτο στη συνέχεια.
- Για την κατανόηση της δικτυακής ασφάλειας είναι σημαντικό να διακρίνουμε το περιεχόμενο των δεδομένων από τις πληροφορίες υπηρεσίας που είναι απαραίτητες για την παράδοση.
Τι ακολουθεί
Τώρα έχουμε ένα πακέτο με προέλευση την Emma και προορισμό τον Server.
Όμως ανάμεσα στην Emma και τον server μπορεί να βρίσκονται δεκάδες δικτυακές συσκευές.
Πώς ξέρει ο οικιακός router πού να στείλει το πακέτο;
Πώς ξέρει ο επόμενος δρομολογητής τι να κάνει στη συνέχεια;
Γιατί η διαδρομή προς τον server μπορεί να αλλάζει;
Και υπάρχει στο Διαδίκτυο ένας ενιαίος παγκόσμιος διαχειριστής διαδρομών;
Συνεχίζουμε — στο επόμενο μέρος — «Δρομολογητές και η διαδρομή του πακέτου».
- Το διαδίκτυο συνήθως δεν μεταδίδει τα δεδομένα ως ένα τεράστιο αντικείμενο, αλλά ως πολλά ξεχωριστά κομμάτια.
- Ένα δικτυακό πακέτο περιέχει τόσο χρήσιμα δεδομένα όσο και βοηθητικές πληροφορίες.
- Ο διαχωρισμός των δεδομένων επιτρέπει σε πολλούς χρήστες να μοιράζονται την ίδια δικτυακή υποδομή ταυτόχρονα.
- Τα πακέτα μπορούν να καθυστερήσουν, να χαθούν ή να φτάσουν εκτός σειράς.
- Διαφορετικά πρωτόκολλα μεταφοράς αντιδρούν διαφορετικά σε τέτοιες καταστάσεις.
- Η εφαρμογή, ο μηχανισμός μεταφοράς και το επίπεδο δικτύου χειρίζονται διαφορετικά καθήκοντα.
- Το ίδιο πακέτο μπορεί να ταξιδέψει μέσω διαφορετικών φυσικών τεχνολογιών σύνδεσης κατά τη διαδρομή του.
- Η ενθυλάκωση επιτρέπει σε κάθε επίπεδο δικτύου να προσθέτει τις δικές του βοηθητικές πληροφορίες.
- Το μέγεθος των μεταδιδόμενων δικτυακών μονάδων έχει τεχνικούς περιορισμούς.
- Η πρώτη δουλειά ενός δρομολογητή είναι να καταλάβει πού να στείλει το πακέτο στη συνέχεια.
- Για την κατανόηση της ασφάλειας δικτύων είναι σημαντικό να ξεχωρίζουμε το περιεχόμενο των δεδομένων από τις βοηθητικές πληροφορίες που απαιτούνται για την παράδοση.