要求

NKU COMPUTER NETWORK LAB3-2
在实验3-1的基础上,将停等机制改成基于滑动窗口的流量控制机制,采用固定窗口大小,支持累积确认,完成给定测试文件的传输。

实验流程

大部分内容与3-1相同。此处应该采用多线程编程,由于我不会多线程,因此摆了,没弄懂机制自己改了改别人的程序就交了。具体内容见实验报告吧。。。

一些说明

我的代码并没有完美解决线程的并发控制等问题,因此有各种毁灭性BUG。不建议参考。毕竟我给出了足够多的参考链接,可供选择了。非阻塞这事,如果设置成非阻塞,系统会自己给你开四个线程,因此在3-1中能够实现很多功能,在3-2中可以参考朱浩泽的继续这样做,也可以自己写线程(大多数人应该选择自己实现多线程)。
线程这块可能会有很多死锁问题和并发控制的问题,我也没学过也没时间自学了,只能在此提醒后来人注意此处了。
另,很多人貌似实现了多线程,首先收发其实并不是真正的GBN or SR所要求的样子,只能说勉强实现了功能(仔细一看还是非阻塞停等),其次很多人对于时钟的设计都是错的,建议在研究理论并看明白那些人的代码以后参考。20级很多人也写的不对,我在单步他们的代码时发现不少问题。