到底什么是TCP/IP協議棧,看完這篇你就明白!
時間:2022-12-09 來源:一談到TCP/IP 協議棧,相信不少小白都處于暴躁的邊緣,只懂其一不知其二。沒關系,看完這篇你就知道啦!
我們先簡單了解下TCP/IP協議,該協議最早得名于上世紀80年代,由美國國防部提出并應用于arpa網(即阿帕網,互聯網的鼻祖)項目,由于其優(yōu)異性,很快便成為主流網絡通信協議。后面出現的各類協議(http、ip、dns、tcp、arp等)都被整體納入這一協議體系中去,被統稱為“TCP/IP 協議棧”,“TCP/IP 協議棧”名稱就是這么由此而來的。
對應這一協議棧,同時發(fā)展出了TCP/IP 參考模型,該模型是一個抽象的分層模型,TCP/IP 協議棧中的所有協議被歸類到這一模型的4個層次中(四個層分別是:鏈路層、網絡層、傳輸層、應用層),每一層都呼叫它的下一層所提供的協議來完成其需求,各個層次間互相協作,由此完成了互聯網通信的主要工作。
*由于OSI協議棧比較復雜,且TCP和IP兩大協議在業(yè)界被廣泛使用,所以TCP/IP參考模型成為了互聯網的主流參考模型*
為了讓你對通信過程有一個更好的理解,我將以http請求通信的過程為例子,從 TCP/IP 四個層次出發(fā),對應各個層次的通信實體,看各個協議是如何在這些通信實體中發(fā)生作用。
在這之前我們先了解下網絡通信中的三個地址:IP 地址、Mac 地址以及端口號,三者分別代表:
IP地址:網絡中互聯的主機和路由器的標識
Mac 地址:每個網卡硬件的物理地址
端口號:識別同一個主機上不同的應用程序,也可以理解為程序地址
當你輸入一個網址并按下回車鍵的時候:應用層協議會先對該請求包做格式定義;緊接著傳輸層協議加上雙方的端口號,確認雙方通信的應用程序;然后網絡層協議加上雙方的IP地址,確認雙方的網絡位置;最后鏈路層協議加上雙方的MAC地址,確認雙方的物理位置,以太網協議會通過對電信號數據進行分組,形成數據幀,再采用廣播方式,通過傳輸介質發(fā)送給對方主機。而對于不同網段,該數據包先會轉發(fā)給網關路由器,經過多次轉發(fā)后,最終被發(fā)送到目標主機。目標機接收到數據包后,采用對應的協議,對幀數據進行組裝,然后再通過一層一層的協議進行解析,最終被應用層的協議解析并交給服務器處理。在這個過程中,各項協議確保了傳輸過程的實現以及數據的安全。
IP地址相當于是人所在的區(qū)域,MAC地址相當于是人的身份證號碼,對于網絡傳輸最終都是以MAC地址來實現的。
我們來梳理一下每層模型的職責:
1. 應用層:定義數據格式,并按照對應的格式解讀數據
2. 傳輸層:定義端口,確認主機上應用程序的身份,并將數據包交給對應的應用程序
3. 網絡層:定義IP地址,確認主機所在的網絡位置,并通過IP進行MAC尋址,對外網數據包進行路由轉發(fā)
4. 鏈路層:以字節(jié)為單位對0和1進行分組,定義數據幀,確認主機的物理地址,傳輸數據
以上內容是對TCP/IP四層模型做了簡單的介紹,而實際上每一層模型都有很多協議,每個協議要做的事情也很多,但我們首先得有一個清晰的脈絡結構,把基本的作用都掌握了,然后再去豐富細節(jié),就比較好理解了。