久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1692|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-5 17:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  TCP/IP協(xié)議大致可以分為以下的層次:應(yīng)用層、TCP/IP協(xié)議層、網(wǎng)卡驅(qū)動(dòng)。這些協(xié)議層之間的接口如圖 1所示,其中輸出是數(shù)據(jù)流向?qū)Ψ剑斎胧菙?shù)據(jù)流向本地應(yīng)用層。
  (1)應(yīng)用層和rap層的接口
  如果是作為客戶端,則包含:
  ·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ù),用戶可以在OnReceive函數(shù)中做接收 處理;
  ·close:需要使用close函數(shù)主動(dòng)和對(duì)方斷開連接,連接斷開以后返回真,如果斷開操作超時(shí),則返回假。

 圖1 TCP/IP層間接口
  如果是作為服務(wù)器,則包含:
  ·bind綁定;
  ·listen:在綁定的本地端口監(jiān)聽;
  ·對(duì)方發(fā)來(lái)連接;
  ·send發(fā)送;
  ·recelve接收;
  ·close斷開連接。
  總的來(lái)說(shuō),rap層要提供給應(yīng)用層以上的一些函數(shù)。
  (2)協(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層。
  (3)TCP/IP內(nèi)部的層間接口
  發(fā)送流程如下:應(yīng)用層調(diào)用send,要求rap層發(fā)送,TOP層填寫好TCP頭部信息以后,要求IP層發(fā)送,IP 層檢查是否能在ARP緩存中找到IP對(duì)應(yīng)的物理地址,如果沒(méi)有則要ARP協(xié)議發(fā)送一個(gè)ARP請(qǐng)求,如果有則填 寫IP頭。再設(shè)置一個(gè)網(wǎng)絡(luò)接口層,這一層負(fù)責(zé)填寫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)用層。
  (4)實(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ì)列的寫入、隊(duì)列的讀出等函數(shù),以及完成隊(duì)列的操作。但是隊(duì)列多也 會(huì)占用資源和查詢時(shí)間,所以在沒(méi)有必要設(shè)置隊(duì)列的地方將苴接采用函數(shù)調(diào)用的方法。
  (5)模塊和模塊之間的接口
  各個(gè)模塊之中有三種類型的子模塊:一般函數(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ù)查詢各個(gè)模塊的輸入隊(duì)列,所有含有 輸入隊(duì)列的模塊都必須有一個(gè)反復(fù)被調(diào)用的函數(shù),稱之為進(jìn)程。在主進(jìn)程maln函數(shù)中反復(fù)地調(diào)用這些進(jìn)程。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩国产在线播放 | 日本a视频 | 欧美日韩无| 我要操网站 | 91精品久久久久久久久 | av免费在线观看网站 | 亚洲一区在线观看视频 | www.天天操 | 免费观看全黄做爰的视频 | 欧美精品久久久久 | 日韩少妇av | 国产免费一区二区三区 | 亚洲色在线视频 | 亚洲国产福利 | 99视频免费在线观看 | 91精品国产日韩91久久久久久 | 精品日韩在线 | 精品国产久 | 久久久婷婷 | 亚洲精品久久久久久久久 | 国产区视频在线观看 | 精品黑人一区二区三区国语馆 | 在线播放一区 | 婷婷激情综合网 | 日本不卡一区二区 | 经典三级第一页 | 99国产精品99久久久久久 | 蜜桃精品一区二区三区 | 中文字幕丰满人伦在线 | 日本午夜网站 | 中文字幕在线观看亚洲 | 欧美一区二区免费 | 亚洲成人免费 | 91精品福利 | 一级片免费 | 免费一级全黄少妇性色生活片 | 亚洲一区二区免费视频 | 国产成人精品亚洲男人的天堂 | 日韩免费毛片 | 欧美一区二区精品 | 麻豆精品一区二区 |