計算機網絡常見面試題

1.TCP/UDP區別以及TCP如何保證傳輸可靠性

TCP(Transmission Control Protocol,傳輸控制協議)是基於連接的協議,也就是說,在正式收發數據前,必須和對方建立可靠的連接。一個TCP連接必須要經過三次“對話”才能建立起來,其中的過程非常複雜,我們這裏只做簡單、形象的介紹,你只要做到能夠理解這個過程即可。我們來看看這三次對話的簡單過程:主機A向主機B發出連接請求數據包:“我想給你發數據,可以嗎?”,這是第一次對話;主機B向主機A發送同意連接和要求同步(同步就是兩臺主機一個在發送,一個在接收,協調工作)的數據包:“可以,你什麼時候發?”,這是第二次對話;主機A再發出一個數據包確認主機B的要求同步:“我現在就發,你接着吧!”,這是第三次對話。三次“對話”的目的是使數據包的發送和接收同步,經過三次“對話”之後,主機A才向主機B正式發送數據。 


UDP(User Data Protocol,用戶數據報協議)是與TCP相對應的協議。它是面向非連接的協議,它不與對方建立連接,而是直接就把數據包發送過去! 
  UDP適用於一次只傳送少量數據、對可靠性要求不高的應用環境。比如,我們經常使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向對方主機發送UDP數據包,然後對方主機確認收到數據包,如果數據包是否到達的消息及時反饋回來,那麼網絡就是通的。例如,在默認狀態下,一次“ping”操作發送4個數據包。大家可以看到,發送的數據包數量是4包,收到的也是4包(因爲對方主機收到後會發回一個確認收到的數據包)。這充分說明了UDP協議是面向非連接的協議,沒有建立連接的過程。正因爲UDP協議沒有連接的過程,所以它的通信效果高;但也正因爲如此,它的可靠性不如TCP協議高。QQ就使用UDP發消息,因此有時會出現收不到消息的情況。 


tcp協議和udp協議的差別 
                        TCP                  UDP 
是否連接     面向連接         面向非連接 
傳輸可靠性    可靠                 不可靠 
應用場合 傳輸大量數據        少量數據 
速度                慢                     快


TCP的可靠性如何保證:

在TCP的連接中,數據流必須以正確的順序送達對方。TCP的可靠性是通過順序編號和確認(ACK)來實現的。TCP在開始傳送一個段時,爲準備重傳而首先將該段插入到發送隊列之中,同時啓動時鐘。其後,如果收到了接受端對該段的ACK信息,就將該段從隊列中刪去。如果在時鐘規定的時間內,ACK未返回,那麼就從發送隊列中再次送出這個段。TCP在協議中就對數據可靠傳輸做了保障,握手與斷開都需要通訊雙方確認,數據傳輸也需要雙方確認成功,在協議中還規定了:分包、重組、重傳等規則;而UDP主要是面向不可靠連接的,不能保證數據正確到達目的地。     


2.常見的路由選擇協議,以及它們的區別

常見的路由選擇協議有:RIP協議、OSPF協議。

RIP協議:底層是貝爾曼福特算法,它選擇路由的度量標準(metric)是跳數,最大跳數是15跳,如果大於15跳,它就會丟棄數據包。

OSPF協議:底層是迪傑斯特拉算法,是鏈路狀態路由選擇協議,它選擇路由的度量標準是帶寬,延遲。


3.OSI七層模型與TCP/IP五層模型

OSI七層模型
OSI 中的層                         功能                                                                                 TCP/IP協議族 
應 用層                 文件傳輸,電子郵件,文件服務,虛擬終 端         TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 
表示層                 數據格式化,代碼轉換,數據加密                                    沒有協議 
會話 層                 解除或建立與別的接點的聯繫                                          沒有協議 
傳輸層                 提供端對端的接口                                                        TCP,UDP 
網 絡層                 爲數據包選擇路由                                                        IP,ICMP,RIP,OSPF,BGP,IGMP 
數據鏈路層           傳輸有地址的幀以及錯誤檢測功能                            SLIP,CSLIP,PPP,ARP,RARP,MTU
物 理層                 以二進制數據形式在物理媒體上傳輸數據                             ISO2110,IEEE802,IEEE802.2

***************************************************************************************************************

TCP/IP五層模型的協議

應用層 
傳輸層:四層交換機、也有工作在四層的路由器

網絡層:路由器、三層交換機

