TCP/IP協議棧及OSI參考模型詳解

OSI參考模型

OSI RM:開放系統互連參考模型(open systeminterconnection reference model)

OSI參考模型具有以下優點:


    • 簡化了相關的網絡操作;

    • 提供設備間的兼容性和標準接口;

    • 促進標準化工作;

    • 結構上可以分隔;

    • 易於實現和維護。

 

20世紀60年代以來,計算機網絡得到了飛速增長。各大廠商爲了在數據通信網絡領域佔據主導地    位,紛紛推出了各自的網絡架構體系和標準,如IBM公司的SNA,Novell IPX/SPX協議,Apple公司的AppleTalk協議,DEC公司的DECnet,以及廣泛流行的TCP/IP協議。同時,各大廠商針對自己的協議生產出了不同的硬件和軟件。各個廠商的共同努力促進了網絡技術的快速發展和網絡設備種類的迅速增長。但由於多種協議的並存,也使網絡變得越來越複雜;而且,廠商之間的網絡設備大部分不能兼容,很難進行通信。

    爲了解決網絡之間的兼容性問題,幫助各個廠商生產出可兼容的網絡設備,國際標準化組織ISO於1984年提出了OSI RM(OpenSystem Interconnection Reference Model,開放系統互連參考模型)。OSI 參考模型很快成爲計算機網絡通信的基礎模型。在設計OSI 參考模型時,遵循了以下原則:各個層之間有清晰的邊界,實現特定的功能;層次的劃分有利於國際標準協議的制定;層的數目應該足夠多,以避免各個層功能重複。

 

OSI分層

    

wKioL1SIBIaiOFczAADimSwcq6s561.jpg

        通常OSI參考模型第一層到第三層稱爲底層(lower layer),又叫介質層(media layer),底層負責數據在網絡中的傳送,網絡互連設備往往位於下三層,以硬件和軟件的方式來實現。OSI參考模型的第五層到第七層稱爲高層(upper layer),又叫住幾層(host layer),高層用於保障數據的正確傳輸,以軟件方式來實現。

 

OSI七層功能:

     wKiom1SIA_nwv_AgAAHIC52DZA4848.jpg

 

  • TCP/IP協議棧

 wKioL1SIBJKy7q8oAAEMHfbl-0E582.jpg

由於OSI模型和協議比較複雜,所以並沒有得到廣泛的應用。

而TCP/IP(transfer control protocol/internet protocol,傳輸控制協議/網際協議)模型因其開放性和易用性在實踐中得到了廣泛的應用,TCP/IP協議棧也成爲互聯網的主流協議。

 wKiom1SIBAHw1MybAAE_fDStMQg817.jpg

TCP/IP模型各個層次分別對應於不同的協議。TCP/IP協議棧是數據通信協議的集合 ,包含許多協議。其協議棧名字來源於其中最主要的兩個協議TCP(傳輸控制協議)和IP(網際協議)。TCP/IP協議棧負責確保網絡設備之間能夠通信。它是一組規則,規定了信息如何在網絡中傳輸。

 

TCP/IP模型的層間通信與數據封裝

 

wKiom1SIBN_iV-a8AAHEz78AQQE658.jpg



TCP/IP每一層都讓數據得以通過網絡進行傳輸,這些層之間使用PDU(協議數據單元)彼此交換信息,確保網絡設備之間能夠通信。

wKioL1SIBXngTSn2AAFtzBd_5_4918.jpg

    A.    傳輸層數據中加入TCP報頭後得到PDU被稱爲segment(數據段)

    B.    數據段被傳遞給網絡層,網絡層添加IP報頭得到的PDU被稱爲packet(數據包)

    C.    數據包被傳遞到數據鏈路層,封裝數據鏈路層報頭得到的PDU被稱爲frame(數據幀)

    D.    幀被轉換爲比特,通過網絡介質傳輸。

    這種協議棧向下傳遞數據,並添加報頭和報尾的過程稱爲封裝,數據被封裝並通過網絡傳輸後,接收設備將刪除添加的信息,並根據報頭中的信息決定如何將數據沿協議棧上傳給合適的應用程序,這個過程稱爲解封裝。不同設備的對等層之間依靠封裝和解封裝來實現相互間的通信。

 

      

