關于TCP/IP與OSI模型基礎學習

關于TCP/IPOSI模型基礎學習

§·OSI七層模型介紹

OSI(Open system interconnection 開放系統互聯),七層網絡模型稱為開放式系統互聯參考模型 ,是一個邏輯上的定義,一個規范,它把網絡從邏輯上分為了7層。每一層都有相關、相對應的物理設備,比如路由器,交換機。OSI 七層模型是一種框架性的設計方法 ,建立七層模型的主要目的是為解決異種網絡互連時所遇到的兼容性問題,其最主要的功能使就是幫助不同類型的主機實現數據傳輸。它的最大優點是將服務、接口和協議這三個概念明確地區分開來,通過七個層次化的結構模型使不同的系統不同的網絡之間實現可靠的通訊。

§·OSI七層模型模型優點

建立七層模型的主要目的是為解決異種網絡互連時所遇到的兼容性問題。它的最大優點是將服務、接口和協議這三個概念明確地區分開來:

服務說明某一層為上一層提供一些什么功能,

接口說明上一層如何使用下層的服務,

而協議涉及如何實現本層的服務;

這樣各層之間具有很強的獨立性,互連網絡中各實體采用什么樣的協議是沒有限制的,只要向上提供相同的服務并且不改變相鄰層的接口就可以了。網絡七層的劃分也是為了使網絡的不同功能模塊(不同層次)分擔起不同的職責,從而帶來如下好處:   

● 減輕問題的復雜程度,一旦網絡發生故障,可迅速定位故障所處層次,便于查找和糾錯;   

● 在各層分別定義標準接口,使具備相同對等層的不同網絡設備能實現互操作,各層之間則相對獨立,一種高層協議可放在多種低層協議上運行;   

● 能有效刺激網絡技術革新,因為每次更新都可以在小范圍內進行,不需對整個網絡動大手術;  

● 便于研究和教學。

 

