色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 嵌入式linux tcpip協(xié)議棧概述

嵌入式linux tcpip協(xié)議棧概述 時間:2018-01-23      來源:未知

1. 概述

TCP/IP協(xié)議棧可以實(shí)現(xiàn)不同型號、不同操作系統(tǒng)的計算機(jī)之間的通信,它并不是某個具體的協(xié)議,而是一組協(xié)議。我們都知道OSI七層模型中有物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層、應(yīng)用層共七層,每一層都對應(yīng)多個相關(guān)的協(xié)議。同樣,TCP/IP網(wǎng)絡(luò)協(xié)議也進(jìn)行了層次的劃分,分為四層,分別規(guī)定了每層的作用以及它們的協(xié)議。

嵌入式linux tcpip協(xié)議棧

網(wǎng)絡(luò)接口層:通常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機(jī)中對應(yīng)的網(wǎng)卡,它們一起處理與電纜的物理接口細(xì)節(jié)。

網(wǎng)絡(luò)層:有時也稱作網(wǎng)際層或互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動,例如分組的選路。在

T C P / I P協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括I P協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(I n t e r n e t互聯(lián)網(wǎng)控制報文協(xié)議),以及IGMP協(xié)議(I n t e r n e t組管理協(xié)議)。

運(yùn)輸層:主要為兩臺主機(jī)上的應(yīng)用程序提供端到端的通信。在TCP/IP協(xié)議族中,有兩個互不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。TCP為兩臺主機(jī)提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認(rèn)接收到的分組,設(shè)置發(fā)送后確認(rèn)分組的超時時鐘等。由于運(yùn)輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細(xì)節(jié)。而另一方面,UDP則為應(yīng)用層提供一種非常簡單的服務(wù)。它只是把稱作數(shù)據(jù)報的分組從一臺主機(jī)發(fā)送到另一臺主機(jī),但并不保證該數(shù)據(jù)報能到達(dá)另一端。任何必需的可靠性必須由應(yīng)用層來提供。這兩種運(yùn)輸層協(xié)議分別在不同的應(yīng)用程序中有不同的用途,這一點(diǎn)將在后面看到。

應(yīng)用層:負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)

假設(shè)在一個局域網(wǎng)(LAN)如以太網(wǎng)中有兩臺主機(jī),二者都運(yùn)行FTP協(xié)議,如圖列出了該過程所涉及到的所有協(xié)議。

嵌入式linux tcpip協(xié)議棧

這里,我們列舉了一個FTP客戶程序和另一個FTP服務(wù)器程序。大多數(shù)的網(wǎng)絡(luò)應(yīng)用程序都被設(shè)計成客戶-服務(wù)器模式。服務(wù)器為客戶提供某種服務(wù),在該圖中就是訪問服務(wù)器所在主機(jī)上的文件。在遠(yuǎn)程登錄應(yīng)用程序Telnet中,為客戶提供的服務(wù)是登錄到服務(wù)器主機(jī)上。在同一層上,雙方都有對應(yīng)的一個或多個協(xié)議進(jìn)行通信。例如,某個協(xié)議允許TCP層進(jìn)行通信,而另一個協(xié)議則允許兩個IP層進(jìn)行通信。在圖的右邊,我們可以看出應(yīng)用程序通常是一個用戶進(jìn)程,而下三層則一般在linux操作系統(tǒng)內(nèi)核中執(zhí)行。頂層與下三層之間還有另一個關(guān)鍵的不同之處。應(yīng)用層關(guān)心的是應(yīng)用程序的細(xì)節(jié),而不是數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸活動。下三層對應(yīng)用程序一無所知,但它們要處理所有的通信細(xì)節(jié)。在圖中列舉了四種不同層次上的協(xié)議。FTP是一種應(yīng)用層協(xié)議, TCP是一種運(yùn)輸層協(xié)議,IP是一種網(wǎng)絡(luò)層協(xié)議,而以太網(wǎng)協(xié)議則應(yīng)用于鏈路層上。TCP/IP協(xié)議族是一組不同的協(xié)議組合在一起構(gòu)成的協(xié)議族。盡管通常稱該協(xié)議族為TCP/IP,但TCP和IP只是其中的兩種協(xié)議而已(該協(xié)議族的另一個名字是I n t e r n e t協(xié)議族(Internet Protocol Suite))。網(wǎng)絡(luò)接口層和應(yīng)用層的目的是很顯然的—前者處理有關(guān)通信媒介的細(xì)節(jié)(以太網(wǎng)、令牌環(huán)網(wǎng)等),而后者處理某個特定的用戶應(yīng)用程序( FT P、Telnet等)。但是,從表面上看,網(wǎng)絡(luò)層和運(yùn)輸層之間的區(qū)別不那么明顯。