數據鏈路層:網橋(現已很少使用)、以太網交換機(二層交換機)、網卡(其實網卡是一半工作在物理層、一半工作在數據鏈路層)

物理層:中繼器、集線器、還有我們通常說的雙絞線也工作在物理層


TCP/IP中,每一層對應的協議

網絡層:IP協議、ICMP協議、ARP協議、RARP協議。

傳輸層:UDP協議、TCP協議。

應用層:FTP(文件傳送協議)、Telenet(遠程登錄協議)、DNS(域名解析協議)、SMTP(郵件傳送協議),POP3協議(郵局協議),HTTP協議。


注意:

在OSI模型中ARP協議屬於鏈路層;而在TCP/IP模型中,ARP協議屬於網絡層。 


**************************************************************

除了層的數量之外,開放式系統互聯(OSI)模型與TCP/IP協議有什麼區別? 

開放式 系統互聯模型是一個參考標準,解釋協議相互之間應該如何相互作用。TCP/IP協議是美國國防部發明的,是讓互聯網成爲了目前這個樣子的標準之一。 開放式系統互聯模型中沒有清楚地描繪TCP/IP協議,但是在解釋TCP/IP協議時很容易想到開放式系統互聯模型。

兩者的主要區別如下: 
·TCP/IP協議中的應用層處理開放式系統互聯模型中的第五層、第六層和第七層的功能。 
·TCP/IP協議中的傳輸層並不能總是保證在傳 輸層可靠地傳輸數據包,而開放式系統互聯模型可以做到。TCP/IP協議還提供一項名爲UDP(用戶數據報協議)的選擇。UDP不能保證可靠的數據包傳 輸。


 TCP/IP全稱:Transmission Control Protocol / Internet Protocol 中文翻譯:傳輸控制協議 / 互聯網協議

4.OSI七層模型詳解及各層的硬件設備


應用層,很簡單,就是應用程序。這一層負責確定通信對象,並確保由足夠的資源用於通信,這些當然都是想要通信的應用程序乾的事情。爲操作系統或網絡應用程序提供訪問網絡服務的接口。
應用層協議的代表包括:Telnet、FTP、HTTP、SNMP等。

表示層,負責數據的編碼、轉化,確保應用層的正常工作。這一層,是將我們看到的界面與二進制間互相轉化的地方,就是我們的語言與機器語言間的轉化。數據的壓縮、解壓,加密、解密都發生在這一層。這一層根據不同的應用目的將數據處理爲不同的格式,表現出來就是我們看到的各種各樣的文件擴展名。

會話層,負責建立、維護、控制會話,區分不同的會話,以及提供單工(Simplex)、半雙工(Half duplex)、全雙工(Full duplex)三種通信模式的服務。我們平時所知的NFS,RPC,X Windows等都工作在這一層。管理主機之間的會話進程,即負責建立、管理、終止進程之間的會話。會話層還利用在數據中插入校驗點來實現數據的同步。

傳輸層,負責分割、組合數據,實現端到端的邏輯連接。數據在上三層是整體的,到了這一層開始被分割,這一層分割後的數據被稱爲段(Segment)。三次握手(Three-way handshake),面向連接(Connection-Oriented)或非面向連接(Connectionless-Oriented)的服務,流控(Flow control)等都發生在這一層。是第一個端到端,即主機到主機的層次。傳輸層負責將上層數據分段並提供端到端的、可靠的或不可靠的傳輸。此外,傳輸層還要處理端到端的差錯控制和流量控制問題。
在這一層,數據的單位稱爲數據段(segment)。
傳輸層協議的代表包括:TCP、UDP、SPX等

網絡層,負責管理網絡地址,定位設備,決定路由。我們所熟知的IP地址和路由器就是工作在這一層。上層的數據段在這一層被分割,封裝後叫做包(Packet),包有兩種,一種叫做用戶數據包(Data packets),是上層傳下來的用戶數據;另一種叫路由更新包(Route update packets),是直接由路由器發出來的,用來和其他路由器進行路由信息的交換。負責對子網間的數據包進行路由選擇。網絡層還可以實現擁塞控制、網際互連等功能。
在這一層,數據的單位稱爲數據包(packet)。
網絡層協議的代表包括:IP、IPX、RIP、OSPF等

