V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ChristopherWu  ›  全部回复第 11 页 / 共 65 页
回复总数  1288
1 ... 7  8  9  10  11  12  13  14  15  16 ... 65  
2020-01-23 23:06:17 +08:00
回复了 jdz 创建的主题 程序员 为何 tcp 中的 time_wait 状态持续 2msl 而不是 msl 呢?
总结:确保状态正确,也就是上面的同学说的 “保证最后发出的断开连接的消息对面能够收到”

```
TCP A TCP B

1. ESTABLISHED ESTABLISHED

2. (Close)
FIN-WAIT-1 --> <SEQ=100><ACK=300><CTL=FIN,ACK> --> CLOSE-WAIT

3. FIN-WAIT-2 <-- <SEQ=300><ACK=101><CTL=ACK> <-- CLOSE-WAIT

4. (Close)
TIME-WAIT <-- <SEQ=300><ACK=101><CTL=FIN,ACK> <-- LAST-ACK

5. TIME-WAIT --> <SEQ=101><ACK=301><CTL=ACK> --> CLOSED

6. (2 MSL)
CLOSED

Normal Close Sequence
```

在最后的 4、5 阶段,假如 5 返回给`TCP B`的时候,`1 msl` 过去了,报文过期了;`TCP B` 没有收到,再发一遍,如果设置 `time_wait 状态` 是 `1msl`,那么 `TCP A` 处于`closed`状态,拒收`TCP B`的`FIN 包`,B 无法关闭。

所以要设置大于 1MSL。

而 TCP B 重传过来的包,你也要假设他可能需要`1 msl`吧,那么 time_wait 就要`2 msl`的时间来保证此极端情况下,B 能重传成功。
2020-01-16 11:27:02 +08:00
回复了 woahishui 创建的主题 程序员 golang 语言学习有感
@libook 一个问题,你写业务的时候,没有泛型用,都 copy-paste,看着一大坨逻辑都一样的代码,不觉得有🤢难受的感觉吗
2020-01-15 16:20:03 +08:00
回复了 woahishui 创建的主题 程序员 golang 语言学习有感
来让我喷一下 go:

1. 没有高性能好用的泛型,你说 interface{}?那个连 go 作者都受不了,因此导致没有抽象库可用如 reduce, map, flitter, any 等等函数;
2. 错误处理,就算是用`product type`,也没有设置好用的语法糖将 error 迭代下去,导致大量重复冗余的 if else
3. 自作主张的 golint, 你要是希望自己比较严谨,希望社区统一,就不要定死那么多可有可无的东西,大括号换行这些没所谓。cpu CPU Cpu 大小写没所谓,但,if else 我就喜欢用 else 显示标注,你连这要管我?? 我 export 函数就是不喜欢写注释你给我报错???还不能自定义??
4. 一开始没有想做好 包管理器 给开源社区的人用。。导致现在一大堆。。
想到再补充。。
2020-01-10 19:14:36 +08:00
回复了 CMGS 创建的主题 酷工作 [新加坡] 年底了又来招点人
lz 是我组长,他说的都是真的,他带头 WLB 🐶
2020-01-10 13:15:21 +08:00
回复了 HTSdTt3WygdgQQGe 创建的主题 程序员 iptables 怎么屏蔽 https 请求图片
用 cotent-type 过滤不就好了
@newbieRenew 我反而因为看了后,结合多看了一些其他的书,认识到 A 是多么的牛逼,B 是多么的渣渣。
1 ... 7  8  9  10  11  12  13  14  15  16 ... 65  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2546 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 15:37 · PVG 23:37 · LAX 07:37 · JFK 10:37
Developed with CodeLauncher
♥ Do have faith in what you're doing.