ip位址(ip address)
計算機分布在世界各地,要想和它們通訊,必須要知道確切的位置。確定計算機位置的方式有多種,ip 位址是最常用的,例如,114.114.114.114 是國內第乙個、全球第三個開放的 dns 服務位址,127.0.0.1 是本機位址。
其實,我們的計算機並不知道 ip 位址對應的地理位置,當要通訊時,只是將 ip 位址封裝到要傳送的資料報中,交給路由器去處理。路由器有非常智慧型和高效的演算法,很快就會找到目標計算機,並將資料報傳遞給它,完成一次單向通訊。
目前大部分軟體使用 ipv4 位址,但 ipv6 也正在被人們接受,尤其是在教育網中,已經大量使用。
埠(port)
有了 ip 位址,雖然可以找到目標計算機,但仍然不能進行通訊。一台計算機可以同時提供多種網路服務,例如web服務、ftp服務(檔案傳輸服務)、smtp服務(郵箱服務)等,僅有 ip 位址,計算機雖然可以正確接收到資料報,但是卻不知道要將資料報交給哪個網路程式來處理,所以通訊失敗。
為了區分不同的網路程式,計算機會為每個網路程式分配乙個獨一無二的埠號(port number),例如,web服務的埠號是 80,ftp 服務的埠號是 21,smtp 服務的埠號是 25。
埠(port)是乙個虛擬的、邏輯上的概念。可以將埠理解為一道門,資料通過這道門流入流出,每道門有不同的編號,就是埠號。
協議(protocol)
協議(protocol)就是網路通訊的約定,通訊的雙方必須都遵守才能正常收發資料。協議有很多種,例如 tcp、udp、ip 等,通訊的雙方必須使用同一協議才能通訊。協議是一種規範,由計算機組織制定,規定了很多細節,例如,如何建立連線,如何相互識別等。
協議僅僅是一種規範,必須由計算機軟體來實現。例如 ip 協議規定了如何找到目標計算機,那麼各個開發商在開發自己的軟體時就必須遵守該協議,不能另起爐灶。
所謂協議族(protocol family),就是一組協議(多個協議)的統稱。最常用的是 tcp/ip 協議族,它包含了 tcp、ip、udp、telnet、ftp、smtp 等上百個互為關聯的協議,由於 tcp、ip 是兩種常用的底層協議,所以把它們統稱為 tcp/ip 協議族。
tcp(transmission control protocol,傳輸控制協議):是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。
udp(user datagram protocol,使用者資料報協議):,是 osi(open system interconnection,開放式系統互聯) 參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務。
tcp特點:
1、tcp是面向連線的,通訊之前需要建立連線,通訊結束之後還需釋放連線(三次握手,四次揮手)
2、tcp提供了很可靠的支付服務,可靠也就是說:tcp的資料沒有重複、沒有丟失、沒有錯誤、並且和傳送端的資料是一致的。
3、tcp是面向位元組流的。也就是tcp是以位元組為單位,雖然傳輸的過程中資料被劃分為了乙個乙個資料報文,但是這只是為了方便傳輸,接收端最終接受到的資料和傳送端接收到的資料是一樣的。
4、tcp提供全雙工通訊:就是tcp的兩端即可以作為傳送端,也可以作為接收端。
5、最重要的一點就是乙個tcp的連線只能有兩個端點,支援一對一通訊。
6、tcp首部含有20個位元組。
udp特點:
1、首先udp是無連線的,通訊結束也不需要釋放連線。
2、upd是一種不可靠的協議,發出去就不管了。
3、udp是一種面向報文的鏈結;udp資料傳輸的單位是報文,而且不會對資料做任何的拆分和拼接操作。在傳送端,應用程式給傳輸層的udp什麼樣的資料,udp不會對資料進行拆分,最會增加乙個udp頭並且交給網路層。在接收端,udp收到網路層的資料之後,除去ip(網路層協議)資料報頭部後便交給應用層,不會做任何的拼接操作。
4、udp是不存在擁塞控制的,並且始終就是用恆定的速率傳送資料,並不會根據網路擁塞情況對傳送速率做調整。這個狀況下就會存在優勢和弊端;弊端就是:網路擁塞時有些報文就會丟失,所以才說udp是不可靠的協議;他的優點就是有些使用場景允許報文丟失,比如:直播,語音通話,但是對實時性要求比較高。
5、udp支援一對一,一對多,多對多,多對一通訊。
6、udp首部的開銷比較小,只有8個位元組。相對於tcp來說,效率還是很高的。
tcp優點:可靠,穩定。tcp的可靠體現在tcp在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認,視窗,重傳,擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。
tcp缺點:速度慢,效率低,占用系統資源高,易被攻擊。tcp在傳遞資料之前,要先建連線,這會消耗時間,而且在資料傳遞時,確認機制,重傳機制,擁塞機制等都會消耗大量的時間,而且要在每台裝置上維護所有的傳輸連線,事實上,每個連線都會占用系統的cpu,記憶體等硬體資源。而且,因為tcp有確認機制,三次握手機制,這些也導致tcp容易被人利用,實現dos,ddos,cc等攻擊。
udp優點:速度快,比tcp稍安全。udp沒有tcp的握手,確認,視窗,重傳,擁塞控制等機制。udp是乙個無狀態的傳輸協議,所以它在傳遞資料時非常快。沒有tcp的這些機制,udp較tcp被攻擊者利用的漏洞就要少一些。但udp也是無法避免攻擊的。比如:udp flood攻擊。
udp缺點:不可靠,不穩定。因為udp沒有tcp那些可靠的機制,在資料傳遞時,如果網路質量不好,就會容易丟包。
tcp基於連線,需要經過三次握手建立可靠連線,可簡單模擬打**過程:a打給b(1),b接通**並向a問好(2),a聽到b的問好後向b問好(3),之後開始聊正事,且聊天過程式實時同步有序的。
udp不基於連線,類似於線上聊天,給對方發訊息不經過對方同意,傳送的訊息對方可能未收到,也可能收到亂序的訊息。
udptcp
是否連線
無連線連線
是否可靠
不可靠傳輸,不使用流量控制和擁塞控制
可靠傳輸,使用流量控制和擁塞控制
占用資源少多
連線物件個數
支援一對一,一對多,多對一和多對多互動通訊
只能是一對一通訊
傳輸方式
面向報文
面向位元組流
首部開銷
首部開銷小,僅8位元組
首部最小20位元組,最大60位元組
適用場景
適用於要求可靠傳輸的應用,例如檔案傳輸
TCP與UDP的特點和區別
面向連線的tcp tcp面向連線通訊,所以握手過程會消耗資源,過程為可靠連線,不會丟失資料,適合大資料量交換 面向連線 就是在正式通訊前必須要與對方建立起連線。tcp協議能為應用程式提供可靠的通訊連線,使一台計算機發出的位元組流無差錯地發往網路上的其他計算機,對可靠性要求高的資料通訊系統往往使用tc...
TCP與UDP特性與區別
1.tcp特性 點到點,全雙工,可靠有序的位元組流,面向連線,且存在流量和擁塞控制。1.1.tcp的優點 可靠,穩定。tcp的可靠體現在tcp在傳遞資料之前,會有三次握手來建立連線,而且在資料傳遞時,有確認 視窗 重傳 擁塞控制機制,在資料傳完後,還會斷開連線用來節約系統資源。1.2.tcp的缺點 ...
TCP與UDP區別總結
udp與tcp都是運輸層的兩個協議,udp user datagram protocol 使用者資料報議,tcp transmission control protocol 傳輸控制協議。tcp傳送的資料單位協議是tcp報文段 segment udp傳送的資料單位協議是udp報文或使用者資料報。ud...