數據鏈路層,負責準備物理傳輸,CRC校驗,錯誤通知,網絡拓撲,流控等。我們所熟知的MAC地址和交換機都工作在這一層。上層傳下來的包在這一層被分割封裝後叫做幀(Frame)。在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。
在這一層,數據的單位稱爲幀(frame)。
數據鏈路層協議的代表包括:SDLC、HDLC、PPP、STP、幀中繼等

物理層,就是實實在在的物理鏈路,負責將數據以比特流的方式發送、接收,就不多說了。


各層的設備:

物理層:中繼器(Repeater,也叫放大器),集線器,網線

數據鏈路層:網橋,交換機。

網絡層:路由器。

網關:網絡層以上的設備。



5.IP地址的分類(尤其注意特殊IP)


綜述:

A類地址:以0開頭,第一個字節範圍:0~127;

B類地址:以10開頭,第一個字節範圍:128~191;

C類地址:以110開頭,第一個字節範圍:192~223;

D類地址:以1110開頭,第一個字節範圍爲224~239;


百度百科:


最初設計互聯網絡時,爲了便於尋址以及層次化構造網絡,每個IP地址包括兩個標識碼(ID),即網絡ID和主機ID。同一個物理網絡上的所有主機都使用同一個網絡ID,網絡上的一個主機(包括網絡上工作站,服務器和路由器等)有一個主機ID與其對應。Internet委員會定義了5種IP地址類型以適合不同容量的網絡,即A類~E類。

其中A、B、C3類(如下表格)由InternetNIC在全球範圍內統一分配,D、E類爲特殊地址。


A類IP地址

一個A類IP地址是指, 在IP地址的四段號碼中,第一段號碼爲網絡號碼,剩下的三段號碼爲本地計算機的號碼。如果用二進制表示IP地址的話,A類IP地址就由1字節的網絡地址和3字節主機地址組成,網絡地址的最高位必須是“0”。A類IP地址中網絡的標識長度爲8位,主機標識的長度爲24位,A類網絡地址數量較少,有126個網絡,每個網絡可以容納主機數達1600多萬臺。
A類IP地址 地址範圍1.0.0.0到127.255.255.255[1] (二進制表示爲:00000001 00000000 00000000 00000000 - 01111110 11111111 11111111 11111111)。最後一個是廣播地址。
A類IP地址的子網掩碼爲255.0.0.0,每個網絡支持的最大主機數爲256的3次方-2=16777214臺。

B類IP地址

一個B類IP地址是指,在IP地址的四段號碼中,前兩段號碼爲網絡號碼。如果用二進制表示IP地址的話,B類IP地址就由2字節的網絡地址和2字節主機地址組成,網絡地址的最高位必須是“10”。B類IP地址中網絡的標識長度爲16位,主機標識的長度爲16位,B類網絡地址適用於中等規模的網絡,有16384個網絡,每個網絡所能容納的計算機數爲6萬多臺。
B類IP地址地址範圍128.0.0.0-191.255.255.255(二進制表示爲:10000000 00000000 00000000 00000000----10111111 11111111 11111111 11111111)。 最後一個是廣播地址。
B類IP地址的子網掩碼爲255.255.0.0,每個網絡支持的最大主機數爲256的2次方-2=65534臺。

C類IP地址

一個C類IP地址是指,在IP地址的四段號碼中,前三段號碼爲網絡號碼,剩下的一段號碼爲本地計算機的號碼。如果用二進制表示IP地址的話,C類IP地址就由3字節的網絡地址和1字節主機地址組成,網絡地址的最高位必須是“110”。C類IP地址中網絡的標識長度爲24位,主機標識的長度爲8位,C類網絡地址數量較多,有209萬餘個網絡。適用於小規模的局域網絡,每個網絡最多隻能包含254臺計算機。
C類IP地址範圍192.0.0.0-223.255.255.255[3] (二進制表示爲: 11000000 00000000 00000000 00000000 - 11011111 11111111 11111111 11111111)。
C類IP地址的子網掩碼爲255.255.255.0,每個網絡支持的最大主機數爲256-2=254臺

D類IP地址

D類IP地址在歷史上被叫做多播地址(multicast address),即組播地址。在以太網中,多播地址命名了一組應該在這個網絡中應用接收到一個分組的站點。多播地址的最高位必須是“1110”,範圍從224.0.0.0到239.255.255.255。