物理層

       物理層功能:

  • 規定介質類型、接口類型、信令類型;

  • 規範在終端系統之間激活、維護和關閉物理鏈路的電氣、機械、流程和功能等方面的要求;

  • 規範電平、數據速率、最大傳輸距離和物理接頭等特徵。

 wKiom1SIBOXxKFUYAACaTcRu0rw177.jpg

物理層標準規定了物理介質和用於將設備與物理介質相連的接頭。

如上圖,局域網常用的物理層標準有IEEE指定的以太網標準802.3、令牌總線標準802.4、令牌環網標準802.5以及美國國家標準組織ANSI的X3T9.5委員會制訂的光纜標準FDDI(fiber distributed data interface,光纖分佈式數據接口)等。廣域網常用的物理層標準有電子工業協會和電信工業協會EIA/TIA制定的公共物理層接口標準EIA/TIA-232(即RS-232)、國際電信聯盟ITU制定的串行線路接口標準V.24和V.35、以及有關各種數字接口的物理和電氣特性的標準G.703等。

物理層介質和物理層設備:

  物理層介質:


    • 同軸電纜(coaxical cable)

    • 雙絞線(twisted pair)

    • 光纖(fiber)

    • 無線電波(wireless raido)

 

同軸電纜:

        wKiom1SIBdmQ2tgzAADxPQFWWRg801.jpg      

  同軸電纜是一種早期使用的傳輸介質,同軸電纜的標準分爲兩種,10BASE2和10BASE5.這兩種標準都支持10Mbps的傳輸速率,最長傳輸距離分別爲185米和500米。10BASE5和10BASE2的同軸電纜使用

的同軸電纜的直徑分別爲9.5mm和5mm,所以前者又稱爲粗纜,後者又稱爲細纜。一般情況下,10BASE2同軸電纜使用BNC接頭,10BASE5同軸電纜使用N型接頭。目前,10Mbps的傳輸速率早已不能滿足目前企業網絡需求,因此同軸電纜在目前企業網絡中很少應用。

      

雙絞線

    wKiom1SIBOqRwiqQAAD9zkp39Q0530.jpg

雙絞線採用了一對互相絕緣的金屬導線互相絞合的方式來抵禦一部分外界電磁波干擾。把兩根絕緣的銅導線按一定密度互相絞在一起,可以降低信號干擾的程度,每一根導線在傳輸中輻射的電波會被另一根線上發出的電波抵消,“雙絞線”的名字也是由此而來的。

 

與同軸電纜相比雙絞線(twistedpair)具有更低的製造和部署成本,因此在企業網絡中被廣泛應用。雙絞線可分爲屏蔽雙絞線(shieldedtwisted pair,STP)和非屏蔽雙絞線(unshieldedtwisted pair,UTP)。屏蔽雙絞線在雙絞線與外層絕緣封套之間有一個金屬屏蔽層,可以屏蔽電磁干擾。

 

雙絞線有很多種類型,不同類型的 雙絞線所支持的傳輸速率一般也不相同。例如,3類雙絞線支持10Mbps傳輸速率;5類雙絞線支持100Mbps傳輸速率,滿足快速以太網標準;超5類雙絞線及更高級別的雙絞線支持千兆以太網傳輸。

 

雙絞線線序:

568A線序:

1-綠白,2-綠,3-橙白,4-藍,5-藍白,6-橙,7-棕白,8-棕

568B線序:

   1-橙白,2-橙,3-綠白,4-藍,5-藍白,6綠,7-棕白,8-棕

 

根據網線兩端連接網絡設備的不同,網線又分爲直通線(平行線)和交叉線兩種。

直通線(平行線)就是按照前面介紹的568A標準或568B標準制作(即雙絞線兩端的線序一樣,568A的線序不常用,現主流用的都是568B的線序)

交叉線的一端保持原來的線序,另一端把1和3對調,2和5對調。

 

直通線和交叉線的應用:

    1.    同種類型設備之間使用交叉線連接,不同類型設備之間使用直通線連接;

    2.    路由器和PC屬於DTE(DataTerminal Equipment,數據終端設備)類型設備,交換機和HUB數據DCE(Data Circuit-terminatingEquipment,數據通信設備)類型設備。

 

光纖

      

wKioL1SIBtTQDsL7AAHLv3k9JBw286.jpg

