HTTP TCP UDP Socket 關係的幾個經典圖
阿新 • • 發佈:2019-02-10
Posted on 2015-02-17 16:52 蟈蟈俊 閱讀(2686) 評論(0) 編輯 收藏
從上圖可以看到,TCP/IP是個協議組,可分為三個層次:網路層、傳輸層和應用層。
在網路層有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。
在傳輸層中有TCP協議與UDP協議。
在應用層有FTP、HTTP、TELNET、SMTP、DNS等協議。
下圖也是描述這個關係的。
另外我們經常說到的 Socket 的所在位置如下圖:
Socket是應用層與TCP/IP協議族通訊的中間軟體抽象層,它是一組介面。
在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket介面後面,對使用者來說,一組簡單的介面就是全部,讓Socket去組織資料,以符合指定的協議。
從編碼角度看 TCP UDP的區別如下圖:
TCP通訊需要伺服器端偵聽listen、接收客戶端連線請求accept,等待客戶端connect建立連線後才能進行資料包的收發(recv/send)工作。
而UDP則伺服器和客戶端的概念不明顯,伺服器端即接收端需要繫結埠,等待客戶端的資料的到來。後續便可以進行資料的收發(recvfrom/sendto)工作。