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