網路協議詳解

2021-07-31 11:22:16 字數 3758 閱讀 4938

網路協議為計算機網路中進行資料交換而建立的規則、標準或約定的集合。例如,網路中乙個微機使用者和乙個大型主機的操作員進行通訊,由於這兩個資料終端所用字符集不同,因此操作員所輸入的命令彼此不認識。為了能進行通訊,規定每個終端都要將各自字符集中的字元先變換為標準字符集的字元後,才進入網路傳送,到達目的終端之後,再變換為該終端字符集的字元。當然,對於不相容終端,除了需變換字符集字元外還需轉換其他特性,如顯示格式、行長、行數、螢幕滾動方式等也需作相應的變換。

物理層: 電力線通訊(plc) ·sonet/sdh· g.709 ·光導纖維· 同軸電纜 · 雙絞線等

資料鏈路層:wi-fi(ieee 802.11) · wimax(ieee 802.16) ·atm · dtm ·令牌環·乙太網·fddi ·幀中繼· gprs · evdo ·hspa · hdlc ·ppp· l2tp ·pptp · isdn·stp 等

網路層協議:ip (ipv4 · ipv6) · icmp· icmpv6·igmp ·is-is · ipsec · arp · rarp . bootp等

傳輸層協議:tcp · udp · tls ·dccp· sctp · rsvp · ospf 等

應用層協議: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 等

網路通訊協議通過tcp/ip協議分為四層與osi/iso七層相對應,分別為:應用層,運輸層,網路層,鏈路層下面通過一張圖來清晰的認識一下:

(1). 鏈路層

也稱作資料鏈路層或網路介面層(在第乙個圖中為網路介面層和硬體層),通常包括作業系統中的裝置驅動程式和計算機中對應的網路介面卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理介面細節。arp(位址解析協議)和rarp(逆位址解析協議)是某些網路介面(如乙太網和令牌環網)使用的特殊協議,用來轉換ip層和網路介面層使用的位址。

(2). 網路層

也稱作網際網路層(在第乙個圖中為網際層),處理分組在網路中的活動,例如分組的選路。在tcp/ip協議族中,網路層協議包括ip協議(網際協議),icmp協議(internet網際網路控制報文協議),以及igmp協議(internet組管理協議)。

ip是一種網路層協議,提供的是一種不可靠的服務,它只是盡可能快地把分組從源結點送到目的結點,但是並不提供任何可靠性保證。同時被tcp和udp使用。tcp和udp的每組資料都通過端系統和每個中間路由器中的ip層在網際網路中進行傳輸。

icmp是ip協議的附屬協議。ip層用它來與其他主機或路由器交換錯誤報文和其他重要資訊。

igmp是internet組管理協議。它用來把乙個udp資料報多播到多個主機。

(3). 傳輸層

主要為兩台主機上的應用程式提供端到端的通訊。在tcp/ip協議族中,有兩個互不相同的傳輸協議:tcp(傳輸控制協議)和udp(使用者資料報協議)。

tcp為兩台主機提供高可靠性的資料通訊。它所做的工作包括把應用程式交給它的資料分成合適的小塊交給下面的網路層,確認接收到的分組,設定傳送最後確認分組的超時時鐘等。由於運輸層提供了高可靠性的端到端的通訊,因此應用層可以忽略所有這些細節。為了提供可靠的服務,tcp採用了超時重傳、傳送和接收端到端的確認分組等機制。

udp則為應用層提供一種非常簡單的服務。它只是把稱作資料報的分組從一台主機傳送到另一台主機,但並不保證該資料報能到達另一端。乙個資料報是指從傳送方傳輸到接收方的乙個資訊單元(例如,傳送方指定的一定位元組數的資訊)。udp協議任何必需的可靠性必須由應用層來提供。

(4). 應用層

應用層負責處理特定的應用程式細節。

協議組,可分為三個層次:網路層、傳輸層和應用層。

tcp:傳輸控制協議,面向連線的的協議,穩定可靠。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。

udp:廣播式資料傳輸,udp不提供可靠性,它只是把應用程式傳給ip層的資料報傳送出去,但是並不能保證它們能到達目的地。由於udp在傳輸資料報前不用在客戶和伺服器之間建立乙個連線,且沒有超時重發等機制,故而傳輸速度很快。

tcp/udp區別

1.tcp是面向連線的、可靠的、有序的、速度慢的協議;udp是無連線的、不可靠的、無序的、速度快的協議。

2.tcp開銷比udp大,tcp頭部需要20位元組,udp頭部只要8個位元組。

3.tcp無界有擁塞控制,tcp有界無擁塞控制。(擁塞控制主要是四種方法:慢開始、擁塞避免、快重傳、快恢復==這裡面有乙個擁塞視窗的概念)

例如:qq登陸採用tcp協議和http協議,你和好友之間傳送訊息,主要採用udp協議,內網傳檔案採用了p2p(點到點)技術。總來的說:

在tcp/ip協議中,tcp協議通過三次握手建立乙個可靠的連線:

第一次握手:客戶端嘗試連線伺服器,向伺服器傳送syn包(同步序列編號synchronize sequence numbers),syn=j,客戶端進入syn_send狀態等待伺服器確認、

第二次握手:伺服器接收客戶端syn包並確認(ack=j+1),同時向客戶端傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態

第三次握手:第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手

應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。

優點:1.傳輸資料為位元組級,傳輸資料可自定義,資料量小。相應的移動端開發,手機費用低;2.傳輸資料時間短,效能高;3.適合c/s之間資訊實時互動;4.可以加密,資料安全性高

缺點: 1.需要對傳輸的資料進行解析,轉化為應用級的資料;2.對開發人員的開發水平要求高;3.相對於http協議傳輸,增加了開發量

socket通訊流程

socket是」開啟—讀/寫—關閉」模式的實現,以使用tcp協議通訊的socket為例,其互動流程大概是這樣子的

伺服器根據位址型別(ipv4,ipv6)、socket型別、協議建立socket

伺服器為socket繫結ip位址和埠號

伺服器socket監聽埠號請求,隨時準備接收客戶端發來的連線,這時候伺服器的socket並沒有被開啟

客戶端建立socket

客戶端開啟socket,根據伺服器ip位址和埠號試圖連線伺服器socket

伺服器socket接收到客戶端socket請求,被動開啟,開始接收客戶端請求,直到客戶端返回連線資訊。這時候socket進入阻塞狀態,所謂阻塞即accept()方法一直到客戶端返回連線資訊後才返回,開始接收下乙個客戶端諒解請求

客戶端連線成功,向伺服器傳送連線狀態資訊

伺服器accept方法返回,連線成功

客戶端向socket寫入資訊

伺服器讀取資訊

客戶端關閉

伺服器端關閉

伺服器socket與客戶端socket建立連線的部分其實就是大名鼎鼎的三次握手

參考文章:

網路層 網路協議詳解

前面四層是做到讓乙個程式給另外乙個程式正確的傳遞了乙個字串,應用層協議就是用規定字串的格式和意義的。解讀 想瀏覽器輸入ke.qq.com,會發生哪些事情?要在dns伺服器配置下,網域名稱和ip port的對映關係 瀏覽器程序會向dns這個伺服器 ip 發包,使用dns協議 dns伺服器就返回網域名稱...

網路協議 ARP RARP詳解

arp,全稱address resolution protocol,中文名為位址解析協議,它工作在資料鏈路層,在本層和硬體介面聯絡,同時對上層提供服務。ip資料報常通過乙太網傳送,乙太網裝置並不識別32位ip位址,它們是以48位乙太網位址傳輸乙太網資料報。因此,必須把ip目的位址轉換成乙太網目的位址...

網路協議 IGMP詳解

igmp 是internet group management protocol 網際網路組管理協議 的簡稱。它是tcp ip 協議族中負責ip 組播成員管理的協議,用來在ip 主機和與其直接相鄰的組播路由器之間建立 維護組播組成員關係。當一台主機加入到乙個新的組時,它傳送乙個igmp訊息到組位址以...