• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            山寨:不是最好的,是最適合我們的!歡迎體驗(yàn)山寨 中文版MSDN

            Blog @ Blog

            當(dāng)華美的葉片落盡,生命的脈絡(luò)才歷歷可見(jiàn)。 -- 聶魯達(dá)

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            BBS

            Blog

            Web

            最新評(píng)論

            TCP/IP 協(xié)議的結(jié)構(gòu)與運(yùn)行原理[圖]

            本文背景:
            TCP/IP模型很成功,其設(shè)計(jì)已經(jīng)經(jīng)得起多年的磨練。無(wú)奈,TCP/IP協(xié)議族是很繁雜的一個(gè)模型,為了全面理解它,宜采取先全局后局部的庖丁解牛式。本文從應(yīng)用的角度試著去理解TCP/IP的全貌,配合例子加以講解。
            本文目的:
            鞏固自己這方面的知識(shí),作為深入TCP/IP協(xié)議族的基礎(chǔ)。
            本文內(nèi)容:


            1. TCP/IP協(xié)議族組成
            從字面上理解,TCP/IP協(xié)議族只有TCP、IP協(xié)議,其實(shí)不然。其真正的名字是Internet協(xié)議族 (Internet Protocol Suite) 。和大型軟件一樣,其分為四層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層。
            每一層的功能和目的都是不一樣的,每一層上服務(wù)的協(xié)議也不是有區(qū)別的。從上往下看:
            應(yīng)用層(產(chǎn)生|利用數(shù)據(jù))
            協(xié)議:FTP、HTTP、SNMP(網(wǎng)管)、SMTP(Email)等常用協(xié)議;
            職責(zé):利用應(yīng)用層協(xié)議發(fā)送用戶的應(yīng)用數(shù)據(jù),比如利用FTP發(fā)送文件,利用SMTP發(fā)送Email;由系統(tǒng)調(diào)用交給運(yùn)輸層處理。
            運(yùn)輸層(發(fā)送|接收數(shù)據(jù))
            協(xié)議:TCP(有連接)、UDP(無(wú)連接);
            職責(zé):負(fù)責(zé)建立連接、將數(shù)據(jù)分割發(fā)送;釋放連接、數(shù)據(jù)重組或錯(cuò)誤處理。
            網(wǎng)絡(luò)層(分組|路由數(shù)據(jù))
            協(xié)議:IP、ICMP(控制報(bào)文協(xié)議)、IGMP(組管理協(xié)議);
            職責(zé):負(fù)責(zé)數(shù)據(jù)的路由,即數(shù)據(jù)往哪個(gè)路由器發(fā)送。
            鏈路層(按位發(fā)送|接收數(shù)據(jù))
            協(xié)議:以太網(wǎng)卡設(shè)備驅(qū)動(dòng)、令牌網(wǎng)卡驅(qū)動(dòng)程序、ARP、RARP等;
            職責(zé):負(fù)責(zé)傳輸校驗(yàn)二進(jìn)制用戶數(shù)據(jù)。

            從可靠性角度看各層區(qū)別:
            網(wǎng)絡(luò)層IP協(xié)議是不可靠的協(xié)議,為此,如果其上面的層也不做任何特殊處理,也將是不可靠的。于是,運(yùn)輸層的TCP協(xié)議彌補(bǔ)了這個(gè)空缺,提供有連接的、可校驗(yàn)的數(shù)據(jù)傳輸服務(wù)。
            應(yīng)用層的話可對(duì)數(shù)據(jù)進(jìn)行加密之類的處理,增強(qiáng)的是傳輸數(shù)據(jù)的安全性,如https。
            鏈路層可對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)。

            從運(yùn)行進(jìn)程態(tài)看各層區(qū)別:
            應(yīng)用層運(yùn)行在用戶程序進(jìn)程中,屬性用戶態(tài);
            其他層則在系統(tǒng)內(nèi)核進(jìn)程運(yùn)行,屬于核心態(tài);
            從通信方式上看各層區(qū)別:
            傳輸層是端對(duì)端的通信,也就是說(shuō),處理的是進(jìn)程與進(jìn)程之間的通信,如兩個(gè)TCP進(jìn)程;
            網(wǎng)絡(luò)層是點(diǎn)對(duì)點(diǎn)的通信,也就是說(shuō),處理的是機(jī)器之間的 邏輯連接。

            從傳輸數(shù)據(jù)單元上看區(qū)別:
            傳輸層上形成的是TCP或UDP報(bào)文段;
            網(wǎng)絡(luò)層形成的是IP數(shù)據(jù)報(bào);
            數(shù)據(jù)鏈路層形成的是幀(Frame)。

            從尋址方式上看各層區(qū)別:
            網(wǎng)絡(luò)層通過(guò)IP尋址;
            鏈路層通過(guò)MAC尋址。

            注解:
            ICMP: 供IP用于發(fā)送錯(cuò)誤報(bào)文,也可由應(yīng)用層直接調(diào)用;
            IGMP: 用于多播(Multicast),比如,UDP可用多播IP地址往多個(gè)目標(biāo)主機(jī)發(fā)送數(shù)據(jù)報(bào),就是依靠它。
            ARP&RARP: 用戶在IP地址與MAC地址互相轉(zhuǎn)換。
            2. TCP/IP模型基礎(chǔ)設(shè)施
            IP地址
            共分五類地址,分別如下:
            A類:0.  0. 0. 0——127.255.255.255(單播)
            B類:128.0.0.0——191.255.255.255(單播)
            C類:192.0.0.0——223.255.255.255(單播)
            D類:224.0.0.0——239.255.255.255(多播)
            E類:240.0.0.0——247.255.255.255(待用)  
            附加類:255.255.255.255 (傳輸層UDP廣播)

            MAC地址
            每個(gè)網(wǎng)卡的MAC地址世界唯一,不可變;計(jì)算機(jī)通信其實(shí)靠的是MAC地址,而不是IP地址,請(qǐng)看下面注解。

            端口
            端口在硬件里的名稱為接口,跟網(wǎng)卡的入口一樣;在軟件概念里,可以理解為一些數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)緩沖區(qū)。
            端口可分為:
            知名端口:0001——1023 (例如FTP 20,TCP 21,UDP 69)
            臨時(shí)端口:1024——5000
            預(yù)留端口:5000——65535
            假設(shè)你的應(yīng)用程序需要端口,一般是從臨時(shí)端口分配,只在應(yīng)用程序運(yùn)行時(shí)有效,故稱臨時(shí)端口。
            傳輸層可將進(jìn)程與端口進(jìn)行綁定,當(dāng)數(shù)據(jù)到來(lái)時(shí),其知該往哪個(gè)進(jìn)程緩沖區(qū)里送。

            注解:
            IPMAC的區(qū)別:IP地址是基于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的,是動(dòng)態(tài)可變的。MAC地址是由網(wǎng)卡廠商定的,是終身不可變且唯一的。假設(shè)應(yīng)用層利用MAC地址傳輸數(shù)據(jù),那么其是不靈活的,因?yàn)樗荒茏?。所以,?yīng)用層用IP尋址。
            但是,硬件又必須用MAC才能找到機(jī)器,為此引入ARP及RARP來(lái)做兩地址的查詢與轉(zhuǎn)換。


            3. TCP/IP應(yīng)用案例分析
            場(chǎng)景:左邊用戶利用FTP客戶端與右邊FTP服務(wù)器端進(jìn)行連接上傳文件。
            數(shù)據(jù)將從上往下流,每到一層都會(huì)加上層頭,數(shù)據(jù)以類堆棧形式存儲(chǔ),到目標(biāo)機(jī)器時(shí),底層數(shù)據(jù)先得,由底向上,符合堆棧先進(jìn)后出的特性。
              
            1  TCP/IP內(nèi)部分解圖
            步驟1:應(yīng)用層準(zhǔn)備好數(shù)據(jù)文件,調(diào)用Windows API通知傳輸層TCP建立連接,傳輸層加入TCP包頭,其中包含標(biāo)識(shí)應(yīng)用層協(xié)議的標(biāo)識(shí)符——端口 21。
            步驟2:網(wǎng)絡(luò)層接收了傳輸層的TCP包,由于IP協(xié)議可接收ICMP(1)、IGMP(2)、TCP(6)、UDP(17)來(lái)的數(shù)據(jù),其需要一個(gè)標(biāo)識(shí)域來(lái)表明是那個(gè)協(xié)議發(fā)來(lái)的數(shù)據(jù)。此數(shù)據(jù)域?qū)⒓佑贗P包頭中。除此之外,還將賦以IP地址。
            步驟3:數(shù)據(jù)鏈路層接收網(wǎng)絡(luò)層來(lái)的數(shù)據(jù)后,加之標(biāo)識(shí)域表明數(shù)據(jù)是從IP、ARP或RARP來(lái)。然后,加上MAC地址往外發(fā)送。
            步驟4將數(shù)據(jù)由網(wǎng)卡送出,送的過(guò)程中,ARP利用目標(biāo)IP找到最近的路由器MAC地址,然后將包發(fā)往它,之后由它找到一個(gè)路由器,最終將數(shù)據(jù)包送到右邊機(jī)器的網(wǎng)卡中。
            步驟5根據(jù)包頭的標(biāo)識(shí)域可知這是一個(gè)IP數(shù)據(jù)包,利用IP協(xié)議拆包。
            步驟6根據(jù)包頭的標(biāo)識(shí)域可知這是一個(gè)TCP包,利用TCP協(xié)議拆包。
            步驟7根據(jù)包頭的端口號(hào),將數(shù)據(jù)直接送入應(yīng)用層的對(duì)應(yīng)緩沖區(qū)中,應(yīng)用程序負(fù)責(zé)解析數(shù)據(jù)包,做相應(yīng)的業(yè)務(wù)邏輯處理。


            注解:
            RFC(Request for Comment)各種Internet的正式標(biāo)準(zhǔn)都以RFC文檔形式發(fā)布。
            各種協(xié)議文檔:RFC 1122是鏈路層、網(wǎng)絡(luò)層、傳輸層的文檔;RFC 1123是應(yīng)用層的文檔;RFC 1600是各種Internet協(xié)議的標(biāo)準(zhǔn)化現(xiàn)狀。

            posted on 2008-05-19 23:18 isabc 閱讀(2082) 評(píng)論(3)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)編程

            評(píng)論

            # re: TCP/IP 協(xié)議的結(jié)構(gòu)與運(yùn)行原理[圖] 2008-05-20 09:13 補(bǔ)考少年

            very good, 3x  回復(fù)  更多評(píng)論   

            # re: TCP/IP 協(xié)議的結(jié)構(gòu)與運(yùn)行原理[圖] 2008-05-20 12:53 true

            總結(jié)的很好。  回復(fù)  更多評(píng)論   

            # re: TCP/IP 協(xié)議的結(jié)構(gòu)與運(yùn)行原理[圖] 2008-10-16 17:01 大笨狼

            好文章,看了很有收獲  回復(fù)  更多評(píng)論   

            廣告信息(免費(fèi)廣告聯(lián)系)

            中文版MSDN:
            歡迎體驗(yàn)

            久久人人爽人人爽AV片| 亚洲人成精品久久久久| 99久久国产综合精品女同图片| 51久久夜色精品国产| 久久夜色tv网站| 中文字幕亚洲综合久久2| 久久婷婷综合中文字幕| 久久亚洲欧美国产精品| 久久亚洲精品国产精品| 精品久久久久久成人AV| 久久ww精品w免费人成| 国产麻豆精品久久一二三| 久久99精品久久久久久动态图| 久久精品国产亚洲AV无码麻豆| 99久久精品午夜一区二区| 国产V亚洲V天堂无码久久久| 国产欧美久久久精品| 94久久国产乱子伦精品免费| 久久久久国产亚洲AV麻豆| 热久久最新网站获取| 久久天天躁狠狠躁夜夜躁2014| 99久久精品免费看国产一区二区三区| 亚洲午夜久久久久妓女影院| 色欲av伊人久久大香线蕉影院 | 国产午夜精品理论片久久| 久久精品国产99国产精品| 久久精品国产男包| 久久九九亚洲精品| 18禁黄久久久AAA片| 97精品国产91久久久久久| 久久久久久国产精品无码下载| 中文字幕乱码久久午夜| 国产精品gz久久久| 久久99久久99精品免视看动漫 | 久久久国产打桩机| 久久久久久综合一区中文字幕 | 久久久国产打桩机| 国产精品久久久久久久久久免费| 亚洲国产日韩综合久久精品| 99999久久久久久亚洲| 国产精品久久久久免费a∨|