JCHub

  • Home
  • Category
    • A/V
    • WebRTC
    • Beauty of Programming
    • Linux
    • Windows
    • Moments of Life
    • Campus Life
  • Reference
    • API Reference
    • Utilities
    • AV Test
    • Doc
  • Message Board
  • About
Beauty of Programming
Beauty of Programming

中南大学计算机网络实验报告

实验一:距离矢量路由算法 1实验目的 通过编程模拟距离矢量路由算法,了解距离矢量路由算法是如何工作的。 2实验内容 编程实现距离矢量路由算法的路由表交换过程,并显示出每轮交换过后路由表的各路由变化情况,得到各最佳路线。 3实验原理 网络层的主要功能是将分组从远端机器经选定的路由送到目的端机器。路由选择算法和它们使用的数据结构是网络层设计的一个主要区域。负责确定所收到分组应传送的外出路线。 距离矢量路由算法的工作原理:每个路由器维护一张表(即一个矢量),表中列出了当前已知的到每个目标的最佳距离,以及所使用的线路。通过在邻居之间相互交换信息,路由器不断地更新它们内部的表。 在距离矢量路由算法中,每个路由器维护了一张路由表,它以子网中的每个路由器为索引,并且每个路由器对应一个表项。 该表项包含两部分:为了到达该目标路由器而首先使用的输出线路,以及到达该目标路由器的时间估计值或距离估计值。 距离矢量路由算法在理论中可以工作,但在实践中有一个严重的缺陷:虽然它总是能够达到正确的答案,但是它收敛到正确答案的速度非常慢,尤其是,它对于好消息的反应非常快,但是对于坏消息的反应非常迟缓。 4实验步骤 4.1编写程序 程序的C语言源代码: [crayon-69c7142ac7d2d665354417/] 4.2设计思路 程序先定义了一个路由表——RoutNode data[ROUTNUM][ROUTNUM],路由表的初始信息存储在文件中,程序运行是先调用函数InitData(FILE* pfile)从文件中读取路由表的初始信息,然后输出初始路由表的信息,Communication(int recv, int send)函数主要是向邻近节点发送自己的路由表信息,Exchange()函数则根据新路由表信息更新自己的路由表。当所有的路由表节点都更新一遍后,整个路由表更新完毕。 5实验结果分析 5.1运行部分结果如下图所示: A到D的路径 C到G的路径 5.2结果分析 路由表初始信息从txt文件读取,完成路由表初始化,然后根据距离向量路由算法完成路由表的更新操作,得到各路由情况,最后任意输入两个路由表接点,则可得出两接点之间的最短路径。 6实验心得体会 距离矢量路由算法作为常见的动态算法,通过该实验加深了对网络层距离矢量路由算法的理解,明白了路由表之间如何交换,同时也提高了动手操作能力。

2013年11月14日 0comments 1509hotness 0likes Jeff Read all
Beauty of Programming

求最小函数依赖集的方法

求最小函数依赖集分三步: 1.将F中的所有依赖右边化为单一元素 此题fd={abd->e,ab->g,b->f,c->j,cj->i,g->h};已经满足 2.去掉F中的所有依赖左边的冗余属性. 作法是属性中去掉其中的一个,看看是否依然可以推导 此题:abd->e,去掉a,则(bd)+不含e,故不能去掉,同理b,d都不是冗余属性 ab->g,也没有 cj->i,因为c+={c,j,i}其中包含i所以j是冗余的.cj->i将成为c->i F={abd->e,ab->g,b->f,c->j,c->i,g->h}; 3.去掉F中所有冗余依赖关系. 做法为从F中去掉某关系,如去掉(X->Y),然后在F中求X+,如果Y在X+中,则表明x->是多余的.需要去掉. 此题如果F去掉abd->e,F将等于{ab->g,b->f,c->j,c->i,g->h},而(abd)+={a,d,b,f,g,h},其中不包含e.所有不是多余的. 同理(ab)+={a,b,f}也不包含g,故不是多余的. b+={b}不多余,c+={c,i}不多余 c->i,g->h多不能去掉. 所以所求最小函数依赖集为 F={abd->e,ab->g,b->f,c->j,c->i,g->h}; 最小函数依赖集   定义:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。   ① F中的任何一个函数依赖的右部仅含有一个属性;   ② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;   ③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。   算法:计算最小函数依赖集。   输入 一个函数依赖集   输出 F的一个等价的最小函数依赖集G   步骤:① 用分解的法则,使F中的任何一个函数依赖的右部仅含有一个属性;      ② 去掉多余的函数依赖:从第一个函数依赖X→Y开始将其从F中去掉,然后在剩下的函数依赖中求X的闭包X+,看X+是否包含Y,若是,则去掉X→Y;否则不能去掉,依次做下去。直到找不到冗余的函数依赖;      ③ 去掉各依赖左部多余的属性。一个一个地检查函数依赖左部非单个属性的依赖。例如XY→A,若要判Y为多余的,则以X→A代替XY→A是否等价?若A属于(X)+,则Y是多余属性,可以去掉。   举例:已知关系模式R,U={A,B,C,D,E,G},F={AB→C,D→EG,C→A,BE→C,BC→D,CG→BD,ACD→B,CE→AG},求F的最小函数依赖集。   解1:利用算法求解,使得其满足三个条件   ① 利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖,得F为:F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}   ② 去掉F中多余的函数依赖   A.设AB→C为冗余的函数依赖,则去掉AB→C,得:F1={D→E,D→G,C→A,BE→C,BC→D,CG→B,CG→D,ACD→B,CE→A,CE→G}   计算(AB)F1+:设X(0)=AB   计算X(1):扫描F1中各个函数依赖,找到左部为AB或AB子集的函数依赖,因为找不到这样的函数依赖。故有X(1)=X(0)=AB,算法终止。   (AB)F1+= AB不包含C,故AB→C不是冗余的函数依赖,不能从F1中去掉。   B.设CG→B为冗余的函数依赖,则去掉CG→B,得:F2={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→A,CE→G}   计算(CG)F2+:设X(0)=CG   计算X(1):扫描F2中的各个函数依赖,找到左部为CG或CG子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CGA=ACG。   计算X(2):扫描F2中的各个函数依赖,找到左部为ACG或ACG子集的函数依赖,得到一个CG→D函数依赖。故有X(2)=X(1)∪D=ACDG。   计算X(3):扫描F2中的各个函数依赖,找到左部为ACDG或ACDG子集的函数依赖,得到两个ACD→B和D→E函数依赖。故有X(3)=X(2)∪BE=ABCDEG,因为X(3)=U,算法终止。   (CG)F2+=ABCDEG包含B,故CG→B是冗余的函数依赖,从F2中去掉。   C.设CG→D为冗余的函数依赖,则去掉CG→D,得:F3={AB→C,D→E,D→G,C→A,BE→C,BC→D,ACD→B,CE→A,CE→G}   计算(CG)F3+:设X(0)=CG   计算X(1):扫描F3中的各个函数依赖,找到左部为CG或CG子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CGA=ACG。   计算X(2):扫描F3中的各个函数依赖,找到左部为ACG或ACG子集的函数依赖,因为找不到这样的函数依赖。故有X(2)=X(1),算法终止。(CG)F3+=ACG。   (CG)F3+=ACG不包含D,故CG→D不是冗余的函数依赖,不能从F3中去掉。   D.设CE→A为冗余的函数依赖,则去掉CE→A,得:F4={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,ACD→B,CE→G}   计算(CG)F4+:设X(0)=CE   计算X(1):扫描F4中的各个函数依赖,找到左部为CE或CE子集的函数依赖,得到一个C→A函数依赖。故有X(1)=X(0)∪A=CEA=ACE。   计算X(2):扫描F4中的各个函数依赖,找到左部为ACE或ACE子集的函数依赖,得到一个CE→G函数依赖。故有X(2)=X(1)∪G=ACEG。   计算X(3):扫描F4中的各个函数依赖,找到左部为ACEG或ACEG子集的函数依赖,得到一个CG→D函数依赖。故有X(3)=X(2)∪D=ACDEG。   计算X(4):扫描F4中的各个函数依赖,找到左部为ACDEG或ACDEG子集的函数依赖,得到一个ACD→B函数依赖。故有X(4)=X(3)∪B=ABCDEG。因为X(4)=U,算法终止。   (CE)F4+=ABCDEG包含A,故CE→A是冗余的函数依赖,从F4中去掉。   ③ 去掉F4中各函数依赖左边多余的属性(只检查左部不是单个属性的函数依赖)由于C→A,函数依赖ACD→B中的属性A是多余的,去掉A得CD→B。   故最小函数依赖集为:F={AB→C,D→E,D→G,C→A,BE→C,BC→D,CG→D,CD→B,CE→G}

2013年11月14日 0comments 1971hotness 0likes Jeff Read all
Beauty of Programming

hosts文件

Hosts是一个没有扩展名的系统文件,可以用记事本等文本编辑工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。 在Internet的前身ARPANET中并没有对网络中各节点的地址使用DNS进行解析。由于当时对于这个用途并没有中心化的系统,每个网络节点都使用自有的网络节点地图,并指派相应的名称方便用户记忆,当时并没有任何系统来保证网络中的所有系统都用同样的名称表示,也没有方法来读取其他用户的hosts文件并自动复制。 ARPANET的规模较小,这样就也就允许了在很多情况使用hosts文件来命名一些事先约定的名称。其中典型的网络节点都有一个地址,并可能有多个名称。但是当个人网络不断庞大之后,对hosts文件进行管理的难度也越来越大。 hosts文件在不同操作系统(甚至不同Windows版本)的位置都不大一样: Windows NT/2000/XP/Vista/7/8(即微软NT系列操作系统):默认位置为%SystemRoot%\system32\drivers\etc\,但也可以改变。动态目录由注册表键\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath决定。例如,Windows XP/Windows 7/Windows 8 安装在C:\WINDOWS,那么Hosts文件就在C:\WINDOWS\system32\drivers\etc中。 Linux及其他类Unix操作系统:/etc Mac OS 9及更早的系统:System Folder: Preferences或System folder(文件格式可能与Windows和Linux所对应的文件不同) Mac OS X:/private/etc(使用BSD风格的hosts文件) Android:/system/etc/hosts iOS(iPhone):/etc iOS(iPad):/private/etc hosts文件也可以用于其它情况,例如可以将已知的广告服务器重定向到无广告的机器(通常是本地的IP地址:127.0.0.1)上来过滤广告。同时也可以通过不下载网络广告,从而减少带宽。使用hosts文件还可以减少对DNS服务器的访问来加快访问速度并减少带宽消耗。 hosts文件的另一个重要用途就是用于拦截一些恶意网站的请求,从而防止访问欺诈网站或感染一些病毒或恶意软件。但同时,这个文件也可能被病毒或恶意软件所利用来阻止用户更新杀毒软件或访问特定网站。 也可以通过修改hosts文件来强制将特定网站指定到正确的IP上,访问一些特殊网站。 hosts文件默认内容如下: # copyright (c) 1993-1999 microsoft corp. # # this is a sample hosts file used by microsoft tcp/ip for windows. # # this file contains the mappings of ip addresses to host names. each # entry should be kept on an individual line. the ip address should # be placed in the first column followed by the corresponding host name. # the ip address and the host name should be separated by at least one # space. # # additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # for example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost

2013年11月14日 0comments 1434hotness 0likes Jeff Read all
Beauty of Programming

KNN算法

KNN算法即k-Nearest Neighbor algorithm,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一,可应用于基于智能终端传感器的活动识别。KNN算法思路如下: 1、假设一个样本空间里的样本可分成几个类型 2、给定一个未知类型的待分类样本 3、基本思路: a人以类聚、物以群归 b待分类样本与哪一类的样本比较相近,就归属于哪一类 c具体的相近比较基于最近的K个样本 d归属于K个样本中的多数样本所属的类 维基百科上的KNN词条中有一个比较经典的图如右: 从右图中可以看到 -图中的有两个类型的样本数据 -一类是蓝色的正方形 -一类是红色的三角形。 -绿色的圆形是待分类的数据。 如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形。 如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形。 KNN算法实现: Knn.h [crayon-69c7142ac90dc542305898/] Knn.cpp [crayon-69c7142ac90e6027783037/] main.cpp [crayon-69c7142ac90eb491599226/]

2013年10月20日 0comments 2165hotness 0likes Jeff Read all
Beauty of Programming

百度bae上安装升级wordpress,制作自己的bae专用版

本人是搞C/C++开发的,对web只学了点皮毛,刚开始出于兴趣打算建个博客玩玩,上网查了好久,最后确定了使用很傻瓜的wordpress。首先花了点钱买了个域名,本来还想买服务器的,可是无意中接触了百度的bae,感觉挺牛逼的,又是免费的,于是打算在bae上面搭建wordpress。 刚开始在bae上搭建原版wordpress,一直都是失败,后来谷歌了下,原来bae上面有许多限制。干脆就在网上找了个wordpress bae专用版,很简单的就搭建成功了。可是后来升级什么的感觉很麻烦,wordpress官方发布新版本时,总是时不时地跑到开发bae专用版的那位博客下观望,盼望他尽早更新bae专用版,有时遇到不懂的在他博客下面留言,感觉他有点不耐烦的回答问题,有时甚至不回复,作为小白是很痛苦的,感觉用别人的怕有后门。最近工作也找到了,闲着没事,今天下午,我突然想到想我本身就是搞C/C++开发的,不能这样受制于人,不就是个wordpress,编程语言都是相通的,我动手能力又很强,这还搞不定。 我对比了那个bae专用版与官方原版以及百度官方提供的worpress版本,感觉没太多变化,那位博主也就做了点变化,而且好多东西都是别人研究出来的。经过十几分钟测试,成功了。下面将讲下如何把wordpress官方原版改为能在bae上面运行的版本。 1首先到wordpress官方下载相应版本,然后解压,假设解压后文件夹名为A 2到百度官方下载百度提供的wordpress版本,解压 3在百度官方提供的wordpress里面的根目录找到wp-config.php文件,放到wordpress官方提供的新版本解压后的文件夹A根目录,并修改config.php里面相关配置信息,比如数据库用户名,密码等 4在A根目录加入app.conf文件(一些规则配置) 5把A文件夹里面的wp-content文件夹替换为自己原来用的文件夹,该文件夹主要包括一些主题,插件文件 6同时为了支持谷歌sitemap,再往A文件夹里加入sitemap.php,sitemap_html.php,sitemap.xsl这三个文件 7最后将A文件夹中全部文件打包即为新版本的wordpress bae专用版(貌似现在bae没以前那么多限制了) 上面用到的app.conf,sitemap.php,sitemap_html.php,sitemap.xsl下载地址: [Downlink href="http://jchblog.u.qiniudn.com/201310/bae1.zip"]相关文件[/Downlink] 好吧,就到此为止,自己动手总比伸手好!

2013年10月20日 0comments 1242hotness 0likes Jeff Read all
Beauty of Programming

浅谈HTML5的Camera API

Camera API能够调用设备的摄像头拍照并上传到当前网页。使用input标签,设置type="file",accept属性设置为能接收图像,就能够实现前面的要求了。 HTML代码如下: [crayon-69c7142ac998a527488051/] 当使用者选择激活这个HTML元素时,它们就会以选择某个文件的选项形式呈现出来,设备摄像头就是其中一个选项。如果用户选择了摄像头选项,就进入了拍照模式。拍完照后,用户要在弹出的选项里选择接受或放弃。如果选择接受的话,将会跳到 [crayon-69c7142ac9993422679501/] 标签,onchange事件被激发。 在File API的帮助下我们能够访问拍完的照片或者被选中的文件: [crayon-69c7142ac9997412512416/] 如果想要引用拍好的照片,可以使用window.URL.createObjectURL()方法生成一个引用照片的URL并设置为图片的src: [crayon-69c7142ac999a464666068/] 如果浏览器不支持createObjectURL()方法,FileReader是可供选择的替代方案: [crayon-69c7142ac999d736070150/] 如果想要知道运行结果是什么样的,可以看下完整的Camera API示例。 示例代码如下: HTML PAGE [crayon-69c7142ac99a0645199405/] 测试页面:camera API 详细代码地址:https://github.com/robnyman/robnyman.github.com/tree/master/camera-api

2013年10月12日 4comments 4721hotness 0likes Jeff Read all
Beauty of Programming

WebRTC jQuery 插件

该插件能使两个浏览器间实现实时的音视频流传输。 安装 ·下载并解压代码包 ·把解压后代码放到你的网站目录下 ·打开你的网站 ·欣赏代码所呈现的应用 使用 首先把如下HTML代码片段加入到你的相应标签内 [crayon-69c7142acaac0051660549/] 然后把如下CSS放到head标签内 [crayon-69c7142acaac9379299163/] 最后是通过JavaScript实现。代码如下: [crayon-69c7142acaacd806741042/] 完整的示例页面如下(把上述的放在一起): [crayon-69c7142acaad1732968039/] 浏览器支持情况 被赋予WebRtc新颖特性的JQuery插件已经支持主流的浏览器,这些浏览器支持最近起草的WebRtc标准,如下列表列出了最近支持该标准的浏览器: Chrome Chrome Beta for Android (for tablet & mobile phone support) FireFox Internet Explorer 10 (requires Google Chrome Frame plug-in) Chromium Chrome Canary FireFox Aurora FireFox Nightly 代码下载地址:webrtc-jquery-plugin-master 示例页面:基于WebRTC的简单在线视频聊天系统

2013年10月11日 0comments 1829hotness 3likes Jeff Read all
Beauty of Programming

HTML5学习相关资料下载

分享一些HTML5相关的资料(会不断更新) 《HTML 5 从入门到精通》 HTML5_Canvas_2D_API_规范_1.0_中文版 HTML5高级程序设计 HTML5&CSS3

2013年9月19日 0comments 2786hotness 0likes Jeff Read all
1…34567
Copyright Statement

Unauthorized reproduction or plagiarism in any form is strictly prohibited. For reprint requests, please contact via email.

Recent Comments
snail Published at 14 hours ago(03 03202633105 27 27pm26) 多谢,大佬。醍醐灌顶!
Bramsnawl Published at 21 hours ago(03 03202633110 27 27am26) Proper blood collection playing cards are measure ...
NasibDepdrotte Published at 1 days ago(03 03202633110 26 26pm26) Inf ect isC linNo rth A m viiiix, Sm ets o urgo is...
Pereplanirovka kvartir_cvsr Published at 3 days ago(03 03202633105 25 25pm26) перепланировка услуги [url=https://pereplanirovka-...
Mirzoemele Published at 3 months ago(01 01202613104 06 06pm26) Double blind randomised controlled trial of two to...
Ad

COPYRIGHT © 2026 jianchihu.net. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang