如果client主机A与server主机B通过三次握手建立了TCP连接,然后主机B告诉A它的windows size=0;这时的状态是主机B等待接受数据的状态,那接下来会是一个什么状况呢,发送数据方A会一直等待B直到它的window size不为0了 还是等一段默认的时间就自动断开连接还是其它什么情况呢 望高手指点 谢谢!!!

解决方案 »

  1.   

    lz貌似高手,主机B告诉A它的windows size=0是要有发生条件的,不是无故发生的吧,条件是:A发送数据到B,因为B的接收缓冲区满或丢包等原因,B会告诉A windows size=0,A的窗口不会滑动,A会根据ack,采取相应动作,如重传数据等,如果A的窗口外还有数据要发,只能等到B告诉它窗口大于0,或连接关闭,假设也要有根据,不能无故假设,建议lz看看tcp/ip详解,看懂后就不会再问这种问题了
      

  2.   

    呵呵 多谢您的指点
    因为我的出发点是想将一些蠕虫病毒困住,当然仅仅是想法,怎么实现都是后话了.如果window size=0的话,能否将A拖住一段时间呢,其实0是我故意设置的,目的就是让对方陷入等待状态.
      

  3.   

    如果链接是你创建的,那好办,但是如果不是你创建的,你取不到socket,就不好办了,在windows和linux里我还没发现,将windowsize设置为零的接口,你只能改变它的状态,包括关闭,如果你想对付病毒,把链接关闭不就可以了吗?为什么还搞那么复杂