2.數(shù)據(jù)封裝

嵌入式linux tcpip協(xié)議棧

數(shù)據(jù)從應(yīng)用層到物理層要經(jīng)過一系列的加包頭過程,反之,從物理層到應(yīng)用層要進(jìn)行拆包,每經(jīng)過一層就要進(jìn)行相應(yīng)的去數(shù)據(jù)包包頭。

3. 數(shù)據(jù)傳輸

數(shù)據(jù)的傳輸使用了一個非常重要的結(jié)構(gòu)體sk_buff,該結(jié)構(gòu)體用來實(shí)現(xiàn)數(shù)據(jù)在各個層次的數(shù)據(jù)傳輸。該數(shù)據(jù)結(jié)構(gòu)在linux內(nèi)核源碼的頭文件中進(jìn)行的聲明,結(jié)構(gòu)體主要成員變量如下:

struct sk_buff {

struct sk_buff *next;

struct sk_buff *prev;

struct net_device *dev; //數(shù)據(jù)包屬于哪個網(wǎng)卡

unsigned int len, //有效數(shù)據(jù)長度

data_len; //分片數(shù)據(jù)段的長度

__u16 mac_len,

hdr_len;

sk_buff_data_t tail;

sk_buff_data_t end;

unsigned char *head, //緩存區(qū)的頭指針

*data; //有效數(shù)據(jù)頭指針

...

};

嵌入式linux tcpip協(xié)議棧

sk_buff相關(guān)操作函數(shù):

/*********************************************************

*功能:分配sk_buff結(jié)構(gòu)體

*參數(shù):size :緩存區(qū)大小

* priority:分配標(biāo)志GFP_KERNEL,GFP_ATOMIC...

*返回值:成功返回skb指針

* 失敗返回NULL

********************************************************/

struct sk_buff *alloc_skb(unsigned int size,gfp_t priority)

/**********************************************************

*功能:釋放sk_buff

*參數(shù):skb:skb指針

*返回值:void

**********************************************************/

void kfree_skb(struct sk_buff *skb)

/*tail下移,有效數(shù)據(jù)區(qū)增大*/

unsigned char *skb_put(struct sk_buff *skb, unsigned int len);

/*data上移,有效數(shù)據(jù)區(qū)增大*/

unsigned char *skb_push(struct sk_buff *skb, unsigned int len);

/*data tail下移,有效數(shù)據(jù)區(qū)不變*/

void skb_reserve(struct sk_buff *skb, int len)

上一篇:數(shù)據(jù)結(jié)構(gòu)樹應(yīng)用在哪兒比較多

下一篇:ubuntu新版本安裝全攻略教程

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 欧美精品无码一区二区三区老鸭窝 | 亚洲国产精品一区二区成人 | 免费精品久久天干天干 | 亚洲国产成人精品无码区在线网站 | 人妻少妇精品视中文字幕国语 | 精品人妻午夜一区二区三区四区 | 国产精品不卡av在线观看 | 国产免费内射又粗又爽密桃视频 | 最近中文字幕在线中文视频 | 天码AV无码一区二区三区四区 | 国产清纯白嫩初高生在线观看 | 无码高潮少妇多水多毛 | 日本久久99成人网站 | 伊人春色中文字幕 | 久久亚洲AV成人无码国产 | xxxxwwww欧美 | 国产精品泄火熟女 | 日韩精品成人a在线观看 | 日韩东京热无码AV一区 | 天天躁夜夜躁狠狠躁2021 | 旧里番高h无码无修在线观看 | 无人区码一码二码三mba智库 | 欧美亚洲精品午夜福利av | 一性一交一伦一片A片庆乱码 | 日韩一区欧美二区 | 久久久久人妻精品一区三寸 | 黑人大战中国av女叫惨了 | 被主人带到调教室调教 | 蜜臀在线观看视频 | 狠狠色欧美亚洲综合色 | 欧美性videos高清精品 | 亚洲AV无码国产精品久久 | 东北老女人高潮呻吟视频 | 亚洲熟少妇在线播放999 | 蜜桃久久精品成人无码AV | 夫の目の前侵犯新婚人妻在线 | 妺妺窝人体色WWW看美女 | 8090成人午夜精品无码 | 日本妇人成熟免费中文字幕 | 一女多男两根同时进去性视频 | 三级久久久 |