linux - 应用层TCP的确认机制
巴扎黑
巴扎黑 2017-04-17 15:53:26
0
5
471
巴扎黑
巴扎黑

membalas semua(5)
Peter_Zhu

你是说TCP协议?
TCP协议本身就包含了确认送达和自动重传的机制,只要你使用TCP连接,就不需要考虑这个问题。

左手右手慢动作

TCP是一种协议,一般由你的机器设备进行实现,你无需关注TCP的重传。一般你的应用层,例如HTTP,网络层就是TCP,在调用HTTP协议时无需关注下层协议实现,下层网络协议对上层协议是透明的

刘奇

用Modbus协议的机制跟你探讨一下,主站和从站通讯属于请示应答机制。当主站给从站发送一个请求时,假如从站未及时回复,超过延时时间之后,主站会连续给从站下发5次。通过超时时间和重发次数来尽可能保证每次的请求都成功,假如重发5次均失败,则判定此次发送失败,此时物理链路可能发生异常,后续未发完的数据也不再发送。

PHPzhong

TCP是可靠传输的协议,你发的每一个包,对端都需要ACK确认.
比如你传了5个包给对端, 其中3号包丢了,
那么当对端收到4号包时, 对端会给你发ACK 3,同时对端会把4号包保存下来
当对端又收到5号包时, 对端还是会给你发ACK 3, 同时对端会把5号包保存下来.
TCP协议中,当你连续收到3个 “ACK 3”时, 你这边就知道 3号包丢了,要重发, 这就叫快速重传机制.

当你重发3号包 给到对端后, 对端接收成功后,会回 ACK 6,因为4号 5号包,对端之前已经收成功了.

这个TCP帮你保证的,
如果3号包在TCP层重发多次后,还是失败,那整个发送就失败了.
需要检查下网络连接并在应用层重新发送一次.

小葫芦

不用,你说的这些由TCP协议层实现,你只管用就是了.
如果想知道细节,你可以参考 这篇文章

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!