轉自: http://www.52im.net/thread-1095-1-1.html
僅記錄到參考文章 ,具體可以點擊鏈接查看
1、寫在前面
論壇和羣裏常會有技術同行打算自已開發IM或者消息推送系統,很多時候連基本的網絡編程理論(如網絡協議等)都不瞭解,就貿然定方案、寫代碼,顯得非常盲目且充滿技術風險。
即時通訊網論壇裏精心整理了《[通俗易懂]深入理解TCP協議》、《不爲人知的網絡編程》、《P2P技術詳解》、《高性能網絡編程》這幾個網絡編程的系列文章,甚至還有圖文並貌+實戰代碼的《NIO框架入門》等等。資料雖好,無奈很多同行或許是時間緊迫,也或許是心態浮躁,反正就是沒辦法靜下心來仔細研讀,導致錯過了很多必須掌握的網絡編程知識基礎(如果您正打算從零開發移動端IM,則建議您從此文開始《新手入門一篇就夠:從零開發移動端IM》)。
本次《網絡編程懶人入門》系列文章(共3篇),將爲大家(尤其是上面說的浮躁的開發者同行)提供懶人快速入門,希望在你沒辦法耐心讀完上面的幾個系列文章(但還是強烈建議優先去讀一讀)的情況還能對基本的網絡編程知識有所瞭解和掌握,從而對您的IM系統或消息推系統的技術選型、方案制定、代碼編寫起到理論支撐作用。
本文將從網絡通信協議講起,懶人們,動起來^_^ !
2、正文引言
我們每天使用互聯網,你是否想過,它是如何實現的?
全世界幾十億臺電腦,連接在一起,兩兩通信。上海的某一塊網卡送出信號,洛杉磯的另一塊網卡居然就收到了,兩者實際上根本不知道對方的物理位置,你不覺得這是很神奇的事情嗎?
互聯網的核心是一系列協議,總稱爲"互聯網協議"(Internet Protocol Suite)。它們對電腦如何連接和組網,做出了詳盡的規定。理解了這些協議,就理解了互聯網的原理。
下面就是我的學習筆記。因爲這些協議實在太複雜、太龐大,我想整理一個簡潔的框架,幫助自己從總體上把握它們。爲了保證簡單易懂,我做了大量的簡化,有些地方並不全面和精確,但是應該能夠說清楚互聯網的原理。
另外,如果您很好奇承載這些網絡協議的物理設備是怎麼工作的,可以先看看《網絡編程懶人入門(六):史上最通俗的集線器、交換機、路由器功能原理入門》。
3、系列文章
本文是系列文章中的第1篇,本系列文章的大綱如下:
- 《網絡編程懶人入門(一):快速理解網絡通信協議(上篇)》(本文)
- 《網絡編程懶人入門(二):快速理解網絡通信協議(下篇)》
- 《網絡編程懶人入門(三):快速理解TCP協議一篇就夠》
- 《網絡編程懶人入門(四):快速理解TCP和UDP的差異》
- 《網絡編程懶人入門(五):快速理解爲什麼說UDP有時比TCP更有優勢》
- 《網絡編程懶人入門(六):史上最通俗的集線器、交換機、路由器功能原理入門》
- 《網絡編程懶人入門(七):深入淺出,全面理解HTTP協議》
- 《網絡編程懶人入門(八):手把手教你寫基於TCP的Socket長連接》
- 《網絡編程懶人入門(九):通俗講解,有了IP地址,爲何還要用MAC地址?》
本站的《腦殘式網絡編程入門》也適合入門學習,本系列大綱如下:
- 《腦殘式網絡編程入門(一):跟着動畫來學TCP三次握手和四次揮手》
- 《腦殘式網絡編程入門(二):我們在讀寫Socket時,究竟在讀寫什麼?》
- 《腦殘式網絡編程入門(三):HTTP協議必知必會的一些知識》
- 《腦殘式網絡編程入門(四):快速理解HTTP/2的服務器推送(Server Push)》
如果您覺得本系列文章過於基礎,您可直接閱讀《不爲人知的網絡編程》系列文章,該系列目錄如下:
- 《不爲人知的網絡編程(一):淺析TCP協議中的疑難雜症(上篇)》
- 《不爲人知的網絡編程(二):淺析TCP協議中的疑難雜症(下篇)》
- 《不爲人知的網絡編程(三):關閉TCP連接時爲什麼會TIME_WAIT、CLOSE_WAIT》
- 《不爲人知的網絡編程(四):深入研究分析TCP的異常關閉》
- 《不爲人知的網絡編程(五):UDP的連接性和負載均衡》
- 《不爲人知的網絡編程(六):深入地理解UDP協議並用好它》
關於移動端網絡特性及優化手段的總結性文章請見:
- 《現代移動端網絡短連接的優化手段總結:請求速度、弱網適應、安全保障》
- 《移動端IM開發者必讀(一):通俗易懂,理解移動網絡的“弱”和“慢”》
- 《移動端IM開發者必讀(二):史上最全移動弱網絡優化方法總結》
4、參考資料
《TCP/IP詳解 - 第11章·UDP:用戶數據報協議》
《TCP/IP詳解 - 第17章·TCP:傳輸控制協議》
《TCP/IP詳解 - 第18章·TCP連接的建立與終止》
《TCP/IP詳解 - 第21章·TCP的超時與重傳》
《通俗易懂-深入理解TCP協議(上):理論基礎》
《通俗易懂-深入理解TCP協議(下):RTT、滑動窗口、擁塞處理》
《理論經典:TCP協議的3次握手與4次揮手過程詳解》
《理論聯繫實際:Wireshark抓包分析TCP 3次握手、4次揮手過程》
《計算機網絡通訊協議關係圖(中文珍藏版)》
《高性能網絡編程(一):單臺服務器併發TCP連接數到底可以有多少》
《高性能網絡編程(二):上一個10年,著名的C10K併發連接問題》
《高性能網絡編程(三):下一個10年,是時候考慮C10M併發問題了》
《高性能網絡編程(四):從C10K到C10M高性能網絡應用的理論探索》
《簡述傳輸層協議TCP和UDP的區別》
《爲什麼QQ用的是UDP協議而不是TCP協議?》
《移動端即時通訊協議選擇:UDP還是TCP?》