<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          通信協(xié)議

          共 2302字,需瀏覽 5分鐘

           ·

          2022-05-14 11:23

          -Start:關(guān)注本公眾號(hào)后,可直接聯(lián)系后臺(tái)獲取排版美化的詳細(xì)文檔!

          -Hints:本篇文章所編纂的資料均來自網(wǎng)絡(luò),特此感謝參與奉獻(xiàn)的有關(guān)人員。


          網(wǎng)絡(luò)分層協(xié)議


          傳輸層協(xié)議區(qū)別:

          TCP:傳輸控制協(xié)議

          a 數(shù)據(jù)傳輸前必須要建立連接,數(shù)據(jù)傳輸完,必須釋放連接。
          b 傳輸?shù)臄?shù)據(jù)無差錯(cuò),不丟失,不重復(fù),且順序和源數(shù)據(jù)一致。
          c 在傳輸?shù)倪^程中,數(shù)據(jù)拆分為不同的段,也就是segment。
          d 效率低,因?yàn)槭敲嫦蜻B接的協(xié)議,通信之前必須要建立連接。

          ?

          TCP【打電話】

          TCP 是一種面向有連接的傳輸層協(xié)議,能夠?qū)ψ约禾峁┑倪B接實(shí)施控制。適用于要求可靠傳輸的應(yīng)用,例如文件傳輸。面向字節(jié)流,傳輸慢

          UDP【發(fā)短信】

          UDP 是一種面向無連接的傳輸層協(xié)議,不會(huì)對(duì)自己提供的連接實(shí)施控制。適用于實(shí)時(shí)應(yīng)用,例如:IP電話、視頻會(huì)議、直播等。

          ?

          Socket

          Socket就像一個(gè)電話插座,負(fù)責(zé)連通兩端的電話,進(jìn)行點(diǎn)對(duì)點(diǎn)通信,讓電話可以進(jìn)行通信,端口就像插座上的孔,端口不能同時(shí)被其他進(jìn)程占用。而我們建立連接就像把插頭插在這個(gè)插座上,創(chuàng)建一個(gè)Socket實(shí)例開始監(jiān)聽后,這個(gè)電話插座就時(shí)刻監(jiān)聽著消息的傳入,誰撥通我這個(gè)“IP地址和端口”,我就接通誰。

          Socket是應(yīng)用層與TCP/IP協(xié)議族通信的中間軟件抽象層,它是一組接口。在設(shè)計(jì)模式中,Socket其實(shí)就是一個(gè)門面模式,它把復(fù)雜的TCP/IP協(xié)議族隱藏在Socket接口后面,對(duì)用戶來說,一組簡(jiǎn)單的接口就是全部,讓Socket去組織數(shù)據(jù),以符合指定的協(xié)議。

          服務(wù)器端先初始化Socket,然后與端口綁定(bind),對(duì)端口進(jìn)行監(jiān)聽(listen),調(diào)用accept阻塞,等待客戶端連接。在這時(shí)如果有個(gè)客戶端初始化一個(gè)Socket,然后連接服務(wù)器(connect),如果連接成功,這時(shí)客戶端與服務(wù)器端的連接就建立了??蛻舳税l(fā)送數(shù)據(jù)請(qǐng)求,服務(wù)器端接收請(qǐng)求并處理請(qǐng)求,然后把回應(yīng)數(shù)據(jù)發(fā)送給客戶端,客戶端讀取數(shù)據(jù),最后關(guān)閉連接,一次交互結(jié)束。

          ?

          本地進(jìn)程間通信:

          消息傳遞(管道、FIFO、消息隊(duì)列)?
          同步(互斥量、條件變量、讀寫鎖、文件和寫記錄鎖、信號(hào)量)?
          共享內(nèi)存(匿名的和具名的)?
          遠(yuǎn)程過程調(diào)用(Solaris門和Sun RPC)

          本地可以通過進(jìn)程PID來唯一標(biāo)識(shí)一個(gè)進(jìn)程

          ?

          網(wǎng)絡(luò)進(jìn)程間通信

          網(wǎng)絡(luò)層的“ip地址”可以唯一標(biāo)識(shí)網(wǎng)絡(luò)中的主機(jī),而傳輸層的“協(xié)議+端口”可以唯一標(biāo)識(shí)主機(jī)中的應(yīng)用程序(進(jìn)程)。這樣利用三元組(ip地址,協(xié)議,端口)就可以標(biāo)識(shí)網(wǎng)絡(luò)的進(jìn)程了,網(wǎng)絡(luò)中的進(jìn)程通信就可以利用這個(gè)標(biāo)志與其它進(jìn)程進(jìn)行交互。

          ?

          socket中TCP的三次握手建立連接

          1【客戶端:我要連接】客戶端調(diào)用connect時(shí),觸發(fā)了連接請(qǐng)求,向服務(wù)器發(fā)送了SYN J包,這時(shí)connect進(jìn)入阻塞狀態(tài);

          2 【服務(wù)端:收到請(qǐng)求,可以連接】服務(wù)器監(jiān)聽到連接請(qǐng)求,即收到SYN J包,調(diào)用accept函數(shù)接收請(qǐng)求向客戶端發(fā)送SYN K ,ACK J+1,這時(shí)accept進(jìn)入阻塞狀態(tài);

          3 【客戶端:收到回復(fù),你說可以連接】客戶端收到服務(wù)器的SYN K ,ACK J+1之后,這時(shí)connect返回,并對(duì)SYN K進(jìn)行確認(rèn);

          【服務(wù)端,知道對(duì)方知道,開始干活】服務(wù)器收到ACK K+1時(shí),accept返回,至此三次握手完畢,連接建立。

          ?

          socket中TCP的四次握手釋放連接

          1【主動(dòng)端:我要關(guān)閉連接】某個(gè)應(yīng)用進(jìn)程首先調(diào)用close主動(dòng)關(guān)閉連接,這時(shí)TCP發(fā)送一個(gè)FIN M;?

          2【被動(dòng)端,進(jìn)行收尾:我知道你要關(guān)閉連接,你等我結(jié)束】另一端接收到FIN M之后,執(zhí)行被動(dòng)關(guān)閉,對(duì)這個(gè)FIN進(jìn)行確認(rèn)。它的接收也作為文件結(jié)束符傳遞給應(yīng)用進(jìn)程,因?yàn)镕IN的接收意味著應(yīng)用進(jìn)程在相應(yīng)的連接上再也接收不到額外數(shù)據(jù);?

          3 【被動(dòng)端:我結(jié)束了,你可以關(guān)閉】一段時(shí)間之后,接收到文件結(jié)束符的應(yīng)用進(jìn)程調(diào)用close關(guān)閉它的socket。這導(dǎo)致它的TCP也發(fā)送一個(gè)FIN N;?

          4 【主動(dòng)端:我關(guān)閉了】接收到這個(gè)FIN的源發(fā)送端TCP對(duì)它進(jìn)行確認(rèn)。?

          這樣每個(gè)方向上都有一個(gè)FIN和ACK。

          ?

          網(wǎng)絡(luò)訪問流程

          應(yīng)用層:

          1.瀏覽器向DNS服務(wù)器發(fā)起DNS請(qǐng)求,進(jìn)行域名解析,獲得相應(yīng)的IP地址

          2.根據(jù)HTTP協(xié)議生成HTTP報(bào)文請(qǐng)求

          在應(yīng)用層將要發(fā)送的數(shù)據(jù)內(nèi)容形成了應(yīng)用層的報(bào)文data,發(fā)送到傳輸層

          傳輸層:

          3.TCP的三次握手

          把處理的數(shù)據(jù)段發(fā)送到網(wǎng)絡(luò)層

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

          4.IP尋址

          5.ARP協(xié)議獲取MAC地址

          數(shù)據(jù)在網(wǎng)絡(luò)層被打包,這樣封裝上了網(wǎng)絡(luò)層的包頭,包頭內(nèi)部含有源及目的的ip地址

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

          6.MAC尋址

          7.服務(wù)器接受請(qǐng)求

          8.服務(wù)端處理請(qǐng)求

          9.服務(wù)端提供響應(yīng)

          10.四次揮手

          11.瀏覽器解析和渲染頁(yè)面,展示給用戶

          ?

          參考資料:

          https://blog.csdn.net/zheng_guan/article/details/96427176

          https://zhuanlan.zhihu.com/p/109826876

          https://baijiahao.baidu.com/s?id=1707849542251291110&wfr=spider&for=pc

          https://blog.csdn.net/ningmengshuxiawo/article/details/115413766

          https://blog.csdn.net/weixin_48126962/article/details/117074843

          https://blog.csdn.net/qq_42978418/article/details/108399390

          ?


          瀏覽 57
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲一级视频在线 | 成人网av影音 | 美女被操91视频 | 免费无码一区二区三区四区五区 | 加勒比操逼|