编写程序,实现Ethernet帧的发送过程模拟程序模拟:
1.用N个线程Ti (0<=i<=N)模拟Ethernet上的N台主机。
2.用一个变量Bus来模拟总线(将其初始化为”\0”,Bus等于”\0”时表示总线空闲)。
3.多个子线程向总线发送自己的数据。数据用该线程的线程号进行模拟,发送数据用线程号和Bus的“或”操作进行模拟(即Bus=Bus|ID,ID为该线程的线程号)。
4.每台主机必须在总线上发送成功10次数据,如果其中某次数据发送失败,则该线程结束。
5.发送流程必须遵循CSMA/CD。随机延迟算法中的冲突窗口取0.005。在数据发送成功(即Bus= =ID)后,报告“ID send success”,产生冲突(即Bus!=ID)后报告“ID send collision”,发送失败(即冲突计数器值为0)后报告“ID send failure”。随着主机发送次数增加,报告其已经发送成功的次数,如“主机A发送成功数=3”。
含源代码和可执行文件
1