1.1 OSI與TCP/IP協(xié)議框架
OSI是網(wǎng)絡(luò)界的法律,主要目的是實現(xiàn)各廠商設(shè)備的兼容操作,TCP/IP是互聯(lián)網(wǎng)的主流協(xié)議。圖1是OSI與TCP/IP協(xié)議模型的對比。
1.2 OSI每層功能及特點
1、物理層:其作用是傳輸BIT信號,典型設(shè)備代表如HUB(集線器)。
2、數(shù)據(jù)鏈路層:包括LLC和MAC子層,LLC負責與網(wǎng)絡(luò)層通訊,協(xié)商網(wǎng)絡(luò)層的協(xié)議。MAC負責對物理層的控制。本層的典型設(shè)備是SWITCH(交換機)。
3、網(wǎng)絡(luò)層:本層的作用是負責路由表的建立和維護,數(shù)據(jù)包的轉(zhuǎn)發(fā)。本層的典型設(shè)備是ROUTER(路由器)。
4、傳輸層:本層將應(yīng)用數(shù)據(jù)分段,建立端到段的虛連接,提供可靠或者不可靠傳輸。
5、會話層:本層負責兩個應(yīng)用之間會話的管理和維護。
6、表示層:本層解決數(shù)據(jù)的表示、轉(zhuǎn)換問題,是人機之間通訊的協(xié)調(diào)者,如進行二進制與ASCII碼的轉(zhuǎn)換。
7、應(yīng)用層:本層是人機通訊的接口。典型的應(yīng)用程序如FTP、HTTP等。
1.3 OSI封裝,解封裝以及PDU
1.3.1 封裝
所謂封裝是指在發(fā)送方發(fā)生的自上而下的過程
在每一層為應(yīng)用數(shù)據(jù)添加上特定的頭部/尾部信息(PDU,Protocol Data Unit,協(xié)議數(shù)據(jù)單元)
Application(應(yīng)用程序)→segment(數(shù)據(jù)段)→packet(數(shù)據(jù)包)→frame(數(shù)據(jù)幀)→bit(比特,二進制位)
1.3.2 解封裝
所謂解封裝是指在接收方發(fā)生的自下而上的過程
逐層的去掉頭部以及尾部信息
1.4 IP包結(jié)構(gòu)
其中的重要字段包括:
TTL(Time To Live,生存時間):每經(jīng)過路由器一次,此值減一。如果該值為0路由器就不會再轉(zhuǎn)發(fā)此數(shù)據(jù)包。
Protocol(協(xié)議):網(wǎng)絡(luò)層和傳輸層之間的通訊接口,用于識別傳輸層的傳輸協(xié)議。
Identification(序號):對每發(fā)送的一個數(shù)據(jù)包進行編號。
Flag(偏移標志),F(xiàn)rag.Offset(偏移量):用于接收方將數(shù)據(jù)包的分片進行。1.5 IP報文傳輸過程
IP報文傳輸過程包括:
1. Host sends packet to default gateway(主機將數(shù)據(jù)包發(fā)送到默認網(wǎng)關(guān))
2. Packet placed in frame(數(shù)據(jù)包被封裝入幀)
3. Router receives frame(路由器接到幀)
4. Router finds destination network in route table(路由器在路由表中發(fā)現(xiàn)目標網(wǎng)絡(luò))
5. Router chooses next hop toward destination(路由器選擇一個更接近目標的下一跳)
6. MAC address of next hop determined(下一跳的MAC地址被確定)
7. Packet placed in frame(數(shù)據(jù)包被封裝入幀)
8. Repeats steps 2 through 7 as necessary(如果需要的話,重復(fù)步驟2~7)
9. Router receives frame(路由器接到幀)
10. Router finds network directly connected(路由器發(fā)現(xiàn)直連網(wǎng)絡(luò))
11. MAC address of end host determined(最終主機的MAC地址被確定)
12. Packet placed in frame to final destination(幀中的數(shù)據(jù)包被發(fā)送到最終主機)
IP報文傳輸整個過程。
在數(shù)據(jù)包端到端的傳輸過程中,邏輯地址始終不會發(fā)生改變,而MAC地址則隨著具體鏈路的不同而不同。
路由器在某一個入接口上接收到數(shù)據(jù)幀后,先檢測目的地是否是自己。若是,則交給上層處理,否則會緩存數(shù)據(jù)包內(nèi)容,然后根據(jù)目標地址查找路由表找到相關(guān)表項,得到NEXT HOP及出接口的MAC地址,用這兩個地址作為新的目的及源MAC地址封裝事先緩存的數(shù)據(jù)包,然后轉(zhuǎn)發(fā),這個過程稱為幀的重寫(REWRITE)。
1.6 IP相關(guān)協(xié)議
1.6.1 ARP
ARP(Address Resolution Protocol,地址解析協(xié)議)有以下特點:
ARP由ARP Request(廣播)與ARP Reply(單播)組成。
只有當發(fā)送方認為目標主機與自己位于同一邏輯網(wǎng)絡(luò)(同一網(wǎng)段),ARP Request才會發(fā)出。
屬于本地的MAP(不同于FR MAP)IP地址與MAC地址均屬于同一個設(shè)備(接口)。
1.6.2 ICMP
IP協(xié)議是一種不可靠的協(xié)議,無法進行差錯控制。但IP協(xié)議可以借助其他協(xié)議來實現(xiàn)這一功能,如ICMP。如圖5所示。
ICMP協(xié)議允許主機或路由器報告差錯情況和提供有關(guān)異常情況的報告。
一般來說,ICMP報文提供針對網(wǎng)絡(luò)層的錯誤診斷、擁塞控制、路徑控制和查詢服務(wù)四項大的功能。如,當一個分組無法到達目的站點或TTL超時后,路由器就會丟棄此分組,并向源站點返回一個目的站點不可到達的ICMP報文?!?.7 傳輸層功能
傳輸層的功能包括:
Session Multiplexing(多路復(fù)用):多個應(yīng)用會話復(fù)用在同一個端到端的連接(同一個源IP和目的IP對)之上,通過端口號加以識別。
Segmentation(分段):將大塊的應(yīng)用數(shù)據(jù)分割成更適合于傳輸?shù)亩巍?BR> Flow Control(流控):軟件流控,防止在網(wǎng)絡(luò)擁塞時丟包降低網(wǎng)絡(luò)擁塞的可能性。
Buffering(緩沖):分為接受緩存和發(fā)送緩沖,用來暫存?zhèn)鬏敂?shù)據(jù)。
1.8 TCP與UDP對比
是TCP與UDP的報文頭格式。
它們的不同在于:
TCP
面向連接(同步,確認,窗口)
提供可靠的傳輸服務(wù)
可靠性高
UDP
無連接
提供盡力而為(Best-Effort)的服務(wù)
效率高
1.9 TCP的序列號和確認號
TCP的序列號和確認號用來對收到的對方的數(shù)據(jù)包進行確認。序列號和確認號是以字節(jié)數(shù)為單位的,確認號等于發(fā)送方的序列號加1。如圖8所示。
1.10 TCP滑動窗口
滑動窗口用來實現(xiàn)流量控制。它用來防止發(fā)送過快的發(fā)送端的數(shù)據(jù)將接收緩慢的接收端淹沒,造成接收端緩沖區(qū)溢出。
窗口的大小是以包的字節(jié)數(shù)為單位而不是以包的數(shù)量為單位的,滑動窗口屬于TCP的流控方式之一
OSI是網(wǎng)絡(luò)界的法律,主要目的是實現(xiàn)各廠商設(shè)備的兼容操作,TCP/IP是互聯(lián)網(wǎng)的主流協(xié)議。圖1是OSI與TCP/IP協(xié)議模型的對比。
1.2 OSI每層功能及特點
1、物理層:其作用是傳輸BIT信號,典型設(shè)備代表如HUB(集線器)。
2、數(shù)據(jù)鏈路層:包括LLC和MAC子層,LLC負責與網(wǎng)絡(luò)層通訊,協(xié)商網(wǎng)絡(luò)層的協(xié)議。MAC負責對物理層的控制。本層的典型設(shè)備是SWITCH(交換機)。
3、網(wǎng)絡(luò)層:本層的作用是負責路由表的建立和維護,數(shù)據(jù)包的轉(zhuǎn)發(fā)。本層的典型設(shè)備是ROUTER(路由器)。
4、傳輸層:本層將應(yīng)用數(shù)據(jù)分段,建立端到段的虛連接,提供可靠或者不可靠傳輸。
5、會話層:本層負責兩個應(yīng)用之間會話的管理和維護。
6、表示層:本層解決數(shù)據(jù)的表示、轉(zhuǎn)換問題,是人機之間通訊的協(xié)調(diào)者,如進行二進制與ASCII碼的轉(zhuǎn)換。
7、應(yīng)用層:本層是人機通訊的接口。典型的應(yīng)用程序如FTP、HTTP等。
1.3 OSI封裝,解封裝以及PDU
1.3.1 封裝
所謂封裝是指在發(fā)送方發(fā)生的自上而下的過程
在每一層為應(yīng)用數(shù)據(jù)添加上特定的頭部/尾部信息(PDU,Protocol Data Unit,協(xié)議數(shù)據(jù)單元)
Application(應(yīng)用程序)→segment(數(shù)據(jù)段)→packet(數(shù)據(jù)包)→frame(數(shù)據(jù)幀)→bit(比特,二進制位)
1.3.2 解封裝
所謂解封裝是指在接收方發(fā)生的自下而上的過程
逐層的去掉頭部以及尾部信息
1.4 IP包結(jié)構(gòu)
其中的重要字段包括:
TTL(Time To Live,生存時間):每經(jīng)過路由器一次,此值減一。如果該值為0路由器就不會再轉(zhuǎn)發(fā)此數(shù)據(jù)包。
Protocol(協(xié)議):網(wǎng)絡(luò)層和傳輸層之間的通訊接口,用于識別傳輸層的傳輸協(xié)議。
Identification(序號):對每發(fā)送的一個數(shù)據(jù)包進行編號。
Flag(偏移標志),F(xiàn)rag.Offset(偏移量):用于接收方將數(shù)據(jù)包的分片進行。1.5 IP報文傳輸過程
IP報文傳輸過程包括:
1. Host sends packet to default gateway(主機將數(shù)據(jù)包發(fā)送到默認網(wǎng)關(guān))
2. Packet placed in frame(數(shù)據(jù)包被封裝入幀)
3. Router receives frame(路由器接到幀)
4. Router finds destination network in route table(路由器在路由表中發(fā)現(xiàn)目標網(wǎng)絡(luò))
5. Router chooses next hop toward destination(路由器選擇一個更接近目標的下一跳)
6. MAC address of next hop determined(下一跳的MAC地址被確定)
7. Packet placed in frame(數(shù)據(jù)包被封裝入幀)
8. Repeats steps 2 through 7 as necessary(如果需要的話,重復(fù)步驟2~7)
9. Router receives frame(路由器接到幀)
10. Router finds network directly connected(路由器發(fā)現(xiàn)直連網(wǎng)絡(luò))
11. MAC address of end host determined(最終主機的MAC地址被確定)
12. Packet placed in frame to final destination(幀中的數(shù)據(jù)包被發(fā)送到最終主機)
IP報文傳輸整個過程。
在數(shù)據(jù)包端到端的傳輸過程中,邏輯地址始終不會發(fā)生改變,而MAC地址則隨著具體鏈路的不同而不同。
路由器在某一個入接口上接收到數(shù)據(jù)幀后,先檢測目的地是否是自己。若是,則交給上層處理,否則會緩存數(shù)據(jù)包內(nèi)容,然后根據(jù)目標地址查找路由表找到相關(guān)表項,得到NEXT HOP及出接口的MAC地址,用這兩個地址作為新的目的及源MAC地址封裝事先緩存的數(shù)據(jù)包,然后轉(zhuǎn)發(fā),這個過程稱為幀的重寫(REWRITE)。
1.6 IP相關(guān)協(xié)議
1.6.1 ARP
ARP(Address Resolution Protocol,地址解析協(xié)議)有以下特點:
ARP由ARP Request(廣播)與ARP Reply(單播)組成。
只有當發(fā)送方認為目標主機與自己位于同一邏輯網(wǎng)絡(luò)(同一網(wǎng)段),ARP Request才會發(fā)出。
屬于本地的MAP(不同于FR MAP)IP地址與MAC地址均屬于同一個設(shè)備(接口)。
1.6.2 ICMP
IP協(xié)議是一種不可靠的協(xié)議,無法進行差錯控制。但IP協(xié)議可以借助其他協(xié)議來實現(xiàn)這一功能,如ICMP。如圖5所示。
ICMP協(xié)議允許主機或路由器報告差錯情況和提供有關(guān)異常情況的報告。
一般來說,ICMP報文提供針對網(wǎng)絡(luò)層的錯誤診斷、擁塞控制、路徑控制和查詢服務(wù)四項大的功能。如,當一個分組無法到達目的站點或TTL超時后,路由器就會丟棄此分組,并向源站點返回一個目的站點不可到達的ICMP報文?!?.7 傳輸層功能
傳輸層的功能包括:
Session Multiplexing(多路復(fù)用):多個應(yīng)用會話復(fù)用在同一個端到端的連接(同一個源IP和目的IP對)之上,通過端口號加以識別。
Segmentation(分段):將大塊的應(yīng)用數(shù)據(jù)分割成更適合于傳輸?shù)亩巍?BR> Flow Control(流控):軟件流控,防止在網(wǎng)絡(luò)擁塞時丟包降低網(wǎng)絡(luò)擁塞的可能性。
Buffering(緩沖):分為接受緩存和發(fā)送緩沖,用來暫存?zhèn)鬏敂?shù)據(jù)。
1.8 TCP與UDP對比
是TCP與UDP的報文頭格式。
它們的不同在于:
TCP
面向連接(同步,確認,窗口)
提供可靠的傳輸服務(wù)
可靠性高
UDP
無連接
提供盡力而為(Best-Effort)的服務(wù)
效率高
1.9 TCP的序列號和確認號
TCP的序列號和確認號用來對收到的對方的數(shù)據(jù)包進行確認。序列號和確認號是以字節(jié)數(shù)為單位的,確認號等于發(fā)送方的序列號加1。如圖8所示。
1.10 TCP滑動窗口
滑動窗口用來實現(xiàn)流量控制。它用來防止發(fā)送過快的發(fā)送端的數(shù)據(jù)將接收緩慢的接收端淹沒,造成接收端緩沖區(qū)溢出。
窗口的大小是以包的字節(jié)數(shù)為單位而不是以包的數(shù)量為單位的,滑動窗口屬于TCP的流控方式之一