雙絞線和同軸電纜傳輸數據時使用的是電信號,而光纖傳輸數據時使用的是光信號。光纖支持的傳輸速率包括10Mbps,100Mbps,1Gbps,10Gbps,甚至更高。根據光纖傳輸光信號模式的不同,光纖又可分爲單模光纖和多模光纖。單模光纖只能傳輸一種模式的光,不存在模間色散,因此適用於長距離高速傳輸。多模光纖允許不同模式的光在一根光纖上傳輸,由於模間色散較大而導致信號脈衝展寬嚴重,因此多模光纖主要用於局域網中的短距離傳輸。光纖連接器種類喝多,常用的連接器包括ST,FC,SC,LC連接器。

 

串口電纜

     wKioL1SIBtuh_7oPAAE_HOI2lt4917.jpg

網絡通信中常常會用到各種各樣的串口電纜。常用的串口電纜標準爲RS-232,同時也是推薦的標準。但是RS-232的傳輸速率有限,傳輸距離僅爲6米。其他的串口電纜標準可以支持更長的傳輸距離,例如RS-422和RS-485的傳輸距離可達1200米。RS-422和RS-485串口電纜通常使用V.35接頭,這種接頭在上世紀80年代已經淘汰,但是現在仍在幀中繼、ATM等傳統網絡上使用。V.24是RS-232標準的歐洲版。RS-232本身沒有定義接頭標準,常用的接頭類型爲DB-9和DB-25。現在,RS-232已逐漸被FireWire、USB等新標準取代,新產品和新設備已普遍使用USB標準。

 

衝突域

     wKiom1SIBkjjixwzAACvWv9IRbc487.jpg

如圖是一個10BASE5以太網,每個主機都是用同一根同軸電纜來與其它主機進行通信,因此,這裏的同軸電纜又被稱爲共享介質,相應的網絡被稱爲共享介質網絡,或簡稱爲共享式網絡。共享式網絡中,不同的主機同時發送數據時,就會產生信號衝突的問題,解決這一問題的方法一般是採用載波偵聽多路訪問/衝突檢測技術(carrier sense multiple access/collisiondetection)。

       CSMA/CD的基本工作過程如下:

        1.    終端不停地檢測共享線路的狀態。如果線路空閒,則可以發送數據;如果線路不空閒,則等待一段時間後繼續檢測(延時時間由退避算法決定)。

        2.    如果有另一個設備同時發送數據,兩個設備發送的數據會產生衝突。

        3.    終端設備檢測到衝突之後,馬上停止發送自己的數據,併發送特殊阻塞信息,以強化衝突信號,使線路上其他站點能夠儘早檢測到衝突。

        4.    終端設備檢測到衝突後,等待一段時間之後再進行數據發送(延時時間由退避算法決定)。

        CSMA/CD的工作原理可簡單總結爲:先聽後發,邊發邊聽,衝突停發,隨機延遲後重發。

                    

物理層設備:中繼器和集線器

 

數據鏈路層

       數據鏈路層又分爲MAC子層和LLC子層

      wKioL1SIBuDToShPAACwexBlz_8850.jpg

       MACSub-layer:media access controlsub-layer介質訪問控制子層

MAC子層負責指定數據如何通過物理線路進行傳輸,並向下與物理層通信,它定義了物理編址、網絡拓撲、線路規範、錯誤通知、按序傳遞和流量控制等功能。

       LLCSub-layer:logic link control sub-layer邏輯鏈路控制子層

    LLC子層負責識別協議類型並對數據進行封裝以便通過網絡進行傳輸。LLC子層主要執行數據鏈路層的大部分功能和網絡層的部分功能。如幀的收發功能,在發送時,幀由發送的數據加上地址和CRC校驗等構成,接收時將幀拆開,執行地址識別、CRC校驗,並具有幀順序控制、差錯控制、流量控制等功能。此外,它還執行數據報、虛電路、多路複用等部分網絡層的功能。

    

數據鏈路層協議

wKiom1SIBk7Cs5SUAAFC3wxBffU801.jpg

     數據鏈路層協議規定了數據鏈路層幀的封裝方式。

         局域網常用的數據鏈路層協議有IEEE802.2 LLC標準。

         廣域網常用的數據鏈路層協議有:

              HDLC(high-level data link control,高級數據鏈路控制)

              PPP(point-to-point protocol,點到點協議)

              FR(frame relay,幀中繼)

      

