瀝林行業(yè)網(wǎng)站建設(shè)百度官方網(wǎng)平臺
TCP/IP
當(dāng)初的設(shè)計(jì)者真的是非常聰明,創(chuàng)造性地提出了“分層”的概念,把復(fù)雜的網(wǎng)絡(luò)通信劃分出多個(gè)層次,再給每一個(gè)層次分配不同的職責(zé),層次內(nèi)只專心做自己的事情就好,用“分而治之”的思想把一個(gè)“大麻煩”拆分成了數(shù)個(gè)“小麻煩”,從而解決了網(wǎng)絡(luò)通信的難題。
TCP/IP
協(xié)議總共有四層,就像搭積木一樣,每一層需要下層的支撐,同時(shí)又支撐著上層,任何一層被抽掉都可能會(huì)導(dǎo)致整個(gè)協(xié)議棧坍塌。
層次順序是“從下往上”數(shù)的,所以第一層就是最下面的一層。
第一層叫“鏈接層”(link layer),負(fù)責(zé)在以太網(wǎng)、WiFi 這樣的底層網(wǎng)絡(luò)上發(fā)送原始數(shù)據(jù)包,工作在網(wǎng)卡這個(gè)層次,使用 MAC 地址來標(biāo)記網(wǎng)絡(luò)上的設(shè)備,所以有時(shí)候也叫 MAC 層。
第二層叫“網(wǎng)際層”或者“網(wǎng)絡(luò)互連層”(internet layer),IP 協(xié)議就處在這一層。因?yàn)?IP 協(xié)議定義了“IP 地址”的概念,所以就可以在“鏈接層”的基礎(chǔ)上,用 IP 地址取代 MAC 地址,把許許多多的局域網(wǎng)、廣域網(wǎng)連接成一個(gè)虛擬的巨大網(wǎng)絡(luò),在這個(gè)網(wǎng)絡(luò)里找設(shè)備時(shí)只要把 IP 地址再“翻譯”成 MAC 地址就可以了。
第三層叫“傳輸層”(transport layer),這個(gè)層次協(xié)議的職責(zé)是保證數(shù)據(jù)在 IP 地址標(biāo)記的兩點(diǎn)之間“可靠”地傳輸,是 TCP 協(xié)議工作的層次,另外還有它的一個(gè)“小伙伴”UDP。
TCP 是一個(gè)有狀態(tài)的協(xié)議,需要先與對方建立連接然后才能發(fā)送數(shù)據(jù),而且保證數(shù)據(jù)不丟失不重復(fù)。而 UDP 則比較簡單,它無狀態(tài),不用事先建立連接就可以任意發(fā)送數(shù)據(jù),但不保證數(shù)據(jù)一定會(huì)發(fā)到對方。兩個(gè)協(xié)議的另一個(gè)重要區(qū)別在于數(shù)據(jù)的形式。TCP 的數(shù)據(jù)是連續(xù)的“字節(jié)流”,有先后順序,而 UDP 則是分散的小數(shù)據(jù)包,是順序發(fā),亂序收。
協(xié)議棧的第四層叫“應(yīng)用層”(application layer),由于下面的三層把基礎(chǔ)打得非常好,所以在這一層就“百花齊放”了,有各種面向具體應(yīng)用的協(xié)議。例如 Telnet、SSH、FTP、SMTP 等等,當(dāng)然還有我們的 HTTP。
MAC 層的傳輸單位是幀(frame),IP 層的傳輸單位是包(packet),TCP 層的傳輸單位是段(segment),HTTP 的傳輸單位則是消息或報(bào)文(message)。但這些名詞并沒有什么本質(zhì)的區(qū)分,可以統(tǒng)稱為數(shù)據(jù)包。
可以參考《講講TCP/IP各層數(shù)據(jù)術(shù)語》看一下數(shù)據(jù)術(shù)語對應(yīng)層次的圖片。
此文章為10月Day 14學(xué)習(xí)筆記,內(nèi)容來源于極客時(shí)間《透視 HTTP 協(xié)議》。