讓人糊里糊塗的HTTP、TCP、UDP、Socket

先來一個講TCP、UDP和HTTP的關係

TCP/IP是個協議組,可分爲三個層次:網絡層、傳輸層和應用層。
網絡層IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。
傳輸層中有TCP協議與UDP協議。
應用層有FTP、HTTP、TELNET、SMTP、DNS等協議。
因此,HTTP本身就是一個協議,是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。

TCP和UDP的區別

1、TCP面向連接,如打電話要先撥號建立連接;UDP是無連接的,即發送數據之前不需要建立連接,不管對方是否在線都直接發,例如QQ、短信。
2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP傳輸不可靠,會盡最大努力交付,即不保證可靠交付。
3、TCP面向字節流,實際上是TCP把數據看成一連串無結構的字節流;UDP是面向報文的,UDP沒有擁塞控制,因此網絡出現擁塞不會使源主機的發送速率降低(對實時應用很有用,如IP電話,實時視頻會議等)。

Socket是什麼呢?

Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket接口後面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議。
TCP/IP分層圖

小記

昨天是10.24——程序員節,距離我的寫下“【10.24中國程序員節】關於寫blog這件事”這篇文章已經過去兩年時間了,在這兩年裏我也沒有放棄過寫博客,博客總閱讀數從100,到1000,到10000,再到現在1W多,也有不少網友曾經聯繫過我一起學習交流,我相信我跟你們大多數人一樣,十分珍惜,也十分感動。在此期間我還開通了我的GitHub,同時也拿到了不少stars,我會繼續堅持下去的。
昨天正好也是oocl來我們學校宣講的那天,在現場做了份筆試。在筆試過程中,我發現自己放下已久的計算機網絡知識是時候該好好回顧一遍了,特地寫下這篇文章。寫給自己,也寫給那些對這些基本概念還糊里糊塗的coder新人們。
昨天的筆試題最後一題是用英文寫一段話,寫出你近四年印象最深刻的事情,其中有個就是寫:我擁有了我的博客,我的GitHub,並且開始有一些訪問量。我很開心能成爲IT行業的一員,向廣大coder致敬!

參考
http://blog.csdn.net/magister_feng/article/details/8634518
http://blog.csdn.net/xijiaohuangcao/article/details/6105623
http://blog.csdn.net/yipiankongbai/article/details/24435977

發佈了48 篇原創文章 · 獲贊 660 · 訪問量 81萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章