◎·一.物理層(Physical Layer

    O S I 模型的最低層或第一層,該層包括物理連網媒介,如電纜連線連接器。物理層的協議產生并檢測電壓以便發送和接收攜帶數據的信號。在你的桌面P C 上插入網絡接口卡,你就建立了計算機連網的基礎。換言之,你提供了一個物理層。盡管物理層不提供糾錯服務,但它能夠設定數據傳輸速率并監測數據出錯率。網絡物理問題,如電線斷開,將影響物理層。   用戶要傳遞信息就要利用一些物理媒體,如雙絞線、同軸電纜等,但具體的物理媒體并不在OSI7層之內,有人把物理媒體當做第0層,物理層的任務就是為它的上一層提供一個物理連接,以及它們的機械、電氣、功能和過程特性。如規定使用電纜和接頭的類型、傳送信號的電壓等。在這一層,數據還沒有被組織,僅作為原始的位流或電氣電壓處理,單位是bit比特。

◎·二.數據鏈路層(Datalink Layer

      OSI模型的第二層,它控制網絡層與物理層之間的通信。它的主要功能是如何在不可靠的物理線路上進行數據的可靠傳遞。為了保證傳輸,從網絡層接收到的數據被分割成特定的可被物理層傳輸的幀。幀是用來移動數據的結構包,它不僅包括原始數據,還包括發送方和接收方的物理地址以及檢錯和控制信息。其中的地址確定了幀將發送到何處,而糾錯和控制信息則確保幀無差錯到達。 如果在傳送數據時,接收點檢測到所傳數據中有差錯,就要通知發送方重發這一幀。

   數據鏈路層的功能獨立于網絡和它的節點和所采用的物理層類型,它也不關心是否正在運行 Wo r d 、E x c e l 或使用I n t e r n e t 。有一些連接設備,如交換機,由于它們要對幀解碼并使用幀信息將數據發送到正確的接收方,所以它們是工作在數據鏈路層的。

   數據鏈路層(DataLinkLayer):在物理層提供比特流服務的基礎上,建立相鄰結點之間的數據鏈路,通過差錯控制提供數據幀(Frame)在信道上無差錯的傳輸,并進行各電路上的動作系列。

   數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。

   數據鏈路層協議的代表包括:SDLCHDLC、PPP、STP、幀中繼等。

◎·三.網絡層(Network Layer

O S I 模型的第三層,其主要功能是將網絡地址翻譯成對應的物理地址,并決定如何將數據從發送方路由到接收方。

 網絡層通過綜合考慮發送優先權、網絡擁塞程度、服務質量以及可選路由的花費來決定從一個網絡中節點A 到另一個網絡中節點B 的最佳路徑。由于網絡層處理,并智能指導數據傳送,路由器連接網絡各段,所以路由器屬于網絡層。在網絡中,“路由”是基于編址方案、使用模式以及可達性來指引數據的發送。

 網絡層負責在源機器和目標機器之間建立它們所使用的路由。這一層本身沒有任何錯誤檢測和修正機制,因此,網絡層必須依賴于端端之間的由D L L提供的可靠傳輸服務。

 網絡層用于本地L A N網段之上的計算機系統建立通信,它之所以可以這樣做,是因為它有自己的路由地址結構,這種結構與第二層機器地址是分開的、獨立的。這種協議稱為路由或可路由協議。路由協議包括I P、N o v e l l公司的I P X以及A p p l e Ta l k協議。

網絡層是可選的,它只用于當兩個計算機系統處于不同的由路由器分割開的網段這種情況,或者當通信應用要求某種網絡層或傳輸層提供的服務、特性或者能力時。例如,當兩臺主機處于同一個L A N網段的直接相連這種情況,它們之間的通信只使用L A N的通信機制就可以了(OSI 參考模型的一二層)

◎·四.傳輸層(Transport Layer

O S I 模型中最重要的一層。傳輸協議同時進行流量控制或是基于接收方可接收數據的快慢程度規定適當的發送速率。除此之外,傳輸層按照網絡能處理的最大尺寸將較長的數據包進行強制分割。例如,以太網無法接收大于1 5 0 0 字節的數據包。發送方節點的傳輸層將數據分割成較小的數據片,同時對每一數據片安排一序列號,以便數據到達接收方節點的傳輸層時,能以正確的順序重組。該過程即被稱為排序。

 工作在傳輸層的一種服務是 T C P / I P 協議套中的T C P (傳輸控制協議),另一項傳輸層服務是I P X / S P X 協議集的S P X (序列包交換)。

◎·五.會話層(Session Layer

負責在網絡中的兩節點之間建立、維持和終止通信。 會話層的功能包括:建立通信鏈接,保持會話過程通信鏈接的暢通,同步兩個節點之間的對話,決定通信是否被中斷以及通信中斷時決定從何處重新發送。

你可能常常聽到有人把會話層稱作網絡通信的“交通警察”。當通過撥號向你的 ISP (因特網服務提供商)請求連接到因特網時,ISP 服務器上的會話層向你與你的 PC 客戶機上的會話層進行協商連接。若你的電話線偶然從墻上插孔脫落時,你終端機上的會話層將檢測到連接中斷并重新發起連接。會話層通過決定節點通信的優先級和通信時間的長短來設置通信期限

◎·六.表示層(Presentation Layer

應用程序和網絡之間的翻譯官,在表示層,數據將按照網絡能理解的方案進行格式化;這種格式化也因所使用網絡的類型不同而不同。

表示層管理數據的解密與加密,如系統口令的處理。例如:在 Internet上查詢你銀行賬戶,使用的即是一種安全連接。你的賬戶數據在發送前被加密,在網絡的另一端,表示層將對接收到的數據解密。除此之外,表示層協議還對圖片和文件格式信息進行解碼和編碼。

◎·七.應用層(Application Layer

應用層也稱為應用實體(AE),它由若干個特定應用服務元素(SASE)和一個或多個公用應用服務元素(CASE)組成。每個SASE提供特定的應用服務,例如文件運輸訪問和管理(FTAM)、電子文電處理(MHS)、虛擬終端協議(VAP)等。CASE提供一組公用的應用服務,例如聯系控制服務元素(ACSE)、可靠運輸服務元素(RTSE)和遠程操作服務元素(ROSE)等。主要負責對軟件提供接口以使程序能使用網絡服務。術語“應用層”并不是指運行在網絡上的某個特別應用程序 ,應用層提供的服務包括文件傳輸、文件管理以及電子郵件的信息處理。

◎·簡版:   

1.物理層:主要定義物理設備標準,如網線的接口類型、光纖的接口類型、各種傳輸介質的傳輸速率等。它的主要作用是傳輸比特流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地后在轉化為10,也就是我們常說的數模轉換與模數轉換)。這一層的數據叫做比特。   

2.數據鏈路層:定義了如何讓格式化數據以進行傳輸,以及如何讓控制對物理介質的訪問。這一層通常還提供錯誤檢測和糾正,以確保數據的可靠傳輸。   

3.網絡層:在位于不同地理位置的網絡中的兩個主機系統之間提供連接和路徑選擇。Internet的發展使得從世界各站點訪問信息的用戶數大大增加,而網絡層正是管理這種連接的層。   

4.傳輸層:定義了一些傳輸數據的協議和端口號(WWW端口80等),如:TCP(傳輸控制協議,傳輸效率低,可靠性強,用于傳輸可靠性要求高,數據量大的數據),UDP(用戶數據報協議,與TCP特性恰恰相反,用于傳輸可靠性要求不高,數據量小的數據,如QQ聊天數據就是通過這種方式傳輸的)。 主要是將從下層接收的數據進行分段和傳輸,到達目的地址后再進行重組。常常把這一層數據叫做段。   

5.會話層:通過傳輸層(端口號:傳輸端口與接收端口)建立數據傳輸的通路。主要在你的系統之間發起會話或者接受會話請求(設備之間需要互相認識可以是IP也可以是MAC或者是主機名)   

6.表示層:可確保一個系統的應用層所發送的信息可以被另一個系統的應用層讀取。例如,PC程序與另一臺計算機進行通信,其中一臺計算機使用擴展二一十進制交換碼(EBCDIC),而另一臺則使用美國信息交換標準碼(ASCII)來表示相同的字符。如有必要,表示層會通過使用一種通格式來實現多種數據格式之間的轉換。   

7.應用層: 是最靠近用戶的OSI層。這一層為用戶的應用程序(例如電子郵件、文件傳輸和終端仿真)提供網絡服務。

§·TCP/IP四層模型

TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇。TCP/IP協議簇分為四層,IP位于協議簇的第二層(對應OSI的第三層),TCP位于協議簇的第三層(對應OSI的第四層)。   

TCP/IP通訊協議采用了4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。這4層分別為:

 

1  應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協議(FTP)、網絡遠程訪問協議(Telnet)等。

2傳輸層:在此層中,它提供了節點間的數據傳送服務,如傳輸控制協議(TCP)、用戶數據報協議(UDP)等,TCPUDP給數據包加入傳輸數據并把它傳輸到下一層中,這一層負責傳送數據,并且確定數據已被送達并接收。

3互連網絡層:負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機(但不檢查是否被正確接收),如網際協議(IP)。

4 網絡接口層:對實際的網絡媒體的管理,定義如何使用實際網絡(如Ethernet、Serial Line等)來傳送數據。

 

※·三次握手第一次

第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SENT狀態,等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。

第二次

第二次握手:服務器收到syn包,必須確認客戶的SYNack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

第三次

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHEDTCP連接成功)狀態,完成三次握手。

完成三次握手,客戶端與服務器開始傳送數據,在上述過程中,還有一些重要的概念:

TCP三次握手.jpg

疑問:客戶端與服務器通信,是何時知道需要使用TCP連接,何時開始三次握手(肯定是傳數據之前),那如何識別上層把數據封裝好可,傳給 傳輸層 ,

 

 

§·TCP/IP四層邏輯圖

※·TCP/IPOSI參考模型對比

 

TCP/IP是我們實際使用的應用,OSI七層模型可供學習和教學

 

 

 

RCJSRPMO`(}F3_[8$ED04C6.png 

§·TCP/IP四層邏輯圖每層數據封裝圖解

數據鏈路層為——數據幀

Internet(互聯網)層為——IP報文

傳輸層——TCP/UDP數據段

※·抓包工具:wireshark 1.12.7版本

Frame:   物理層的數據幀概況

Ethernet II: 數據鏈路層以太網幀頭部信息

Internet Protocol Version 4: 互聯網層IP包頭部信息

Transmission Control Protocol:  傳輸層的數據段頭部信息

Hypertext Transfer Protocol:  應用層的信息

 

※·數據鏈路層格式組成  

以太網幀的格式組成:我們對比兩種幀格式: Ethernet IEEE802.3 的簡單區別。

 

 ]5_@HCM`QNU`K{I{XHJK5{V.png

 

 抓包 以太網幀格式.png

 

 

 

以太網Ethernet字段

字段長度(字節)

目的

對應數值

Preamble (前導碼)

8

目標MAC地址

6

指定接受方MAC地址

b0-25-aa-17-0f-15

MAC地址

6

指明發送方MAC地址

00:0c:29:42:59:60

type(類型)

4

上層數據類型

ip (0x0800 )

數據后填充

46-1500

數據

幀校驗序列(FCS

4

數據校驗生成的校驗碼,錯誤就丟棄此幀

合計最小字節數為:

28字節

注意:如果幀小于61字節,則要求”填充“,讓這個幀達到最小長度為 64字節

※·IP報文

ip報文.png 

 

 

 

IP報文格式

字段長度

對應數值

ver IP版本號)

4

IP V4

IHL首部長度)

4 

20字節

 tos(服務類型)

8

total_len(數據包長度)

16

 ident(標識)

16

15747

flags(標志)

3

0x02

(片內偏移)

0

ttl(生存周期)

8

64

proto(協議TCP UDP或其他)

8

TCP (6)

checksum(報頭校驗和)

16

0X0000

sourceIP(源地址)

32

10.1.16.1

destIP(目標地址)

32

10.1.16.61

選項

填充

合計:

 qw.png

 

※·TCP數據段格式

A4QCOY1(0SRPF5%CE3Y](65.png 

tcp數據.png 

 

 

TCP報文格式

字段位數

對應數值

SourPort 源端口號

16

55425

DestPort 目的端口號

16

22

SequNum 序列號

32

1822

AcknowledgeNum 確認號

32

2534

HeaderLen TCP頭長度

4

20

resv 保留

6

Flag 標志位

6

ACK1

WindowSize 窗口大小

16

16203

CheckSum 檢驗和

16

64812

urgentPointer 緊急數據偏移量

16

0

 

※·UDP數據段格式

R}OGW]R%8QSW(ZTDXM@SH)N.png 

 

N_FTYXV5F)_8RA(Z7UMGE~P.png 

 

 

UDP報文格式

字段位數

對應數值

SourPort      源端口號

16bit

8000

DestPort     目的端口號

16bit

8706

Length       數據包長度

16bit

55

CheckSum       校驗和

16bit

0x9529

 ※·1.通過抓包工具分析TCP三次握手

8CQE75(J}C8H}W}P9NTE710.png 

連接由于SSH是使用TCL協議的,所以應該有三次握手的界面,上圖中就有相關的信息,由于排除了部分不需要數據,導致編號不是連續的,不過還是值得我們去了解的。

◎·TCP握手第一次

#客戶端發送 帶Seq 0 ,ack0 的數據包發往服務器

#客戶機發送信息后,處于 SYN_SENT狀態,等待服務器發回的SYN_ACK

握手第一次.png 

注:frame物理層數據概括:該包為66個字節,包含所有的數據(不過好像這個數字有問題,現在不討論)。

 

◎·TCP握手第二次

服務器回應客戶機的序列號0 ,發給客戶機ack1的數據包

#客戶機收到服務器發過來的確認 sequence number 0     acknowledgment number 1

#服務器發送SYN_ACK的后,服務器處于 SYN_RECV狀態

第三次握手二次.png 

 

 

◎·TCP握手第三次:

#客戶機回應服務器的序列號0 ,發給服務器的ack1的數據包,客戶機處于ESTABLISHED狀態。

#服務器收到客戶機發送的信息,也處于ESTABLISHED狀態,就可以傳送數據了。

312LUC]W))P{S69JT@VAN[O.png 

 

 

小結:

以上通過抓包簡單的分析了,有很多的選項不太清楚,還有待慢慢研究與學習,不過也了解了一些術語方面的知識。

原創文章,作者:linux_root,如若轉載,請注明出處:http://www.www58058.com/42873

(0)
linux_rootlinux_root
上一篇 2016-09-05
下一篇 2016-09-05

相關推薦

  • Ubuntu之apt-get光盤源配置小結

    Ubuntu配置本地apt源的方法:    1. 命令自動配置:        mount    /dev/cdrom   /mnt/cdrom        apt-cdrom   ident   &nbsp…

    Linux干貨 2016-03-09
  • 谷歌三大核心技術(一)The Google File System中文版

    摘要 我們設計并實現了Google GFS文件系統,一個面向大規模數據密集型應用的、可伸縮的分布式文件系統。GFS雖然運行在廉價的普遍硬件設備上,但是它依然了提供災難冗余的能力,為大量客戶機提供了高性能的服務。 雖然GFS的設計目標與許多傳統的分布式文件系統有很多相同之處,但是,我們的設計還是以我們對自己的應用的負載情況和技術環境的分析為基礎的,不管現在還是…

    Linux干貨 2015-04-13
  • MySQL-MMM安裝指南(Multi-Master Replication Manager for MySQL)

    最基本的MMM安裝必須至少需要2個數據庫服務器和一個監控服務器下面要配置的MySQL Cluster環境包含四臺數據庫服務器和一臺監控服務器,如下: function ip hostname server id monitoring host 192.168.0.10 mon – master 1 192.168.0.11 db1 1 maste…

    Linux干貨 2015-05-01
  • 系統基礎之壓縮歸檔工具詳解

    壓縮和解壓縮工具 概論  在使用操作系統時,我們常會遇到大文件,會使我們很頭疼.在面對時間和空間上的選擇,只能選擇空間,這就要用到壓縮工具和歸檔工具,下面為大家一一介紹.  壓縮文件只壓縮文本格式的文件,通常不壓縮已經是壓縮的文件.  壓縮文件就會涉及到壓縮比:    原理:通過了解文本文件的數據形式,運用壓…

    Linux干貨 2016-08-18
  • N25-第四周

    一、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     [root@localhost ~]# cp -r /etc/skel /home/tuser1      [root@localhost ~]# chmo…

    Linux干貨 2017-01-09
  • httpd——事務

    http協議: http/0.9 ,http/1.0 ,http/1.1 ,http/2.0 http協議:stateless          服務器無法持續追蹤訪問者來源          &nb…

    Linux干貨 2016-10-12

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-05 11:02

    文檔功底相當不錯,也非常認真,很出彩,加油

欧美性久久久久