傳輸控制協議

傳輸控制協議 （ Transmission Control Protocol ， 縮寫 ： TCP ） 是一種面向連接的 、 可靠的 、 基於字節流的傳輸層通信協議 ， 由IETF的定義 。 在簡化的計算機網絡OSI模型中 ， 它完成第四層傳輸層所指定的功能 。 在因特網協議族 （ Internet protocol suite ） 中 ， TCP層是位於IP層之上 ， 應用層之下的中間層 。 不同主機的應用層之間經常需要可靠的 、 像管道一樣的連接 ， 但是IP層不提供這樣的流機制 ， 而是提供不可靠的包交換 。 應用層向TCP層發送用於網間傳輸的 、 用8位字節表示的數據流 ， 然後TCP把數據流分割成適當長度的報文段 （ 通常受該計算機連接的網絡的數據鏈路層的最大傳輸單元 （ MTU ） 的限制 ） 。 之後TCP把結果包傳給IP層 ， 由它來透過網絡將包傳送給接收端實體的TCP層 。 TCP爲了保證不發生丟包 ， 就給每個包一個序號 ， 同時序號也保證了傳送到接收端實體的包的按序接收 。 然後接收端實體對已成功收到的包發回一個相應的確認信息 （ ACK ） ； 如果發送端實體在合理的往返時延 （ RTT ） 內未收到確認 ， 那麼對應的數據包就被假設爲已丟失並進行重傳 。 TCP用一個校驗和函數來檢驗數據是否有錯誤 ， 在發送和接收時都要計算校驗和 。