/ComputerNetWork_Program

计算机网络实验的一些编程实验代码

Primary LanguageC

ComputerNetWork_Program

计算机网络实验的一些编程实验代码

文件目录解释

brige -- 网桥模拟程序

模拟实现网桥的转发功能,以从文件中读取帧模拟网桥从网络中收到一帧,即从两个文件中读入一系列帧,从第一个文件中读入一帧然后从第二个文件中再读入一帧,如此下去。对每一帧,显示网桥是否会转发,及显示转发表内容。

根据: 网桥收到一帧后,进行

自学习

查找转发表中与收到帧的源地址有无相匹配的项目。

如没有,就在转发表中增加一个项目(源地址、进入的接口和时间)。 如有,则把原有的项目进行更新。

转发帧

 查找转发表中与收到帧的目的地址有无相匹配的项目。

如没有,则通过所有其他接口(但进入网桥的接口除 外)进行转发。 如有,则按转发表中给出的接口进行转发。 若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃这个帧(因为这时不需要经过网桥进行转发)。

check_sum -- 计算检验和

RFC1071 - Computing the Internet checksum

原理:把要发送的数据看成16比特的二进制整数序列,并计算他们的和。若数据字节长度为奇数,则在数据尾部补一个字节的0以凑成偶数。

例子:16位效验和计算,下图表明一个小的字符串的16位效验和的计算。

为了计算效验和,发送计算机把每对字符当成16位整数处理并计算效验和。如果效验和大于16位,那么把进位一起加到最后的效验和中。