Избыточный вес SSL в Java - PullRequest
       5

Избыточный вес SSL в Java

4 голосов
/ 18 августа 2010

Я использую org.apache.commons.ssl для создания SSL-сервера на Java. Я сталкиваюсь со странной проблемой: я посылаю 500 КБ данных через поток SSL, я получаю 500 КБ данных на стороне клиента, но объем передаваемых данных через соединение TCP в 20 раз больше Что может быть причиной ? Неправильная конфигурация параметров SSL?

Я использую настоящий доверенный сертификат SSL для своих тестов. Я пытался перехватить и декодировать поток SSL с помощью Wireshark, но это не сработало, я не смог увидеть декодированные данные. Или, может быть, поток был закодирован за более чем один проход? Пакеты TCP были 1525 байтов каждый. Ничего ненормального, как я мог видеть.

Если у кого-то есть идея ... Спасибо ! Оливье

Ответы [ 3 ]

3 голосов
/ 18 августа 2010

Звучит так, как будто вы посылаете только один байт за раз по проводам. В этом случае накладными расходами является инкапсуляция TCP / IP-пакета.

1 голос
/ 19 августа 2010

Повторные переговоры не будут учитывать ваш 20-кратный взрыв.Используете ли вы BufferedOutputStreams вокруг потоков вывода сокета SSL в обоих направлениях? т.е. на сервере и клиента?Если вы не используете буферизованный вывод, и ваш код записывает по одному байту за раз, вы можете увидеть 40-кратное исследование из-за протокола записи SSL и, геометрически, другое 40-кратное исследование из-за накладных расходов сегмента TCP;последнее обычно смягчается алгоритмом Нейгла, но некоторые люди отключают его, слишком остро ИМХО.

0 голосов
/ 19 августа 2010

@ EJP: вы были правы, я допустил ошибку в своем коде: я обернул BufferedOuputStream вокруг SomeStuffOutputStream вместо того, чтобы обернуть SomeStuffOutputStream в BufferedOuputStream BufferedOuputStream должен быть на самом низком уровне, чуть выше необработанного сокета OutputStream.

Теперь работает отлично!

Это было неправильное представление, и я только начинаю понимать, почему я увидел «нормальные» размеры пакетов, потому что протокол SSL работает. В следующий раз я буду более осторожен:)

Спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...