中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > UDP數(shù)據(jù)報(bào)與TCP傳輸應(yīng)用系統(tǒng)的層間接口設(shè)計(jì)

        UDP數(shù)據(jù)報(bào)與TCP傳輸應(yīng)用系統(tǒng)的層間接口設(shè)計(jì)

        作者: 時(shí)間:2011-12-08 來(lái)源:網(wǎng)絡(luò) 收藏
        TCP/IP協(xié)議大致可以分為以下的層次:應(yīng)用層、TCP/IP協(xié)議層、網(wǎng)卡驅(qū)動(dòng)。這些協(xié)議層之間的接口如圖 1所示,其中輸出是數(shù)據(jù)流向?qū)Ψ剑斎胧菙?shù)據(jù)流向本地應(yīng)用層。

         ?。?)應(yīng)用層和rap層的接口

          如果是作為客戶(hù)端,則包含:

          ·bind:使用bind綁定本地端口;

          ·cONnect:需要使用connect進(jìn)行連接,當(dāng)應(yīng)用層調(diào)用connect函數(shù)時(shí),TCP層負(fù)責(zé)建立連接,返回值指 示是否連接成功;

          ·send:使用send發(fā)送一個(gè)應(yīng)用層的數(shù)據(jù);

          ·recelve:當(dāng)rap層有數(shù)據(jù)到達(dá)時(shí),rap層將觸發(fā)OnReceive函數(shù),用戶(hù)可以在OnReceive函數(shù)中做接收 處理;

          ·close:需要使用close函數(shù)主動(dòng)和對(duì)方斷開(kāi)連接,連接斷開(kāi)以后返回真,如果斷開(kāi)操作超時(shí),則返回假。


         圖1 TCP/IP

          如果是作為服務(wù)器,則包含:

          ·bind綁定;

          ·listen:在綁定的本地端口監(jiān)聽(tīng);

          ·對(duì)方發(fā)來(lái)連接;

          ·send發(fā)送;

          ·recelve接收;

          ·close斷開(kāi)連接。

          總的來(lái)說(shuō),rap層要提供給應(yīng)用層以上的一些函數(shù)。

         ?。?)協(xié)議和網(wǎng)卡驅(qū)動(dòng)的接口

          發(fā)送時(shí),網(wǎng)卡提供send函數(shù),當(dāng)協(xié)議調(diào)用send函數(shù)時(shí),網(wǎng)卡驅(qū)動(dòng)負(fù)責(zé)發(fā)送這個(gè)包。

          接收時(shí),當(dāng)網(wǎng)卡接收到一個(gè)數(shù)據(jù)包以后,產(chǎn)生一個(gè)中斷,系統(tǒng)提供一個(gè)中斷處理函數(shù),在這個(gè)中斷函 數(shù)中將這個(gè)包提交給TCP/IP層。

         ?。?)TCP/IP內(nèi)部的

          發(fā)送流程如下:應(yīng)用層調(diào)用send,要求rap層發(fā)送,TOP層填寫(xiě)好TCP頭部信息以后,要求IP層發(fā)送,IP 層檢查是否能在ARP緩存中找到IP對(duì)應(yīng)的物理地址,如果沒(méi)有則要ARP協(xié)議發(fā)送一個(gè)ARP請(qǐng)求,如果有則填 寫(xiě)IP頭。再設(shè)置一個(gè)網(wǎng)絡(luò)接口層,這一層負(fù)責(zé)填寫(xiě)MAC層頭部,這一層的另外一個(gè)功能是將接收網(wǎng)絡(luò)數(shù)據(jù) 流分流(也就是對(duì)IP包和ARP交給不同的函數(shù)處理)。

          對(duì)網(wǎng)卡的接收和TCP/IP協(xié)議的接口來(lái)說(shuō),直接在驅(qū)動(dòng)程序的接收中斷處理函數(shù)中處理P頭、TCP頭,然 后把數(shù)據(jù)送給應(yīng)用層。

         ?。?)實(shí)現(xiàn)隊(duì)列

          ·中斷處理函數(shù)過(guò)大,可能會(huì)帶來(lái)問(wèn)題;

          ·各個(gè)層的界面不清晰;

          ·越向底層所要發(fā)送的包數(shù)目越多。如果發(fā)送時(shí)也是從應(yīng)用層一直運(yùn)行到網(wǎng)卡驅(qū)動(dòng),

          那么就比較難解決底層的多佘數(shù)據(jù)包發(fā)送的問(wèn)題。

          所以將在層次之間設(shè)一個(gè)隊(duì)列,程序循環(huán)檢測(cè)各個(gè)層間隊(duì)列中是否有元素,如果有元素則提取后處理 。構(gòu)建的一個(gè)隊(duì)列結(jié)構(gòu)體如下。

          這個(gè)隊(duì)列提供隊(duì)列的初始化、隊(duì)列的寫(xiě)入、隊(duì)列的讀出等函數(shù),以及完成隊(duì)列的操作。但是隊(duì)列多也 會(huì)占用資源和查詢(xún)時(shí)間,所以在沒(méi)有必要設(shè)置隊(duì)列的地方將苴接采用函數(shù)調(diào)用的方法。

          (5)模塊和模塊之間的接口

          各個(gè)模塊之中有三種類(lèi)型的子模塊:一般函數(shù)、中斷函數(shù)和進(jìn)程。

          ·一般函數(shù)只有在被進(jìn)程調(diào)用時(shí)才運(yùn)行。

          ·中斷函數(shù)一般由中斷觸發(fā)而運(yùn)行,這里主要有網(wǎng)卡驅(qū)動(dòng)的接收處理函數(shù)和定時(shí)器模

          塊中的定時(shí)器。

          由于這里采用隊(duì)列的方式作為模塊或?qū)娱g的接口,所以必須反復(fù)查詢(xún)各個(gè)模塊的輸入隊(duì)列,所有含有 輸入隊(duì)列的模塊都必須有一個(gè)反復(fù)被調(diào)用的函數(shù),稱(chēng)之為進(jìn)程。在主進(jìn)程maln函數(shù)中反復(fù)地調(diào)用這些進(jìn)程。

        tcp/ip相關(guān)文章:tcp/ip是什么




        關(guān)鍵詞: UDP TCP傳輸 層間接口

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