本项目通过C语言编程实现基于Socket接口的TCP协议仿真,旨在深入理解并掌握TCP通信机制及其实现细节。
使用VS中的VC++下面的CLR编写程序,主要目的是通过Socket模拟TCP通信协议。实验内容如下:
i. 实现滑动窗口协议,其中窗口大小设定为5。
ii. 模拟三次握手机制,并显示出ACK、ack、Seq等标识位和参数信息。
iii. 必须采用应答机制,使用超时计数器技术进行帧编号判重并实现重传功能。
iv. 实施校验和技术:校验和s的计算方法是设要发送n字节,bi为第i个字,则s=(b0+b1+...+bn) mod 256。
v. 在接收端设置随机数,并根据该随机数值执行相关操作。具体来说,如果值为0代表正常处理;1表示帧丢失;2则意味着帧出错;3表明应答帧未发送(即不产生应答)。
vi. 程序必须使用图形界面显示相关信息:
- 发送端:展示发送的数据、是否重传的信息、当前帧的序列号以及接收到的确认帧序列号。
- 接收端:显示接收数据内容,本次帧序列号,随机选择出错情况及应答帧的序列号,并判断是否有重复。
实验操作流程是先启动Server端进行监听设置,然后打开Client端建立连接。在完成三次握手之后开始通信过程。