1、簡述osi七層模型和TCP/IP五層模型
osi七層模型
物理層(Physical Layer)
利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接,實現(xiàn)比特流的透明傳輸。
物理層的作用是實現(xiàn)相鄰計算機(jī)節(jié)點之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質(zhì)和物理設(shè)備的差異。使其上面的數(shù)據(jù)鏈路層不必考慮網(wǎng)絡(luò)的具體傳輸介質(zhì)是什么?!巴该鱾魉捅忍亓鳌北硎窘?jīng)實際電路傳送后的比特流沒有發(fā)生變化,對傳送的比特流來說,這個電路好像是看不見的。
數(shù)據(jù)鏈路層(Data Link Layer)
第二層,負(fù)責(zé)建立和管理節(jié)點間的鏈路。該層的主要功能是:通過各種控制協(xié)議,將有差錯的物理信道變?yōu)闊o差錯的、能可靠傳輸數(shù)據(jù)幀的數(shù)據(jù)鏈路。
在計算機(jī)網(wǎng)絡(luò)中由于各種干擾的存在,物理鏈路是不可靠的。因此,這一層的主要功能是在物理層提供的比特流的基礎(chǔ)上,通過差錯控制、流量控制方法,使有差錯的物理線路變?yōu)闊o差錯的數(shù)據(jù)鏈路,即提供可靠的通過物理介質(zhì)傳輸數(shù)據(jù)的方法。
該層通常又被分為介質(zhì)訪問控制(MAC)和邏輯鏈路控制(LLC)兩個子層。
MAC子層的主要任務(wù)是解決共享型網(wǎng)絡(luò)中多用戶對信道競爭的問題,完成網(wǎng)絡(luò)介質(zhì)的訪問控制;
LLC子層的主要任務(wù)是建立和維護(hù)網(wǎng)絡(luò)連接,執(zhí)行差錯校驗、流量控制和鏈路控制。
數(shù)據(jù)鏈路層的具體工作是接收來自物理層的位流形式的數(shù)據(jù),并封裝成幀,傳送到上一層;同樣,也將來自上層的數(shù)據(jù)幀,拆裝為位流形式的數(shù)據(jù)轉(zhuǎn)發(fā)到物理層;并且,還負(fù)責(zé)處理接收端發(fā)回的確認(rèn)幀的信息,以便提供可靠的數(shù)據(jù)傳輸。
網(wǎng)絡(luò)層
網(wǎng)絡(luò)層(Network Layer)是OSI模型的第三層,它是OSI參考模型中最復(fù)雜的一層,也是通信子網(wǎng)的最高一層。它在下兩層的基礎(chǔ)上向資源子網(wǎng)提供服務(wù)。其主要任務(wù)是:通過路由選擇算法,為報文或分組通過通信子網(wǎng)選擇最適當(dāng)?shù)穆窂?。該層控制?shù)據(jù)鏈路層與傳輸層之間的信息轉(zhuǎn)發(fā),建立、維持和終止網(wǎng)絡(luò)的連接。具體地說,數(shù)據(jù)鏈路層的數(shù)據(jù)在這一層被轉(zhuǎn)換為數(shù)據(jù)包,然后通過路徑選擇、分段組合、順序、進(jìn)/出路由等控制,將信息從一個網(wǎng)絡(luò)設(shè)備傳送到另一個網(wǎng)絡(luò)設(shè)備。
一般地,數(shù)據(jù)鏈路層是解決同一網(wǎng)絡(luò)內(nèi)節(jié)點之間的通信,而網(wǎng)絡(luò)層主要解決不同子網(wǎng)間的通信。例如在廣域網(wǎng)之間通信時,必然會遇到路由(即兩節(jié)點間可能有多條路徑)選擇問題。
在實現(xiàn)網(wǎng)絡(luò)層功能時,需要解決的主要問題如下:
尋址:數(shù)據(jù)鏈路層中使用的物理地址(如MAC地址)僅解決網(wǎng)絡(luò)內(nèi)部的尋址問題。在不同子網(wǎng)之間通信時,為了識別和找到網(wǎng)絡(luò)中的設(shè)備,每一子網(wǎng)中的設(shè)備都會被分配一個唯一的地址。由于各子網(wǎng)使用的物理技術(shù)可能不同,因此這個地址應(yīng)當(dāng)是邏輯地址(如IP地址)。
交換:規(guī)定不同的信息交換方式。常見的交換技術(shù)有:線路交換技術(shù)和存儲轉(zhuǎn)發(fā)技術(shù),后者又包括報文交換技術(shù)和分組交換技術(shù)。
路由算法:當(dāng)源節(jié)點和目的節(jié)點之間存在多條路徑時,本層可以根據(jù)路由算法,通過網(wǎng)絡(luò)為數(shù)據(jù)分組選擇最佳路徑,并將信息從最合適的路徑由發(fā)送端傳送到接收端。
連接服務(wù):與數(shù)據(jù)鏈路層流量控制不同的是,前者控制的是網(wǎng)絡(luò)相鄰節(jié)點間的流量,后者控制的是從源節(jié)點到目的節(jié)點間的流量。其目的在于防止阻塞,并進(jìn)行差錯檢測。
傳輸層
OSI下3層的主要任務(wù)是數(shù)據(jù)通信,上3層的任務(wù)是數(shù)據(jù)處理。而傳輸層(Transport Layer)是OSI模型的第4層。因此該層是通信子網(wǎng)和資源子網(wǎng)的接口和橋梁,起到承上啟下的作用。
該層的主要任務(wù)是:向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸。傳輸層的作用是向高層屏蔽下層數(shù)據(jù)通信的細(xì)節(jié),即向用戶透明地傳送報文。該層常見的協(xié)議:TCP/IP中的TCP協(xié)議、Novell網(wǎng)絡(luò)中的SPX協(xié)議和微軟的NetBIOS/NetBEUI協(xié)議。
傳輸層提供會話層和網(wǎng)絡(luò)層之間的傳輸服務(wù),這種服務(wù)從會話層獲得數(shù)據(jù),并在必要時,對數(shù)據(jù)進(jìn)行分割。然后,傳輸層將數(shù)據(jù)傳遞到網(wǎng)絡(luò)層,并確保數(shù)據(jù)能正確無誤地傳送到網(wǎng)絡(luò)層。因此,傳輸層負(fù)責(zé)提供兩節(jié)點之間數(shù)據(jù)的可靠傳送,當(dāng)兩節(jié)點的聯(lián)系確定之后,傳輸層則負(fù)責(zé)監(jiān)督工作。綜上,傳輸層的主要功能如下:
傳輸連接管理:提供建立、維護(hù)和拆除傳輸連接的功能。傳輸層在網(wǎng)絡(luò)層的基礎(chǔ)上為高層提供“面向連接”和“面向無接連”的兩種服務(wù)。
處理傳輸差錯:提供可靠的“面向連接”和不太可靠的“面向無連接”的數(shù)據(jù)傳輸服務(wù)、差錯控制和流量控制。在提供“面向連接”服務(wù)時,通過這一層傳輸?shù)臄?shù)據(jù)將由目標(biāo)設(shè)備確認(rèn),如果在指定的時間內(nèi)未收到確認(rèn)信息,數(shù)據(jù)將被重發(fā)。
會話層
會話層(Session Layer)是OSI模型的第5層,是用戶應(yīng)用程序和網(wǎng)絡(luò)之間的接口,主要任務(wù)是:向兩個實體的表示層提供建立和使用連接的方法。將不同實體之間的表示層的連接稱為會話。因此會話層的任務(wù)就是組織和協(xié)調(diào)兩個會話進(jìn)程之間的通信,并對數(shù)據(jù)交換進(jìn)行管理。
用戶可以按照半雙工、單工和全雙工的方式建立會話。當(dāng)建立會話時,用戶必須提供他們想要連接的遠(yuǎn)程地址。而這些地址與MAC(介質(zhì)訪問控制子層)地址或網(wǎng)絡(luò)層的邏輯地址不同,它們是為用戶專門設(shè)計的,更便于用戶記憶。域名(DN)就是一種網(wǎng)絡(luò)上使用的遠(yuǎn)程地址例如:www.baidu.com就是一個域名。會話層的具體功能如下:
會話管理:允許用戶在兩個實體設(shè)備之間建立、維持和終止會話,并支持它們之間的數(shù)據(jù)交換。例如提供單方向會話或雙向同時會話,并管理會話中的發(fā)送順序,以及會話所占用時間的長短。
會話流量控制:提供會話流量控制和交叉會話功能。
尋址:使用遠(yuǎn)程地址建立會話連接。
出錯控制:從邏輯上講會話層主要負(fù)責(zé)數(shù)據(jù)交換的建立、保持和終止,但實際的工作卻是接收來自傳輸層的數(shù)據(jù),并負(fù)責(zé)糾正錯誤。會話控制和遠(yuǎn)程過程調(diào)用均屬于這一層的功能。但應(yīng)注意,此層檢查的錯誤不是通信介質(zhì)的錯誤,而是磁盤空間、打印機(jī)缺紙等類型的高級錯誤。
表示層
表示層(Presentation Layer)是OSI模型的第六層,它對來自應(yīng)用層的命令和數(shù)據(jù)進(jìn)行解釋,對各種語法賦予相應(yīng)的含義,并按照一定的格式傳送給會話層。其主要功能是“處理用戶信息的表示問題,如編碼、數(shù)據(jù)格式轉(zhuǎn)換和加密解密”等。表示層的具體功能如下:
數(shù)據(jù)格式處理:協(xié)商和建立數(shù)據(jù)交換的格式,解決各應(yīng)用程序之間在數(shù)據(jù)格式表示上的差異。
數(shù)據(jù)的編碼:處理字符集和數(shù)字的轉(zhuǎn)換。例如由于用戶程序中的數(shù)據(jù)類型(整型或?qū)嵭?、有符號或無符號等)、用戶標(biāo)識等都可以有不同的表示方式,因此,在設(shè)備之間需要具有在不同字符集或格式之間轉(zhuǎn)換的功能。
壓縮和解壓縮:為了減少數(shù)據(jù)的傳輸量,這一層還負(fù)責(zé)數(shù)據(jù)的壓縮與恢復(fù)。
數(shù)據(jù)的加密和解密:可以提高網(wǎng)絡(luò)的安全性。
應(yīng)用層
應(yīng)用層(Application Layer)是OSI參考模型的最高層,它是計算機(jī)用戶,以及各種應(yīng)用程序和網(wǎng)絡(luò)之間的接口,其功能是直接向用戶提供服務(wù),完成用戶希望在網(wǎng)絡(luò)上完成的各種工作。它在其他6層工作的基礎(chǔ)上,負(fù)責(zé)完成網(wǎng)絡(luò)中應(yīng)用程序與網(wǎng)絡(luò)操作系統(tǒng)之間的聯(lián)系,建立與結(jié)束使用者之間的聯(lián)系,并完成網(wǎng)絡(luò)用戶提出的各種網(wǎng)絡(luò)服務(wù)及應(yīng)用所需的監(jiān)督、管理和服務(wù)等各種協(xié)議。此外,該層還負(fù)責(zé)協(xié)調(diào)各個應(yīng)用程序間的工作。
應(yīng)用層為用戶提供的服務(wù)和協(xié)議有:文件服務(wù)、目錄服務(wù)、文件傳輸服務(wù)(FTP)、遠(yuǎn)程登錄服務(wù)(Telnet)、電子郵件服務(wù)(E-mail)、打印服務(wù)、安全服務(wù)、網(wǎng)絡(luò)管理服務(wù)、數(shù)據(jù)庫服務(wù)等。上述的各種網(wǎng)絡(luò)服務(wù)由該層的不同應(yīng)用協(xié)議和程序完成,不同的網(wǎng)絡(luò)操作系統(tǒng)之間在功能、界面、實現(xiàn)技術(shù)、對硬件的支持、安全可靠性以及具有的各種應(yīng)用程序接口等各個方面的差異是很大的。
應(yīng)用層的主要功能如下:
- 用戶接口:應(yīng)用層是用戶與網(wǎng)絡(luò),以及應(yīng)用程序與網(wǎng)絡(luò)間的直接接口,使得用戶能夠與網(wǎng)絡(luò)進(jìn)行交互式聯(lián)系。
- 實現(xiàn)各種服務(wù):該層具有的各種應(yīng)用程序可以完成和實現(xiàn)用戶請求的各種服務(wù)。
TCP/IP五層模型

