網絡協議


前言:網絡協議為計算機網絡中進行數據交換而建立的規則、標準或約定的集合。通俗地說,網絡協議就是網絡之間溝通、交流的橋梁,只有相同網絡協議的計算機才能進行信息的溝通與交流。這就好比人與人之間交流所使用的各種語言,只有使用相同語言才能正常地、順利進行交流。從專業角度定義,網絡協議是計算機在網絡中實現通信時必須遵守的約定,也即通信協議。主要是對信息傳輸的速率、傳輸代碼、代碼結構、傳輸控制步驟、出錯控制等作出規定,制定標準。


OSI模型:

??網絡通信協議通過OSI模型共分七層:從上至下依次是分為七層,自上而下依次為:應用層(Application Layer)、表示層(Presentation Layer)、會話層(Session Layer)、傳輸層(Transport Layer)、網絡層(Network Layer)、數據鏈路層(Data Link Layer)、物理層(Physics Layer)。

  • 應用層(Application Layer):開放系統互聯環境的最高層,為操作系統或網絡應用程序提供訪問網絡服務的接口(例如:DHCP ·DNS· FTP · Gopher · HTTP· IMAP4 · IRC · NNTP · XMPP ·POP3 · SIP · SMTP ·SNMP · SSH ·TELNET · RPC · RTCP · RTP ·RTSP· SDP · SOAP · GTP · STUN · NTP· SSDP · BGP · RIP. DNS 等)。
  • 表示層(Presentation Layer):為上層用戶提供共同的數據或信息的語法表示轉換。為了讓采用不同編碼方法的計算機在通信中能相互理解數據的內容,可以采用抽象的標準方法來定義數據結構,并采用標準的編碼表示形式。表示層管理這些抽象的數據結構,并將計算機內部的表示形式轉換成網絡通信中采用的標準表示形式。數據壓縮和加密也是表示層提供的表示變換的能力。
  • 會話層(Session Layer):主要功能就是組織和同步不同的主機上各種進程間的通信(稱為對話),負責在兩個會話層實體之間進行對話鏈接的建立和拆除(會話層的主要標準有"DIS8236:會話服務定義"和"DIS8237:會話協議規范")。
  • 傳輸層(Transport Layer):負責數據傳送的最高層次。傳輸層完成同處于資源子網中的兩個主機間的鏈接和數據傳輸,也稱為端到端的數據傳輸(TCP · UDP · TLS ·DCCP· SCTP · RSVP · OSPF 等)。
  • 網絡層(Network Layer):主要任務就是選擇合適的路由,使網絡層的數據傳輸單元(分組)能夠正確無誤的按照地址找到目的站(例如:IP (IPv4 · IPv6) ·ICMP· ICMPv6·IGMP ·IS-IS · IPsec · ARP · RARP . BOOTP等 )。
  • 數據鏈路層(Data Link Layer):負責在兩個相鄰的節點間的線路上無差錯的傳輸以幀為單位的數據(例如:Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM ·令牌環·以太網·FDDI ·幀中繼· GPRS · EVDO ·HSPA · HDLC ·PPP· L2TP ·PPTP · ISDN·STP 等 )。
  • 物理層 (Physics Layer):定義了為建立、維護和拆除物理鏈路所需的機械的、電氣的、功能的和規程的特性,其作用是使原始的數據比特流能在物理介質上傳輸(例如:電力線通信(PLC) ·SONET/SDH· G.709 ·光導纖維· 同軸電纜 · 雙絞線等 )。

TCP/IP參考模型:

??TCP/IP是一組用于實現網絡互連的通信協議。Internet網絡體系結構以TCP/IP為核心。基于TCP/IP的參考模型將協議分成四個層次,它們分別是:網絡訪問層、網際互聯層、傳輸層主機到主機)、和應用層

image.png

應用層對應于OSI參考模型的高層,為用戶提供所需要的各種服務,負責處理特定的應用程序細節。例如:FTP、Telnet、DNS、SMTP等。

image.png

TCP協議和UDP協議的差別:
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)協議屬于傳輸層協議。其中TCP提供IP環境下的數據可靠傳輸,它提供的服務包括數據流傳送、可靠性、有效流控、全雙工操作和多路復用。通過面向連接、端到端和可靠的數據包發送。通俗說,它是事先為所發送的數據開辟出連接好的通道,然后再進行數據發送;而UDP則不為IP提供可靠性、流控或差錯恢復功能。一般來說,TCP對應的是可靠性要求高的應用,而UDP對應的則是可靠性要求低、傳輸經濟的應用。TCP支持的應用協議主要有:Telnet、FTP、SMTP等;UDP支持的應用層協議主要有:NFS(網絡文件系統)、SNMP(簡單網絡管理協議)、DNS(主域名稱系統)、TFTP(通用文件傳輸協議)等。

TCP:傳輸控制協議,面向連接的的協議,穩定可靠。當客戶和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數據。
UDP:廣播式數據傳輸,UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是并不能保證它們能到達目的地。由于UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快。

image.png

