位元組流
位元組流(英語:byte stream)在電腦科學中是一種比特流,不過裡面的比特被打包成一個個我們叫做位元組(Bytes)的單位。
在電腦網路內,八比特字串流(octet stream)有時會拿來代表同樣的東西;這種措辭強調了我們的位元組是8比特的位元組,或者說八比特(octets)。最早位元組這個詞被引進的時候,本身並沒有一個大小的標準;不過大多數現在的電腦位元組都等同於八位元。
正式的說,一個位元組流是一種特定的抽象化,一個讓實體(entity)可以傳輸一系列的位元組給處在另一端實體的一種通信頻道。一般來說這種頻道會是雙向,不過有時有單向的。在幾乎所有的狀況,這裡的頻道都具有所謂可靠的特質;也就是,在另一端會按照正確的順序出現應該出現的位元組(現實生活中有些頻道,有時會順序錯誤,有時會多出或者失去一些位元組)。
比較不正式的說,我們可以把它想做是兩個實體之間的管線(conduit);其中一個實體會將位元組輸入管線,另一個實體則接收這些位元組。這個管線可以是短暫或者永久的。
範例
在多數的作業系統,包含類Unix系統和Windows,一個行程(process)想要去取得任何檔案都是一種位元組流的範例。特別是每個行程都有的三個標準串流(stdin, stdout, stderr),這三個位元組流可視為是單向位元組流的範例。UNIX裡面pipe的機制常被使用於連接不同的行程,並且用來創造行程之間的位元組流。
另外一個在網路傳輸協議裡面比較有名,且會提供位元組流給客戶端的範例是TCP/IP通訊協定裡面的傳輸控制協議(TCP),這種協議提供了雙向的位元組流。
對於任意位元組流的網際網路媒體型式是application/octet-stream。其他媒體型式則會以公開的格式來定義他們自己的位元組流。