【产品经理】Push 数据包历险记(一)

大家好,我是一个刚刚出生的 Push 消息数据包,我当前所处的服务器就是我的母亲,它用了 0.0001秒的时间孕育了我。母亲生我比较快,是因为我本身携带的信息比较少,上次那个编号 9527 的老哥由于太有内涵,母亲孕育它用了比我多 5 倍的时间。

母亲只生了我的身,运营配置照我心。我深深的知道,在出生之前,我身体的每一部分甚至我的灵魂早就在配置平台上定义清楚了。当这一切都配置完毕后,母亲只是在等待一个时机来孕育我,这个时机可能是墙上的那台老挂钟(服务器时间),也可能是来自远地方朋友的信件(客户端行为反馈)。

母亲很忙,因为除了我之外,她每秒还要孕育几万个像我一样的数据包,以至于我还来不及与她道别,就需要踏上那去往远方的征程。

在长途车站,我取到了我的单程票,上面写着一个ip 地址和一个端口号,是的,这一串数字就是我此生的意义。

候车室的那头是一片壮观的景象,无数条高速路(长连接)密密麻麻的排列着。如果你想尝试清点一下数目,会发现这根本就是不可能的事情。大概有 300 万条吧,车站的老站长悠悠的说,你的母亲年纪有点大了,能维持这么多条通道已经很不错了。

老站长,为什么这些通道上总会时不时的从远处驶来一些只有车头(数据报 Header),但并没有车厢(数据)的车辆呢?我好奇的问。

小伙子你很有心嘛,老站长继续说道,这些车辆(心跳包)的作用是为了告诉车站,这条高速路当前可以通行。这些高速路是服务器实时、主动触达客户端的唯一途径,但是有很多因素会导致道路的中断。假设高速路的另一端是一台使用移动数据网络的手机,如果高速路上一直没有车辆(数据)传输,那么根据其运营商配置的NAT 超时规则,它的IP 地址可能会在 5~30 分钟内被重置。客户端 IP 地址一旦被更换,基于之前 IP 地址建立的高速通道就会失效,被安排到这条高速通道上的数据包将永远无法到达它的终点!为了解决这个问题,你刚才看到的这些空箱车辆(心跳包)就需要在 NAT 超时之前从客户端发出,这样就可以避免触发运营商的 NAT 超时机制,导致客户端 IP 变更。除此之外,像客户端异常退出或者网络状况发生变化都有可能造成高速路的失效,当服务器在与客户端约定的时间内一直没有空箱车辆驶入,服务器就可以关闭这个高速入口了。哦,我明白了,空箱车辆的目的就是为了确认高速通道的有效性,只要有车辆从高速路驶入,就说明高速路另一端是可达的!高速路失效后,如果想再次建立,就需要远端用新的地址发送车辆过来!

孺子可教也!老站长微笑着点了点头,时间不早了,快去完成你的使命吧!我也向老站长点了点头,看了看手里的车票,毅然决然的走向了属于我的高速入口。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上通天地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值