在TCP/IP協議中,TCP協議通過三次握手建立一個可靠的連接:

  • 第一次握手:客戶端發送一個帶SYN標志的TCP報文到服務器。這是三次握手過程中的報文1。

  • 第二次握手: 服務器端回應客戶端的,這是三次握手中的第2個報文,這個報文同時帶ACK標志和SYN標志。因此它表示對剛才客戶端SYN報文的回應;同時又標志SYN給客戶端,詢問客戶端是否準備好進行數據通訊。

  • 第三次握手: 客戶必須再次回應服務段一個ACK報文,這是報文段3。

image.png

在TCP/IP協議中,TCP協議斷開連接要進行4次:

??由于TCP連接是全雙工的,因此每個方向都必須單獨進行關閉。這原則是當一方完成它的數據發送任務后就能發送一個FIN來終止這個方向的連接。收到一個 FIN只意味著這一方向上沒有數據流動,一個TCP連接在收到一個FIN后仍能發送數據。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。

  • 第一次握手: TCP客戶端發送一個FIN,用來關閉客戶到服務器的數據傳送(報文段4)
  • 第二次握手: 服務器收到這個FIN,它發回一個ACK,確認序號為收到的序號加1(報文段5)。和SYN一樣,一個FIN將占用一個序號
  • 第三次握手: 服務器關閉客戶端的連接,發送一個FIN給客戶端(報文段6)
  • 第四次握手:客戶段發回ACK報文確認,并將確認序號設置為收到序號加1(報文段7)

由TCP的三次握手和四次斷開可以看出,TCP使用面向連接的通信方式,大大提高了數據通信的可靠性,使發送數據端
和接收端在數據正式傳輸前就有了交互,為數據正式傳輸打下了可靠的基礎。

名詞解釋:
ACK (Acknowledgement)即是確認字符,在數據通信中,接收站發給發送站的一種傳輸類控制字符。表示發來的數據已確認接收無誤。在TCP/IP協議中,如果接收方成功的接收到數據,那么會回復一個ACK數據。通常ACK信號有自己固定的格式,長度大小,由接收方回復給發送方。比如:確認號為X,則表示前X-1個數據段都收到了,只有當ACK=1時,確認號才有效,當ACK=0時,確認號無效,這時會要求重傳數據,保證數據的完整性。

SYN(synchronous)是TCP/IP建立連接時使用的握手信號。在客戶機和服務器之間建立正常的TCP網絡連接時,客戶機首先發出一個SYN消息,服務器使用SYN+ACK應答表示接收到了這個消息,最后客戶機再以ACK消息響應。這樣在客戶機和服務器之間才能建立起可靠的TCP連接,數據才可以在客戶機和服務器之間傳遞。

傳輸層:

傳輸層對應于OSI參考模型的傳輸層,為應用層實體提供端到端的通信功能,保證了數據包的順序傳送及數據的完整性。該層定義了兩個主要的協議:傳輸控制協議(TCP)和用戶數據報協議(UDP).
TCP協議提供的是一種可靠的、通過“三次握手”來連接的數據傳輸服務;而UDP協議提供的則是不保證可靠的(并不是不可靠)、無連接的數據傳輸服務.

網際互聯層:

網際互聯層對應于OSI參考模型的網絡層,主要解決主機到主機的通信問題。它所包含的協議設計數據包在整個網絡上的邏輯傳輸。注重重新賦予主機一個IP地址來完成對主機的尋址,它還負責數據包在多種網絡中的路由。該層有三個主要協議:網際協議(IP)、互聯網組管理協議(IGMP)和互聯網控制報文協議(ICMP)。
IP協議是網際互聯層最重要的協議,它提供的是一個可靠、無連接的數據報傳遞服務。

網絡接入層(即主機-網絡層):

網絡接入層與OSI參考模型中的物理層數據鏈路層相對應。它負責監視數據在主機和網絡之間的交換。事實上,TCP/IP本身并未定義該層的協議,而由參與互連的各網絡使用自己的物理層數據鏈路層協議,然后與TCP/IP的網絡接入層進行連接。地址解析協議(ARP)工作在此層,即OSI參考模型的數據鏈路層。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 定義 網絡協議為計算機網絡中進行數據交換而建立的規則、標準或約定的集合。網絡協議主要由三個要素組成:語義、語法及時...
    FlyAndroid閱讀 1,012評論 0 10
  • 同樣的,本文篇幅也比較長,先來一張思維導圖,帶大家過一遍。 一、 計算機網絡體系結構分層 二、 TCP/IP 基礎...
    滌生_Woo閱讀 65,181評論 38 1,037
  • 計算機網絡就是用 物理鏈路 將各個孤立的工作站或主機連接在一起,組成 數據鏈路,從而達到資源共享和通信的目的。 網...
    打不死的小強qz閱讀 2,973評論 0 6
  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,090評論 0 8
  • 風起云涌天上圖,風平浪靜心中夢。 花開一季又一季,我似從前又從前。
    嘩嘩哆閱讀 387評論 0 1