TCP/IP学习笔记(一)分层模型概述
簡單來說,協(xié)議就是不同計(jì)算機(jī)之間進(jìn)行通訊所遵循的標(biāo)準(zhǔn),只有使用相同協(xié)議的計(jì)算機(jī)之間才可以實(shí)現(xiàn)網(wǎng)絡(luò)通訊。這使得即使兩臺計(jì)算機(jī)之間的各種設(shè)備不同,只要使用的協(xié)議相同,就可以通訊
以兩個(gè)人對話為例,協(xié)議可以理解為語言(如規(guī)定語言協(xié)議是漢語),那么只有兩人都說漢語時(shí)才能進(jìn)行正常的對話,對話的內(nèi)容就是通訊數(shù)據(jù)
對協(xié)議進(jìn)行分層可以使復(fù)雜的網(wǎng)絡(luò)協(xié)議更加簡單化,每個(gè)分層都接受由它下一層提供的特定服務(wù),同時(shí)負(fù)責(zé)為自己的上一層提供特定的服務(wù)
OSI參考模型
OSI模型將協(xié)議分成7層(應(yīng)表會傳網(wǎng)數(shù)物)
各層作用
TCP/IP協(xié)議分層模型
TCP/IP模型是在OSI模型上演變出的,至今仍然展現(xiàn)著強(qiáng)大生命力。二者的區(qū)別在于
- OSI參考模型注重“通訊協(xié)議必要的功能是什么”
- TCP/IP強(qiáng)調(diào)“在計(jì)算機(jī)上實(shí)現(xiàn)協(xié)議應(yīng)該開發(fā)哪些程序”
硬件(物理層)
顧名思義,物理層主要表現(xiàn)在計(jì)算機(jī)硬件的傳輸介質(zhì)上,比如網(wǎng)線,光纜等
網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層)
該層可以簡單理解為驅(qū)動,由于硬件安插在計(jì)算機(jī)上需要通過驅(qū)動進(jìn)行交互。如顯卡,主板,聲卡驅(qū)動等
注,有的書中將物理層和數(shù)據(jù)鏈路層合并成網(wǎng)絡(luò)通訊層,所以說TCP/IP是四層模型或者五層模型都可以
互聯(lián)網(wǎng)層(網(wǎng)絡(luò)層)
網(wǎng)絡(luò)層主要采用IP協(xié)議,IP協(xié)議基于IP地址轉(zhuǎn)發(fā)分包數(shù)據(jù)。該層主要包含IP,ICMP,ARP等幾個(gè)協(xié)議
- IP協(xié)議用于跨越網(wǎng)絡(luò)傳輸數(shù)據(jù),由于每個(gè)主機(jī)都有區(qū)分于其他主機(jī)的ip地址,所以可以根據(jù)地址進(jìn)行分發(fā)。該協(xié)議不具備重發(fā)機(jī)制,如果數(shù)據(jù)包沒有順利到達(dá)對端,也不會重新發(fā)送,是一種不可靠協(xié)議(重發(fā)機(jī)制由傳輸層提供)
- ICMP協(xié)議保證當(dāng)數(shù)據(jù)沒有成功發(fā)送到對端時(shí),會給發(fā)送端發(fā)送異常通知。常用于網(wǎng)絡(luò)診斷,例如ping程序(也正因?yàn)槿绱?#xff0c;ping不需要走傳輸層,直接和應(yīng)用層通訊,所以采用原始套接字)
- ARP主要用于解析物理地址
傳輸層
傳輸層主要由TCP和UDP兩種協(xié)議組成
- TCP是一種面向連接的字節(jié)流傳輸層協(xié)議。兩端必須在確認(rèn)連接建立成功后才可以正常通訊(三次握手),同樣必須進(jìn)行相互通知確保連接正常關(guān)閉(四次揮手)。此外,TCP是一種穩(wěn)定的傳輸協(xié)議,提供了重傳機(jī)制,并且可以根據(jù)數(shù)據(jù)序列號保證數(shù)據(jù)的有序性。常用于對穩(wěn)定性有一定要求的程序
- UDP是一種面向無連接的數(shù)據(jù)報(bào)傳輸層協(xié)議。相比于TCP簡單很多,沒有過多繁瑣的機(jī)制及算法,帶來的好處就是省去了三次握手四次揮手這七次報(bào)文傳輸時(shí)間,常用于即時(shí)通訊,如視頻等
由于TCP是字節(jié)流協(xié)議,分組之間沒有明確的間隔,所以send和recv處理的數(shù)據(jù)個(gè)數(shù)通常都不匹配。而UDP基于數(shù)據(jù)報(bào),分組之間間隔明確,每次處理都是以數(shù)據(jù)報(bào)為單位。當(dāng)然TCP也可以實(shí)現(xiàn)分隔,但是需要應(yīng)用層對發(fā)送和接受的數(shù)據(jù)做一些處理(比如增加前綴表示數(shù)據(jù)長度等)
TCP協(xié)議涉及到的內(nèi)容比較多,如滑動窗口,擁塞隊(duì)列,nagle算法,延遲ACK等
應(yīng)用層
應(yīng)用層包含各種應(yīng)用所需要的協(xié)議,如HTTP,FTP,TELNET等協(xié)議
小結(jié)
分層模型展示了TCP/IP具體的內(nèi)容,每一層都由不同協(xié)議組成。通常的應(yīng)用程序最多也就同應(yīng)用層和傳輸層交互,而網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層,物理層等相對底層。此外比較重點(diǎn)的內(nèi)容在傳輸層的tcp和udp兩種協(xié)議上,tcp涉及到tcp協(xié)議棧,只有弄清楚底層是如何工作的,才能對tcp進(jìn)行優(yōu)化,出現(xiàn)bug知道問題在哪
總結(jié)
以上是生活随笔為你收集整理的TCP/IP学习笔记(一)分层模型概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天一道LeetCode-----摩尔投
- 下一篇: 每天一道LeetCode-----计算n