特殊的網址

  1. 每一個字節都爲0的地址(“0.0.0.0”)對應於當前主機
  2. IP地址中的每一個字節都爲1的IP地址(“255.255.255.255”)是當前子網的廣播地址
  3. IP地址中凡是以“1110”開頭的E類IP地址都保留用於將來和實驗使用。
  4. IP地址中不能以十進制“127”作爲開頭,該類地址中數字127.0.0.1到127.255.255.255用於迴路測試,如:127.0.0.1可以代表本機IP地址,用“http://127.0.0.1”就可以測試本機中配置的Web服務器。
  5. 網絡ID的第一個8位組也不能全置爲“0”,全“0”表示本地網絡。


6.ARP協議的工作原理

 首先,每臺主機都會在自己的ARP緩衝區中建立一個 ARP列表,以表示IP地址和MAC地址的對應關係。當源主機需要將一個數據包要發送到目的主機時,會首先檢查自己 ARP列表中是否存在該 IP地址對應的MAC地址,如果有,就直接將數據包發送到這個MAC地址;如果沒有,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC地址。此ARP請求數據包裏包括源主機的IP地址、硬件地址、以及目的主機的IP地址。網絡中所有的主機收到這個ARP請求後,會檢查數據包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此數據包;如果相同,該主機首先將發送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經存在該IP的信息,則將其覆蓋,然後給源主機發送一個 ARP響應數據包,告訴對方自己是它需要查找的MAC地址;源主機收到這個ARP響應數據包後,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,並利用此信息開始數據的傳輸。如果源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。

7.在瀏覽器中輸入網址後執行的全部過程

1.查找域名對應的IP地址。這一步會依次查找瀏覽器緩存,系統緩存,路由器緩存,ISPNDS緩存,根域名服務器。
2.向IP對應的服務器發送請求。
3.服務器響應請求,發回網頁內容。
4.瀏覽器解析網頁內容。
由於網頁可能有重定向,或者嵌入了圖片,AJAX,其它子網頁等等,這4個步驟可能反覆進行多次才能將最終頁面展示給用戶。


更好的詳解:
http://www.360doc.com/content/14/0917/10/10096004_410111504.shtml

8.  TCP對應的協議和UDP對應的協議

TCP對應的協議:

(1) FTP:定義了文件傳輸協議,使用21端口。常說某某計算機開了FTP服務便是啓動了文件傳輸服務。下載文件,上傳主頁,都要用到FTP服務。

(2) Telnet:它是一種用於遠程登陸的端口,用戶可以以自己的身份遠程連接到計算機上,通過這種端口可以提供一種基於DOS模式下的通信服務。如以前的BBS是-純字符界面的,支持BBS的服務器將23端口打開,對外提供服務。

(3) SMTP:定義了簡單郵件傳送協議,現在很多郵件服務器都用的是這個協議,用於發送郵件。如常見的免費郵件服務中用的就是這個郵件服務端口,所以在電子郵件設置-中常看到有這麼SMTP端口設置這個欄,服務器開放的是25號端口。

(4) POP3:它是和SMTP對應,POP3用於接收郵件。通常情況下,POP3協議所用的是110端口。也是說,只要你有相應的使用POP3協議的程序(例如Fo-xmail或Outlook),就可以不以Web方式登陸進郵箱界面,直接用郵件程序就可以收到郵件(如是163郵箱就沒有必要先進入網易網站,再進入自己的郵-箱來收信)。

(5)HTTP協議:是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。

UDP對應的協議:

(1) DNS:用於域名解析服務,將域名地址轉換爲IP地址。DNS用的是53號端口。

(2) SNMP:簡單網絡管理協議,使用161號端口,是用來管理網絡設備的。由於網絡設備很多,無連接的服務就體現出其優勢。

(3) TFTP(Trival File Transfer Protocal),簡單文件傳輸協議,該協議在熟知端口69上使用UDP服務。


9.強調下上文的特殊IP地址

(1)網絡地址

   IP地址由網絡號(包括子網號)和主機號組成,網絡地址的主機號爲全0,網絡地址代表着整個網絡。

(2)廣播地址

     廣播地址通常稱爲直接廣播地址,是爲了區分受限廣播地址。

     廣播地址與網絡地址的主機號正好相反,廣播地址中,主機號爲全1。當向某個網絡的廣播地址發送消息時,該網絡內的所有主機都能收到該廣播消息。

