推荐教程地址:
http://c.biancheng.net/view/2123.html
关于TCP中数据包重传的思考:
方式(1)超过时间仍没有接收到ACK,则需要重传。重传成功后,接收方将接收到的此包和缓存区数据一并交给应用层。
方式(2)如果发送M个数据包后,还没接收到某数据包的ACK,则需要重新发送此数据包。重传成功后,接收方将接收到的此包和缓存区数据一并交给应用层。
TCP 协议下,发出序号为某index为sequence的数据包后,只需要通过判断是否接收到相应的ACK包(index为sequence+1)即可,如果未接收到,说明没有成功传递该数据包,需要重新传递。