1. 通信協(xié)議

        共 2302字,需瀏覽 5分鐘

         ·

        2022-05-14 11:23

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

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


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


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

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

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

        ?

        TCP【打電話】

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

        UDP【發(fā)短信】

        UDP 是一種面向無(wú)連接的傳輸層協(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í)例開(kāi)始監(jiān)聽(tīng)后,這個(gè)電話插座就時(shí)刻監(jiān)聽(tīng)著消息的傳入,誰(shuí)撥通我這個(gè)“IP地址和端口”,我就接通誰(shuí)。

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

        服務(wù)器端先初始化Socket,然后與端口綁定(bind),對(duì)端口進(jìn)行監(jiān)聽(tīng)(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ì)列)?
        同步(互斥量、條件變量、讀寫(xiě)鎖、文件和寫(xiě)記錄鎖、信號(hào)量)?
        共享內(nèi)存(匿名的和具名的)?
        遠(yuǎn)程過(guò)程調(diào)用(Solaris門和Sun RPC)

        本地可以通過(guò)進(jìn)程PID來(lái)唯一標(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)聽(tīng)到連接請(qǐng)求,即收到SYN J包,調(diào)用accept函數(shù)接收請(qǐng)求向客戶端發(fā)送SYN K ,ACK J+1,這時(shí)accept進(jìn)入阻塞狀態(tài);

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

        【服務(wù)端,知道對(duì)方知道,開(kāi)始干活】服務(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ò)訪問(wèn)流程

        應(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)
          
          

            1. 午夜国产偷拍 | 亚洲精品一二三区 | 久久成人精品 | 日韩成人精品在线观看 | 中文字幕日韩精品欧美凉森玲梦 |