2、總結(jié)描述TCP三次握手四次揮手
三次握手
第一次握手:建立連接時,客戶端發(fā)送syn包(syn=x)到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn);SYN:同步序列編號(Synchronize Sequence Numbers)。
第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=x+1),同時自己也發(fā)送一個SYN包(syn=y),即SYN+ACK包,此時服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=y+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。
四次揮手過程理解
- 客戶端進(jìn)程發(fā)出連接釋放報文,并且停止發(fā)送數(shù)據(jù)。釋放數(shù)據(jù)報文首部,F(xiàn)IN=1,其序列號為seq=u(等于前面已經(jīng)傳送過來的數(shù)據(jù)的最后一個字節(jié)的序號加1),此時,客戶端進(jìn)入FIN-WAIT-1(終止等待1)狀態(tài)。 TCP規(guī)定,F(xiàn)IN報文段即使不攜帶數(shù)據(jù),也要消耗一個序號。
- 服務(wù)器收到連接釋放報文,發(fā)出確認(rèn)報文,ACK=1,ack=u+1,并且?guī)献约旱男蛄刑杝eq=v,此時,服務(wù)端就進(jìn)入了CLOSE-WAIT(關(guān)閉等待)狀態(tài)。TCP服務(wù)器通知高層的應(yīng)用進(jìn)程,客戶端向服務(wù)器的方向就釋放了,這時候處于半關(guān)閉狀態(tài),即客戶端已經(jīng)沒有數(shù)據(jù)要發(fā)送了,但是服務(wù)器若發(fā)送數(shù)據(jù),客戶端依然要接受。這個狀態(tài)還要持續(xù)一段時間,也就是整個CLOSE-WAIT狀態(tài)持續(xù)的時間。
- 客戶端收到服務(wù)器的確認(rèn)請求后,此時,客戶端就進(jìn)入FIN-WAIT-2(終止等待2)狀態(tài),等待服務(wù)器發(fā)送連接釋放報文(在這之前還需要接受服務(wù)器發(fā)送的最后的數(shù)據(jù))。
- 服務(wù)器將最后的數(shù)據(jù)發(fā)送完畢后,就向客戶端發(fā)送連接釋放報文,F(xiàn)IN=1,ack=u+1,由于在半關(guān)閉狀態(tài),服務(wù)器很可能又發(fā)送了一些數(shù)據(jù),假定此時的序列號為seq=w,此時,服務(wù)器就進(jìn)入了LAST-ACK(最后確認(rèn))狀態(tài),等待客戶端的確認(rèn)。
- 客戶端收到服務(wù)器的連接釋放報文后,必須發(fā)出確認(rèn),ACK=1,ack=w+1,而自己的序列號是seq=u+1,此時,客戶端就進(jìn)入了TIME-WAIT(時間等待)狀態(tài)。注意此時TCP連接還沒有釋放,必須經(jīng)過2??MSL(最長報文段壽命)的時間后,當(dāng)客戶端撤銷相應(yīng)的TCB后,才進(jìn)入CLOSED狀態(tài)。
- 服務(wù)器只要收到了客戶端發(fā)出的確認(rèn),立即進(jìn)入CLOSED狀態(tài)。同樣,撤銷TCB后,就結(jié)束了這次的TCP連接??梢钥吹剑?wù)器結(jié)束TCP連接的時間要比客戶端早一些。
3、描述TCP和UDP區(qū)別
TCP
TCP協(xié)議是一種可靠的、一對一的、面向有連接的通信協(xié)議,TCP主要通過下列幾種方式保證數(shù)據(jù)傳輸?shù)目煽啃裕?/p>
在使用TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸時,往往需要客戶端和服務(wù)端先建立一個“通道“、且這個通道只能夠被客戶端和服務(wù)端使用,所以TCP傳輸協(xié)議只能面向一對一的連接。
為了保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確無誤,TCP傳輸協(xié)議將用于傳輸?shù)臄?shù)據(jù)包分為若干個部分(每個部分的大小根據(jù)當(dāng)時的網(wǎng)絡(luò)情況而定),然后在它們的首部添加一個檢驗字節(jié)。當(dāng)數(shù)據(jù)的一個部分被接收完畢之后,服務(wù)端會對這一部分的完整性和準(zhǔn)確性進(jìn)行校驗,校驗之后如果數(shù)據(jù)的完整度和準(zhǔn)確度都為100%,在服務(wù)端會要求客戶端開始數(shù)據(jù)下一個部分的傳輸,如果數(shù)據(jù)的完整性和準(zhǔn)確性與原來不相符,那么服務(wù)端會要求客戶端再次傳輸這個部分。
UDP
UDP是一個非連接的協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接, 當(dāng)它想傳送時就簡單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。 在發(fā)送端,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度、 計算機(jī)的能力和傳輸帶寬的限制; 在接收端,UDP把每個消息段放在隊列中,應(yīng)用程序每次從隊列中讀一個消息段。
由于傳輸數(shù)據(jù)不建立連接,因此也就不需要維護(hù)連接狀態(tài),包括收發(fā)狀態(tài)等, 因此一臺服務(wù)機(jī)可同時向多個客戶機(jī)傳輸相同的消息。
UDP信息包的標(biāo)題很短,只有8個字節(jié),相對于TCP的20個字節(jié)信息包的額外開銷很小。
吞吐量不受擁擠控制算法的調(diào)節(jié),只受應(yīng)用軟件生成數(shù)據(jù)的速率、傳輸帶寬、 源端和終端主機(jī)性能的限制。
UDP使用盡最大努力交付,即不保證可靠交付, 因此主機(jī)不需要維持復(fù)雜的鏈接狀態(tài)表。
UDP是面向報文的。發(fā)送方的UDP對應(yīng)用程序交下來的報文, 在添加首部后就向下交付給IP層。既不拆分,也不合并,而是保留這些報文的邊界, 因此,應(yīng)用程序需要選擇合適的報文大小。
4、ip分類以及每個分類可以分配的IP數(shù)量
| -- | A類 | B類 | C類 | D類 |
|---|---|---|---|---|
| 網(wǎng)絡(luò)地址 | 1.0.0.0-126.0.0.0 | 128.0.0.0-191.255.0.0 | 192.0.0.0-223.255.255.0 | 多播地址 |
| ip 范圍 | 1.0.0.1-126.255.255.254 | 128.0.0.1-191.255.255.254 | 192.0.0.1 - 223.255.255.254 | 224.0.0.1 - 239.255.255.254 |
| 子網(wǎng)掩碼 | 255.0.0.0 | 255.255.0.0 | 255.255.255.0 | 不分網(wǎng)絡(luò)地址和主機(jī)地址 |
| 網(wǎng)段數(shù) | 126個 | 16384個 | 2097152個 | |
| 每個網(wǎng)段主機(jī)數(shù) | 16777214臺 | 65534臺 | 254臺 |
5、總結(jié)IP配置方法
ifconfig
ifconfig [網(wǎng)絡(luò)設(shè)備][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<網(wǎng)絡(luò)設(shè)備類型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<網(wǎng)絡(luò)媒介類型>][mem_start<內(nèi)存地址>][metric<數(shù)目>][mtu<字節(jié)>][netmask<子網(wǎng)掩碼>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
# ifconfig eth0 add 192.168.0.1 netmask 255.255.255.0 //為網(wǎng)卡誒之IPv4地址
# ifconfig eth0 del 192.168.0.1 netmask 255.255.255.0 //為網(wǎng)卡刪除IPv4地址
修改網(wǎng)絡(luò)配置文件
打開配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ethXX
#xx為網(wǎng)卡數(shù)據(jù)量,第一塊是eth0
[root@VM_0_14_centos network-scripts]# cat ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=none
DEVICE=eth0
HWADDR=52:54:00:ea:da:45
NM_CONTROLLED=no
ONBOOT=yes
PERSISTENT_DHCLIENT=yes
TYPE=Ethernet
USERCTL=no
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.254