(3)組播地址

    D類地址就是組播地址。

     先回憶下A,B,C,D類地址吧

    A類地址以00開頭,第一個字節作爲網絡號,地址範圍爲:0.0.0.0~127.255.255.255;

    B類地址以10開頭,前兩個字節作爲網絡號,地址範圍是:128.0.0.0~191.255.255.255;

    C類地址以110開頭,前三個字節作爲網絡號,地址範圍是:192.0.0.0~223.255.255.255。

    D類地址以1110開頭,地址範圍是224.0.0.0~239.255.255.255,D類地址作爲組播地址(一對多的通信);

    E類地址以1111開頭,地址範圍是240.0.0.0~255.255.255.255,E類地址爲保留地址,供以後使用。

    Notice:只有A,B,C有網絡號和主機號之分,D類地址和E類地址沒有劃分網絡號和主機號。

 (4)255.255.255.255

     該IP地址指的是受限的廣播地址。受限廣播地址與一般廣播地址(直接廣播地址)的區別在於,受限廣播地址之只能用於本地網絡,路由器不會轉發以受限廣播地址爲目的地址的分組;一般廣播地址既可在本地廣播,也可跨網段廣播。例如:主機192.168.1.1/30上的直接廣播數據包後,另外一個網段192.168.1.5/30也能收到該數據報;若發送受限廣播數據報,則不能收到。

    Notice:一般的廣播地址(直接廣播地址)能夠通過某些路由器(當然不是所有的路由器),而受限的廣播地址不能通過路由器。

    (5)0.0.0.0

       常用於尋找自己的IP地址,例如在我們的RARP,BOOTP和DHCP協議中,若某個未知IP地址的無盤機想要知道自己的IP地址,它就以255.255.255.255爲目的地址,向本地範圍(具體而言是被各個路由器屏蔽的範圍內)的服務器發送IP請求分組。

  (6)迴環地址

   127.0.0.0/8被用作迴環地址,迴環地址表示本機的地址,常用於對本機的測試,用的最多的是127.0.0.1。

  (7)A、B、C類私有地址

   私有地址(private address)也叫專用地址,它們不會在全球使用,只具有本地意義。

   A類私有地址:10.0.0.0/8,範圍是:10.0.0.0~10.255.255.255

   B類私有地址:172.16.0.0/12,範圍是:172.16.0.0~172.31.255.255

   C類私有地址:192.168.0.0/16,範圍是:192.168.0.0~192.168.255.255



10.  NAT協議、DHCP協議、DNS協議的作用

NAT協議:網絡地址轉換(NAT,Network AddressTranslation)屬接入廣域網(WAN)技術,

是一種將私有(保留)地址轉化爲合法IP地址的轉換技術,它被廣泛應用於各種類型Internet接入方式和各種類型的網絡中。原因很簡單,NAT不僅完美地解決了lP地址不足的問題,而且還能夠有效地避免來自網絡外部的***,隱藏並保護網絡內部的計算機。

藉助於NAT,私有(保留)地址的"內部"網絡通過路由器發送數據包時,私有地址被轉換成合法的IP地址,一個局域網只需使用少量IP地址(甚至是1個)即可實現私有地址網絡內所有計算機與Internet的通信需求。

DHCP協議:動態主機設置協議(Dynamic Host ConfigurationProtocol, DHCP)

是一個局域網的網絡協議,使用UDP協議工作,主要有兩個用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員作爲對所有計算機作中央管理的手段。

DNS協議:DNS 是域名系統 (Domain Name System) 的縮寫,是因特網的一項核心服務,它作爲可以將域名和IP地址相互映射的一個分佈式數據庫,能夠使人更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。


11.子網掩碼的作用

子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址主機地址兩部分。
用於子網掩碼的位數決定於可能的子網數目和每個子網的主機數目。
計算方法示例:
定義子網掩碼的步驟爲:
A、確定哪些組地址歸我們使用。比如我們申請到的網絡號爲 “210.73.a.b”,該網絡地址爲c類IP地址,網絡標識爲“210.73.a”,主機標識爲“b”。
B、根據我們所需的子網數以及將來可能擴充到的子網數,用宿主機的一些位來定義子網掩碼。比如我們需要12個子網,將來可能需要16個。用第四個字節的前四位確定子網掩碼。前四位都置爲“1”,即第四個字節爲“11110000”,這個數我們暫且稱作新的二進制子網掩碼。
C、把對應初始網絡的各個位都置爲“1”,即前三個字節都置爲“1”,則子網掩碼的間斷二進制形式爲:“11111111.11111111.11111111.11110000” 。
D、把這個數轉化爲間斷十進制形式爲:“255.255.255.240” 。


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