數據鏈路層-以太網地址(MAC地址)

      wKiom1SIBlGzRYY_AADHj1rzMTc659.jpg

       網絡設備的MAC地址是全球唯一的。MAC地址由48個二進制位組成,通常我們用十六進制數字來表示。其中前6位十六進制數字由IEEE統一分配給設備製造商,後6位十六進制數字由廠商自行分配。

 

網絡層

       功能:在不同的網絡之間轉發數據包


    • 提供邏輯地址,如果數據跨網絡傳遞,則需要使用邏輯地址來尋址。

    • 路由:將數據報文從一個網絡轉發到另一個網絡。

設備:路由器、三層交換機

 

網絡層協議

wKioL1SIBu2A4HS5AAFf0Wv8N9I094.jpg

常用網絡層協議有:

       IP(Internet Protocol):IP爲網絡層最主要的協議,其功能即爲網絡層的主要功能,一是提供邏輯編址,二是提供路由功能,三是報文的封裝和解封裝。ICMP、ARP、RARP協議輔助IP工作。

       ICMP(Internet Control Message Protocol)是一個管理協議併爲IP提供信息服務,ICMP消息承載在IP報文中。

       ARP(Address Resolution Protocol)實現IP地址到硬件地址的動態映射,即根據已知的IP地址獲得相應的硬件地址。

       RARP(Reverse Address Resolution Protocol)實現硬件地址到IP地址的動態映射,即根據已知的硬件地址獲得相應的IP地址。

 

       網絡層地址:網絡地址在網絡層唯一標識一臺網絡設備。

       網絡地址包含兩部分:網絡ID+主機ID(下節主要內容)

 

傳輸層

     主要功能:


    • 分段上層數據;

    • 建立端到端連接;

    • 將數據從一端主機傳送到另一端主機;

    • 保證數據按序、可靠、正確傳輸。

傳輸層協議:

wKiom1SIBljRr48mAAFPpXRKpXU847.jpg

傳輸層協議主要包含傳輸控制協議TCP(transfer control protocol)和用戶數據報文協議UDP(user datagram protocol)

 

wKiom1SIBzHSMZ78AAF3CFFhIxI894.jpg

TCP提供面向連接的、可靠的字節流服務。面向連接意味着使用TCP協議作爲傳輸層協議的兩個應用之間在相互交換數據之前必須建立一個TCP連接。TCP通過確認、校驗、重組等機制爲上層應用提供可靠的傳輸服務。但是TCP連接的建立以及確認、校驗等機制都需要耗費大量的工作並且會帶來大量的開銷。

UDP提供簡單的、面向數據報的服務。UDP不保證可靠性,即不保證報文能夠到達目的地。UDP適用於更關注傳輸效率的應用,如SNMP、Radius等,SNMP監控網絡並斷續發送告警等消息,如果每次發送少量信息都需要建立TCP連接,無疑會降低傳輸效率,所以諸如SNMP、Radius等更注重傳輸效率的應用程序都會選擇UDP作爲傳輸層協議。另外,UDP還適用於本身具備可靠性機制的應用層協議。

 

應用層功能


    • 爲用戶提供接口、處理特定的應用;

    • 數據加密、解密、壓縮、解壓縮;

    • 定義數據表示的標準。

應用層協議

 wKiom1SIBziAnfTLAAIEZXvr3G4915.jpg

應用層有許多協議,以下協議可以幫助您使用和管理 TCP/IP 網絡:

FTP(File TransferProtocol) 文件傳輸協議。用於傳輸獨立的文件,通常用於交互式用戶會話。

HTTP(HypertextTransfer Protocol)超文本傳輸協議。 用於傳輸那些構成萬維網上的頁面的文件。

TELNET :遠程終端訪問。用於傳送具有TELNET控制信息的數據。它提供了與終端設備或終端進程交互的標準方法,支持終端到終端的連接及進程到進程分佈式計算的通信。

SMTP(Simple MessageTransfer Protocol)簡單郵件傳輸協議 和

POP3(Post OfficeProtocol)郵局協議用於發送和接收郵件。

DNS(Domain NameServer)是一個域名服務的協議,提供域名到IP地址的轉換,允許對域名資源進行分散管理。

