揭開網路程式設計的神秘面紗六

2022-12-02 01:21:04 字數 1225 閱讀 3880

大家好,歡迎大家再次走進凌陽教育公眾平台並閱讀網路技術分享,上一期的文章中我們**了udp協議中的tftp應用部分,並簡單講述了tftp**流程。本期的文章中我們的主角則鎖定在傳輸層的另一種明星協議---tcp(傳輸控制協議),接下來的時間我們一起從網路程式設計的角度去理解並分析這種協議。

udp是乙個簡單的、不可靠的傳輸層資料報協議,tcp協議和udp同屬傳輸層,也是用於提供程序間的通訊,但是區別於udp的一點在於tcp的可靠性,它是乙個複雜、可靠的位元組流協議。tcp類似於**系統的服務模式,每一次完整的資料傳輸都需要經過「建立鏈結--使用鏈結--釋放鏈結」的虛電路,並且tcp的資料報中包含序號卻確認序號,會對包進行排序並檢錯,損壞的包可以重傳。因為tcp關心確認、超時和重傳等細節,所以大多數的網際網路應用程式使用tcp通訊。

tcp是以個面向連線的協議,面向連線意味著兩個使用tcp的應用(通常是乙個客戶和乙個伺服器)在彼此交換資料報之前必須先建立乙個tcp連線。這一過程與打**很相似,先撥號振鈴,等待對方摘機說「喂」,然後才說明是誰。在乙個tcp連線中,僅有兩方進行彼此通訊。

廣播和多播不能用於tcp。

tcp在通訊的過程中首先,tcp提供客戶與伺服器之間的連線,tcp客戶端先與某個給定伺服器建立乙個連線,再使用該連線與伺服器交換資料,然後終止這個連線。我們一般把tcp通訊中的建立連線過程稱之為三次握手,其流程為:

圖:三次握手過程圖

上圖畫出了tcp建立連線的過程。假定主機a是tcp客戶端,b是服務端。最初兩端的tcp程序都處於closed狀態。

圖中在主機下面的是tcp程序所處的狀態。a是主動開啟連線,b是被動開啟連線。

首先a向b發出連線請求報文段,這時首部中的同步位syn=1,同時選擇乙個初始序號seq=x。tcp規定,syn報文段不能攜帶資料,但要消耗掉乙個序號。這時,a進入syn-sent狀態。

b收到請求後,向a傳送確認。在確認報文段中把syn和ack位都置為1,確認號是ack=x+1,同時也為自己選擇乙個初始序號seq=y。請注意,這個報文段也不能攜帶資料,但同樣要消耗掉乙個序號。

這時b進入syn-rcvd狀態。

a收到b的確認後,還要向b給出確認。確認報文段的ack置為1,確認號ack=y+1,而自己的序號seq=x+1。這時,tcp連線已經建立,a進入established狀態,當b收到a的確認後,也會進入established狀態。

三次握手建立連線只是tcp通訊的第一步,tcp的通訊中還有關於連線的使用以及關閉等問題,在下期的過程中我們再去討論。

熱愛linux網路程式設計的少年少女們,下期見。

揭開期權的神秘面紗

姓名 班級 學號 指導老師 學校 摘要 上個世紀70年代以來隨著金融衍生產品的發展,期權是金融史影響較為為深遠 廣泛的金融工具之一,合理準確的認識期權的本質,掌握其中內在規律,熟練的進行期權操作,了解其發展趨勢,可以避免在金融衍生品市場的風險,減少不必要的損失,擴大投資收益。關鍵字 期權期權的特點期...

揭開貨幣的神秘面紗

一 商品的含義 師 常言道 錢不是萬能的,但是沒有錢是萬萬不能的。這裡的錢,也就是我們所說的貨幣,關於貨幣,在央視拍的乙個紀錄片裡,有這麼一段描述。出示ppt2 3 貨幣的重要性不言而喻,是慾望的載體,能讓人變得貪婪。同樣的,沒有錢,在當下的生活中,也是不行的。那麼,請問同學們,如果你擁有了很多錢,...

揭開位元幣的神秘面紗

摘要 伴隨著2013年十大熱詞的出爐,位元幣 三個字已漸漸進入人們的視線。其實早在前一段時間,位元幣就已經引發了國內外的熱論狂潮。如今更是以 狂增 力抵 的姿態活躍在全球市場間,成為萬千矚目的焦點。當然在這其中仍有一部分人對它的了解較少。究竟什麼是位元幣?它有什麼用?下面我就先帶領大家簡單了解一下位...