例如,在TCP Tahoe连接中,如果发生大文件传输.突然接收进程或主机被关闭或暂停,我知道我们将有一个超时,此时窗口大小将被重置等.据我所知,我们将重新发送未确认的数据包,然后再试一次,又可能呢?
我想知道,在这样的超时之后,在假定接收器不再存在并且数据将停止发送之前,将重新发送数据的次数.如果从暂停状态恢复进程,它是否能够继续接收数据?
我知道在三次重复确认或超时后重新传输数据.但是,如果有多次重传失败,或者接收过程突然停止接收,我发现会发生什么事情,我找不到太多内容.
如果接收进程退出或被终止,则其末端的套接字将被关闭.当发送方继续发送数据包时,它们应该提示RST数据包,这将立即导致错误(ECONNRESET).
如果接收主机干净地关闭,它应该杀死所有进程,这将导致上述情况发生.
如果接收主机和进程处于活动状态,但进程暂停(例如Ctl-z),则不会在TCP级别检测到任何问题.窗口最终将填满,但接收系统将继续确认零窗口探测器.要检测此情况,您需要一个应用程序层保持活动机制.
如果接收主机崩溃,断电或其网络连接失败,那么重传超时变得相关.重传的数量和频率取决于实现,也可以由系统配置参数控制.我不知道什么是典型的参数.
如果接收系统在超时发生之前重新启动,它将使用RST数据包重新进入下一次重传,这将导致ECONNRESET错误.
| 归档时间: |
|
| 查看次数: |
2195 次 |
| 最近记录: |