2014-09-04 2 views
2

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

первого вопрос Каковы плюсы и минусы использования один сокета (полный дуплекс) против два сокета (симплекс) per peer: один для чтения и другой записи? Специально с точки зрения производительности и использования ресурсов.

2-й вопрос В случае, если я решил использовать более 1 сокета на одноранговое соединение, все, что я читаю и пишу. Тогда это поможет мне уменьшить масштаб обработки обработанных сообщений?

3-й вопрос: что должно помочь мне определить количество сокетов на одноранговое соединение? Пропускная способность сети? Количество сообщений и выход?

Все вопросы различны и не имеют какой-либо взаимосвязи.

+0

Какое приложение использует этот сокет (ы)? Если вам нужны разные виды связи параллельно, вам нужно использовать два сокета, например FTP. –

+0

Некоторые проприетарные протоколы, отправляющие и принимающие сообщения через сокеты TCP. –

+0

Недостатком использования двух сокетов является добавленная сложность. С одним гнездом сокет либо подключен, либо нет. С двумя сокетами теперь вам нужно выяснить, как обращаться с ним, когда одно из двух разъемов было повреждено (или не удалось подключиться), в то время как другое все еще подключено. Это лишние хлопоты, без явной выгоды. –

ответ

1

Каковы плюсы и минусы использования одного сокета (полный дуплекс) против двух гнезд один для чтения и другой записи? Специально с точки зрения производительности и использования ресурсов.

Pro 1 гнездо: использование ресурсов. Contra один разъем: ноль. Производительность: идентична, за исключением того, что вы сохраняете соединение и закрываете рукопожатия, если используете только один сокет.

В случае, я выбираю использовать два подхода к сокету, тогда не будет полезно использовать оба из них в режиме полного дуплекса, таким образом, он помогает мне масштабироваться с точки зрения ввода и выхода данных?

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

Какое влияние имеет полоса пропускания сети?

Nil.

или он используется для использования в сети?

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

+0

Извините, я не смог хорошо написать вопросы. Второй вопрос отличается от 1, они не связаны между собой. То, что я хотел узнать в 2-м вопросе, заключается в том, что если я решил использовать два сокета для каждого адресата, как на том, так и на чтении и записи. Тогда это помогает мне масштабироваться при обработке сообщений. Третий вопрос заключался в выборе сокетов для каждого адресата, должен зависеть от доступной пропускной способности? –

+0

Ответ на второй вопрос зависит от ваших функциональных требований. Я не вижу, как это помогает масштабировать что угодно. Ответ на третий вопрос - нет. – EJP

+0

@ EJP только для того, чтобы играть адвоката дьявола (так как я также думаю, что два сокета - один сокет слишком много) ... как насчет случая, когда пакет TCP упал? В случае с одним гнездом весь поток данных в этом направлении будет приостанавливаться (кратковременно) до тех пор, пока выпавший пакет не будет обнаружен и не повторится. С двумя сокетами вы могли бы продолжать получать данные из другого сокета в течение этого периода, поскольку поток TCP B не будет затронут пакетом, упавшим из потока TCP A. –