亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

【HTTP基礎(chǔ)】HTTP協(xié)議詳解之TCP/IP協(xié)議蔟

macg0406 / 3131人閱讀

摘要:協(xié)議地址解析協(xié)議,根據(jù)地址獲取地址。確認表示確認號字段有效,確認號無效。終止表示發(fā)送數(shù)據(jù)已發(fā)送完畢,要求釋放連接。

TCP/IP協(xié)議蔟分為4層結(jié)構(gòu),分別是應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層,每一層都由特定的協(xié)議與對方進行通信,在進行數(shù)據(jù)通信時,發(fā)送端的數(shù)據(jù)從應(yīng)用層往數(shù)據(jù)鏈路層方向流動,接收端的數(shù)據(jù)從數(shù)據(jù)鏈路層往應(yīng)用層流動。

數(shù)據(jù)鏈路層

數(shù)據(jù)鏈路層的主要工作是對電信號進行分組并形成具有特定意義的數(shù)據(jù)幀,然后以廣播的形式通過物流介質(zhì)發(fā)送給接受方,數(shù)據(jù)鏈路層處理數(shù)據(jù)的協(xié)議是以太網(wǎng)協(xié)議,它將傳輸?shù)臄?shù)據(jù)分組封裝成數(shù)據(jù)幀,每個數(shù)據(jù)幀由首部、數(shù)據(jù)和尾部三部分組成,首部包含目標MAC地址、源MAC地址和類型,尾部為數(shù)據(jù)幀校驗序列,用于確定數(shù)據(jù)包在傳輸過程中是否損壞。數(shù)據(jù)傳輸采用廣播形式,把數(shù)據(jù)包發(fā)送給該子網(wǎng)內(nèi)的所有主機,子網(wǎng)內(nèi)每臺主機接收到這個包以后,都會讀取首部里的目標MAC地址,然后和自己的MAC地址進行比對,如果相同則進行下一步處理,如果不同,則丟棄這個包。

網(wǎng)絡(luò)層

對于上面的過程,有幾個細節(jié)值得我們思考:

發(fā)送者如何知道接受者的MAC地址?

發(fā)送者如何知道接受者和自己同屬一個子網(wǎng)?

如果接受者和自己不在同一個子網(wǎng),數(shù)據(jù)包如何發(fā)送給對方?

網(wǎng)絡(luò)層有如下幾個協(xié)議:

IP協(xié)議:MAC地址只與廠商有關(guān),與所處的網(wǎng)絡(luò)無關(guān),所以無法通過MAC地址來判斷兩臺主機是否屬于同一個子網(wǎng),因此,網(wǎng)絡(luò)層引入IP協(xié)議,制定了一套新地址,用于區(qū)分兩臺主機是否同屬于一個網(wǎng)絡(luò),這套地址就是網(wǎng)絡(luò)地址-IP地址。

ARP協(xié)議:地址解析協(xié)議,根據(jù)IP地址獲取MAC地址。ARP首先發(fā)起一個請求數(shù)據(jù)包,數(shù)據(jù)包的首部包含了目標主機的IP地址,數(shù)據(jù)包在鏈路層被封裝成數(shù)據(jù)幀并在子網(wǎng)內(nèi)廣播,每一臺主機都會接受到這個數(shù)據(jù)包,并取出目標IP地址,并與自己的IP地址進行比較,如果相同就返回自己的MAC地址,ARP接收返回消息,以此確定目標機的MAC地址,與此同時,ARP還會將返回的MAC地址與對應(yīng)的IP地址存入本機ARP緩存并保留一段時間。

路由協(xié)議:通過ARP協(xié)議的工作原理可以發(fā)現(xiàn),ARP的MAC尋址還是局限在同一個子網(wǎng)中,因此網(wǎng)絡(luò)層引入路由協(xié)議,首先通過IP協(xié)議判斷兩臺主機是否在同一個子網(wǎng)中,如果在,通過ARP協(xié)議查詢對應(yīng)的MAC地址,然后以廣播形式向該子網(wǎng)內(nèi)的主機發(fā)送數(shù)據(jù)包,如果不在,以太網(wǎng)會將數(shù)據(jù)包轉(zhuǎn)發(fā)給本子網(wǎng)的網(wǎng)關(guān)進行路由,網(wǎng)關(guān)是子網(wǎng)與子網(wǎng)間的橋梁,經(jīng)過網(wǎng)關(guān)的多次轉(zhuǎn)發(fā),最終將數(shù)據(jù)包轉(zhuǎn)發(fā)到目標IP所在的子網(wǎng),然后再通過ARP協(xié)議獲取MAC地址。完成這個路由協(xié)議的設(shè)備就是路由器。

