網路知識之TCP UDP篇

2021-06-23 04:22:35 字數 1629 閱讀 2458

我們學習過什麼是「資料報」。理解資料報,對於網路管理的網路安全具有至關重要的意義。比 如,防火牆的作用本質就是檢測網路中的資料報,判斷其是否違反了預先設定的規則,如果違反就加以阻止。圖1就是瑞星個人版防火牆軟體設定規則的介面。細心 的讀者會發現,圖1中的「協議」欄中有「tcp」、「udp」等名詞,它們是什麼意思呢?現在我們就來講講什麼是tcp和udp。

面向連線的tcp

「面向連線」就是在正式通訊前必須要與對方建立起連線。比如你給別人打**,必須等線路接通了、對方拿起話筒才能相互通話。

tcp(transmission control protocol,傳輸控制協議)是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線。乙個tcp連線必須要經過三次「對話」才能 建立起來,其中的過程非常複雜,我們這裡只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機a向主機b發出連 接請求資料報:「我想給你發資料,可以嗎?」,這是第一次對話;主機b向主機a傳送同意連線和要求同步(同步就是兩台主機乙個在傳送,乙個在接收,協調工 作)的資料報:「可以,你什麼時候發?」,這是第二次對話;主機a再發出乙個資料報確認主機b的要求同步:「我現在就發,你接著吧!」,這是第三次對話。 三次「對話」的目的是使資料報的傳送和接收同步,經過三次「對話」之後,主機a才向主機b正式傳送資料。

tcp協議能為應用程式提供可靠的通訊連線,使一台計算機發出的位元組流無差錯地發往網路上的其他計算機,對可靠性要求高的資料通訊系統往往使用tcp協議傳輸資料。

我們來做乙個實驗,用計算機a(安裝windows 2000 server作業系統)從「網路上的芳鄰」上的一台計算機b拷貝大小為8,644,608位元組的檔案,通過狀態列右下角網絡卡的傳送和接收指標就會發現:雖然是 資料流是由計算機b流向計算機a,但是計算機a仍傳送了3,456個資料報,如圖2所示。這些資料報是怎樣產生的呢?因為檔案傳輸時使用了tcp/ip協 議,更確切地說是使用了面向連線的tcp協議,計算機a接收資料報的時候,要向計算機b回發資料報,所以也產生了一些通訊量。

如果事先用網路監視器監視網路流量,就會發現由此產生的資料流量是9,478,819位元組,比檔案大小多出10.96%(如圖3所示),原因不僅在於資料報和幀本身占用了一些空間,而且也在於tcp協議面向連線的特性導致了一些額外的通訊量的產生。

面向非連線的udp協議

「面向非連線」就是在正式通訊前不必與對方先建立連線,不管對方狀態就直接傳送。這與現在風行的手機簡訊非常相似:你在發簡訊的時候,只需要輸入對方手機號就ok了。

udp(user data protocol,使用者資料報協議)是與tcp相對應的協議。它是面向非連線的協議,它不與對方建立連線,而是直接就把資料報傳送過去!

udp適用於一次只傳送少量資料、對可靠性要求不高的應用環境。比如,我們經常使用 「ping」命令來測試兩台主機之間tcp/ip通訊是否正常,其實「ping」命令的原理就是向對方主機傳送udp資料報,然後對方主機確認收到資料 包,如果資料報是否到達的訊息及時反饋回來,那麼網路就是通的。例如,在預設狀態下,一次「ping」操作傳送4個資料報(如圖2所示)。大家可以看到, 傳送的資料報數量是4包,收到的也是4包(因為對方主機收到後會發回乙個確認收到的資料報)。這充分說明了udp協議是面向非連線的協議,沒有建立連線的 過程。正因為udp協議沒有連線的過程,所以它的通訊效果高;但也正因為如此,它的可靠性不如tcp協議高。qq就使用udp發訊息,因此有時會出現收不到訊息的情況。

網路程式之TCP UDP篇(其一)

廢話不多說,開始聽我 哈哈 所謂網路程式,就是寫的程式能通過網路進行通訊 就是互動資料 所以要想程式間能進行通訊,至少要執行兩個例項 其中,乙個例項為伺服器,乙個為客戶端 一般來說,伺服器例項只要乙個,客戶端例項可以多個。伺服器和客戶端的例項可以是同乙個程式 該程式既是伺服器,又是客戶端,一般用於區...

網路通訊之TCP UDP

1 udp乙個socket接收緩衝區的預設值 cat proc sys net core rmem default 212992,單位byte,208kb 3 每個udp socket都有乙個接收緩衝區,沒有傳送緩衝區,從概念上來說就是只要有資料就發,不管對方是否可以正確接收,所以不緩衝,不需要傳送...

網路程式設計,tcp udp

架構 程式設計師開發的一種模式 c s架構 客戶端 伺服器模式 b s架構 browser瀏覽器 伺服器模式 b s架構的優勢 統一了應用的介面 網路通訊程式設計 同一臺電腦上兩個py檔案通訊 檔案 兩台電腦 如何通訊?一根網線 多台電腦 如何通訊?交換機 更多台電腦 如何通訊?交換機 路由器 寫乙...