/ / Зменшити обсяг пам’яті, жонглюючи пакетами в мережі? - мережа, tcp, хмара, сервер, передача

Зменште сховище, жонглюючи пакети в мережі? - мережа, tcp, хмара, сервер, передача

Я хочу передмовити це, сказавши, що я маювідчуваючи, що ця ідея не спрацює так, як я собі уявляю, але я впевнений, чому. Ймовірно, я роблю якесь хибне припущення про те, як працює Інтернет.

Скажімо, сервер А має файл розміром 1024 кб. Цей файл розділений на 1024 пакети для передачі через мережу. Сервер A надсилає ці 1024 пакети на сервер B через TCP. Як тільки B отримує пакет, він відправляє його назад до A і навпаки. Якщо будь-яка сторона C робить запит до даних A, вона робить копію кожного пакету, який отримує від B, і надсилає до C і B.

У цій схемі сервер А може видалити свій файляк тільки він надішле всі пакети в B, звільняючи місце на диску. Серверам A і B потрібно зберігати лише один пакет в будь-який момент часу, а решта пакетів будуть "жонглювати" в мережі.

Чи справді можна зберігати дані, "жонглюючи" ними через мережу? Я занижую накладні витрати на отримання та надсилання пакетів?

EDIT: Це передбачає 100% надійність мережі, що, мабуть, є абсолютно нереальним припущенням.

Відповіді:

1 для відповіді № 1

Мережа має якусь ємність "сховища", і вона зазвичай вимірюється значенням "Продукт із затримкою пропускної здатності".(Подумайте про мережу як про трубу, тоді її ємність, обсяг даних (води), яку може вмістити труба, це об’єм цієї труби, продукт довжиною по площі.) Якщо ви використовуєте ненадійні протоколи, такі як UDP, щоб зробити "циклічна відправка", зайві дані, які перевищують ємність, просто втратять. Якщо для цього ви використовуєте TCP, після заповнення "трубопроводу" надсилання заповнює внутрішній буфер надсилання в ОС, а потім блокує.