Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
1 августа 2017, 5:18:45 AM   # 1
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: Есть ли причина, почему сообщения отправляются в 2 TCP Сегменты вместо 1?

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Это ответ я получаю после отправки Версия сообщение:
(Это из WireShark:
Код:
Кадр 8: 180 байт на проводе (1440 бит), 180 байт захваченного (1440 бит) на интерфейсе 0
[2 TCP Сегменты повторно собран (126 байт): # 6 (24), # 8 (102)]
    [Кадр: 6, полезная нагрузка: 0-23 (24 байта)]
    [Кадр: 8, полезная нагрузка: 24-125 (102 байт)]
    [Число сегментов: 2]
    [Длина TCP повторно собран: 126]
    [TCP данные собраны: f9beb4d976657273696f6e00000000006600000085e1eb8d ...]

Моя путаница состоит из двух частей:
1. Почему посылает ответ (возвращаемый Версия сообщение) в 2 TCP Сегменты вместо 1? И это будет всегда заголовок отдельно от тела сообщения?
2. Почему Verak сообщение внутри же ответ и это будет всегда, как этот смысл несколько сообщений внутри одного ответа? (До сих пор не удосужились тестирование других сообщений)
Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст


Как заработать Биткоины?
Без вложений. Не майнинг.


1 августа 2017, 5:24:29 AM   # 2
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Есть ли причина, почему сообщения отправляются в 2 TCP Сегменты вместо 1?

Получил 1806 Биткоинов
Реальная история.





1. Почему посылает ответ (возвращаемый Версия сообщение) в 2 TCP Сегменты вместо 1? И это будет всегда заголовок отдельно от тела сообщения?
Поскольку некоторые оптимизации были сделаны, когда заголовок в очереди для отправки, а затем полезной нагрузки, если есть полезная нагрузка. В результате два вызовов ядра, но все равно должно быть принято как один кусок сообщения, даже если отправлен отдельно.

2. Почему Verak сообщение внутри же ответ и это будет всегда, как этот смысл несколько сообщений внутри одного ответа? (До сих пор не удосужились тестирование других сообщений)
Verack не должны быть частью одного и того же ответа. Он может быть отправлен в то же время, хотя, но несколько сообщений не должны быть в одних и тех же TCP-пакетов.
achow101 сейчас офлайн Пожаловаться на achow101   Ответить с цитированием Мультицитирование сообщения от achow101 Быстрый ответ на сообщение achow101

1 августа 2017, 6:15:25 AM   # 3
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: Есть ли причина, почему сообщения отправляются в 2 TCP Сегменты вместо 1?

Я новичок в протоколе TCP так что моя терминология может быть немного неправильно.
Я получаю ответ за тот же открытый сокет, но более 2 различных вызовов (2 различных буферов). 1 заголовок 24 байт, то 1 тело переменные байты [Это было на самом деле является источником большой путаницы для меня]
Затем, глядя глубже в WireShark я видел эту линию я делил выше, показывая 2 различных сегментов.

Это то, что показывает Wireshark (текст в красный добавлен на фото):



Кроме того, в моем коде это шестигранное общего буфер я получаю. Он содержит оба сообщения:
котировка
f9beb4d976657273696f6e0000000000660000008a94bbe97f1101000d00000000000000131b80590000000 0010000000000000000000000000000000000ffff05ef60c22acf0d000000000000000000000000 0000000000ffff23a7f609208df65ca61c4a15f201102f5361746f7368693a302e31342e312f374 d070001f9beb4d976657261636b000000000000000000005df6e0e2
Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст

1 августа 2017, 6:50:40 AM   # 4
 
 
Сообщения: 2870
Цитировать по имени
цитировать ответ
по умолчанию Re: Есть ли причина, почему сообщения отправляются в 2 TCP Сегменты вместо 1?

протоколы верхнего уровня, такие как Bitcoin опыт сокет TCP, как поток байтов. Таким образом, с точки зрения узла, он записывает в исходящем потоке на равных таким образом, как "versionVerackAddrInvBlock ..."С сообщениями, просто слиплись, и подобный входящий поток на равных. Дело в том, что вещи, которые на самом деле разбивается на пакеты по протоколу TCP обычно не то, что пользователи TCP придется беспокоиться о (за исключением иногда по причинам оптимизации). Сообщение Bitcoin может быть разбита на несколько пакетов TCP (если он слишком велик для одного), и пакет TCP может содержать несколько Bitcoin сообщений (если Bitcoin ядро ​​происходит отправить два сообщения Bitcoin очень близко друг к другу так, что операционная система может партия их). Если вы заинтересованы в Bitcoin, а не TCP, то вы должны действительно не беспокоиться об этом: просто придерживаться всех TCP полезных нагрузок вместе.

Попробуйте написать простой сервер TCP и клиент в C или что-то с использованием основных системных вызовов. Это довольно просто, и это даст вам более глубокое понимание того, как это работает с точки зрения пользователя TCP.
theymos сейчас офлайн Пожаловаться на theymos   Ответить с цитированием Мультицитирование сообщения от theymos Быстрый ответ на сообщение theymos

1 августа 2017, 3:15:23 PM   # 5
 
 
Сообщения: 428
Цитировать по имени
цитировать ответ
по умолчанию Re: Есть ли причина, почему сообщения отправляются в 2 TCP Сегменты вместо 1?

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

Попробуйте написать простой сервер TCP и клиент в C или что-то с использованием основных системных вызовов. Это довольно просто, и это даст вам более глубокое понимание того, как это работает с точки зрения пользователя TCP.

Я на самом деле заинтересованы в обоих, и вид обучения все в то же время!
Ваш комментарий помог много на самом деле. Я изменил мой MessageManager класс, который должен обрабатывать эти полученные массивы байтов и теперь он выглядит для магия в сообщениях и на основе первого 24 байта заголовка и PayloadSize внутри него, я решаю, сколько из пакета остальные или как правило, идут оттуда.

Теперь все работает отлично, и жизнь прекрасна снова после 1 недели изо всех сил.
Благодарю.
Кодирование Энтузиаст сейчас офлайн Пожаловаться на Coding Энтузиаст   Ответить с цитированием Мультицитирование сообщения от Coding Энтузиаст Быстрый ответ на сообщение Coding Энтузиаст

2 августа 2017, 5:29:25 PM   # 6
 
 
Сообщения: 280
Цитировать по имени
цитировать ответ
по умолчанию Re: Есть ли причина, почему сообщения отправляются в 2 TCP Сегменты вместо 1?

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

Попробуйте написать простой сервер TCP и клиент в C или что-то с использованием основных системных вызовов. Это довольно просто, и это даст вам более глубокое понимание того, как это работает с точки зрения пользователя TCP.

Я на самом деле заинтересованы в обоих, и вид обучения все в то же время!
Ваш комментарий помог много на самом деле. Я изменил мой MessageManager класс, который должен обрабатывать эти полученные массивы байтов и теперь он выглядит для магия в сообщениях и на основе первого 24 байта заголовка и PayloadSize внутри него, я решаю, сколько из пакета остальные или как правило, идут оттуда.

Теперь все работает отлично, и жизнь прекрасна снова после 1 недели изо всех сил.
Благодарю.

звучит для меня, что это TCP Segmentation Offload.

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

https://wiki.wireshark.org/CaptureSetup/Offloading

Nice наблюдение, спасибо за Ваше сообщение. Это позволит мне думать об обнаружении ОС и стек дактилоскопии TCP / IP.
Andre_Goldman сейчас офлайн Пожаловаться на Andre_Goldman   Ответить с цитированием Мультицитирование сообщения от Andre_Goldman Быстрый ответ на сообщение Andre_Goldman



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW