ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:429.08KB ,
资源ID:2944656      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2944656.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网基课程设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

网基课程设计.docx

1、网基课程设计信息技术学院计算机网络基础课 程 设 计 报 告学号: 姓名: 班级: 题号:01、06、07 题目:曼切斯特编码模拟、透明网桥自学习域转发帧算法模拟、IP分片模拟 分值:10+20+10 目录一、 理论基础与原理分析 1二、 数据结构与算法分析 2三、 测试数据与结果分析 6四、 课程设计心得与体会 8五、 课程设计程序源代码 10一、 理论基础与原理分析(归纳整理相关知识,用文字、图表等表述算法原理,可以举例说明。切忌照抄课本)01、曼彻斯特编码,常用于局域网传输。曼彻斯特编码将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,

2、不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。就是说主要用在数据同步传输的一种编码方式。在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示1,用负的电压跳变表示0。因此,这种编码也称为相位编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从低到高跳变表示“0”,从高到低跳变表示“1”。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无

3、跳变表示“0”或“1”,有跳变为“0”,无跳变为“1”。06、1、每个网桥保存一个动态路由表(目的站点地址,端口号)。2、初始时,该路由表为空,以后通过逆向自学习方法获取路由信息。逆向自学习方法:当一个MAC帧到达网桥时,网桥根据其源MAC地址以及到达的端口号,向路由表增加或刷新一条记录。3、路由表的每一项都设置一个超时计时器,若超时,则删除该项,以适应拓扑结构的变化。4、当某一帧到达网桥时,查询路由表。若找到目的地址,则向对应的端口转发。若找不到目的地址,则向所有的端口广播(除了它所到达的端口外)。5、当网络拓扑结构出现环路时,应阻塞某些网桥的某些端口,消除环路,使网络呈现出生成树结构(Sp

4、aning tree)。当一帧到达时,网桥必须决定将其丢弃还是转发。如果要转发,则必须决定发往哪个LAN。在插入网桥之初,由于网桥不知道任何目的地的位置,因而采用扩散算法(flooding algorithm),把每个到来的、目的地不明的帧输出到连在此网桥的所有LAN中(除了发送该帧的LAN)。随着时间的推移,网桥将了解每个目的地的位置。一旦知道了目的地位置,发往该处的帧就只放到适当的LAN上,而不再散。07、分片和重新组装的过程对传输层是透明的,其原因是当IP数据报进行分片之后,只有当它到达目的站时,才可进行重新组装,且它是由目的端的IP层来完成的。分片之后的数据报根据需要也可以再次进行分片

5、。IP分片和完整IP报文差不多拥有相同的IP头,ID域对于每个分片都是一致的,这样才能在重新组装的时候识别出来自同一个IP报文的分片。在IP头里面,16位识别号唯一记录了一个IP包的ID,具有同一个ID的IP分片将会重新组装;而13位片偏移则记录了某IP片相对整个包的位置;而这两个表中间的3位标志则标志着该分片后面是否还有新的分片。这三个标志就组成了IP分片的所有信息(将在后面介绍),接受方就可以利用这些信息对IP数据进行重新组织分片重组是IP层一个最重要的工作,其处理的主要思想:当数据包从一个网络A进入另一个网络B时,若原网络的数据包大于另一个网络或者接口的MTU长度,则需要进行分片(若设置

6、DF为1,则丢弃,并回送ICMP不可达差错报文)。因而在IP数据包的报头有若干标识域注明分片包的共同标识号、分片的偏移量、是否最后一片及是否允许分片。传输途中的网关利用这些标识域进可能的再行分片,目有主机把收到的分片进行重组以恢重数据。因此,分片包在经过网络监测设备、安全设备、系统管理设备时,为了获取信息、处理数据,都必须完成数据包的分片或重组。二、 数据结构与算法分析(结合程序流程图、模块结构图等图表分析程序结构、关键数据结构、关键算法。切忌粘贴源代码)01、在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示1,用负的电压跳变表示0。06、 透明网桥采用的算法是逆向学习

7、法(backward learning)。网桥按混杂的方式工作,故它能看见所连接的任一LAN上传送的帧。查看源地址即可知道在哪个LAN上可访问哪台机器,于是在散列表中添上一项。当计算机和网桥加电、断电或迁移时,网络的拓扑结构会随之改变。为了处理动态拓扑问题,每当增加散列表项时,均在该项中注明帧的到达时间。每当目的地已在表中的帧到达时,将以当前时间更新该项。这样,从表中每项的时间即可知道该机器最后帧到来的时间。网桥中有一个进程定期地扫描散列表,清除时间早于当前时间若干分钟的全部表项。于是,如果从LAN上取下一台计算机,并在别处重新连到LAN上的话,那么在几分钟内,它即可重新开始正常工作而无须人工

8、干预。这个算法同时也意味着,如果机器在几分钟内无动作,那么发给它的帧将不得不散发,一直到它自己发送出一帧为止。到达帧的路由选择过程取决于发送的LAN(源LAN)和目的地所在的LAN(目的LAN), 1、如果源LAN和目的LAN相同,则丢弃该帧。2、如果源LAN和目的LAN不同,则转发该帧。3、如果目的LAN未知,则进行泛洪。07、分片重组是IP层一个最重要的工作,其处理的主要思想:当数据包从一个网络A进入另一个网络B时,若原网络的数据包大于另一个网络或者接口的MTU长度,则需要进行分片(若设置DF为1,则丢弃,并回送ICMP不可达差错报文)。因而在IP数据包的报头有若干标识域注明分片包的共同标

9、识号、分片的偏移量、是否最后一片及是否允许分片。传输途中的网关利用这些标识域进可能的再行分片,目有主机把收到的分片进行重组以恢重数据。三、 测试数据与结果分析(结合输入的测试用例和算法原理,分析运行结果。切忌仅仅粘贴数据)01、06、07、四、 课程设计心得与体会(课程设计中的收获、经验、教训等等)刚开始的时候看到这个题目觉得很简单。应该很容易就能做出来。后来发现还有很多的小问题,首先用java编写有关本题的代码。在01题目中我们先要从一个原本就写好的input.txt文件中读取里面的内容。而且要一个数字一个数字的读。因此,我不能直接用Scanner包中的next()来直接读取。而是要用其他方

10、法来解决读取问题。再经过判断读取的数据是0还是1来决定在output_e.txt中的输入的内容。然后从output_e.txt中读取数据,此时要两个两个的读。经过判断还原为0和1,输出到output_d.txt中。除此之外,还要进行一些简单的异常处理,比如找不到文件。经过此次实验,我深刻的了解了曼切斯特编码。而且,熟悉了部分的java代码。更熟悉的了解了有关文件的读入和输出。在06里,比如:路由表的建立、每次事件对发送和接受端口是否已经存在在路由表中,要进行对比、路由表的更新、还有对最后的发送方式的选择等。我用knum2即接受端口是否存在在路由表中和k1num1和k1num2 (发送端口和接受

11、端口)对比,来判断进行怎样的发送方式。经过此次实验,我深刻的了解了透明网桥的工作原理。而且,熟悉了部分的java代码。更熟悉的了解了有关文件的读入和输出。07中通过此次实验,因为有了上次实验的经历。此次实验更为迅速的完成了。通过此次实验,我了解了IP分片的方法和计算方法。在读取文件input.txt文件中的两个数据后,通过数据之间的计算,就可以得出要分片的数量和偏移量这些数据。 while(a0!=0) if(a0a1) int k=a1+20; w.write(k+ +1+ +0+ +j*i+rn); a0=a0-a1; else int k=a0+20; w.write(k+ +0+ +0

12、+ +j*i+rn); a0=0; j+; 这部分代码就是计算的部分。通过while就可以一次又一次的输出每次的分片的内容。通过if来区分最后一次和前面的分片的区别。五、 课程设计程序源代码(粘贴所有程序源代码)01、import java.io.*;public class Manchester public static void main(String args) throws Exception / TODO Auto-generated method stub try String mid=; File f2 = new File(output_e.txt); f2.createNe

13、wFile(); FileWriter w = new FileWriter(output_e.txt); FileReader fr = new FileReader(input.txt); char str=new char1; while(fr.read(str)!=-1) mid=String.valueOf(str); if(mid.equals(1) w.append(LH); else if(mid.equals(0) w.append(HL); w.close(); fr.close(); catch(FileNotFoundException e) System.out.pr

14、intln(找不到文件!请去创建文件); try String m=; File f3 = new File(output_d.txt); f3.createNewFile(); FileWriter w = new FileWriter(output_d.txt); FileReader fr = new FileReader(output_e.txt); char str=new char2; while(fr.read(str)!=-1) m=String.valueOf(str);/将char的str转化为String if(m.equals(LH) w.append(1); else if(m.equals(HL) w.append(0); w.close(); fr.close(); catch(FileNotFoundException e) System.out.println(找不到文件!请去创建文件); 06、import java.io.*;import java.util.Scanner;public class TransparentBr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1