PLAN語言

PLAN語言

PLAN語言(Programming Language of Active Network)是賓夕法尼亞大學研究的一種用於主動網路程式語言,它是一種高級語言,可用來在數據包中描述用戶程式功能,並可以調用低層的功能模組。

基本介紹

  • 中文名:PLAN語言
  • 外文名:Programming Language of Active Network
  • 性質:一種用於主動網路的程式語言
  • 開發單位:賓夕法尼亞大學
  • 特點:表達能力受限等
  • 涉及領域:軟體工程
相關概念,提出背景,PLAN程式結構,特點,

相關概念

主動網路:主動網路(active network)是一種可程式的網路,將用戶定義的計算引入到路由器/交換機。傳統的路由器/交換機只對經過的包做存儲、轉發,對包內的數據不做分析、理解,而主動路由器/交換機除對經過的主動報文做存儲、轉發外,還將對主動報文內的數據進行處理甚至執行報文內攜帶的程式。所以,整個網路是分散式的計算體系,網路的行為可通過編程控制。通過主動網路,用戶可以控制網路的某些運行特徵,遠程動態修改網路配置,從而加速了網路套用和網路服務的更新。主動網路潛在的優點是快速動態定製、配置新的服務,實驗新的網路體系結構和協定,可以加速網路服務的革新步伐,提高網路的性能,使網路系統更具靈活性、可擴展性。
數據包TCP/IP協定通信傳輸中的數據單位,一般也稱“包”。在包交換網路里,單個訊息被劃分為多個數據塊,這些數據塊稱為包,它包含傳送者和接收者的地址信息。這些包然後沿著不同的路徑在一個或多個網路中傳輸,並且在目的地重新組合。

提出背景

Intemet上傳送的數據包是由包含控制信息的包頭和包含數據信息的有效負載構成。包頭可以看成是由包格式的規範說明所定義的程式語言編寫的簡單程式。如果需要添加新的功能到協定當中,那么包格式和它的語義必須被改變,也就是程式語言和它的規範必須被改變。對於一個被廣泛使用的協定,例如:IP協定,包格式的改變必須是謹慎的,並且一定要遵循某些標準。因此,在這個層次上,引入新的網路服務將是一個非常緩慢的過程。
主動網路可以在IP層獲得更大的靈活性,因為它可以編程網路的基礎結構。如果抽象層次可以從IP包的“位”提高到更加通用的“程式語言”,那么網路的演變可能會跟著技術發展的步伐大步前進,因為這種改變只是發生在程式級而不是程式語言級。因此要實現這個想法,首先解決的問題就是:一個什麼樣的程式語言能滿足這一需求。讓我們首先考慮一下現有的程式語言。由於用該語言編寫的程式是用來代替傳統的數據包頭的,因此它應該是簡單的、安全的。就這一點而言,大多數通用語言都不能滿足要求。另一方面,由於需要這種語言適合於主動網路領域,那么現有的專用語言也是不適合的。因此,就需要一種全新的語言來實現我們的目標。
PLAN(Programming Languagefor Active Networks)是一種新的程式語言,用它所編寫的程式構成了主動網路的數據包,這些程式替代了傳統網路的數據包頭。因此,PLAN的表達能力是受到限制的,它允許主動節點在無需認證的情況下執行PLAN程式;PLAN程式是函式風格的,並且保證終止。為了彌補它有限的表達能力,PLAN程式可以調用節點駐留的服務,這些服務提供對信息(例如:時間,網路接口的個數等等)和強有力功能(例如,分段,可靠性,軟狀態等等)的訪問。

PLAN程式結構

每個PLAN程式包括一個頂層的“代碼塊”(code hunk),或者叫chunk。Chunk是PLAN中的編程結構。Chunk有三個部分:PLAN代碼,代碼內的一個入口點函式和函式參數的捆綁。當一個PLAN包到達它的目的節點時,它的入口點函式用給定的參數被調用。
Chunk是第一類的數據值,意思是它可以被用作函式的參數,從函式中返回和存儲在數據結構中。PLAN的語法——|f| (exprl,…,exprn),是一個類型chunk的表達式,它產生一個新的Chunk。直觀上,“|”表明表達式部分(指函式調用本身)的計算將被延遲。明確地說就是,所產生的chunk是由和目前執行的相同代碼、一個入口點函式f和通過計算exprl,…,exprn所獲得的參數值的捆綁構成的。這樣,chunk可以被處理,複製或者作為參數傳遞;最特別的是,它甚至可以作為參數捆綁出現在其它chunk中。

特點

PLAN語言具有強的類型和靜態類型檢查來提供安全,注入PLAN程式到網路中去,PLAN語言被設計為通過限制其行為來保證節點的安全性,即PLAN程式不能操縱節點的狀態。為了彌補這個缺陷,PLAN程式能夠調用主動擴展。
PLAN語言僅支持很簡單的數據和控制結構,因此容易被編譯或解釋。此外,PLAN語言不改變路由器的狀態,它允許沒有經過認證而在其上面執行。PLAN語苦有很強的類型檢查,所以類型錯誤不會威脅路由器狀態的完整性。
PLAN語言表達能力是受限的,因此防止了CPU和存儲器的服務拒絕攻擊。例如,所有的PLAN程式都保證終止,因為PLAN不提供表達無固定長度的疊代和遞歸的方式。除此之外,PLAN程式是彼此獨立的,因為它們之間沒有直接通信的方式,還由於語言的強類型和垃圾收集也阻止了非直接的方式(例如,由於指針的混亂或者緩衝區溢出而引起的通信)。PLAN的上述特點給主動網路帶來了靈活性,增強了安全性,並且提高了性能。

相關詞條

熱門詞條

聯絡我們