TFTP(Trivial FileTransfer Protocol)簡單文件傳輸協議。設計用於一般目的的、高吞吐量的文件傳輸。

RIP(RoutingInformation Protocol)路由器用來在 IP 網絡上交換路由信息的協議。

SNMP(Simple NetworkManagement Protocol)用於收集網絡管理信息,並在網絡管理控制檯和網絡設備(例如路由器、網橋和服務器)之間交換網絡管理信息。

Radius(RemoteAuthentication Dial In User Service)撥號接入遠端認證協議完成接入用戶的認證、授權、計費功能的協議。

 

  • TCP/IP協議棧的封裝過程

 wKioL1SIB9bQaJBVAAGxIUxvNyc832.jpg

以傳輸層採用TCP或者UPD、網絡層採用IP、鏈路層採用Ethernet爲例,可以看到TCP/IP中報文的封裝過程如上圖所示。用戶數據經過應用層協議封裝後傳遞給傳輸層,傳輸層封裝TCP頭部,交給網絡層,網絡層封裝IP頭部後,再交給數據鏈路層,數據鏈路層封裝Ethernet幀頭和幀尾,交給物理層,物理層以比特流的形式將數據發送到物理線路上。

 

TCP Segment

 wKiom1SIB0CA7CtDAADq-b6k7KM867.jpg

TCP協議概述:

TCP爲應用程序提供一種面向連接的、可靠的服務。

TCP的可靠性:


    • 面向連接的傳輸

    • 最大報文段長度

    • 傳輸確認機制

    • 首部和數據的檢驗和

    • 流量控制

TCP首部格式

 wKiom1SIB0LBnFOsAAEujCB4yys663.jpg

TCP使用IP作爲網絡層協議,TCP數據段被封裝在一個IP數據包內。TCP數據段由TCP Head(頭部)和TCP Data(數據)組成。

    TCP最多有60個字節的首部,如果沒有任選字段,正常的長度是20字節。TCP Head如上圖標識的一些字段組成,這裏列出幾個常用的字段。

    16位源端口號:TCP會爲源應用程序分配一個源端口號。

    16位目的端口號:目的應用程序的端口號。每個TCP段都包含源和目的端的端口號,用於尋找發端和收端應用進程。這兩個值加上IP首部中的源端IP地址和目的端IP地址可以唯一確定一個TCP連接。

    32位序列號:用於標識從TCP發端向TCP收端發送的數據字節流。

    32位確認序列號:確認序列號包含發送確認的一端所期望收到的下一個序號。確認序列號爲上次成功收到的數據序列號加1。

    4位首部長度:表示首部佔32bit字的數目。因爲TCP首部的最大長度爲60字節。

    16位窗口大小:表示接收端期望接收的字節,由於該字段爲16位,因而窗口大小最大值爲65535字節。

    16位檢驗和:檢驗和覆蓋了整個TCP報文段,包括TCP首部和TCP數據。該值由發端計算和存儲並由接收端進行驗證。

 

TCP的三次握手(建立連接)和四次揮手(斷開連接)

 

TCP連接的建立是一個三次握手的過程。如圖所示:

wKioL1SIB9rCarKmAAC_CU7_mao308.jpg

    1、請求端(通常也稱爲客戶端)發送一個SYN段表示客戶期望連接服務器端口,初始序列號爲a。

    2、服務器發回序列號爲b的SYN段作爲響應。同時設置確認序號爲客戶端的序列號加1(a+1)作爲對客戶端的SYN報文的確認。

    3、客戶端設置序列號爲服務器端的序列號加1(b+1)作爲對服務器端SYN報文段的確認。

    這三個報文段完成TCP連接的建立。

 

TCP連接的建立是一個三次握手的過程,而TCP連接的終止則要經過四次握手

如圖所示:

wKiom1SIB0aiDqNnAADKHCMfIgI643.jpg

    1、請求端(通常也稱爲客戶端)想終止連接則發送一個FIN段,序列號設置爲a。

    2、服務器迴應一個確認序號爲客戶端的序列號加1(a+1)的ACK確認段,作爲對客戶端的FIN報文的確認。

    3、服務器端向客戶端發送一個FIN終止段(設置序列號爲b,確認號爲a+1)。

    4、客戶端返回一個確認報文(設置序列號爲b+1)作爲響應。

    以上四次交互完成雙方向的連接的關閉。

 

