所有的網路請求底層協議是不是都是TCP/IP?
比如文件系統NFS,還有FTP, HTTP, RTP等等協議,底層都是要走TCP/IP協議啊?
計算機網路OSI參考模型最高明的地方是將網路劃分為七層積木:
物理層積木
對應硬體設備,一般只由硬體設備驅動來進行抽插,以乙太網網卡為例,那積木的構成就是:
Hardware + Data Link = Ethernet Card + Ethernet Driver
如果是HDLC介面,則積木的構成:
Hardware + Data Link = HDLC Card + HDLC Driver
數據鏈路層積木
硬體設備驅動,提供介面給所有網路層積木來抽插,不光可以供網路層的IP積木來抽插,舉例:
Ethernet Card + Driver + IP
還可以提供給網路層的IPX積木、AppleTalk積木來抽插,舉例:
Ethernet Card + Driver + IPX
Ethernet Card + Driver + AppleTalk
此外還可以供其它的協議積木如ARP、802.1x 、MPLS、PPPoE來把玩,舉例:
Ethernet Card + Driver + ARP
Ethernet Card + Driver + 802.1x
Ethernet Card + Driver + MPLS
Ethernet Card + Driver + PPPoE
網路層積木
IP層只是最流行的網路層積木,以TCP/IP協議棧的形式嵌入在操作系統內核里,IP層不光提供介面給傳輸層積木TCP/UDP使用,舉例:
Ethernet Card + Driver + IP + TCP
Ethernet Card + Driver + IP + UDP
還可以提供給其它安全協議如ESP/AH來操縱:
Ethernet Card + Driver + IP + ESP
Ethernet Card + Driver + IP + AH
還可以供路由協議OSPF/EIGRP來操縱:
Ethernet Card + Driver + IP + OSPF
Ethernet Card + Driver + IP + EIGRP
此外,網路層還有其它積木,如IPX,AppleTalk,但是現在很少用。
傳輸層積木
如果網路層積木是IP,那傳輸層積木對應的就是TCP/UDP,以TCP/IP協議棧的形式嵌入在操作系統內核里,傳輸層積木主要供應用層積木操縱,如HTTP,SMTP,TFTP,舉例如下:
Ethernet Card + Driver + IP + TCP + HTTP
Ethernet Card + Driver + IP + TCP + SMTP
Ethernet Card + Driver + IP + UDP + TFTP
但是各層積木也不是嚴格的等級制度,非常靈活,比如可以搭積木:
Ethernet Card + Driver + IP + TCP + ESP
咦,這個ESP積木不是在IP積木上的嗎?往上看,確實是的,為何要這麼做呢?那我們看看原來的積木構成:
Ethernet Card + Driver + IP + ESP
這四塊積木有一個問題,無法正常跨越PAT(Port Address Translation)設備,所以我們可以使用五塊積木:Ethernet Card + Driver + IP + TCP + ESP ,這樣的話,就可以無障礙跨越PAT設備了。
比如我們還可以這樣搭積木:
Ethernet Card + Driver + IP + L2TP
Ethernet Card + Driver + IP + UDP +L2TP
上面的是四塊積木,下面的是五塊積木,哪個好呢?下面的更便於穿越PAT設備,所以使用的更廣泛。
有同學會說,既然積木的搭建如此靈活,那我可以不可以這樣搭建積木?
Ethernet Card + Driver + HTTP
當然可以,靠MAC地址來識別HTTP伺服器、客戶端,但是這種訪問只能局限於一個網段,那可不可以這樣呢?
Ethernet Card + Driver + IP + HTTP
當然也可以,伺服器、客戶端可以依靠域名、IP地址來識別,可以跨越多個網段,但是如果丟包了,誰來重傳呢?IP層不幹的,HTTP也不願意干,那不歇菜了嗎?No,我們有一個好的辦法,那就是以下的五層積木:
Ethernet Card + Driver + IP + TCP + HTTP
這裡的TCP積木專門負責可靠性,如果有丟包,TCP層積木負責重傳,這種架構分工明確,Ethernet Card + Driver 負責將幀發到物理鏈路上、從鏈路上接收幀,IP層積木負責Internet上尋找目的地,TCP積木負責數據包的可靠性,HTTP積木負責網頁內容的解讀、打包。
那我們可以搭這樣的積木嗎?
Ethernet Card + Driver + TCP + HTTP
Ethernet Card + Driver + UDP + TFTP
目前這兩種都不可以,TCP/UDP嚴重依賴IP積木提供服務,別人提供的服務還不習慣!
基於UDP積木的應用程序都是不可靠的嗎?
這是一個錯覺!舉個例子:
Ethernet Card + Driver + IP + UDP + TFTP
儘管UDP積木以不可靠傳輸聞名於世,但是TFTP卻很勤勞,自力更生完成數據的可靠傳輸,採用數據傳輸、對方應答的方式。換句話說TFTP完成了 TCP+ 文件傳輸的任務。試想文件傳輸如果不可靠,那傳輸的文件誰敢用?所以文件傳輸必須可靠。
那哪些基於UDP積木的應用程序可以容忍不可靠傳輸?
客觀地說,沒有任何應用程序希望自己的數據被丟棄,但是魚和熊掌難以兼顧,如果數據延遲與數據可靠傳輸一定要取捨的話,有些對實時性要求較高的語音、視頻高優先順序的是:延遲低。
Ethernet Card + Driver + IP + UDP + RTP
延遲低可以完成實時通話,丟幾個包聽不清對方說話內容,最多讓對方重複一遍。
讓我們再來看一個積木
Ethernet Card + Driver + IP + UDP +L2TP
現在把L2TP積木全部展示出來:
【Ethernet Card + Driver + IP + UDP+ L2TP 】+ 【PPP + IP + TCP 】+ HTTP
怎麼看起來那麼複雜?如果我們把第一個【】抽象成一塊積木,稱之為 Underlay。把後一個【】抽象成另一塊積木,稱之為Overlay,那上面的積木簡圖就如以下所示:
Underelay + Overlay + HTTP
是不是看起來簡單明了?
那我們再舉一個關於VxLAN的例子
Ethernet Card + Driver + IP + UDP + VxLAN
展開積木:
【Ethernet Card + Driver + IP + UDP+ VxLAN 】+ 【 Ethernet + 802.1Q + IP + TCP/UDP】+ Application
= Underelay + Overlay + Application
另外,可以參考此篇文章:
http://www.zhihu.com/question/20583641/answer/104529492
rtp,dhcp都是udp,dns可以是tcp也可以是udp。
至於底層是不是ip,可以這麼說,如果你不是從事網路專業,你只能遇到ip,非ip的網路在用戶一級協議已經基本上絕跡了。
原因呢,是因為普通用戶一般訪問外界資源,本地資源不夠,而ip是跨子網最最最……普及的協議(寫一萬個最都不過分)。
第二個原因是隔離系統。各種服務端軟體和客戶端軟體可能不一樣,而ip是基本上所有系統都支持的。擴大了訪問應用範圍。
什麼時候上tcp,什麼時候上udp呢?一般情況下,即時服務走udp,可靠服務走tcp。又想可靠又想即時?最好的辦法是在udp上再增加自己的設計。噫…
嚴格來說,TCP工作在layer4,IP工作在layer3,都不怎麼底層啊…下面還有layer1和layer2呢…
題主好好琢磨下OSI模型吧…不是的,例如存儲系統中有一套自下而上的FC網路協議,和tcp/IP完全不一樣。
從TCP/IP分層模型的角度來看:
FTP, HTTP, RTP等等協議都是應用層的協議,那麼就需要底層的來提供服務.
底層為上層提供服務如何理解呢?
網路介面層:為上層提供物理硬體,介質訪問控制等。
傳輸層:為上層提供可靠或者不可靠的服務,因為傳輸層的底層都是盡最大努力交付,也就是不可靠服務,我們在需要可靠服務的時候,就可以使用TCP提供的可靠服務了
是不是都是要走TCP/IP協議?
如果定義這裡TCP/IP協議是TCP和IP協議的話,那麼IP協議肯定需要用到的,TCP就看情況
一般TCP/IP協議代表是TCP/IP協議簇的所有協議,為什麼要TCP/IP來代表呢,因為在TCP/IP協議簇中是非常重要的兩個協議
TCP/IP協議簇有哪些呢,還有那些其他協議呢?收藏了一張圖
題主問的是計算機網路,物聯網裡有很多應用不是基於IP網路,比如ZigBee和藍牙。但是現在的趨勢也是支持IP協議
底層?你得先說明白什麼是底層。底層可以是操作系統應用層,可以是內核層,可以是文件系統層,可以是網路層,可以是物理層。
你需要一本《計算機網路》。。。。這年頭流行不讀書就來提問題么?
tcp/ip 是一個協議族,其本身就包含應用層協議http 等!所以lz這樣問就說不合理的,我想lz是想問http等的底層協議是不是都是tcp協議,當然不是,就http協議本身而言在rfc文檔里明確說明只要是可靠傳輸層協議都可以承載http協議,也就是說http 的底層協議可以是tcp但不僅限於tcp
不是,還有RAW IP。
不正經的抖個機靈,TCP/IP在網工們的眼裡屬於高層,不是底層. 謝謝
不是的,tcpip只是用得比較廣泛
理論上這些應用層的協議可以不用TCP/IP
比如FTP就是一個古老的協議,遠在1971年,TCP/IP出現之前就有了
不是,比如兩台Windows XP計算機,你卸載tcpip!只安裝netbeui協議,仍然可以使用網上鄰居。
上學課上是這麼說的:可靠傳輸,比如通過線路傳輸用的是TCP協議,不可靠傳輸,比如無線傳輸,用的UDP協議。有沒有其他協議,我沒有深究過
之所以叫TCP/IP協議族,是因為這兩個協議太重要了。通信無非就是兩個人正常的對話,TCP就是讓A說的話完整無誤的告訴B;IP協議就是當A要找B說話時,能找到誰是B,而不會把A所說的話告訴其他人。書上說的比較嚴謹,但基本上就這麼個意思。
需要了解網路基礎,TCP/IP是協議簇,同時也不是底層協議,估計車小胖的回答你看得不是太懂,概括來說就是需要。 ○ ____
‖ |
‖了解!!|
‖ |
‖ ̄ ̄ ̄ ̄
∧_∧
(`?ω?‖
丶 つ0
しーJ
如果你所指的是tcp/ip協議棧,那就是對的。如果指的是tcp/ip模型中的Internet層和傳輸層就不一定了。Internet層可以是ip,ipx,apple talk等。傳輸層可以是tcp,udp。網路接入層可以是乙太網,ppp,fr等。
推薦閱讀:
※為什麼tcp 連接斷開只有3個包?
※TCP 協議有擁塞控制策略, 網路為什麼還會發生擁塞崩潰?
※TCP/IP: 在廣域網(外網)上傳輸數據時會用到ARP協議嗎?
※tcp 的可靠性到底指的是什麼?
※ospf處在哪個tcp/ip的層次,是不是傳輸層,網上說tcp/ip不夠嚴謹,那麼對於osi呢?