最近在看《UNIX網(wǎng)絡(luò)編程 卷1》和《FREEBSD操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》這兩本書,我重點(diǎn)關(guān)注了TCP協(xié)議相關(guān)的內(nèi)容,結(jié)合自己后臺(tái)開發(fā)的經(jīng)驗(yàn),寫下這篇文章,一方面是為了幫助有需要的人,更重要的是方便自己整理思路,加深理解。
理論基礎(chǔ)
OSI網(wǎng)絡(luò)模型
OSI模型是一個(gè)七層模型,實(shí)際工程中,層次的劃分沒有這么細(xì)致。一般來說,物理層和數(shù)據(jù)層對(duì)應(yīng)著硬件和設(shè)備驅(qū)動(dòng)程序,例如網(wǎng)卡和網(wǎng)卡驅(qū)動(dòng)。傳輸層和網(wǎng)絡(luò)層由操作系統(tǒng)內(nèi)核實(shí)現(xiàn),當(dāng)用戶進(jìn)程需要通過網(wǎng)絡(luò)傳輸數(shù)據(jù),通過系統(tǒng)調(diào)用的方式讓內(nèi)核將數(shù)據(jù)封裝為相應(yīng)的協(xié)議格式,進(jìn)而調(diào)用網(wǎng)卡驅(qū)動(dòng)傳輸數(shù)據(jù)。頂上三層對(duì)應(yīng)具體的網(wǎng)絡(luò)應(yīng)用協(xié)議:FTP、HTTP等,這些應(yīng)用層協(xié)議不需要知道具體的通信細(xì)節(jié)。