TCP滑動窗口機制:

    wKioL1SIB-byaWruAAImM3ycikA350.jpg

TCP滑動窗口技術通過動態改變窗口大小來調節兩臺主機間的數據傳輸。每個TCP/IP主機支持全雙工數據傳輸,因此TCP有兩個滑動窗口:一個用於接收數據,另一個用於發送數據。TCP使用肯定確認技術,其確認號指的是下一個所期待的字節。

如圖中所示以數據單方向發送爲例,介紹滑動窗口如何實現流量

控制。服務器端向客戶端發送4個大小爲1024字節的數據段,其中發送端的窗口大小爲4096,客戶端到以ACK4097響應,窗口大小調整爲2048,表明客戶端(即接收端)緩衝區只能處理2048個字節的數據段。於是發送端改變其發送速率。發送接收端能夠接收的數據段大小2048的數據段。

 

 

UDP協議概述

  • UDP爲應用程序提供面向無連接的服務。傳輸數據之前源端和目的端不需要建立連接。

  • 不需要維持連接狀態,收發狀態等,因此服務器可同時向多個客戶端傳輸相同的消息。

  • UDP適用於對傳輸效率要求高的運用。

UDP首部格式

 

wKiom1SIB8TRO_zhAADNA8HrkkQ733.jpg

    UDP和TCP一樣都使用IP作爲網絡層協議,TCP數據報被封裝在一個IP數據包內。由於UDP不象TCP一樣提供可靠的傳輸,因此UDP的報文格式相對而言較簡單。

    整個UDP首部有如下標識:

    16位源端口號:爲源端應用程序分配的一個源端口號。

    16位目的端口號:目的應用程序的端口號

    16位UDP長度:是指UDP首部和UDP數據的字節長度。該字段的最小值爲8。

    16位UDP檢驗和:該字段提供與TCP檢驗和同樣的功能,只不過在UDP協議中該字段是可選的。

 

TCP VS UDP

 wKioL1SICFyyZNXSAAFY4J3hgbU169.jpg

IP packet

 wKiom1SIB8ugRyWwAAGRNKHx1IE758.jpg

網絡層收到傳輸層的TCP數據段後會再加上網絡層IP頭部信息。普通的IP頭部固定長度爲20個字節(不包含IP選項字段)。

IP報文頭主要由以下字段組成:報文長度是指頭部佔32比特字的個數,包括任何選項。由於它是一個4比特字段,24=16,除掉全0項共有15個有效值比特字段,其中最大值也爲15,表示頭部佔15個32比特。因此32*15/8=60字節,頭部最長爲60字節。

版本號(Version)字段標明瞭IP協議的版本號,目前的協議版本號爲4。下一代IP協議的版本號爲6。

8比特的服務類型(TOS,Type of Service)字段包括一個3比特的優先權字段(COS,Class of Service),4比特TOS字段和1比特未用位。4比特TOS分別代表最小時延、最大吞吐量、最高可靠性和最小費用。

總長度(Total length)是整個IP數據報長度,包括數據部分。由於該字段長16比特,所以IP數據報最長可達65535字節。儘管可以傳送一個長達65535字節的IP數據報,但是大多數的鏈路層都會對它進行分片。而且,主機也要求不能接收超過576字節的數據報。UDP限制用戶數據報長度爲512字節,小於576字節。而事實上現在大多數的實現(特別是那些支持網絡文件系統NFS的實現)允許超過8192字節的IP數據報。

標識符(Identification)字段唯一地標識主機發送的每一份數據包。通常每發送一份報文它的值就會加1。

生存時間(TTL,Time to Live)字段設置了數據包可以經過的路由器數目。一旦經過一個路由器,TTL值就會減1,當該字段值爲0時,數據包將被丟棄。

協議字段確定在數據包內傳送的上層協議,和端口號類似,IP協議用協議號區分上層協議。TCP協議的協議號爲6,UDP協議的協議號爲17。

報頭校驗和(Head checksum)字段計算IP頭部的校驗和,檢查報文頭部的完整性。

源IP地址和目的IP地址字段標識數據包的源端設備和目的端設備IP地址信息。

Ethernet frame

    wKiom1SIB9CgS-M7AAEfkSYePsA236.jpg

以太網頭部由三個字段組成:

DMAC:表示目的終端MAC地址。

SMAC:表示源端MAC地址。

LENGTH/TYPE字段:根據值的不同有不同的含義:

當LENGHT/TYPE > 1500時,代表該數據幀的類型(比如

上層協議類型)常見的協議類型有:

0X0800 IP數據包

0X0806 ARP請求/應答報文

0X8035 RARP請求/應答報文。

當LENGTH/TYPE < 1500時,代表該數據幀的長度。

 

案例分析

wKiom1SIFQ-AU8LgAABPLDaZkWk637.jpg

    如上圖所示,通過例舉出的TELNET協議的抓包實例,進一步加深對報文封裝的理解。

wKioL1SIFaeiK8bgAAKorRwk0sc836.jpg

上圖爲AR1使用TELNET協議遠程登錄AR2進行的TCP三次握手過程。

wKioL1SIFajAi0-nAAHJcfjBW4s739.jpg

上圖爲數據鏈路層封裝。如圖可知使用的是Ethernet II格式封裝。

    DMAC爲:00e0:fc3b:6792

    SMAC爲:00e0:fc80:64f3

    type:字段爲0x0800表明數據字段封裝是IP報文。

wKiom1SIFRTiFYjwAALqjueaz2o705.jpg

上圖爲網絡層報文封裝。一個網絡層IP包是由IP頭部和IP數據組成。

    上圖表明是一個IPv4的報文

    報文頭爲20字節

    協議字段爲0x06,表明數據封裝的是一個TCP報文。

    數據的源IP地址爲12.12.12.1,目的IP地址爲12.12.12.2

wKioL1SIFazyFJs8AAJF_RjjIv8392.jpg

上圖爲傳輸層數據封裝。如圖所示的傳輸層使用的是TCP協議

    源端口號爲隨機端口號49895,目的端口號爲公認TELNET協議端口號23



附:

常用默認端口號 網絡層---數據包的包格式裏面有個很重要的字段叫做協議號。比如在傳輸層如果是TCP連接那麼在網絡層IP包裏面的協議號就將會有個值是6如果是UDP的話那個值就是17---傳輸層。


傳輸層---通過接口關聯(端口的字段叫做端口)---應用層。


用netstat –an 可以查看本機開放的端口號。


代理服務器常用以下端口:

HTTP協議代理服務器常用端口號80/8080/3128/8081/9080

SOCKS代理協議服務器常用端口號1080

FTP文件傳輸協議代理服務器常用端口號21

Telnet遠程登錄協議代理服務器常用端口23

HTTP服務器默認的端口號爲80/tcp***Executor開放此端口

HTTPSsecurely transferring web pages服務器默認的端口號爲443/tcp 443/udp

Telnet不安全的文本傳送默認端口號爲23/tcp***Tiny Telnet Server所開放的端口

FTP默認的端口號爲21/tcp***Doly Trojan、Fore、InvisibleFTP、WebEx、WinCrash和Blade Runner所開放的端口

TFTPTrivial File Transfer Protocol 默認的端口號爲69/udp

SSH安全登錄、SCP文件傳輸、端口重定向默認的端口號爲22/tcp

SMTP Simple Mail Transfer Protocol (E-mail)默認的端口號爲25/tcp***Antigen、EmailPassword Sender、Haebu Coceda、ShtrilitzStealth、WinPC、WinSpy都開放這個端口

POP3 Post Office Protocol (E-mail) 默認的端口號爲110/tcp

WebLogic默認的端口號爲7001

Webshpere應用程序默認的端口號爲9080

webshpere管理工具默認的端口號爲9090

JBOSS默認的端口號爲8080

TOMCAT默認的端口號爲8080

WIN2003遠程登陸默認的端口號爲3389

Symantec AV/Filter for MSE ,默認端口號爲8081 Oracle 數據庫默認的端口號爲1521

ORACLE EMCTL默認的端口號爲1158

Oracle XDB XML 數據庫默認的端口號爲8080

Oracle XDB FTP服務默認的端口號爲2100

MS SQL*SERVER數據庫server默認的端口號爲1433/tcp 1433/udp

MS SQL*SERVER數據庫monitor默認的端口號爲1434/tcp 1434/udp

QQ默認的端口號爲1080/udp 


 


本文出自 “ITlang_Jansion_Goktech” 博客,轉載請與作者聯繫!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章