日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

為了使全球范圍內(nèi)不同的計算機(jī)廠家能夠相互之間能夠比較協(xié)調(diào)的進(jìn)行通信,這個時候就有必要建立一種全球范圍內(nèi)的通用協(xié)議,以規(guī)范各個廠家之間的通信接口,這就是網(wǎng)絡(luò)七層模型的由來。本文首先會對網(wǎng)絡(luò)七層模型的功能進(jìn)行介紹,然后會講解傳輸層的兩個重要協(xié)議:TCP和UDP協(xié)議,并且會著重講解TCP協(xié)議中的三次握手和四次揮手的過程。

1. 網(wǎng)絡(luò)七層模型

關(guān)于網(wǎng)絡(luò)七層模型,我們首先以一個圖例來展示其功能:

看一遍忘一遍的網(wǎng)絡(luò)七層模型與TCP/UDP,重新總結(jié)出來

 

  • 應(yīng)用層:主要指的是應(yīng)用程序部分,比如我們的JAVA程序,應(yīng)用層所產(chǎn)生的數(shù)據(jù)成為應(yīng)用層數(shù)據(jù),典型的應(yīng)用層協(xié)議,比如有HTTP協(xié)議,dubbo的rpc協(xié)議,這些都是由我們的應(yīng)用層程序自己定義的;
  • 表示層:這一層主要是對應(yīng)用層的數(shù)據(jù)進(jìn)行一些格式轉(zhuǎn)換,加解密或者進(jìn)行壓縮和解壓縮的功能;
  • 會話層:會話層的主要作用是負(fù)責(zé)進(jìn)程與進(jìn)程之間會話的建立、管理以及終止的服務(wù);
  • 傳輸層:傳輸層提供了兩臺機(jī)器之間端口到端口的一個數(shù)據(jù)傳輸服務(wù),因為應(yīng)用層、表示層和會話層所針對的都是某個應(yīng)用進(jìn)程,而進(jìn)程是和端口綁定的,但是同一臺服務(wù)器上是可以有多個進(jìn)程的,因而傳輸層提供的就是這種不同的端口到端口的訪問,以實現(xiàn)區(qū)分不同進(jìn)程之間的通信服務(wù)。在傳輸層最典型的協(xié)議有TCP和UDP協(xié)議,TCP提供的是面向連接的、可靠的數(shù)據(jù)傳輸服務(wù),而UDP則是無連接的、不可靠的數(shù)據(jù)傳輸服務(wù)。在上面的圖中我們也可以看出,經(jīng)過傳輸層之后,數(shù)據(jù)會被加上TCP或者UDP頭部,用以實現(xiàn)不同傳輸層協(xié)議的功能;
  • 網(wǎng)絡(luò)層:傳輸層提供的是同一臺主機(jī)上的端口到端口的傳輸服務(wù),而網(wǎng)絡(luò)層則提供的是不同主機(jī)之間的連接服務(wù),最典型的網(wǎng)絡(luò)層協(xié)議就是IP協(xié)議,網(wǎng)絡(luò)層會將當(dāng)前的數(shù)據(jù)包加上一個IP頭部,從而實現(xiàn)目標(biāo)機(jī)器的尋址;
  • 數(shù)據(jù)鏈路層:這一層是承接軟件和硬件的一層,由于其會將當(dāng)前的數(shù)據(jù)報發(fā)送到不穩(wěn)定的物理層硬件上進(jìn)行傳輸,因而為了保障數(shù)據(jù)的完整性和可靠性,數(shù)據(jù)鏈路層就提供了校驗、確認(rèn)和反饋等機(jī)制,用以提供可靠的數(shù)據(jù)報傳輸服務(wù);
  • 物理層:物理層的主要作用就是將0101這種二進(jìn)制的比特流數(shù)據(jù)轉(zhuǎn)換為光信號,用以在物理介質(zhì)上進(jìn)行傳輸。

網(wǎng)絡(luò)七層模型主要是提供的一種規(guī)范,而在這每一層上為了實現(xiàn)不同的功能,各個計算機(jī)廠商都會實現(xiàn)自己的協(xié)議,這些協(xié)議的標(biāo)識就是通過一些協(xié)議頭和進(jìn)行的,比如上面圖中,數(shù)據(jù)在經(jīng)過每一層的封裝之后都會為其加上自己的協(xié)議頭部,當(dāng)數(shù)據(jù)經(jīng)過物理介質(zhì)傳輸?shù)侥繕?biāo)機(jī)器上后,其就會反過來,將數(shù)據(jù)進(jìn)行一層一層的解析,解析的過程其實就是根據(jù)其每一層頭部信息來實現(xiàn)該層的相關(guān)功能。

另外,網(wǎng)絡(luò)七層模型是一種比較理想化的模型,現(xiàn)在應(yīng)用比較廣泛的是網(wǎng)絡(luò)五層模型,五層模型與七層模型的主要區(qū)別在于將應(yīng)用層、表示層和會話層統(tǒng)一劃分到應(yīng)用層中了,由應(yīng)用程序?qū)崿F(xiàn)其相關(guān)的功能。

2. TCP與UDP

在我們的應(yīng)用開發(fā)過程中,我們其實不需要太過于關(guān)注底層相關(guān)的功能,這些只需要相關(guān)的服務(wù)提供商提供相應(yīng)的功能即可。不過在傳輸層之中,我們需要特別關(guān)注一下現(xiàn)在廣泛使用的兩個協(xié)議:TCP和UDP協(xié)議。這兩個協(xié)議之間的主要區(qū)別如下:

TCPUDP面向連接無連接提供數(shù)據(jù)可靠保證不提供數(shù)據(jù)可靠性保證速度相對較慢速度較快占用資源較多占用資源較少

關(guān)于TCP和UDP,可以看到,這兩個協(xié)議各自分別有非常鮮明的特點(diǎn):TCP雖然占用資源較多,速度相對較慢,但是提供了可靠的數(shù)據(jù)傳輸服務(wù),這在大多數(shù)的互聯(lián)網(wǎng)業(yè)務(wù)中是非常必要的;而UDP雖然不提供可靠性的數(shù)據(jù)保證,但是其速度非常快,而且占用資源較小,這在一些對數(shù)據(jù)可靠性較低的場景中是非常有用的,比如音視頻服務(wù),物聯(lián)網(wǎng)數(shù)據(jù)上報服務(wù)等等,這些情況下,數(shù)據(jù)丟失一兩幀都是可以接受的。

TCP和UDP在資源占用上的區(qū)別,不僅體現(xiàn)在數(shù)據(jù)傳輸方式上,還體現(xiàn)在了數(shù)據(jù)的傳輸格式上。對于數(shù)據(jù)傳輸方式,TCP每次發(fā)送數(shù)據(jù)的方式都是按照時間窗口的方式一個數(shù)據(jù)報一個數(shù)據(jù)報的發(fā)送,并且需要等待每個數(shù)據(jù)報都給數(shù)據(jù)發(fā)送方響應(yīng)ACK,這個時候才會發(fā)送下一個數(shù)據(jù)窗口的數(shù)據(jù),如果當(dāng)前窗口內(nèi)有任意一個數(shù)據(jù)報沒有發(fā)送成功,那么整個窗口內(nèi)的數(shù)據(jù)都會重新發(fā)送;而UDP則沒有窗口的概念和對應(yīng)的ACK機(jī)制,其獲取到每一個數(shù)據(jù)報之后,都只是簡單的為其封裝UDP協(xié)議頭,然后將其發(fā)送出去,其不會管這個數(shù)據(jù)是否發(fā)送成功,因而UDP傳輸比TCP是要快很多的。對于數(shù)據(jù)傳輸格式,這里我們以TCP和UDP的數(shù)據(jù)報的格式進(jìn)行講解,如下是TCP的數(shù)據(jù)報格式:

看一遍忘一遍的網(wǎng)絡(luò)七層模型與TCP/UDP,重新總結(jié)出來

 

可以看到,TCP數(shù)據(jù)報的頭部中不僅包含了源端口號和目的端口號,還包含了序號、確認(rèn)序號、首部長度、標(biāo)志位等等信息,總的來看,除去真正的數(shù)據(jù)部分,頭部信息占用的字節(jié)數(shù)就達(dá)到了192字節(jié),當(dāng)然,這么多字段主要的作用是為了實現(xiàn)TCP面向連接的可靠性傳輸?shù)墓δ?。如下則是UDP數(shù)據(jù)報的格式:

看一遍忘一遍的網(wǎng)絡(luò)七層模型與TCP/UDP,重新總結(jié)出來

 

可以看到,這里UDP的數(shù)據(jù)包格式相對于TCP就非常的精簡了,其頭部主要就只有源端口號、目的端口號、長度和校驗和字段,這些總共占用的字節(jié)數(shù)是8個字節(jié)。這也就是UDP協(xié)議傳輸速率非常快的另一個原因。

2. 三次握手和四次揮手

TCP是一個提供可靠傳輸服務(wù)、面向連接的的傳輸層協(xié)議,其可靠性保證主要是通過每次數(shù)據(jù)報發(fā)送時的ACK機(jī)制實現(xiàn)的,而其連接的建立和釋放則主要是通過三次握手和四次揮手的方式實現(xiàn)的。如下是其三次握手和四次揮手的過程:

看一遍忘一遍的網(wǎng)絡(luò)七層模型與TCP/UDP,重新總結(jié)出來

 

對于三次握手,其整體過程如下:

  • 首先客戶端會發(fā)送一個建立連接的請求,其標(biāo)志位中會帶上SYN=1, seq=x,這里的SYN=1根據(jù)前面TCP頭部信息的講解中我們知道,其表示建立連接的請求,而seq=x則只是當(dāng)前請求的一個序號,不同的請求是有不同的序號的,加這個序號的原因也是為了將其與服務(wù)端的響應(yīng)請求關(guān)聯(lián)起來;
  • 在服務(wù)端接收到客戶端建立連接的請求之后,其就會返回SYN=1, ACK=1, seq=y, ack_seq=x+1,這里的SYN=1, ACK=1表示的是對客戶端建立連接的請求的同意響應(yīng),seq=y則標(biāo)識了這是服務(wù)端的一次數(shù)據(jù)發(fā)送,而ack_seq=x+1則表示其是對客戶端的seq=x的請求的一個響應(yīng);
  • 在客戶端接收到服務(wù)端的響應(yīng)的時候,客戶端就能夠確認(rèn)服務(wù)端是能夠正常接收和發(fā)送數(shù)據(jù)的,而服務(wù)端在接收到客戶端的第一次請求的時候也能夠確認(rèn)客戶端能夠正常的發(fā)送請求。這個時候,客戶端就會發(fā)送一個ACK=1, seq=x+1, ack_seq=y+1給服務(wù)器,服務(wù)器接收到后就會完成連接的建立。

可以看到,前兩次請求都是建立連接所必要的,而客戶端要發(fā)送第三次請求的原因主要有兩點(diǎn):

  • 可以讓服務(wù)器確??蛻舳耸悄軌蛘0l(fā)送和接收請求的;
  • 由于連接的建立是在不穩(wěn)定的網(wǎng)絡(luò)上進(jìn)行的,因而這里有可能第一次請求是由于客戶端在某個時間點(diǎn)發(fā)送的,但是由于網(wǎng)絡(luò)延遲,導(dǎo)致很久之后服務(wù)器才接收到該請求,但此時服務(wù)器并不知道這個連接建立的請求是否是正常請求,其還是會正常發(fā)送一個同意建立連接的響應(yīng)給客戶端,如果第一請求是由于網(wǎng)絡(luò)延遲造成的,那么客戶端是不會再發(fā)送第三次握手給服務(wù)器的,這個時候服務(wù)器等待超時后也就不會建立這一次的連接了。

對于四次揮手,其是在客戶端與服務(wù)器交互完成之后,由客戶端發(fā)起的。四次揮手的主要流程如下:

  • 客戶端首先會發(fā)送一個FIN=1, seq=u給服務(wù)器,根據(jù)前面TCP頭部信息的講解,我們知道FIN=1表示這是一個斷開連接的請求,而seq=u則標(biāo)識了這次請求的一個序號;
  • 服務(wù)器接收到客戶端的斷開連接的請求后,其就會向客戶端發(fā)送一個ACK=1, seq=v, ack_seq=u+1的響應(yīng),這里的seq=v還是表示當(dāng)前請求的序號,而ack_seq=u+1則表示這是對客戶端發(fā)送的seq=u的斷開連接的請求的響應(yīng),但是需要注意的是,這個請求并不表示服務(wù)器同意斷開連接,此時還只是一個半關(guān)閉的狀態(tài),因為此時服務(wù)器可能還有數(shù)據(jù)在進(jìn)行處理沒有發(fā)送給客戶端,此時服務(wù)器就會完成這些斷開連接的工作;
  • 待服務(wù)器完成了斷開連接的準(zhǔn)備工作之后,其就會給客戶端發(fā)送一個FIN=1, ACK=1, seq=w, ack_seq=u+1的響應(yīng),注意,這個過程中客戶端一直都處于等待狀態(tài)的。這里相對于前一次響應(yīng),多了一個FIN=1,就是表示當(dāng)前是確認(rèn)斷開連接的請求;
  • 客戶端在接收到服務(wù)器的響應(yīng)之后,其就會給服務(wù)器發(fā)送一個ACK=1, seq=u+1, ack_seq=w+1的響應(yīng),表示同意斷開連接,服務(wù)器接收到后就會斷開連接,而客戶端則會等待一小段時間后自行斷開連接。

3. 小結(jié)

本文首先講解了OSI網(wǎng)絡(luò)七層模型,詳細(xì)講解了模型中每一層的作用,然后講解了傳輸層中TCP和UDP的主要區(qū)別,從傳輸方式和傳輸數(shù)據(jù)格式上對兩種協(xié)議進(jìn)行了對比,最后講解了TCP協(xié)議中三次握手和四次揮手的主要過程,并且詳細(xì)講解了每一步的作用。

分享到:
標(biāo)簽:七層 模型 網(wǎng)絡(luò)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定