不知道哪位高手能够帮助一下 我是茫茫然,一头雾水,这样的实验第一次遇到
1. 使用VB6.0编写程序
2. 物理层模拟控件(physics.ocx),包括发送端(SendOCX)和接收端(ReceiveOCX)
发送端:
(1) 发送端物理层为数据链路层提供SendData服务接口用来发送数据,格式为Function SendData(data() As Byte),data表示数据帧的数据内容(此数据帧包含帧序号、帧数据、FCS,不考虑帧定界和透明传输问题)
(2) 提供ACK事件用来通知数据链路层有数据帧到达,格式为Event ACK(data() As Byte),参数data表示ACK的数据内容。
接收端:
(1) 接收端物理层为数据链路层提供DataArrival事件用来通知数据链路层数据帧到达,格式为Event DataArrival(data() As Byte, dataLong As Long),DataArrival事件参数data表示接收端收到的数据帧的数据内容,datalong表示数据帧的字节长度
(2) 提供SendACK服务接口用来发送ACK数据,格式为Function SendACK(data() As Byte),参数data表示ACK的数据内容。
3. 用Timer控件实现超时计时器
4. 物理层模拟控件可能出现的错误包括:数据传输中出现数据错误、数据帧丢失、确认帧丢失,注意ACK信息不会出现数据错误的问题。
5. 发送端和接收端控件都有RemoteAddress属性,表示对端的机器地址,如果模拟程序发送端和接收端在同一台PC则属性都设为127.0.0.1;如果不在同一PC,则设置为对方PC的IP地址,需要保证两PC网络通讯正常,否则该模拟控件无效。
一、实验内容
1. 模拟停止等待协议算法
2. 在停止等待协议中实现CRC算法,既实现数据链路层差错检测,要求CRC生成多项式采用CRC-CCITT
3. 该实验数据帧不需考虑帧定界、透明传输等问题
4. 规定数据链路层帧MTU=13bytes,既数据帧为下图,
1字节帧序号 |
最大10字节数据 |
2字节FCS |
也就是说数据帧的最后两个字节肯定是FCS,且FCS由其前面的全部数据计算得到(包括帧序号和数据)。
5. ACK的数据格式自己定义,但是必须遵守ACK关于帧序号的定义
6. 要求实现停止等待协议的数据链路层为网络层(或者称为高层)提供服务接口,包括发送数据和数据的获取
发送数据可以是任何可显示字符,发送时候数据帧中的数据为字符的二进制编码数据