1、前言
標(biāo)題雖然是為了解釋有了 IP 地址,為什么還要用 MAC 地址,但是本文的重點(diǎn)在于理解為什么要有 IP 這樣的東西。本文對讀者的定位是知道 MAC 地址是什么,IP 地址是什么。
(本文同步發(fā)布于:http://www.52im.net/thread-2067-1-1.html)
2、關(guān)于作者
翟志軍,個(gè)人博客地址:https://showme.codes/,Github:https://github.com/zacker330。感謝作者的原創(chuàng)分享。
作者的另一篇《即時(shí)通訊安全篇(七):如果這樣來理解HTTPS,一篇就夠了》也寫的非常好,有興趣的讀者可以深讀之。
3、系列文章
本文是系列文章中的第9篇,本系列文章的大綱如下:
《網(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有時(shí)比TCP更有優(yōu)勢》
《網(wǎng)絡(luò)編程懶人入門(六):史上最通俗的集線器、交換機(jī)、路由器功能原理入門》
《網(wǎng)絡(luò)編程懶人入門(七):深入淺出,全面理解HTTP協(xié)議》
《網(wǎng)絡(luò)編程懶人入門(八):手把手教你寫基于TCP的Socket長連接》
《網(wǎng)絡(luò)編程懶人入門(九):通俗講解,有了IP地址,為何還要用MAC地址?》(本文)
本站的《腦殘式網(wǎng)絡(luò)編程入門》也適合入門學(xué)習(xí),本系列大綱如下:
《腦殘式網(wǎng)絡(luò)編程入門(一):跟著動(dòng)畫來學(xué)TCP三次握手和四次揮手》
《腦殘式網(wǎng)絡(luò)編程入門(二):我們在讀寫Socket時(shí),究竟在讀寫什么?》
《腦殘式網(wǎng)絡(luò)編程入門(三):HTTP協(xié)議必知必會(huì)的一些知識》
《腦殘式網(wǎng)絡(luò)編程入門(四):快速理解HTTP/2的服務(wù)器推送(Server Push)》
如果您覺得本系列文章過于基礎(chǔ),您可直接閱讀《不為人知的網(wǎng)絡(luò)編程》系列文章,該系列目錄如下:
《不為人知的網(wǎng)絡(luò)編程(一):淺析TCP協(xié)議中的疑難雜癥(上篇)》
《不為人知的網(wǎng)絡(luò)編程(二):淺析TCP協(xié)議中的疑難雜癥(下篇)》
《不為人知的網(wǎng)絡(luò)編程(三):關(guān)閉TCP連接時(shí)為什么會(huì)TIME_WAIT、CLOSE_WAIT》
《不為人知的網(wǎng)絡(luò)編程(四):深入研究分析TCP的異常關(guān)閉》
《不為人知的網(wǎng)絡(luò)編程(五):UDP的連接性和負(fù)載均衡》
《不為人知的網(wǎng)絡(luò)編程(六):深入地理解UDP協(xié)議并用好它》
關(guān)于移動(dòng)端網(wǎng)絡(luò)特性及優(yōu)化手段的總結(jié)性文章請見:
《現(xiàn)代移動(dòng)端網(wǎng)絡(luò)短連接的優(yōu)化手段總結(jié):請求速度、弱網(wǎng)適應(yīng)、安全保障》
《移動(dòng)端IM開發(fā)者必讀(一):通俗易懂,理解移動(dòng)網(wǎng)絡(luò)的“弱”和“慢”》
《移動(dòng)端IM開發(fā)者必讀(二):史上最全移動(dòng)弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)》
4、書上說的
基本概念:
如今的網(wǎng)絡(luò)是分層來實(shí)現(xiàn)的,就像是搭積木一樣,先設(shè)計(jì)某個(gè)特定功能的模塊,然后把模塊拼起來組成整個(gè)網(wǎng)絡(luò)。局域網(wǎng)也不例外,一般來說,在組網(wǎng)上我們使用的是IEEE802參考模型,從下至上分為:物理層、媒體接入控制層(MAC),邏輯鏈路控制層(LLC)。
標(biāo)識網(wǎng)絡(luò)中的一臺計(jì)算機(jī),一般至少有三種方法,最常用的是域名地址、IP地址和MAC地址,分別對應(yīng)應(yīng)用層、網(wǎng)絡(luò)層、物理層。網(wǎng)絡(luò)管理一般就是在網(wǎng)絡(luò)層針對IP地址進(jìn)行管理,但由于一臺計(jì)算機(jī)的IP地址可以由用戶自行設(shè)定,管理起來相對困難,MAC地址一般不可更改,所以把IP地址同MAC地址組合到一起管理就成為常見的管理方式。
什么是MAC地址?
MAC地址就是在媒體接入層上使用的地址,也叫物理地址、硬件地址或鏈路地址,由網(wǎng)絡(luò)設(shè)備制造商生產(chǎn)時(shí)寫在硬件內(nèi)部。MAC地址與網(wǎng)絡(luò)無關(guān),也即無論將帶有這個(gè)地址的硬件(如網(wǎng)卡、集線器、路由器等)接入到網(wǎng)絡(luò)的何處,都有相同的MAC地址,它由廠商寫在網(wǎng)卡的BIOS里。MAC地址可采用6字節(jié)(48比特)或2字節(jié)(16比特)這兩種中的任意一種。但隨著局域網(wǎng)規(guī)模越來越大,一般都采用6字節(jié)的MAC地址。這個(gè)48比特都有其規(guī)定的意義,前24位是由生產(chǎn)網(wǎng)卡的廠商向IEEE申請的廠商地址,目前的價(jià)格是1000美元買一個(gè)地址塊,后24位由廠商自行分配,這樣的分配使得世界上任意一個(gè)擁有48位MAC 地址的網(wǎng)卡都有唯一的標(biāo)識。另外,2字節(jié)的MAC地址不用網(wǎng)卡廠商申請。
MAC地址通常表示為12個(gè)16進(jìn)制數(shù),每2個(gè)16進(jìn)制數(shù)之間用冒號隔開,如:08:00:20:0A:8C:6D就是一個(gè)MAC地址,其中前6位16進(jìn)制數(shù)08:00:20代表網(wǎng)絡(luò)硬件制造商的編號,它由IEEE分配,而后6位16進(jìn)制數(shù)0A:8C:6D代表該制造商所制造的某個(gè)網(wǎng)絡(luò)產(chǎn)品(如網(wǎng)卡)的系列號。每個(gè)網(wǎng)絡(luò)制造商必須確保它所制造的每個(gè)以太網(wǎng)設(shè)備都具有相同的前三字節(jié)以及不同的后三個(gè)字節(jié)。這樣就可保證世界上每個(gè)以太網(wǎng)設(shè)備都具有唯一的MAC 地址。
什么是IP地址?
IP地址是指互聯(lián)網(wǎng)協(xié)議地址(英語:Internet Protocol Address,又譯為網(wǎng)際協(xié)議地址),是IP Address的縮寫。IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個(gè)網(wǎng)絡(luò)和每一臺主機(jī)分配一個(gè)邏輯地址,以此來屏蔽物理地址的差異。
為什么要用到MAC地址?
這是由組網(wǎng)方式?jīng)Q定的,如今比較流行的接入Internet的方式(也是未來發(fā)展的方向)是把主機(jī)通過局域網(wǎng)組織在一起,然后再通過交換機(jī)和 Internet相連接。這樣一來就出現(xiàn)了如何區(qū)分具體用戶,防止盜用的問題。由于IP只是邏輯上標(biāo)識,任何人都隨意修改,因此不能用來標(biāo)識用戶;而 MAC地址則不然,它是固化在網(wǎng)卡里面的。從理論上講,除非盜來硬件(網(wǎng)卡),否則是沒有辦法冒名頂替的(注意:其實(shí)也可以盜用,后面將介紹)。
基于MAC地址的這種特點(diǎn),局域網(wǎng)采用了用MAC地址來標(biāo)識具體用戶的方法。注意:具體實(shí)現(xiàn):在交換機(jī)內(nèi)部通過“表”的方式把MAC地址和IP地址一一對應(yīng),也就是所說的IP、MAC綁定。
具體的通信方式:接收過程,當(dāng)有發(fā)給本地局域網(wǎng)內(nèi)一臺主機(jī)的數(shù)據(jù)包時(shí),交換機(jī)接收下來,然后把數(shù)據(jù)包中的IP地址按照“表”中的對應(yīng)關(guān)系映射成MAC地址,轉(zhuǎn)發(fā)到對應(yīng)的MAC地址的主機(jī)上,這樣一來,即使某臺主機(jī)盜用了這個(gè)IP地址,但由于他沒有這個(gè)MAC地址,因此也不會(huì)收到數(shù)據(jù)包。發(fā)送過程和接收過程類似,限于篇幅不敘述。
綜上可知,只有IP而沒有對應(yīng)的MAC地址在這種局域網(wǎng)內(nèi)是不能上網(wǎng)的,于是解決了IP盜用問題。
IP地址與MAC地址的區(qū)別是什么?
IP地址基于邏輯,比較靈活,不受硬件限制,也容易記憶。MAC地址在一定程度上與硬件一致,基于物理,能夠標(biāo)識具體。這兩種地址各有好處,使用時(shí)也因條件而采取不同的地址。
MAC地址涉及到的安全問題:
從上面的介紹可以知道,這種標(biāo)識方式只是MAC地址基于的,如果有人能夠更改MAC地址,就可以盜用IP免費(fèi)上網(wǎng)了,目前網(wǎng)上針對小區(qū)寬帶的盜用MAC地址免費(fèi)上網(wǎng)方式就是基于此這種思路。如果想盜用別人的IP地址,除了IP地址還要知道對應(yīng)的MAC地址。舉個(gè)例子,獲得局域網(wǎng)內(nèi)某臺主機(jī)的MAC地址,比如想得到局域網(wǎng)內(nèi)名為TARGET主機(jī)的MAC地址,先用PING命令:PING TARGET,這樣在我們主機(jī)上面的ARP表的緩存中就會(huì)留下目標(biāo)地址和MAC映射的記錄,然后通過ARP A命令來查詢ARP表,這樣就得到了指定主機(jī)的MAC地址。最后用ARP -s IP 網(wǎng)卡MAC地址,命令把網(wǎng)關(guān)的IP地址和它的MAC地址映射起來就可以了。
如果要得到其它網(wǎng)段內(nèi)的MAC地址,那么可以用工具軟件來實(shí)現(xiàn),我覺得Windows優(yōu)化大
師中自帶的工具不錯(cuò),點(diǎn)擊“系統(tǒng)性能優(yōu)化”→“系統(tǒng)安全優(yōu)化”→“附加工具”→“集群Ping”,可以成批的掃出MAC地址并可以保存到文件。
小知識:ARP(Address Resolution Protocol)是地址解析協(xié)議,ARP是一種將IP地址轉(zhuǎn)化成物理地址的協(xié)議。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP 具體說來就是將網(wǎng)絡(luò)層(IP層,也就是相當(dāng)于OSI的第三層)地址解析為數(shù)據(jù)連接層(MAC層,也就是相當(dāng)于OSI的第二層)的MAC地址。ARP協(xié)議是通過IP地址來獲得MAC地址的。
ARP原理:郴鰽要向主機(jī)B發(fā)送報(bào)文,會(huì)查詢本地的ARP緩存表,找到B的IP地址對應(yīng)的MAC地址后就會(huì)進(jìn)行數(shù)據(jù)傳輸。如果未找到,則廣播A一個(gè) ARP請求報(bào)文(攜帶主機(jī)A的IP地址Ia——物理地址Pa),請求IP地址為Ib的主機(jī)B回答物理地址Pb。網(wǎng)上所有主機(jī)包括B都收到ARP請求,但只有主機(jī)B識別自己的IP地址,于是向A主機(jī)發(fā)回一個(gè)ARP響應(yīng)報(bào)文。其中就包含有B的MAC地址,A接收到B的應(yīng)答后,就會(huì)更新本地的ARP緩存。接著使用這個(gè)MAC地址發(fā)送數(shù)據(jù)(由網(wǎng)卡附加MAC地址)。因此,本地高速緩存的這個(gè)ARP表是本地網(wǎng)絡(luò)流通的基礎(chǔ),而且這個(gè)緩存是動(dòng)態(tài)的。ARP表:為了回憶通信的速度,最近常用的MAC地址與IP的轉(zhuǎn)換不用依靠交換機(jī)來進(jìn)行,而是在本機(jī)上建立一個(gè)用來記錄常用主機(jī)IP-MAC映射表,即ARP表。
5、最通俗的解釋
看完上一節(jié)中各種書籍里對IP地址、MAC地址的理解介紹和說明,還是很蒙逼,那么請繼續(xù)看完本節(jié)吧。
5.1 網(wǎng)絡(luò)洪荒時(shí)代
一開始時(shí),網(wǎng)絡(luò)中的機(jī)器并不多。大家都連到同一個(gè)集線器就可以了,就可以實(shí)現(xiàn)互通。這時(shí),機(jī)器 A 發(fā)消息到機(jī)器 B ,消息頭里附上機(jī)器 B 的MAC,集線器收到消息后就廣播給所有連到集線器的機(jī)器。
機(jī)器 C 收到消息,發(fā)現(xiàn)消息里的 MAC 地址和自己的不一樣,就丟棄。機(jī)器B發(fā)現(xiàn)消息里的 MAC 地址和自己一樣,就收到下并解析。
這樣機(jī)制帶來問題很明顯:首先每次廣播,給所在網(wǎng)絡(luò)帶來不必要的浪費(fèi)。所以,就出現(xiàn)了交換機(jī)。它能識別消息里的目標(biāo) MAC 地址后,直接就消息丟到機(jī)器 B 所連接的端口中。另一個(gè)角度,交換機(jī)必須記住所有的 MAC 地址和端口之間的關(guān)系。
這樣的機(jī)制在網(wǎng)絡(luò)規(guī)規(guī)模小的時(shí)候是高效的。但是當(dāng)網(wǎng)絡(luò)規(guī)模擴(kuò)大到全球的時(shí)候,不可能讓一臺交換機(jī)記錄下全球這么多的網(wǎng)絡(luò)設(shè)備,也不可能讓全球的機(jī)器連接到一臺交換機(jī)上。
5.2 如果是多臺交換機(jī)呢?
想像一下,你是斯坦福的學(xué)生,你的電腦 x 的網(wǎng)絡(luò)直連的是學(xué)校的交換機(jī),而學(xué)校的交換機(jī)又連美國國家網(wǎng)絡(luò)交換機(jī)。而美國國家網(wǎng)絡(luò)交換機(jī)又直接的是中國國家網(wǎng)絡(luò)交換機(jī),中國服務(wù)器 y 直連的是中國國家交換機(jī)。
你想訪問中國的服務(wù)器 y 中的資源。你了解到服務(wù)器 y 的 MAC 地址是00:0C:29:01:00:12,所以你在消息里附上這個(gè) MAC 地址。
學(xué)校交換機(jī)收到消息后,拿到 MAC 地址后就愣了,這是要發(fā)給誰啊?因?yàn)橹袊?wù)器 y 并不是直連學(xué)校交換機(jī)的。這時(shí),學(xué)校交換機(jī)有一個(gè)選擇,就是收到不明的 MAC 地址時(shí),一律轉(zhuǎn)發(fā)給默認(rèn)端口。斯坦福交換機(jī)就將消息轉(zhuǎn)給美國國家交換機(jī)。
美國國家交換機(jī)同樣發(fā)愣了,因?yàn)闆]有這條 MAC 地址對應(yīng)的端口。它又直接向默認(rèn)端口:中國國家網(wǎng)絡(luò)交換機(jī)。
中國國家網(wǎng)絡(luò)交換機(jī)收到消息,發(fā)現(xiàn)自己記錄了 MAC 地址 對應(yīng)的是服務(wù)器 y。就直接將你這位斯坦福學(xué)生的消息轉(zhuǎn)發(fā)到服務(wù)器 y 所連接的端口。
最終,我們的服務(wù)器 y 終于收到來自美國斯坦福學(xué)生的資源訪問請求。
那么,我們的服務(wù)器 y 如何將相應(yīng)的資源返回給學(xué)生呢?將消息中的源MAC 地址作為響應(yīng)消息的目標(biāo) MAC 地址發(fā)送給中國國家交換機(jī)不就可以了?同樣的機(jī)制,只不過是把源地址和目標(biāo)地址反一下。
這下,我們是不是完美實(shí)現(xiàn)使用交換機(jī)組建美國網(wǎng)絡(luò)和中國網(wǎng)絡(luò)的互通?
但是美國和中國并不能代表全世界。其他國家也需要加入這個(gè)大網(wǎng)絡(luò)。當(dāng)日本國家交換機(jī)也接入美國國家交換機(jī)后,斯坦福學(xué)生的消息從學(xué)校到達(dá)美國國家交換機(jī)后就需要進(jìn)行廣播所有直連自己的端口了,因?yàn)檫@時(shí),它沒有對外的所謂默認(rèn)端口了。這里有點(diǎn)燒腦,容各位同學(xué)一點(diǎn)時(shí)間思考。
5.3 小結(jié)
也就是說,當(dāng)兩個(gè)網(wǎng)絡(luò)互接時(shí),MAC 地址 + 交換機(jī)還能解決問題廣播問題,但是兩個(gè)以上的網(wǎng)絡(luò)互連時(shí),MAC 地址 + 交換機(jī)就沒有辦法解決廣播問題了。
這時(shí),我們面臨的問題就是無法使用現(xiàn)有的技術(shù)—— MAC 地址 + 交換機(jī)——解決多網(wǎng)絡(luò)互連的問題了。所以,需要發(fā)明一種新的技術(shù)。
而 IP 協(xié)議就是就是解決此問題的一項(xiàng)技術(shù)。
事實(shí)上,IP協(xié)議的產(chǎn)生并不只是為解決上述的“廣播問題”。還解決了很多其他網(wǎng)絡(luò)傳輸過程會(huì)遇到的問題,比如一次傳輸?shù)南⑦^大時(shí),如何對消息進(jìn)行分組等問題。
好了,如果以上內(nèi)容你還是沒有完全理解,那么以下3篇文章你必須好好讀讀(再不懂的話,真沒救了..):
《網(wǎng)絡(luò)編程懶人入門(一):快速理解網(wǎng)絡(luò)通信協(xié)議(上篇)》
《網(wǎng)絡(luò)編程懶人入門(二):快速理解網(wǎng)絡(luò)通信協(xié)議(下篇)》
《網(wǎng)絡(luò)編程懶人入門(六):史上最通俗的集線器、交換機(jī)、路由器功能原理入門》
6、寫在最后
由于歷史原因,MAC 地址及相關(guān)技術(shù)先出現(xiàn),但是后來發(fā)現(xiàn)它并不能解決所有(已知)的問題,所以,先驅(qū)們發(fā)明了 IP 地址及相關(guān)技術(shù)來解決。
另一個(gè)角度,個(gè)人認(rèn)為,由于 MAC 地址沒有辦法表達(dá)網(wǎng)絡(luò)中的子網(wǎng)的概念,而 IP 地址可以。如果網(wǎng)絡(luò)互換設(shè)備(比如路由器)能從目標(biāo) MAC 地址中分析出目標(biāo)網(wǎng)絡(luò),而不是只是目標(biāo)主機(jī),IP 地址還會(huì)出現(xiàn)嗎?
有另一個(gè)有趣的問題:如果歷史反過來,一開始就使用的是 IP 地址,而不是 MAC 地址,我們現(xiàn)在的網(wǎng)絡(luò)世界會(huì)怎么樣?
附錄:更多網(wǎng)絡(luò)編程方面的文章
[1] 網(wǎng)絡(luò)編程基礎(chǔ)資料:
《TCP/IP詳解 - 第11章·UDP:用戶數(shù)據(jù)報(bào)協(xié)議》
《TCP/IP詳解 - 第17章·TCP:傳輸控制協(xié)議》
《TCP/IP詳解 - 第18章·TCP連接的建立與終止》
《TCP/IP詳解 - 第21章·TCP的超時(shí)與重傳》
《技術(shù)往事:改變世界的TCP/IP協(xié)議(珍貴多圖、手機(jī)慎點(diǎn))》
《通俗易懂-深入理解TCP協(xié)議(上):理論基礎(chǔ)》
《通俗易懂-深入理解TCP協(xié)議(下):RTT、滑動(dòng)窗口、擁塞處理》
《理論經(jīng)典:TCP協(xié)議的3次握手與4次揮手過程詳解》
《理論聯(lián)系實(shí)際:Wireshark抓包分析TCP 3次握手、4次揮手過程》
《計(jì)算機(jī)網(wǎng)絡(luò)通訊協(xié)議關(guān)系圖(中文珍藏版)》
《UDP中一個(gè)包的大小最大能多大?》
《P2P技術(shù)詳解(一):NAT詳解——詳細(xì)原理、P2P簡介》
《P2P技術(shù)詳解(二):P2P中的NAT穿越(打洞)方案詳解》
《P2P技術(shù)詳解(三):P2P技術(shù)之STUN、TURN、ICE詳解》
《通俗易懂:快速理解P2P技術(shù)中的NAT穿透原理》
《技術(shù)掃盲:新一代基于UDP的低延時(shí)網(wǎng)絡(luò)傳輸層協(xié)議——QUIC詳解》
《讓互聯(lián)網(wǎng)更快:新一代QUIC協(xié)議在騰訊的技術(shù)實(shí)踐分享》
《現(xiàn)代移動(dòng)端網(wǎng)絡(luò)短連接的優(yōu)化手段總結(jié):請求速度、弱網(wǎng)適應(yīng)、安全保障》
《聊聊iOS中網(wǎng)絡(luò)編程長連接的那些事》
《移動(dòng)端IM開發(fā)者必讀(一):通俗易懂,理解移動(dòng)網(wǎng)絡(luò)的“弱”和“慢”》
《移動(dòng)端IM開發(fā)者必讀(二):史上最全移動(dòng)弱網(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í)通信的技術(shù)挑戰(zhàn)》
《邁向高階:優(yōu)秀Android程序員必知必會(huì)的網(wǎng)絡(luò)基礎(chǔ)》
>> 更多同類文章 ……
[2] NIO異步網(wǎng)絡(luò)編程資料:
《Java新一代網(wǎng)絡(luò)編程模型AIO原理及Linux系統(tǒng)AIO介紹》
《有關(guān)“為何選擇Netty”的11個(gè)疑問及解答》
《開源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中多個(gè)同類型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)解析》
>> 更多同類文章 ……
(本文同步發(fā)布于:http://www.52im.net/thread-2067-1-1.html)