xztau
@xztau
Я

Какая информация отправляется в TCP посылке?

Я отправляю посылку в десяток байт. Проблема поймать их все на другом конце. Партнер может обработать только определенное количество байт иначе сдвигается буфер.
Вопрос по TCP протоколу.
Есть ли в отправляемом пакете информация о количестве отправленных байт?
  • Вопрос задан
  • 315 просмотров
Пригласить эксперта
Ответы на вопрос 3
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Есть ли в отправляемом пакете информация о количестве отправленных байт?

О количестве отправленных вами байт -- нет. Количество байт отправленных TCP стеком обозначено в IP заголовке. Если вам нужен фрейминг внутри TCP-потока вы можете организовать его сами.
Ответ написан
@throughtheether
human after all
Есть ли в отправляемом пакете информация о количестве отправленных байт?
Если есть TCP-сегмент, инкапсулированный в IP-пакет, то длину полезной нагрузки (payload) TCP можно узнать так - из длины полезной нагрузки IP (вычисляется как разница полной длины IP пакета, Total Length, и длины заголовка, Internet Header Length) вычитаем длину заголовка TCP (поле Data Offset).

Если задача другая - узнать, сколько байт получилось отправить, то эту информацию (количество переданных байт), насколько помню, возвращает вызов send/write.
Ответ написан
xztau
@xztau Автор вопроса
Я
Посоветуйте книжку, в которой разбираются протоколы TCP UDP IP по Ethernet с низов. Буду рад, если на русском.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы