• <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ò)才歷歷可見。 -- 聶魯達(dá)

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            BBS

            Blog

            Web

            最新評論

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

            本文背景:
            TCP/IP模型很成功,其設(shè)計(jì)已經(jīng)經(jīng)得起多年的磨練。無奈,TCP/IP協(xié)議族是很繁雜的一個(gè)模型,為了全面理解它,宜采取先全局后局部的庖丁解牛式。本文從應(yīng)用的角度試著去理解TCP/IP的全貌,配合例子加以講解。
            本文目的:
            鞏固自己這方面的知識,作為深入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(無連接);
            職責(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)用層的話可對數(shù)據(jù)進(jìn)行加密之類的處理,增強(qiáng)的是傳輸數(shù)據(jù)的安全性,如https。
            鏈路層可對數(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ū)別:
            傳輸層是端對端的通信,也就是說,處理的是進(jìn)程與進(jìn)程之間的通信,如兩個(gè)TCP進(jìn)程;
            網(wǎng)絡(luò)層是點(diǎn)對點(diǎn)的通信,也就是說,處理的是機(jī)器之間的 邏輯連接。

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

            從尋址方式上看各層區(qū)別:
            網(wǎng)絡(luò)層通過IP尋址;
            鏈路層通過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地址,請看下面注解。

            端口
            端口在硬件里的名稱為接口,跟網(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ù)到來時(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)樗荒茏儭K裕瑧?yīng)用層用IP尋址。
            但是,硬件又必須用MAC才能找到機(jī)器,為此引入ARP及RARP來做兩地址的查詢與轉(zhuǎn)換。


            3. TCP/IP應(yī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)識應(yīng)用層協(xié)議的標(biāo)識符——端口 21。
            步驟2:網(wǎng)絡(luò)層接收了傳輸層的TCP包,由于IP協(xié)議可接收ICMP(1)、IGMP(2)、TCP(6)、UDP(17)來的數(shù)據(jù),其需要一個(gè)標(biāo)識域來表明是那個(gè)協(xié)議發(fā)來的數(shù)據(jù)。此數(shù)據(jù)域?qū)⒓佑贗P包頭中。除此之外,還將賦以IP地址。
            步驟3:數(shù)據(jù)鏈路層接收網(wǎng)絡(luò)層來的數(shù)據(jù)后,加之標(biāo)識域表明數(shù)據(jù)是從IP、ARP或RARP來。然后,加上MAC地址往外發(fā)送。
            步驟4將數(shù)據(jù)由網(wǎng)卡送出,送的過程中,ARP利用目標(biāo)IP找到最近的路由器MAC地址,然后將包發(fā)往它,之后由它找到一個(gè)路由器,最終將數(shù)據(jù)包送到右邊機(jī)器的網(wǎng)卡中。
            步驟5根據(jù)包頭的標(biāo)識域可知這是一個(gè)IP數(shù)據(jù)包,利用IP協(xié)議拆包。
            步驟6根據(jù)包頭的標(biāo)識域可知這是一個(gè)TCP包,利用TCP協(xié)議拆包。
            步驟7根據(jù)包頭的端口號,將數(shù)據(jù)直接送入應(yīng)用層的對應(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 閱讀(2089) 評論(3)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)編程

            評論

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

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

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

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

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

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

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

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

            亚洲精品无码久久一线| 欧美久久亚洲精品| 久久久久久精品免费看SSS| 九九精品久久久久久噜噜| 麻豆AV一区二区三区久久| 97久久超碰国产精品2021| 日本欧美国产精品第一页久久| 亚洲精品99久久久久中文字幕| 51久久夜色精品国产| 99久久香蕉国产线看观香| 久久久久久久久无码精品亚洲日韩| 久久久久99精品成人片牛牛影视| 色欲综合久久中文字幕网| 日本三级久久网| 国产精品久久久久久久午夜片| 久久天天躁狠狠躁夜夜96流白浆| 91亚洲国产成人久久精品| 国色天香久久久久久久小说| 日本高清无卡码一区二区久久 | 91秦先生久久久久久久| 久久精品久久久久观看99水蜜桃| 久久青青草原国产精品免费 | 狠狠色丁香久久婷婷综| 亚洲AV无码1区2区久久| 久久久久亚洲AV成人网| 久久99国产精一区二区三区| 久久SE精品一区二区| 精品无码久久久久久久久久| 久久人人爽人人澡人人高潮AV| 久久精品中文闷骚内射| 精品人妻伦九区久久AAA片69| 久久久久这里只有精品| 亚洲一本综合久久| 久久午夜电影网| 久久er国产精品免费观看2| 粉嫩小泬无遮挡久久久久久| 亚洲AV无码1区2区久久| 久久久久久国产精品免费无码| 久久AV无码精品人妻糸列| 一本一本久久A久久综合精品| 久久无码专区国产精品发布 |