На каком уровне tcp/ip указывается тип данных?

Допустим я передают данные через netcat, wiki говорит что он работает через протокол tcp, т.е. сверху ничего нет ftp/http и т.п.? Т.е. отправляются и принимаются байты. В какой момент и где записано что я передают именно текст? Или netcat все входящие байты по умолчанию переводит в текст?


Ответы (2 шт):

Автор решения: M.O.

Ответ простой - нигде не записан тип данных.

Для операционной системы и файловой системы на том уровне, на котором происходит приём и сохранение байтов - тип данных не имеет значения.

Дальше, вопрос интерпретации - так же, как cat показывает текст, netcat тоже показывает текст.

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

→ Ссылка
Автор решения: KoVadim

у tcp/ip нет уровней. Оно само "на уровне" (Ip на 3, tcp/upd - на 4 https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI ). На 3 и 4 уровнях тип данных не записывается. Просто Wireshark узнает протокол (например, по номеру порта) и декодирует по записанным правилам, но это уже 5, 6 и 7 уровень OSI.

netcat передает то, что в него отправят. Будет текст - будет текст, картинка - картинка, но в любом случае это просто последовательность байт.

Wireshark для неизвестных протоколов показывает как бинарное отображение, так и текстовое. И тут срабатывает простая штука - текстовое представление текстовых данных выглядит очень естественно:)

→ Ссылка