1. 程式人生 > >TCP/IP 七層網路模型 三次握手

TCP/IP 七層網路模型 三次握手

1、概念

       Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協議/因特網互聯協議,又名網路通訊協議,是Internet最基本的協議、Internet國際網際網路絡的基礎,由網路層的IP協議和傳輸層的TCP協議組成。TCP/IP 定義了電子裝置如何連入因特網,以及資料如何在它們之間傳輸的標準。協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。通俗而言:TCP負責發現傳輸的問題,一有問題就發出訊號,要求重新傳輸,直到所有資料安全正確地傳輸到目的地。而IP是給因特網的每一臺電腦規定一個地址。

2、組成層次

       TCP/IP協議不是TCP和IP這兩個協議的合稱,而是指因特網整個TCP/IP協議族。
       從協議分層模型方面來講,TCP/IP由四個層次組成:網路介面層、網路層、傳輸層、應用層。
       TCP/IP協議並不完全符合OSI的七層參考模型,OSI(Open System Interconnect)是傳統的開放式系統互連參考模型,是一種通訊協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬體在相同的層次上相互通訊。這7層是:物理層、資料鏈路層(網路介面層)、網路層(網路層)、傳輸層(傳輸層)、會話層、表示層和應用層(應用層)。而TCP/IP通訊協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。由於ARPANET的設計者注重的是網路互聯,允許通訊子網(網路介面層)採用已有的或是將來有的各種協議,所以這個層次中沒有提供專門的協議。實際上,TCP/IP協議可以通過網路介面層連線到任何網路上,例如X.25交換網或IEEE802區域網。

        TCP/IP協議模組關係如下圖

        

    

       

3、三次握手

       三次握手(three times handshake;three-way handshaking)所謂的“三次握手”即對每次傳送的資料量是怎樣跟蹤進行協商使資料段的傳送和接收同步,根據所接收到的資料量而確定的資料確認數及資料傳送、接收完畢後何時撤消聯絡,並建立虛連線。為了提供可靠的傳送,TCP在傳送新的資料之前,以特定的順序將資料包的序號,並需要這些包傳送給目標機之後的確認訊息。TCP總是用來發送大批量的資料。當應用程式在收到資料後要做出確認時也要用到TCP。

在TCP/IP協議中,TCP協議提供可靠的連線服務,採用三次握手建立一個連線。
      第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入SYN_SENT狀態,等待伺服器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。
      第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也傳送一個SYN包(syn=k),即SYN+ACK包,此時伺服器進入SYN_RECV狀態;
      第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器傳送確認包ACK(ack=k+1),此包傳送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。
完成三次握手,客戶端與伺服器開始傳送資料

                                                 

                     

4、有這樣一道與TCP相關的題

tcp三次握手的過程,accept發生在三次握手哪個階段?

答:
第一次握手:客戶端傳送syn包(syn=j)到伺服器。
第二次握手:伺服器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也傳送一個ASK包(ask=k)。
第三次握手:客戶端收到伺服器的SYN+ACK包,向伺服器傳送確認包ACK(ack=k+1)。
三次握手完成後,客戶端和伺服器就建立了tcp連線。這時可以呼叫accept函式獲得此連線。

相關連結: