本文引用了“帥地”發(fā)表于公眾號苦逼的碼農(nóng)的技術(shù)分享。
搞網(wǎng)絡(luò)通信應(yīng)用開發(fā)的程序員,可能會經(jīng)常聽到外網(wǎng)IP(即互聯(lián)網(wǎng)IP地址)和內(nèi)網(wǎng)IP(即局域網(wǎng)IP地址),但他們的區(qū)別是什么?又有什么關(guān)系呢?另外,內(nèi)行都知道,提到外網(wǎng)IP和內(nèi)網(wǎng)IP就不得不提NAT路由轉(zhuǎn)換這種東西,那這雙是什么鬼?本文就來簡單講講這些到底都是怎么回事。
另外,以下是與本文內(nèi)相關(guān)知識點(diǎn)有關(guān)聯(lián)的文章,可詳細(xì)閱讀之:
《P2P 技術(shù)詳解(一):NAT詳解——詳細(xì)原理、P2P簡介》《P2P 技術(shù)詳解(二):P2P中的NAT穿越(打洞)方案詳解》《通俗易懂:快速理解P2P技術(shù)中的NAT穿透原理》《網(wǎng)絡(luò)編程懶人入門(六):史上最通俗的集線器、交換機(jī)、路由器功能原理入門》《網(wǎng)絡(luò)編程懶人入門(九):通俗講解,有了IP地址,為何還要用MAC地址?》《腦殘式網(wǎng)絡(luò)編程入門(五):每天都在用的Ping命令,它到底是什么?》
《P2P 技術(shù)詳解(一):NAT詳解——詳細(xì)原理、P2P簡介》
《P2P 技術(shù)詳解(二):P2P中的NAT穿越(打洞)方案詳解》
《通俗易懂:快速理解P2P技術(shù)中的NAT穿透原理》
《網(wǎng)絡(luò)編程懶人入門(六):史上最通俗的集線器、交換機(jī)、路由器功能原理入門》
《網(wǎng)絡(luò)編程懶人入門(九):通俗講解,有了IP地址,為何還要用MAC地址?》
《腦殘式網(wǎng)絡(luò)編程入門(五):每天都在用的Ping命令,它到底是什么?》
學(xué)習(xí)交流:
- 即時通訊開發(fā)交流3群:185926912[推薦]- 移動端IM開發(fā)入門文章:《新手入門一篇就夠:從零開發(fā)移動端IM》
- 即時通訊開發(fā)交流3群:185926912[推薦]
- 移動端IM開發(fā)入門文章:《新手入門一篇就夠:從零開發(fā)移動端IM》
(本文同步發(fā)布于:http://www.52im.net/thread-2082-1-1.html)
本文是系列文章中的第6篇,本系列大綱如下:
《腦殘式網(wǎng)絡(luò)編程入門(一):跟著動畫來學(xué)TCP三次握手和四次揮手》(本文)《腦殘式網(wǎng)絡(luò)編程入門(二):我們在讀寫Socket時,究竟在讀寫什么?》《腦殘式網(wǎng)絡(luò)編程入門(三):HTTP協(xié)議必知必會的一些知識》《腦殘式網(wǎng)絡(luò)編程入門(四):快速理解HTTP/2的服務(wù)器推送(Server Push)》《腦殘式網(wǎng)絡(luò)編程入門(五):每天都在用的Ping命令,它到底是什么?》《腦殘式網(wǎng)絡(luò)編程入門(六):什么是公網(wǎng)IP和內(nèi)網(wǎng)IP?NAT轉(zhuǎn)換又是什么鬼?》
《腦殘式網(wǎng)絡(luò)編程入門(一):跟著動畫來學(xué)TCP三次握手和四次揮手》(本文)
《腦殘式網(wǎng)絡(luò)編程入門(二):我們在讀寫Socket時,究竟在讀寫什么?》
《腦殘式網(wǎng)絡(luò)編程入門(三):HTTP協(xié)議必知必會的一些知識》
《腦殘式網(wǎng)絡(luò)編程入門(四):快速理解HTTP/2的服務(wù)器推送(Server Push)》
《腦殘式網(wǎng)絡(luò)編程入門(六):什么是公網(wǎng)IP和內(nèi)網(wǎng)IP?NAT轉(zhuǎn)換又是什么鬼?》
答案:不是。
我們都知道,IPv4中的IP地址的數(shù)量是有限的(所以現(xiàn)在都在搞IPv6嘛),每次把一部分地址分配出去,那么就意味著能夠用來分配的IP地址就更少了,而且隨著現(xiàn)在手機(jī),電腦等的快速發(fā)展,如果每個手機(jī)或者電腦都要求一個IP地址,那么顯然IP地址是不夠用的。
為了解決這個問題,我們可以采取這樣的策略:例如對于一個公司來說,每個公司都會有一個屬于自己公司的內(nèi)網(wǎng)(也可以稱之為局域網(wǎng))。
內(nèi)網(wǎng)(學(xué)名應(yīng)叫局域網(wǎng)(Local Area Network,LAN))是在一個局部的地理范圍內(nèi),一般可以是是幾米內(nèi)(比如家庭內(nèi)網(wǎng)),也可以是方圓幾千米以內(nèi)(比如一個大學(xué)內(nèi)網(wǎng)),將各種計(jì)算機(jī)、外部設(shè)備和數(shù)據(jù)庫等互相聯(lián)接起來組成的計(jì)算機(jī)通信網(wǎng)。
內(nèi)網(wǎng)主要作用有:
1)共享傳輸信道:簡單地理解就是不需要每臺電腦一個外網(wǎng)IP地址;
2)傳輸速率高:內(nèi)網(wǎng)之間的電腦因?yàn)闆]有外網(wǎng)網(wǎng)絡(luò)拓?fù)涞膹?fù)雜性,所以互相通信的網(wǎng)絡(luò)可以很快,比如從一個臺電腦向另一臺電腦復(fù)制一個幾G的文件可能只需要數(shù)十秒時間。
3)誤碼率低:因?yàn)橥ㄐ啪嚯x很近,所以誤碼率很低,換句話說就是網(wǎng)絡(luò)很穩(wěn)定(老一點(diǎn)的程序員都知道,讀大學(xué)的時候同一個宿舍內(nèi)網(wǎng)聯(lián)網(wǎng)玩C/S游戲,幾乎不會遇到斷網(wǎng)或卡頓的事情,除非有人下毛片或者把網(wǎng)絡(luò)給拔了,哈哈)。
假如我們給這個公司A分配了一個IP=192.168.1.1。我們把這個IP作為這個公司內(nèi)網(wǎng)的網(wǎng)關(guān)吧。
在公司A的內(nèi)網(wǎng)里面有3臺電腦,如果這三臺電腦要上網(wǎng)的話,我們需要給他分配一個IP,那么就像上一節(jié)提到的:我們一定需要去申請3個IP地址來使用嗎?
答否。我們不一定需要去申請3個IP的,在我們這個內(nèi)網(wǎng)里,我們可以指定自己的規(guī)則,例如,我們可以給這三臺電腦隨便分配三個IP(請注意,這三個IP不是去申請的,而且我自己隨意給它分配的)。分別分配電腦A = 192.168.1.2 電腦B = 192.168.1.3 電腦C = 192.168.1.4。
而這個規(guī)則可以由我們的內(nèi)網(wǎng)網(wǎng)關(guān)來管理,就像下面這樣:
假如電腦A想要訪問百度,百度的IP我們假設(shè)為:172.168.30.3:
我們都知道,電腦A的IP是我們虛構(gòu)的,實(shí)際上可能并不存在這樣一個IP,如果用電腦A的IP去訪問百度,那肯定行不通。
我們也知道,由于百度和電腦A不在一個局域網(wǎng)內(nèi),所以A要訪問百度,那么必須得經(jīng)過網(wǎng)關(guān)。而網(wǎng)關(guān)的這個IP地址,是真實(shí)存在的,是可以訪問百度的。
為了讓 A 可以訪問百度,那么我們可以采取這樣的方法:讓網(wǎng)關(guān)去幫助 A 訪問,然后百度把結(jié)果傳遞給網(wǎng)關(guān),而網(wǎng)關(guān)再把結(jié)果傳遞給 A,這樣不就可以解決了?
不過電腦A、B、C都可能拜托網(wǎng)關(guān)去幫忙訪問百度,而百度返回的結(jié)果 的目的IP都是網(wǎng)關(guān)的IP=192.168.1.1。那么網(wǎng)關(guān)該如何進(jìn)行區(qū)分這結(jié)果是A的、B的還是C的呢?
我們?nèi)ピL問百度的時候,不是需要指定一個端口嗎?只要我們把 A的IP + 端口 映射成 網(wǎng)關(guān)的IP+端口,不就可以唯一確定身份了?
例如A用端口60去訪問百度,網(wǎng)關(guān)把 A的IP+端口60 映射成 網(wǎng)關(guān)的IP+端口80 不就可以了?
百度把結(jié)果返回給網(wǎng)關(guān)的80端口之后,網(wǎng)關(guān)再通過映射表,就可以把結(jié)果返回給 A的60端口 了。
如果B也是用60端口去訪問百度的話,也是一樣,可以把它映射到90端口。
這種方法地址的映射轉(zhuǎn)換,我們也稱之為網(wǎng)絡(luò)地址轉(zhuǎn)換,英文為 Network Address Translation,簡稱NAT。
而像A、B、C這樣的IP地址我們也稱之為內(nèi)網(wǎng)IP,即內(nèi)網(wǎng)IP;而像網(wǎng)關(guān),百度這樣的IP我們稱之為外網(wǎng)IP(即互聯(lián)網(wǎng)公網(wǎng)IP)。
所以,一個典型的內(nèi)網(wǎng)訪問公網(wǎng)的原理,就像下圖這樣就可以實(shí)現(xiàn)了:
現(xiàn)在知道外網(wǎng)IP和內(nèi)網(wǎng)IP了吧?
為了解決IP地址短缺,技術(shù)專家們發(fā)明了內(nèi)網(wǎng)技術(shù),而內(nèi)網(wǎng)技術(shù)的理論支撐就是NAT技術(shù),所以搞網(wǎng)絡(luò)通信的程序員非常有必要對NAT技術(shù)有一個深入的理解。
如果你想詳細(xì)了解NAT路由轉(zhuǎn)換技術(shù),不防從下面幾篇文章開始:
《P2P 技術(shù)詳解(一):NAT詳解——詳細(xì)原理、P2P簡介》《P2P 技術(shù)詳解(二):P2P中的NAT穿越(打洞)方案詳解》《通俗易懂:快速理解P2P技術(shù)中的NAT穿透原理》《網(wǎng)絡(luò)編程懶人入門(六):史上最通俗的集線器、交換機(jī)、路由器功能原理入門》
幾點(diǎn)需要注意的地方:
1)對于全球IP,顯然每個IP都是唯一的,而對于私有IP,同一個局域網(wǎng)內(nèi),也得是唯一的,但在兩個不同的局域網(wǎng)中,是可以有相同的私有IP的;
2)局域網(wǎng)內(nèi)主機(jī)之間的通信,是不需要進(jìn)行地址轉(zhuǎn)換的,而如果需要訪問外網(wǎng),才需要進(jìn)行地址轉(zhuǎn)換。
實(shí)際上,我們也可以把這種地址轉(zhuǎn)換稱之為一種代理。網(wǎng)關(guān)就相當(dāng)于一個代理,把局域網(wǎng)內(nèi)的主機(jī)的一些信息都給隱藏了起來。就像本內(nèi)里所描述的那樣,百度并不知道是主機(jī)A訪問它,他只知道是網(wǎng)關(guān)訪問了它。
[1] 網(wǎng)絡(luò)編程基礎(chǔ)資料:《TCP/IP詳解 - 第11章·UDP:用戶數(shù)據(jù)報協(xié)議》《TCP/IP詳解 - 第17章·TCP:傳輸控制協(xié)議》《TCP/IP詳解 - 第18章·TCP連接的建立與終止》《TCP/IP詳解 - 第21章·TCP的超時與重傳》《技術(shù)往事:改變世界的TCP/IP協(xié)議(珍貴多圖、手機(jī)慎點(diǎn))》《通俗易懂-深入理解TCP協(xié)議(上):理論基礎(chǔ)》《通俗易懂-深入理解TCP協(xié)議(下):RTT、滑動窗口、擁塞處理》《理論經(jīng)典:TCP協(xié)議的3次握手與4次揮手過程詳解》《理論聯(lián)系實(shí)際:Wireshark抓包分析TCP 3次握手、4次揮手過程》《計(jì)算機(jī)網(wǎng)絡(luò)通訊協(xié)議關(guān)系圖(中文珍藏版)》《UDP中一個包的大小最大能多大?》《P2P技術(shù)詳解(一):NAT詳解——詳細(xì)原理、P2P簡介》《P2P技術(shù)詳解(二):P2P中的NAT穿越(打洞)方案詳解》《P2P技術(shù)詳解(三):P2P技術(shù)之STUN、TURN、ICE詳解》《通俗易懂:快速理解P2P技術(shù)中的NAT穿透原理》《高性能網(wǎng)絡(luò)編程(一):單臺服務(wù)器并發(fā)TCP連接數(shù)到底可以有多少》《高性能網(wǎng)絡(luò)編程(二):上一個10年,著名的C10K并發(fā)連接問題》《高性能網(wǎng)絡(luò)編程(三):下一個10年,是時候考慮C10M并發(fā)問題了》《高性能網(wǎng)絡(luò)編程(四):從C10K到C10M高性能網(wǎng)絡(luò)應(yīng)用的理論探索》《高性能網(wǎng)絡(luò)編程(五):一文讀懂高性能網(wǎng)絡(luò)編程中的I/O模型》《高性能網(wǎng)絡(luò)編程(六):一文讀懂高性能網(wǎng)絡(luò)編程中的線程模型》《不為人知的網(wǎng)絡(luò)編程(一):淺析TCP協(xié)議中的疑難雜癥(上篇)》《不為人知的網(wǎng)絡(luò)編程(二):淺析TCP協(xié)議中的疑難雜癥(下篇)》《不為人知的網(wǎng)絡(luò)編程(三):關(guān)閉TCP連接時為什么會TIME_WAIT、CLOSE_WAIT》《不為人知的網(wǎng)絡(luò)編程(四):深入研究分析TCP的異常關(guān)閉》《不為人知的網(wǎng)絡(luò)編程(五):UDP的連接性和負(fù)載均衡》《不為人知的網(wǎng)絡(luò)編程(六):深入地理解UDP協(xié)議并用好它》《不為人知的網(wǎng)絡(luò)編程(七):如何讓不可靠的UDP變的可靠?》《網(wǎng)絡(luò)編程懶人入門(一):快速理解網(wǎng)絡(luò)通信協(xié)議(上篇)》《網(wǎng)絡(luò)編程懶人入門(二):快速理解網(wǎng)絡(luò)通信協(xié)議(下篇)》《網(wǎng)絡(luò)編程懶人入門(三):快速理解TCP協(xié)議一篇就夠》《網(wǎng)絡(luò)編程懶人入門(四):快速理解TCP和UDP的差異》《網(wǎng)絡(luò)編程懶人入門(五):快速理解為什么說UDP有時比TCP更有優(yōu)勢》《網(wǎng)絡(luò)編程懶人入門(六):史上最通俗的集線器、交換機(jī)、路由器功能原理入門》《網(wǎng)絡(luò)編程懶人入門(七):深入淺出,全面理解HTTP協(xié)議》《網(wǎng)絡(luò)編程懶人入門(八):手把手教你寫基于TCP的Socket長連接》《網(wǎng)絡(luò)編程懶人入門(九):通俗講解,有了IP地址,為何還要用MAC地址?》《技術(shù)掃盲:新一代基于UDP的低延時網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解》《讓互聯(lián)網(wǎng)更快:新一代QUIC協(xié)議在騰訊的技術(shù)實(shí)踐分享》《現(xiàn)代移動端網(wǎng)絡(luò)短連接的優(yōu)化手段總結(jié):請求速度、弱網(wǎng)適應(yīng)、安全保障》《聊聊iOS中網(wǎng)絡(luò)編程長連接的那些事》《移動端IM開發(fā)者必讀(一):通俗易懂,理解移動網(wǎng)絡(luò)的“弱”和“慢”》《移動端IM開發(fā)者必讀(二):史上最全移動弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)》《IPv6技術(shù)詳解:基本概念、應(yīng)用現(xiàn)狀、技術(shù)實(shí)踐(上篇)》《IPv6技術(shù)詳解:基本概念、應(yīng)用現(xiàn)狀、技術(shù)實(shí)踐(下篇)》《從HTTP/0.9到HTTP/2:一文讀懂HTTP協(xié)議的歷史演變和設(shè)計(jì)思路》《以網(wǎng)游服務(wù)端的網(wǎng)絡(luò)接入層設(shè)計(jì)為例,理解實(shí)時通信的技術(shù)挑戰(zhàn)》《邁向高階:優(yōu)秀Android程序員必知必會的網(wǎng)絡(luò)基礎(chǔ)》>> 更多同類文章 ……[2] NIO異步網(wǎng)絡(luò)編程資料:《Java新一代網(wǎng)絡(luò)編程模型AIO原理及Linux系統(tǒng)AIO介紹》《有關(guān)“為何選擇Netty”的11個疑問及解答》《開源NIO框架八卦——到底是先有MINA還是先有Netty?》《選Netty還是Mina:深入研究與對比(一)》《選Netty還是Mina:深入研究與對比(二)》《NIO框架入門(一):服務(wù)端基于Netty4的UDP雙向通信Demo演示》《NIO框架入門(二):服務(wù)端基于MINA2的UDP雙向通信Demo演示》《NIO框架入門(三):iOS與MINA2、Netty4的跨平臺UDP雙向通信實(shí)戰(zhàn)》《NIO框架入門(四):Android與MINA2、Netty4的跨平臺UDP雙向通信實(shí)戰(zhàn)》《Netty 4.x學(xué)習(xí)(一):ByteBuf詳解》《Netty 4.x學(xué)習(xí)(二):Channel和Pipeline詳解》《Netty 4.x學(xué)習(xí)(三):線程模型詳解》《Apache Mina框架高級篇(一):IoFilter詳解》《Apache Mina框架高級篇(二):IoHandler詳解》《MINA2 線程原理總結(jié)(含簡單測試實(shí)例)》《Apache MINA2.0 開發(fā)指南(中文版)[附件下載]》《MINA、Netty的源代碼(在線閱讀版)已整理發(fā)布》《解決MINA數(shù)據(jù)傳輸中TCP的粘包、缺包問題(有源碼)》《解決Mina中多個同類型Filter實(shí)例共存的問題》《實(shí)踐總結(jié):Netty3.x升級Netty4.x遇到的那些坑(線程篇)》《實(shí)踐總結(jié):Netty3.x VS Netty4.x的線程模型》《詳解Netty的安全性:原理介紹、代碼演示(上篇)》《詳解Netty的安全性:原理介紹、代碼演示(下篇)》《詳解Netty的優(yōu)雅退出機(jī)制和原理》《NIO框架詳解:Netty的高性能之道》《Twitter:如何使用Netty 4來減少JVM的GC開銷(譯文)》《絕對干貨:基于Netty實(shí)現(xiàn)海量接入的推送服務(wù)技術(shù)要點(diǎn)》《Netty干貨分享:京東京麥的生產(chǎn)級TCP網(wǎng)關(guān)技術(shù)實(shí)踐總結(jié)》《新手入門:目前為止最透徹的的Netty高性能原理和框架架構(gòu)解析》>> 更多同類文章 ……
[1] 網(wǎng)絡(luò)編程基礎(chǔ)資料:
《TCP/IP詳解 - 第11章·UDP:用戶數(shù)據(jù)報協(xié)議》
《TCP/IP詳解 - 第17章·TCP:傳輸控制協(xié)議》
《TCP/IP詳解 - 第18章·TCP連接的建立與終止》
《TCP/IP詳解 - 第21章·TCP的超時與重傳》
《技術(shù)往事:改變世界的TCP/IP協(xié)議(珍貴多圖、手機(jī)慎點(diǎn))》
《通俗易懂-深入理解TCP協(xié)議(上):理論基礎(chǔ)》
《通俗易懂-深入理解TCP協(xié)議(下):RTT、滑動窗口、擁塞處理》
《理論經(jīng)典:TCP協(xié)議的3次握手與4次揮手過程詳解》
《理論聯(lián)系實(shí)際:Wireshark抓包分析TCP 3次握手、4次揮手過程》
《計(jì)算機(jī)網(wǎng)絡(luò)通訊協(xié)議關(guān)系圖(中文珍藏版)》
《UDP中一個包的大小最大能多大?》
《P2P技術(shù)詳解(一):NAT詳解——詳細(xì)原理、P2P簡介》
《P2P技術(shù)詳解(二):P2P中的NAT穿越(打洞)方案詳解》
《P2P技術(shù)詳解(三):P2P技術(shù)之STUN、TURN、ICE詳解》
《高性能網(wǎng)絡(luò)編程(一):單臺服務(wù)器并發(fā)TCP連接數(shù)到底可以有多少》
《高性能網(wǎng)絡(luò)編程(二):上一個10年,著名的C10K并發(fā)連接問題》
《高性能網(wǎng)絡(luò)編程(三):下一個10年,是時候考慮C10M并發(fā)問題了》
《高性能網(wǎng)絡(luò)編程(四):從C10K到C10M高性能網(wǎng)絡(luò)應(yīng)用的理論探索》
《高性能網(wǎng)絡(luò)編程(五):一文讀懂高性能網(wǎng)絡(luò)編程中的I/O模型》
《高性能網(wǎng)絡(luò)編程(六):一文讀懂高性能網(wǎng)絡(luò)編程中的線程模型》
《不為人知的網(wǎng)絡(luò)編程(一):淺析TCP協(xié)議中的疑難雜癥(上篇)》
《不為人知的網(wǎng)絡(luò)編程(二):淺析TCP協(xié)議中的疑難雜癥(下篇)》
《不為人知的網(wǎng)絡(luò)編程(三):關(guān)閉TCP連接時為什么會TIME_WAIT、CLOSE_WAIT》
《不為人知的網(wǎng)絡(luò)編程(四):深入研究分析TCP的異常關(guān)閉》
《不為人知的網(wǎng)絡(luò)編程(五):UDP的連接性和負(fù)載均衡》
《不為人知的網(wǎng)絡(luò)編程(六):深入地理解UDP協(xié)議并用好它》
《不為人知的網(wǎng)絡(luò)編程(七):如何讓不可靠的UDP變的可靠?》
《網(wǎng)絡(luò)編程懶人入門(一):快速理解網(wǎng)絡(luò)通信協(xié)議(上篇)》
《網(wǎng)絡(luò)編程懶人入門(二):快速理解網(wǎng)絡(luò)通信協(xié)議(下篇)》
《網(wǎng)絡(luò)編程懶人入門(三):快速理解TCP協(xié)議一篇就夠》
《網(wǎng)絡(luò)編程懶人入門(四):快速理解TCP和UDP的差異》
《網(wǎng)絡(luò)編程懶人入門(五):快速理解為什么說UDP有時比TCP更有優(yōu)勢》
《網(wǎng)絡(luò)編程懶人入門(七):深入淺出,全面理解HTTP協(xié)議》
《網(wǎng)絡(luò)編程懶人入門(八):手把手教你寫基于TCP的Socket長連接》
《技術(shù)掃盲:新一代基于UDP的低延時網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解》
《讓互聯(lián)網(wǎng)更快:新一代QUIC協(xié)議在騰訊的技術(shù)實(shí)踐分享》
《現(xiàn)代移動端網(wǎng)絡(luò)短連接的優(yōu)化手段總結(jié):請求速度、弱網(wǎng)適應(yīng)、安全保障》
《聊聊iOS中網(wǎng)絡(luò)編程長連接的那些事》
《移動端IM開發(fā)者必讀(一):通俗易懂,理解移動網(wǎng)絡(luò)的“弱”和“慢”》
《移動端IM開發(fā)者必讀(二):史上最全移動弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)》
《IPv6技術(shù)詳解:基本概念、應(yīng)用現(xiàn)狀、技術(shù)實(shí)踐(上篇)》
《IPv6技術(shù)詳解:基本概念、應(yīng)用現(xiàn)狀、技術(shù)實(shí)踐(下篇)》
《從HTTP/0.9到HTTP/2:一文讀懂HTTP協(xié)議的歷史演變和設(shè)計(jì)思路》
《以網(wǎng)游服務(wù)端的網(wǎng)絡(luò)接入層設(shè)計(jì)為例,理解實(shí)時通信的技術(shù)挑戰(zhàn)》
《邁向高階:優(yōu)秀Android程序員必知必會的網(wǎng)絡(luò)基礎(chǔ)》
>> 更多同類文章 ……
[2] NIO異步網(wǎng)絡(luò)編程資料:
《Java新一代網(wǎng)絡(luò)編程模型AIO原理及Linux系統(tǒng)AIO介紹》
《有關(guān)“為何選擇Netty”的11個疑問及解答》
《開源NIO框架八卦——到底是先有MINA還是先有Netty?》
《選Netty還是Mina:深入研究與對比(一)》
《選Netty還是Mina:深入研究與對比(二)》
《NIO框架入門(一):服務(wù)端基于Netty4的UDP雙向通信Demo演示》
《NIO框架入門(二):服務(wù)端基于MINA2的UDP雙向通信Demo演示》
《NIO框架入門(三):iOS與MINA2、Netty4的跨平臺UDP雙向通信實(shí)戰(zhàn)》
《NIO框架入門(四):Android與MINA2、Netty4的跨平臺UDP雙向通信實(shí)戰(zhàn)》
《Netty 4.x學(xué)習(xí)(一):ByteBuf詳解》
《Netty 4.x學(xué)習(xí)(二):Channel和Pipeline詳解》
《Netty 4.x學(xué)習(xí)(三):線程模型詳解》
《Apache Mina框架高級篇(一):IoFilter詳解》
《Apache Mina框架高級篇(二):IoHandler詳解》
《MINA2 線程原理總結(jié)(含簡單測試實(shí)例)》
《Apache MINA2.0 開發(fā)指南(中文版)[附件下載]》
《MINA、Netty的源代碼(在線閱讀版)已整理發(fā)布》
《解決MINA數(shù)據(jù)傳輸中TCP的粘包、缺包問題(有源碼)》
《解決Mina中多個同類型Filter實(shí)例共存的問題》
《實(shí)踐總結(jié):Netty3.x升級Netty4.x遇到的那些坑(線程篇)》
《實(shí)踐總結(jié):Netty3.x VS Netty4.x的線程模型》
《詳解Netty的安全性:原理介紹、代碼演示(上篇)》
《詳解Netty的安全性:原理介紹、代碼演示(下篇)》
《詳解Netty的優(yōu)雅退出機(jī)制和原理》
《NIO框架詳解:Netty的高性能之道》
《Twitter:如何使用Netty 4來減少JVM的GC開銷(譯文)》
《絕對干貨:基于Netty實(shí)現(xiàn)海量接入的推送服務(wù)技術(shù)要點(diǎn)》
《Netty干貨分享:京東京麥的生產(chǎn)級TCP網(wǎng)關(guān)技術(shù)實(shí)踐總結(jié)》
《新手入門:目前為止最透徹的的Netty高性能原理和框架架構(gòu)解析》
作者:Jack Jiang (點(diǎn)擊作者姓名進(jìn)入Github) 出處:http://www.52im.net/space-uid-1.html 交流:歡迎加入即時通訊開發(fā)交流群 215891622 討論:http://www.52im.net/ Jack Jiang同時是【原創(chuàng)Java Swing外觀工程BeautyEye】和【輕量級移動端即時通訊框架MobileIMSDK】的作者,可前往下載交流。 本博文 歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處(也可前往 我的52im.net 找到我)。
Powered by: BlogJava Copyright © Jack Jiang