❶ 求兄弟姐妹幫忙啊。1.設計一個變化的長度的IP報文。 2設計路由表數據結構以及查找IP報文路由演算法及漢語解釋
物理性質——狀態、氣味、熔點、沸點、硬度、密度、延展性、溶解性、揮發性、導電性、吸附性等。
❷ 迷宮的生成和路由
才給這么點分,橋弊尺你給200分,都敏高不一定有人幫你
不是給你說風涼話,只是給你說句實話,真的,在這里別抱這卜脊么大幻想的
確實需要,而自己又真的不會的話,實在找不到,就去花錢找人幫你吧
❸ c語言實現基於網路編碼的無線多跳網路組播路由演算法設計
c語言實現網路,我想你是說用VC開放win32的應用程序吧,直接用API函數,不是c語言實現!
它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。
1.一個C語言源程序可以由一個或多個源文件組成。 2.每個源文件可由一個或多個函數組成。 3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。 4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。 5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。 6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
底下是重點了,C語言不是萬能的
1. C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。 2. C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。 [C語言指針] 指針是C語言的一大特色,可以說是C語言優於其它高級語言的一個重要原因。就是因為它有指針,可以直接進行靠近硬體的操作,但是C的指針操作也給它帶來了很多不安全的因素。C++在這方面做了很好的改進,在保留了指針操作的同時又增強了安全性。Java取消了指針操作,提高了安全性,適合初學者使用。
❹ 6,路由選擇有哪些演算法
關於路由器如何收集網路的結構信息以及對之進行分析來確定最佳路由,有兩裂搏種主要的路由演算法:
總體式路由演算法和分散式路由演算法。採用分散式路由演算法時,每個路由器只有與它直接相連的路由器的信息——而沒雀凱有網路中的每個路由器的信息。這些演算法也被稱為dv(距離向量)演算法。採用總體式路由演算法時,每頃源喚個路由器都擁有網路中所有其他路由器的全部信息以及網路的流量狀態。這些演算法也被稱為ls(鏈路狀態)演算法。
❺ 用Matlab/C實現基於Dijkstra的路由選擇演算法實現
/寬舉**************************************************************
* 給悄渣定一個帶權有向圖G = (V,E),其中每條邊的權是一個非負整數。*
* 另外還給定V中的一個頂點,稱為源。現在我們要計算從源到所有其 *
* 他各頂點的最短路長度。這里路徑長度是路上各邊權之和。這個問 *
* 題通常稱為單源最短路徑問題。 *
***************************************************************/
#include<iostream.h>
#define INFINITE 100
void main()
{
int j,i,n,k,t,**w,*s,*p,*d;
cout<<"input the value of n:";
cin>>n;
cout<<endl;
d = new int[n];
s = new int[n];
p = new int[n];
w = new int*[n];
for(i = 0; i < n; i++)
{
w[i] = new int[n];
}
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
cin>>w[i][j];
for(s[0] = 1,i = 1; i < n; i++)
{
s[i] = 0;
d[i] = w[0][i];
if(d[i] < INFINITE)
p[i]=0;
else
p[i]=-1;
}
for(i = 1; i < n; i++)
{
t = INFINITE;
k = 1;
for(j = 1; j < n; j++)
if((!s[j]) && (d[j] < t))
{
t = d[j];
k = j;
}
s[k]=1;//point k join the S
for (j = 1; j < n; j++)
if((!s[j]) && (d[j] > d[k] + w[k][j]))
{
d[j] = d[k] + w[k][j];
p[j] = k;
}
}
cout<<"啟巧悄從源點到其它頂點的最短距離依次如下:";
for(i=1;i<n;i++) cout<<d[i]<<" ";
cout<<endl;
}
/*********
頂點個數用n表示,這里給出的例子n=6
100 1 12 100 100 100
100 100 9 3 100 100
100 100 100 100 5 100
100 100 4 100 13 15
100 100 100 100 100 4
100 100 100 100 100 100
具體例子見 電子工業出版社 《演算法設計技巧與分析》148頁
************/
❻ 路由的原理演算法
路由工作包含兩個基本的動作:
1、確定最佳路徑
2、通過網路傳輸信息
在路由的過程中,後者也稱為(數據)交換。交換相對來說比較簡單,而選擇路徑很復雜。 metric是路由演算法用以確定到達目的地的最佳路徑的計量標准,如路徑長度。為了幫助選路,路由演算法初始化並維護包含路徑信息的路由表,路徑信息根據使用的路由演算法不同而不同。
路由演算法根據許多信息來填充路由表。目的/下一跳地址對告知路由器到達該目的最佳方式是把分組發送給代表「下一跳」的路由器,當路由器收到一個分組,它喚世就檢查其目標地址,嘗試將此地址與其「下一跳」相聯系。下表為一個目的/下一跳路由表的例子。路由表還可以包括其它信息。路由表比較metric以確定最佳路徑,這些metric根據所用的路由演算法而不同。路由器彼此通信,通過交換路由信息維護其路由表,路由更新信息通常包含全部或部分路由表,通過分析來自其它路由器的路由更新信息,該路由器可以建立網路拓撲圖。路由器間發送的另一個信息是鏈接狀態廣播信息,它通知其它路由器發送者的鏈接狀態,鏈接信息用於建立完整的拓撲圖,使路由器可以確定最佳路徑。 交換演算法相對而言較簡單,對大多數路由協議而言是相同的,多數情況下,某主機決定向另一個主機發送數據,通過某些方法獲得路由器的地址後,源主機發送指向該路由器的物理(MAC)地址的數據包,其協議地址是指向目的主機的。
路由器查看了數據包的目的協議地址後,確定是否知道如何轉發該包,如果路由器不知道如何轉發,通常就將之丟棄。如果路由器知道如何轉發,就把目鎮鏈敏的物御枝理地址變成下一跳的物理地址並向之發送。下一跳可能就是最終的目的主機,如果不是,通常為另一個路由器,它將執行同樣的步驟。當分組在網路中流動時,它的物理地址在改變,但其協議地址始終不變。
ISO定義了用於描述此過程的分層的術語。在該術語中,沒有轉發分組能力的網路設備稱為端系統(ES--end system),有此能力的稱為中介系統(IS--intermediate system)。IS又進一步分成可在路由域內通信的域內IS(intradomain IS)和既可在路由域內又可在域間通信的域間IS(interdomain IS)。路由域通常被認為是統一管理下的一部分網路,遵守特定的一組管理規則,也稱為自治系統(autonomous system)。在某些協議中,域內路由協議仍可用於在區間內和區間之間交換數據。
❼ 請教高手網路動態路由選擇演算法怎麼用C/C++實現啊
網路動態路由要用c++實現,第一要有存儲路由表的結構,可以用鏈表來實現
第二,演算法,動態路徑的選擇,最優路徑演算法。從一個ip到目標ip的最優路徑,可以委託從ip到一個中間ip的最優然肉從中間ip的路由表裡找到中間ip到目的的最優路徑然後結合就ok了
存儲路徑建議用鏈表或向量。
這些數據結構都是現成的,樓主所要知道的就是演算法問題
最優路徑演算法,前輩曾經給出過代碼,可以參考下面