在網(wǎng)絡(luò)層被包裝的數(shù)據(jù)包就叫IP數(shù)據(jù)包,IP數(shù)據(jù)包由首部和數(shù)據(jù)兩部分組成,首部包含目標IP地址和源IP地址,網(wǎng)絡(luò)層的主要工作是定義網(wǎng)絡(luò)地址,區(qū)分網(wǎng)段,子網(wǎng)內(nèi)MAC尋址,對不同子網(wǎng)的數(shù)據(jù)進行路由。

傳輸層

鏈路層定義了MAC地址,網(wǎng)絡(luò)層定義了IP地址,有了這兩個地址,數(shù)據(jù)就能從一個主機發(fā)送到另一個主機,但是數(shù)據(jù)實際上是從一個主機上的某個應(yīng)用程序發(fā)出,當數(shù)據(jù)包被接收后,也無法確定哪個應(yīng)用程序要接收這個數(shù)據(jù)包。

因此傳輸層引入UDP協(xié)議來解決這個問題,UDP定義了端口號,同一個主機的每一個應(yīng)用程序都需要指定唯一的端口號,并且在傳輸數(shù)據(jù)時在數(shù)據(jù)上加上端口信息,UDP定義的數(shù)據(jù)包叫做UDP數(shù)據(jù)包。UDP數(shù)據(jù)包由首部和數(shù)據(jù)兩部分組成,首部包括源端口和目標端口。

UDP協(xié)議比較簡單,實現(xiàn)容易,但是沒有確認機制,可靠性較差,為了解決這個問題,TCP協(xié)議就被引入,TCP協(xié)議是一種面向連接的、可靠地、基于字節(jié)流的通信協(xié)議。TCP協(xié)議每發(fā)出一個數(shù)據(jù)包都要求確認,如果數(shù)據(jù)包丟失,收不到確認信息,發(fā)送發(fā)就必須重發(fā)這個數(shù)據(jù)包。

TCP協(xié)議

TCP為了保證傳輸?shù)目煽啃?,在正式收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。由此才有TCP的三次握手機制。下面是TCP三次握手過程中使用到的幾個名詞:

序列號seq:是TCP報文段的第一個字節(jié)的數(shù)據(jù)編號,其中第一個TCP報文段的第一個字節(jié)編號由本地隨機產(chǎn)生。

確認號ack:期待收到對方下一個報文段的序列號,因此確認號為序列號+1。

確認ACK:ACK=1表示確認號字段有效,ACK=0確認號無效。

同步SYN:SYN這個標志在TCP建立連接時才會被置為1,握手完成被置為0。

終止FIN:FIN=1表示發(fā)送數(shù)據(jù)已發(fā)送完畢,要求釋放連接。

主機A向主機B請求建立TCP連接,其TCP的三次握手過程如下:

主機A向主機B發(fā)送TCP連接請求數(shù)據(jù)包,SYN=1,seq=x。

主機B向主機A發(fā)送連接確認數(shù)據(jù)包,SYN=1,ACK=1,seq=y,ack=x+1。

主機A向主機B發(fā)送再次確認數(shù)據(jù)包,ACK=1,seq=x+1,ack=y+1。


主機A主機B的TCP鏈接斷開,其TCP的四次揮手過程如下:

由于TCP連接時雙全工的(即數(shù)據(jù)可以在兩個方向上同時傳遞),所以進行關(guān)閉時每個方向都要多帶帶進行關(guān)閉,這個單方向的關(guān)閉就叫半關(guān)閉,當一方完成它的數(shù)據(jù)發(fā)送任務(wù),就發(fā)送一個FIN來向另一方通告將要終止這個方向的連接。

A確認發(fā)送完數(shù)據(jù)后,想要關(guān)閉連接,發(fā)送FIN給B。

B收到A發(fā)送的FIN,發(fā)送ACK回復(fù)。

但這時B可能還在發(fā)送數(shù)據(jù),所以沒有想要關(guān)閉連接的意思,所以FIN和ACK不是同時發(fā)送的,等B數(shù)據(jù)發(fā)送完畢后,才會發(fā)送ACK=1,F(xiàn)IN=1。

A收到B發(fā)來的FIN,回復(fù)ACK=1,A等待2MSL以后,沒有收到B傳來的任何消息,知道B已經(jīng)收到自己的確認消息ACK,A就關(guān)閉鏈接。

在A發(fā)送最后的ACK回復(fù)時,該ACK可能丟失,B如果沒有收到ACK,將不斷重復(fù)發(fā)送FIN片段,所以A不能立即關(guān)閉,它必須確認B接收到該ACK并關(guān)閉后,在2MSL內(nèi)沒有收到FIN,才會進行關(guān)閉。MSL指一個報文段在網(wǎng)絡(luò)中的最大存活時間。

傳輸層的主要工作內(nèi)容是定義端口,標識應(yīng)用程序身份,實現(xiàn)端口到端口的通信,TCP協(xié)議保證數(shù)據(jù)傳輸?shù)目煽啃浴?/p> 應(yīng)用層

