Как происходит разбиение данных на TCP сегменты? Как происходит разбиение данных на TCP сегменты?
Если мы передаем большой массив текста по HTTP в кодировке UTF8, может ли случится так, что разделение сегментов пройдет через какой-нибудь символ?
(Т.е. первый байт символа окажется в первом сегменте, а последующие во втором?)

21 Авг 2019 в 06:25
285 +1
0
Ответы
1

Разбиение данных на TCP сегменты происходит по следующим принципам:

Данные разделяются на пакеты оптимального размера для передачи по сети. Размер пакетов определяется максимальным размером передаваемых данных в рамках TCP сессии (MTU - Maximum Transmission Unit).

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

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

Что касается передачи текста в кодировке UTF8, то разделение сегментов внутри символа не должно произойти. UTF-8 представление символов занимает разное количество байт в зависимости от символа, и кодировка специально предусматривает способы обнаружения начала и конца символа в последовательности байт. Таким образом, при передаче текста в кодировке UTF-8 разделение сегментов не должно привести к разделению символов и ошибкам декодирования.

20 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир