位元組流

位元組流(英語:byte stream)在電腦科學中是一種位元流,不過裏面的位元被打包成一個個我們叫做位元組(Bytes)的單位。

電腦網絡內,位元字串流(octet stream)有時會拿來代表同樣的東西;這種措辭強調了我們的位元組是8位元的位元組,或者說八位元(octets)。最早位元組這個詞被引進的時候,本身並沒有一個大小的標準;不過大多數現在的電腦位元組都等同於八位元。

正式的說,一個位元組流是一種特定的抽象化,一個讓實體(entity)可以傳輸一系列的位元組給處在另一端實體的一種通訊頻道。一般來說這種頻道會是雙向,不過有時有單向的。在幾乎所有的狀況,這裏的頻道都具有所謂可靠的特質;也就是,在另一端會按照正確的順序出現應該出現的位元組(現實生活中有些頻道,有時會順序錯誤,有時會多出或者失去一些位元組)。

比較不正式的說,我們可以把它想做是兩個實體之間的管線化(conduit);其中一個實體會將位元組輸入管線化,另一個實體則接收這些位元組。這個管線化可以是短暫或者永久的。

範例

在多數的作業系統,包含類Unix系統Windows,一個行程(process)想要去取得任何檔案都是一種位元組流的範例。特別是每個行程都有的三個標準串流(stdin, stdout, stderr),這三個位元組流可視為是單向位元組流的範例。UNIX裏面pipe的機制常被使用於連接不同的行程,並且用來創造行程之間的位元組流。

另外一個在網絡傳輸協定裏面比較有名,且會提供位元組流給客戶端的範例是TCP/IP通訊協定裏面的傳輸控制協定(TCP),這種協定提供了雙向的位元組流。

對於任意位元組流的互聯網媒體型式application/octet-stream。其他媒體型式則會以公開的格式來定義他們自己的位元組流。

相關條目