
Александр
22.03.2018
10:12:54
https://github.com/firstrow/tcp_server

Roman
22.03.2018
10:13:06
какие?!
ну как ты включишь jumbo где-нибудь в докере?

Daniel
22.03.2018
10:13:25

Roman
22.03.2018
10:13:48

Google

Daniel
22.03.2018
10:13:50

Roman
22.03.2018
10:13:57
а потом окажетс что у людей оверлейная сеть

Daniel
22.03.2018
10:14:04

Roman
22.03.2018
10:14:07
на каком-нибудь vxxlan

Александр
22.03.2018
10:15:05
два процесса на гоу, возможно через интернет, возможно рядом сидят - перекинуть структуру данных в 2 килобайта, гарантированно, но не важно с какой задержкой

Daniel
22.03.2018
10:15:12

Александр
22.03.2018
10:15:44
что отправленный пакет данных доедет до адресата
а не потеряется

Daniel
22.03.2018
10:15:54
TCP, как мы знаем, гарантирует доставку в буфер OS, а не приложению

Roman
22.03.2018
10:16:47

Александр
22.03.2018
10:16:52
https://dchua.com/2017/06/23/sending-your-structs-across-the-wire-(tcp-connection)/

Google

Александр
22.03.2018
10:17:02
а чем такой сырой вариант не соотвествует?

Roman
22.03.2018
10:17:15
в случае с udp правда еще надо реассемблинг делать

Daniel
22.03.2018
10:17:32
то есть - реализовывать tcp :)

Roman
22.03.2018
10:17:57

Daniel
22.03.2018
10:18:17

Александр
22.03.2018
10:18:44

Roman
22.03.2018
10:18:57

Daniel
22.03.2018
10:18:58
udp тоже почти всегда доедет

Roman
22.03.2018
10:19:10

Александр
22.03.2018
10:19:29

Roman
22.03.2018
10:19:37
а, и еще не в том порядке может доехать

Mykyta
22.03.2018
10:19:54

Roman
22.03.2018
10:20:02
до "приёмника"
в socket buffer приемника. не более. дальше нет гарантий

Daniel
22.03.2018
10:21:09
кусками )
мой опыт говорит, что в локалке потерь практически нет, а в интернете и tcp продалбывается. часами можно писать в сокет, который на той стороне отвалился давно. особенно на мобильном инете

Roman
22.03.2018
10:23:56

Daniel
22.03.2018
10:25:18
с буферами у свитча - на этом месте у tcp начнутся ретрансмиты, которые тоже приведут к потерям в конце концов

Александр
22.03.2018
10:25:27
может через вебсокет прокинуть и все? хммм

Daniel
22.03.2018
10:25:28
so_keepalive не помогает

Roman
22.03.2018
10:26:04

Google

Daniel
22.03.2018
10:26:04

Roman
22.03.2018
10:26:10

Daniel
22.03.2018
10:26:19
ну - такова реальность

Александр
22.03.2018
10:26:20
я же сформулировал?

Daniel
22.03.2018
10:26:23
нет
ты не сформулировал, гарантий чего ты хочешь

Александр
22.03.2018
10:28:25
type Client interface {
Send(s *MyStruct)
}
type Server interface {
Receive() chan *MyStruct
}

Roman
22.03.2018
10:28:29
ну - такова реальность
да ладно? я ж говорю: мало просто включить, надо еще и настроить, а не использовать дефолтные значения

Александр
22.03.2018
10:28:31
и я не хочу знать что внутри ?

Daniel
22.03.2018
10:29:03

Roman
22.03.2018
10:29:38

Александр
22.03.2018
10:29:58

Roman
22.03.2018
10:30:03

Александр
22.03.2018
10:30:13
зачем мне как клиенту знать, что там происходит
с моей стороны вылетело, как там транспортный протокол думает мне похрену

Daniel
22.03.2018
10:30:50

Александр
22.03.2018
10:30:52
главное что бы до сервера на другом конце долетело

Roman
22.03.2018
10:31:24

Google

Daniel
22.03.2018
10:31:42

Александр
22.03.2018
10:32:02
what? O_o

Daniel
22.03.2018
10:32:04

Александр
22.03.2018
10:32:40

Daniel
22.03.2018
10:32:40
what? O_o
ты не хочешь знать, долетело ли оно. значит, тебе не важно, долетело ли

Александр
22.03.2018
10:33:18
пусть транспорт проверят доставку
но если ему совсем кабель порезали физически, тогда ошибка

Roman
22.03.2018
10:33:34

Daniel
22.03.2018
10:33:53
а что она может нарешать, кроме как дропнуть их?

Admin
ERROR: S client not available

Александр
22.03.2018
10:33:55
type Client interface {
Send(s *MyStruct) error
}

Roman
22.03.2018
10:34:40

Daniel
22.03.2018
10:34:55
окуда оно там возьмется?!
и что мы делаем с данными, которые генерятся, пока у нас eagain?

Roman
22.03.2018
10:35:40
но это лучше, чем просто запульнуть в сеть без каких-то гарантий

Daniel
22.03.2018
10:36:18
мы по условию отправляем больше, чем можем передать.

Roman
22.03.2018
10:37:00

Google

Alexander
22.03.2018
10:37:05
Так если типа гарантии нужны может nats и иже с ними?

Daniel
22.03.2018
10:38:03

Igor
22.03.2018
10:41:01

Daniel
22.03.2018
10:41:15
да, именно

Roman
22.03.2018
10:47:49

Daniel
22.03.2018
10:48:30
а если страшно - то и tcp не ок, надо на уровне приложения делать контроль

Roman
22.03.2018
12:38:21

Daniel
22.03.2018
12:39:32
этот процент ценен только одним - возможностью отследить, что он не уменьшается

Roman
22.03.2018
12:41:49

Daniel
22.03.2018
12:42:43
да похрен же

Roman
22.03.2018
12:44:25
да похрен же
да блин, красный бэджик на главной странице в 36% скорее пугает людей нежели обнадёживает.. а при том количестве тестов что уже написано это просто нечестно)))

Daniel
22.03.2018
12:45:24
так это
сделайте зелени

Roman
22.03.2018
12:45:39

Daniel
22.03.2018
12:46:03
ну - напишите правильных тестов, чтобфы покрывали что надо

Roman
22.03.2018
12:47:13

Daniel
22.03.2018
12:49:26
он же его не сам вычисляет
он его от go test получает

Roman
22.03.2018
12:50:54

Daniel
22.03.2018
12:51:35
так это
написать как учат седые строгие отцы