【網(wǎng)絡(luò)編程】1.開篇序

開篇序:

今天開始網(wǎng)絡(luò)編程的修仙之路。首先簡(jiǎn)單的聊聊如何學(xué)習(xí)網(wǎng)絡(luò)編程壹甥,換句話講救巷,網(wǎng)絡(luò)編程應(yīng)該掌握哪些知識(shí)。

第一部分:協(xié)議

舉個(gè)例子句柠,HTTP浦译,TCP棒假,UDP等等。人與人交流需要規(guī)則精盅,所以人類發(fā)明了語(yǔ)言帽哑。同樣,機(jī)器與機(jī)器交流叹俏,也需要制定規(guī)則妻枕,則這種規(guī)則被稱為協(xié)議。我們通常說(shuō)的網(wǎng)絡(luò)編程粘驰,大部分情況都是在基于TCP/UDP協(xié)議進(jìn)行編寫的屡谐。

一個(gè)好的協(xié)議的設(shè)計(jì),會(huì)大大提升網(wǎng)絡(luò)傳輸?shù)姆€(wěn)定性以及性能等各個(gè)方面愕掏。舉個(gè)例子顶伞,TCP在擁塞控制以及流量控制這一塊處理的相當(dāng)精妙饵撑,我們就可以學(xué)習(xí)TCP協(xié)議設(shè)計(jì)上的一些優(yōu)點(diǎn)唆貌,來(lái)進(jìn)行自定義協(xié)議的設(shè)計(jì)滑潘。

小編強(qiáng)烈推薦一本書,【TCP/IP詳解 卷一】Stevens大神寫的挠锥,非常硬核。

第二部分:UNIX套接字API

現(xiàn)在絕大多數(shù)服務(wù)器是跑在linux上蓖租。所以我們要對(duì)UNIX套接字API進(jìn)行學(xué)習(xí)”突拢看到這兒齐婴,我相信有的同學(xué)可能會(huì)有這樣的疑惑:java不是跨平臺(tái)的么,java有netty框架稠茂,直接使用不就可以了么柠偶。但是要想成為真正的大佬睬关,光是會(huì)使用框架是不可以的,要深入的了解其底層原理电爹,了解是如何進(jìn)行系統(tǒng)調(diào)用,這樣才能使你更好地使用上層語(yǔ)言進(jìn)行網(wǎng)絡(luò)編程 或者 定位以及解決相應(yīng)的問(wèn)題摇邦。

話外語(yǔ):只會(huì)復(fù)制粘貼,而不去追求技術(shù)本質(zhì)的程序員是可悲的施籍。

推薦書籍:【UNIX網(wǎng)絡(luò)編程 卷一】Stevens大神寫的,但是對(duì)網(wǎng)絡(luò)并發(fā)編程描述的不是很詳細(xì)丑慎,可能是因?yàn)楫?dāng)時(shí)網(wǎng)絡(luò)服務(wù)器沒有太高的并發(fā)需求。

第三部分:IO模型以及多線程

UNIX網(wǎng)絡(luò)編程中夜惭,描述了五種IO模型铛绰,分別是:阻塞式IO产喉,非阻塞IO,IO復(fù)用曾沈,信息驅(qū)動(dòng)式IO以及異步IO。前四種都是同步IO姐帚。UNIX大名鼎鼎的SELECT障涯,POLL以及LINUX上的EPOLL模型都是IO復(fù)用模型。Linux上的aio以及windows上的IOCP都是異步唯蝶。但是Linux上的aio不能用于網(wǎng)絡(luò)編程九秀,但是Linux內(nèi)核5.1新出來(lái) io_uring 機(jī)制也是異步粘我,感興趣的小伙伴可以去了解一哈。

此時(shí)可能有很多小伙伴不清楚異步和同步 以及 阻塞和非阻塞的區(qū)別都弹,后續(xù)的文章會(huì)給大家具體分析匙姜。

當(dāng)你的并發(fā)量很大的時(shí)候,你就需要充分調(diào)用系統(tǒng)的資源去處理發(fā)過(guò)來(lái)的大量請(qǐng)求搁料。這是就要用到多線程方面的知識(shí)系羞。將IO復(fù)用模型加上多線程霸琴,就是以后要講到的reactor模型。

第四部分:高性能網(wǎng)絡(luò)框架

現(xiàn)在有很多高性能網(wǎng)絡(luò)框架誕生澎迎,并且開源选调。例如,java中的Netty仁堪,go中的Gnet等等。這些框架的源碼都極具學(xué)習(xí)意義鸟辅。我們要學(xué)習(xí)這些框架莺葫,了解其設(shè)計(jì)理念,從而增強(qiáng)自己對(duì)設(shè)計(jì)模式捺檬,IO模型,并發(fā)編程的認(rèn)知聂受。
我們不光要會(huì)使用輪子,也要去嘗試自己造一個(gè)輪子饺饭。在嘗試造輪子的過(guò)程中职车,你會(huì)對(duì)網(wǎng)絡(luò)編程的認(rèn)知逐漸加深。

推薦書籍:【netty實(shí)戰(zhàn)】

第五部分:操作系統(tǒng)扛芽,數(shù)據(jù)結(jié)構(gòu)

這些都是編程很基礎(chǔ)很重要的東西积瞒,需要不斷去學(xué)習(xí),鞏固自己的基礎(chǔ)茫孔。

推薦書籍:【現(xiàn)代操作系統(tǒng)】

總結(jié)

學(xué)習(xí)網(wǎng)絡(luò)通信是場(chǎng)“持久戰(zhàn)”被芳。需要一步一個(gè)腳印走下去馍悟,踏踏實(shí)實(shí),浮躁不得侵状,沉靜下去毅整,將技術(shù)磨煉到極致。致每一個(gè)奮斗者悼嫉,干杯!

路漫漫其修遠(yuǎn)兮,吾將上下而求索暴区,讓我們一起學(xué)習(xí)辛臊,一起進(jìn)步房交,Let’s Go彻舰!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刃唤,一起剝皮案震驚了整個(gè)濱河市白群,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帜慢,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件躬柬,死亡現(xiàn)場(chǎng)離奇詭異抽减,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)颠锉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門琼掠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人眉枕,你說(shuō)我怎么就攤上這事“担” “怎么了姥宝?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)套么。 經(jīng)常有香客問(wèn)我碳蛋,道長(zhǎng),這世上最難降的妖魔是什么肃弟? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮穷缤,結(jié)果婚禮上箩兽,老公的妹妹穿的比我還像新娘。我一直安慰自己汗贫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布掀亥。 她就那樣靜靜地躺著妥色,像睡著了一般。 火紅的嫁衣襯著肌膚如雪撮竿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天髓需,我揣著相機(jī)與錄音房蝉,去河邊找鬼。 笑死搭幻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的檀蹋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼桌肴!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起识脆,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灼捂,失蹤者是張志新(化名)和其女友劉穎换团,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艘包,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舌厨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡躏哩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扫尺,到底是詐尸還是另有隱情,我是刑警寧澤弊攘,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布姑曙,位于F島的核電站,受9級(jí)特大地震影響渣磷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜竟宋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一形纺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逐样,春花似錦、人聲如沸挪捕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)滞乙。三九已至,卻和暖如春序调,著一層夾襖步出監(jiān)牢的瞬間兔簇,已是汗流浹背硬耍。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工朴摊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人甚纲。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鹃操,于是被迫代替她去往敵國(guó)和親春哨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容