1. 程式人生 > >HTTP TCP UDP Socket 關係的幾個經典圖

HTTP TCP UDP Socket 關係的幾個經典圖

Posted on 2015-02-17 16:52 蟈蟈俊 閱讀(2686) 評論(0) 編輯 收藏

image

從上圖可以看到,TCP/IP是個協議組,可分為三個層次:網路層、傳輸層和應用層。 
在網路層有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。 
在傳輸層中有TCP協議與UDP協議。 
在應用層有FTP、HTTP、TELNET、SMTP、DNS等協議。

下圖也是描述這個關係的。

image

另外我們經常說到的 Socket 的所在位置如下圖:

image

Socket是應用層與TCP/IP協議族通訊的中間軟體抽象層,它是一組介面。

在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket介面後面,對使用者來說,一組簡單的介面就是全部,讓Socket去組織資料,以符合指定的協議。

從編碼角度看 TCP UDP的區別如下圖:

TCP通訊需要伺服器端偵聽listen、接收客戶端連線請求accept,等待客戶端connect建立連線後才能進行資料包的收發(recv/send)工作。

而UDP則伺服器和客戶端的概念不明顯,伺服器端即接收端需要繫結埠,等待客戶端的資料的到來。後續便可以進行資料的收發(recvfrom/sendto)工作。

image