理論上來講,有了以上三層協(xié)議的支持,數(shù)據(jù)已經(jīng)可以從一個主機的應(yīng)用程序傳輸?shù)搅硪慌_主機的應(yīng)用程序上了,但是傳輸過來的數(shù)據(jù)是字節(jié)流,不能被程序識別,因此應(yīng)用層定義了各種各樣的協(xié)議來規(guī)范數(shù)據(jù)格式,常見的有http、ftp等。應(yīng)用層的主要工作就是定義數(shù)據(jù)格式并按照對應(yīng)的格式解讀數(shù)據(jù)。

TCP/IP協(xié)議蔟

鏈路層:對數(shù)據(jù)進行分組,定義數(shù)據(jù)幀,確認主機的物理地址,傳輸數(shù)據(jù)。

網(wǎng)絡(luò)層:定義IP地址,確認主機所在的網(wǎng)絡(luò)位置,并通過IP進行MAC尋址,對外網(wǎng)數(shù)據(jù)包進行路由轉(zhuǎn)發(fā)。

傳輸層:定義端口號,確認主機上應(yīng)用程序的身份,并將數(shù)據(jù)包交給對應(yīng)的應(yīng)用程序。

應(yīng)用層:定義數(shù)據(jù)格式,并按照對應(yīng)的格式解讀數(shù)據(jù)。

當輸入一個網(wǎng)址并按下回車鍵的時候,首先,應(yīng)用層協(xié)議對該請求包做了格式定義,緊接著傳輸層協(xié)議加上了雙發(fā)的端口號,確認雙發(fā)通信的應(yīng)用程序,然后網(wǎng)絡(luò)層的IP協(xié)議加上了雙方的IP地址,確認雙發(fā)的網(wǎng)絡(luò)位置,最后鏈路層協(xié)議加上雙發(fā)的MAC地址,確認雙發(fā)的物理位置,同時將數(shù)據(jù)進行分組,形成數(shù)據(jù)幀,采用廣播方式,通過傳輸介質(zhì)發(fā)送給對方主機,而對于不同子網(wǎng),該數(shù)據(jù)包首先會轉(zhuǎn)發(fā)給網(wǎng)關(guān)路由器,經(jīng)過多次轉(zhuǎn)發(fā)后,最終被發(fā)送到目標主機,目標主機接收到數(shù)據(jù)包后,采用對應(yīng)的協(xié)議,對幀數(shù)據(jù)進行組裝,然后一層一層的協(xié)議進行解析,最終被應(yīng)用層的協(xié)議解析。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/61938.html

相關(guān)文章

  • Java Socket編程常識網(wǎng)絡(luò)基礎(chǔ)知識

    摘要:如地址端口號組成了所謂的,是網(wǎng)絡(luò)上運行的程序之間雙向通信鏈路的終結(jié)點,是和的基礎(chǔ)套接字網(wǎng)絡(luò)上具有唯一標識的地址和端口組合在一起才能構(gòu)成唯一能識別的標識符套接字。 更多物聯(lián)網(wǎng)高并發(fā)編程知識請移步:https://www.yuque.com/shizhiy... Java Socket編程之常識網(wǎng)絡(luò)基礎(chǔ)知識 網(wǎng)絡(luò)基礎(chǔ)知識(參考計算機網(wǎng)絡(luò))? 《TCP/IP協(xié)議棧及OSI參考模型詳解》? ...

    Jeff 評論0 收藏0
  • 網(wǎng)絡(luò)與安全

    摘要:面試網(wǎng)絡(luò)了解及網(wǎng)絡(luò)基礎(chǔ)對端傳輸詳解與攻防實戰(zhàn)本文從屬于筆者的信息安全實戰(zhàn)中滲透測試實戰(zhàn)系列文章。建議先閱讀下的網(wǎng)絡(luò)安全基礎(chǔ)。然而,該攻擊方式并不為大家所熟知,很多網(wǎng)站都有的安全漏洞。 面試 -- 網(wǎng)絡(luò) HTTP 現(xiàn)在面試門檻越來越高,很多開發(fā)者對于網(wǎng)絡(luò)知識這塊了解的不是很多,遇到這些面試題會手足無措。本篇文章知識主要集中在 HTTP 這塊。文中知識來自 《圖解 HTTP》與維基百科,若...

    Integ 評論0 收藏0
  • TCP和UDP比較

    摘要:該狀態(tài)會持續(xù)最大段生存期,指報文段在網(wǎng)絡(luò)中生存的時間,超時會被拋棄時間,若該時間段內(nèi)沒有的重發(fā)請求的話,就進入狀態(tài)。 引言 網(wǎng)絡(luò)協(xié)議是每個前端工程師都必須要掌握的知識,TCP/IP 中有兩個具有代表性的傳輸層協(xié)議,分別是 TCP 和 UDP,本文將介紹下這兩者以及它們之間的區(qū)別。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客 一、TCP/IP網(wǎng)絡(luò)模型 計算機與網(wǎng)絡(luò)設(shè)備要相互通信,雙方就必須...

    chanjarster 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<