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


 

image

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

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

image

參考: https://krystalchisholm.wordpress.com/2010/11/24/chapter-17/ 

 

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

 

image

Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。

在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議。

 

參考: http://blog.csdn.net/xijiaohuangcao/article/details/6105623

 

 

 

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

 

TCP通信需要服務器端偵聽listen、接收客戶端連接請求accept,等待客戶端connect建立連接后才能進行數據包的收發(recv/send)工作。

而UDP則服務器和客戶端的概念不明顯,服務器端即接收端需要綁定端口,等待客戶端的數據的到來。后續便可以進行數據的收發(recvfrom/sendto)工作。

 

image

參考: http://blog.csdn.net/ce123_zhouwei/article/details/8976006

http://blog.csdn.net/kerry0071/article/details/39348163

 

 

image

 

image

 

image

image

 

image

 

image

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM