電腦網路面試題,電腦網路試題
1、OSI的七層協議、TCP/IP的四層協議、謝希仁老師的網路課本提到的五層協議的對比
註:
(1)OSI的七層協議只是理論上的協議,實際上沒有用到。
(2)TCP/IP的四層協議在真正在實際中用到的體繫結構。
(3)謝老課本中提到的五層協議只是為了更好的講解概念而採用的折中方法。
2、OSI的七層協議
(1)第七層、應用程式層
<0>作用:直接為使用者的應用進程提供服務。
<1>應用程式層提供的服務:檔案傳輸(FTP協議)、全球資訊網的應用(HTTP協議)以及電子郵件的資訊處理(SMTP協議)等。
<2>常見的協議:HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等
<3>注意:應用程式層並不是指運行在網路上的某個特別應用程式,而是指為使用者的應用進程提供的服務
(2)第六層、展示層
<0>作用:負責資料的編碼和轉化,確保一個系統的應用程式層所發送的資訊可以被另一個系統的應用程式層讀取(相互識別)。
<1>具體作用:資料的壓縮、解壓、加密、解密,根據不同的應用目的將資料變成不同的格式(表現出來就是各種副檔名)
(3)第五層、會話層
<0>作用:為網路中兩個結點(通訊雙方)制定通訊方式,並建立、維護、控制、登出會話等。
(4)第四層、運輸層(傳輸層)
<0>作用:為兩個主機中進程之間的通訊提供服務
<1>具體作用:負責資料分割(傳送端)和資料群組合(接收端)以及控制資料流量,並且進行調試及錯誤處理,以確保通訊順利。
<2>常見的協議:TCP協議、UDP協議
說明:
1、待傳輸的資料在上三層是整體的,到了運輸層是開始分割,分割後的資料稱為段。
2、三向交握、連線導向和非連線導向的服務、流量控制都發生在這一層。
(5)第三層、網路層
<0>作用:決定如何將發送方的資料傳到接收方(走哪一條路)
<1>資料單元:IP資料報或資料報或分組。
<2>重要的協議:IP協議、ARP協議、RARP協議、ICMP協議、IGMP協議
說明:網路層向上只提供簡單靈活的、不需連線的、盡最大可能交付的資料報服務,使得路由器做的就比較簡單。
1、網路在發送分組時,不需要先建立串連。
2、每一個分組獨立發送,與前後分組無關。
3、在傳送過程中,所傳送的分組可能出錯、丟失、重複和失序、而且也不保證分組交付的時限。
注意:網路層不保證通訊時可靠的,但可以由運輸層負責(差錯處理、流量控制等)。
(6)第二層、資料連結層
<0>作用:管理第一層的位元資料,並將正確的資料傳送到沒有傳輸錯誤的路線中。
<1>資料單元:幀
<2>重要協議:點對點通訊協定 (PPP)PPP(點對點通訊方式)、CSMA/CD協議(一對多的廣播通訊方式)
注意:
1、資料連結層側重點在於,如何在不可靠的物理線路上進行資料的可靠傳遞。
2、在OSI模型中,資料連結層向上提供可靠傳輸的服務,即具有重傳和確認機制。但是在實際的應用中,TCP/IP的資料連結層不要求提供可靠傳輸。可靠傳輸有運輸層控制。
(7)第一層、物理層
<0>作用:負責在網路上透明地傳送位元流
<1>具體功能:如何才能在各種介質上傳送位元流,即確定與傳輸媒體介面有關的特性。
<1>資料單元:位元流
注意:物理層關注的重點在於,如何才能在各種介質上傳送位元流,而並不指具體的傳輸媒體。
2、網路層有什麼協議?
(0)IP協議:
作用:根據目的IP地址,找一條路徑,將發送方的資料傳到接收方
(1)ARP協議:位址解析通訊協定
作用:根據對方的IP地址,找到對方的物理地址
(2)RARP協議:逆位址解析通訊協定
作用:根據對方的硬體地址,找到對方的IP地址
(3)ICMP協議:網際控制報文協議(Internet Control Message Protocol)
作用:資料報發送錯誤時,發送提示資訊
(4)IGMP協議:網際組管理協議
作用:發送多播協議
(5)OSPF協議:先開啟最短的路徑
作用:發送資料找一條最短路徑發送
3、ping命令作用?使用的什麼協議?
<1> 作用:它測試兩個主機之間的連通性。
<2> 使用網路層協議ICMP協議
注意:ping命令,它沒有通過運輸層協議(TCP、UDP)而直接使用網路層協議。
4、ICMP協議在網路的哪一層?作用?
(1) ICMP協議工作在網路層
(2) 提出的目的:為了更加有效地轉寄IP資料報和提高交付成功的機會。
(3) 作用:
<1> 簡單點說:當轉寄IP資料報出現錯誤時,給出原因。
<2> 具體點說:當路由器或者主機發送IP資料報出現錯誤時,路由器或者主機會向源點發送原因。
注意:ICMP是網路層的自我檢測,用來檢測資訊是否到達目的地。若沒到達,在提供原因。
(4) 怎麼發送資料:以IP資料報為載體發送
具體來說:ICMP差錯報文的資料欄位:IP資料報的首部和資料欄位的前八個位元組(包含連接埠號碼和發送序號)
(5) 分類:
<1> ICMP差錯報告報文 -- 都是由發現問題的主機或路由器向源點發送。
1)終點不可達:找不到目的主機
2)源點抑制:網路擁塞
3)時間超過:收到的資料報存留時間為0(沒有在預定時間內收到資料報)
4)參數問題:資料報首部出現問題。
5)改變路由:到達目的地址的最佳路徑不經過預設路由,要改變路由表中的表相。
<2> ICMP詢問報文
1)回送請求和回答:檢測網路效能,通不通
2)時間戳記請求和回答:請某個主機或者路由回答目前時間。用於同步。
(6) ICMP協議的應用:
<1> ping命令:判斷兩個主機之間的連通性
原理:向目的主機發送回送請求和回答報文,之後根據目的主機的回複,就可以檢測。
<2> Traceroute命令:獲得源點到終點的路徑
原理:向目的主機發送一連串IP資料報,IP資料報中包含的是無法交付發的UDP資料報(連接埠非法)。
具體來說,分兩種資料報。
工作原理:Traceroute從源主機向目的主機發送一連串的IP資料報,資料報中封裝的是無法交付的UDP使用者資料報。
<1> 第一個資料報P1的存留時間TTL設定為1。當P1到達路徑上的第一個路由器R1時,路由器R1先收下它,接著把TTL的值減1。由於TTL等於零了,R1就把P1丟棄了,並向源主機發送一個ICMP時間超過差錯報告報文。
<2> 源主機接著發送第二個資料報P2,並把TTL設定為2。P2先到達路由器R1,R1先收下後把TTL減1再轉寄給路由器R2。R2收到P2時的TTL為1,但減1後TTL變為零了。R2就丟棄P2,並向源主機發送一個ICMP時間超過差錯報告報文。這樣一直繼續下去。
<3> 當最後一個資料報剛剛到達目的主機時,資料報的TTL是1。主機不轉寄資料報,也不把TTL值減1。但因IP資料報中封裝的是無法交付的運輸層的UDP使用者資料報,因此目的主機要向源主機發送ICMP終點不可達差錯報告報文。這樣,源主機達到了自己的目的,因為這些路由器和最後目的主機發來的ICMP報文正好給出了源主機想知道的路由資訊——到達目的主機所經過的路由器的IP地址,以及其中的每一個路由器的往返時間。
5、TCP和UDP的區別
<1>TCP提供的是連線導向的、可靠的資料流傳輸.
<2>UDP提供的是非連線導向的、不可靠的資料流傳輸。
簡單的說,TCP注重資料安全,而UDP資料轉送快點,但安全性一般
6、ARP協議(位址解析通訊協定)的工作原理
(1)首先,每台主機都會在自己的ARP緩衝區 (ARP Cache)中建立一個 ARP列表,以表示IP地址和MAC地址的對應關係。
(2)當源主機需要將一個資料包要發送到目的主機時,會首先檢查自己 ARP列表中是否存在該IP地址對應的MAC地址,
<1> 如果有,就直接將資料包發送到這個MAC地址;
<2> 如果沒有,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC地址。此ARP請求資料包裡包括源主機的IP地址、硬體地址、以及目的主機的IP地址。
(3)網路中所有的主機收到這個ARP請求後,會檢查資料包中的目的IP是否和自己的IP地址一致。
<1> 如果不相同就忽略此資料包;
<2> 如果相同,該主機首先將發送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經存在該IP的資訊,則將其覆蓋,然後給源主機發送一個 ARP響應資料包,告訴對方自己是它需要尋找的MAC地址;
(4)源主機收到這個ARP響應資料包後,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,並利用此資訊開始資料的傳輸。如果源主機一直沒有收到ARP響應資料包,表示ARP查詢失敗。
7、TCP怎麼保證錯誤重傳?
(1)接收方收到錯誤的分組,就直接丟棄,而不做任何操作。
(2)發送方在規定的時間(比平均往返時延大一些)沒有收到分組的確認分組,就會自動重傳。
(3)當然,為了讓對方知道哪個分組出問題了,就也為分組編了序號。
8、IP協議的差錯檢測:
(1)檢測哪一部分? IP協議只檢測IP資料報的首部,不檢測資料部分。
(2)由誰檢測? 資料報每經過一個路由器,路由器都進行一次差錯檢測。
(3)錯誤之後怎麼辦? 路由器探索資料報錯誤後,直接丟棄。
(4)怎麼檢測? 不使用複雜的CRC檢驗,利用IP資料報中的首部檢驗和。
方法:16個二進位一組,之後求反碼相加。
(5)檢測過程:
<1> 發送方:把IP資料報首部分成16位的序列,之後每一個序列進行求反碼在求和。並把和的反碼放入首部檢驗和。
<2> 接收方(經過的路由器):把IP資料報首部分成16位的序列,之後每一個序列進行求反碼在求和。之後再與首部檢驗和相加,為0則正常。不為0則出錯。
9、UDP協議的差錯檢測:
(1)檢測哪一部分? UDP協議檢測整個使用者資料報(首部 + 資料部分)
(2)由誰檢測? 由目的主機檢測
(3)錯誤之後怎麼辦? 目的主機探索資料報錯誤後,直接丟棄。
(4)怎麼檢測? 不使用複雜的CRC檢驗,和IP資料報的檢測方法相似。
方法:偽首部 + 首部 + 資料部分 + 全0的填充位元組 + 16個二進位一組,之後求反碼相加。
使用偽首部的原因:只是單純為了做校正用的。
偽首部包括:偽首部包含源IP地址和目的IP地址,UDP協議號以及UDP長度等資訊,目的是讓UDP兩次檢查資料是否已經正確到達目的地。
注意:
<1> 偽首部不上傳也不想下傳輸。
<2> 由於檢測的部分可能不是偶數個位元組,不能均拆成16位的序列,此時可以插入全0的填充位元組。
(5)檢測過程:
<1> 發送方:把待檢測的部分分成16位的序列,之後每一個序列進行求反碼在求和。並把和的反碼放入首部檢驗和。
<2> 接收方:把待檢測的部分分成16位的序列,之後每一個序列進行求反碼在求和。之後再與首部檢驗和相加,為0則正常。不為0則出錯。
10、TCP協議的差錯檢測:
(1)檢測哪一部分? TCP協議檢測整個使用者資料報(首部 + 資料部分)
(2)由誰檢測? 由目的主機檢測
(3)錯誤之後怎麼辦? 目的主機探索資料報錯誤後,直接丟棄。
(4)怎麼檢測? 不使用複雜的CRC檢驗,和IP資料報的檢測方法相似。
方法:偽首部 + 首部 + 資料部分 + 全0的填充位元組 + 16個二進位一組,之後求反碼相加。
使用偽首部的原因:只是單純為了做校正用的。
偽首部包括:偽首部包含源IP地址和目的IP地址,TCP協議號以及TCP長度等資訊,目的是讓TCP兩次檢查資料是否已經正確到達目的地。
注意:
<1> 偽首部不上傳也不想下傳輸。
<2> 由於檢測的部分可能不是偶數個位元組,不能均拆成16位的序列,此時可以插入全0的填充位元組。
(5)檢測過程:
<1> 發送方:把待檢測的部分分成16位的序列,之後每一個序列進行求反碼在求和。並把和的反碼放入首部檢驗和。
<2> 接收方:把待檢測的部分分成16位的序列,之後每一個序列進行求反碼在求和。之後再與首部檢驗和相加,為0則正常。不為0則出錯。
記憶:
(1)IP協議只檢測首部,而TCP和UDP檢測整個首部和資料部分,當然還包括偽首部。
(2)IP、UDP、TCP檢測出錯誤後,會直接丟棄。但是TCP協議會要求重傳。
(3)UDP和TCP的差錯檢測方法一樣。
著作權聲明:歡迎轉載,希望在你轉載的同時,添加原文地址,謝謝配合