計算機網絡面試小知識總結(轉載)

·OSI,TCP/IP,五層協議的體系結構,以及各層協議瀏覽器

  OSI的七層協議體系結構的概念清楚,理論也比較完整,但它既複雜又不實用。緩存

  ICP/IP體系結構則不一樣,它如今已經獲得了很是普遍的應用,TCP/IP是一個四層的體系結構,它包含應用層、運輸層、網際層和網絡接口層(用網際層這個名字是強調這一層是爲了解決不一樣網絡的互連問題)。安全

  不過從實質來說,TCP/IP只有最上面的三層,由於最下面的網絡接口層基本上和通常的通訊鏈路的功能上沒有多大差異,對於計算機網絡來講,這一層並無什麼特別新的具體的內容,所以在學習計算機網絡原理是每每採用折中的辦法,即綜合OSI和TCP/IP的優勢,採用一種只有五層協議的體系結構,這樣既簡潔又能將概念闡述清楚。服務器

  應用層:提供用戶與網絡間的接口。----HTTP、FTP、SMTP網絡

  運輸層:進程到進程間的數據傳輸。---TCP、UDP分佈式

  網絡層:主機到主機之間的數據傳輸。---IP、選路協議性能

  數據鏈路層:相鄰結點之間的數據傳輸。---PPP、以太網學習

  物理層:在物理介質上傳輸比特流。計算機網絡

  應用層---------PDU是報文(message)
  傳輸層---------PDU是數據段(segment)
  網絡層---------PDU是數據報(datagram)
  數據鏈路層-----PDU是數據幀(frame)
  物理層---------PDU是比特(bit)router

 

·PING操做的原理

使用ICMP,在IP主機、路由器之間傳遞控制消息

 

·HTTP1.0/1.1區別

  HTTP1.1中才有cache-control響應頭,主要用於控制信息在瀏覽器的緩存

  1. HTTP 1.0規定瀏覽器與服務器只保持短暫的鏈接,瀏覽器的每次請求都須要與服務器創建一個TCP鏈接,服務器完成請求處理後當即斷開TCP鏈接,服務器不跟蹤每一個客戶也不記錄過去的請求。

  缺陷:訪問一個包含有許多圖像的網頁文件的整個過程包含了屢次請求和響應,每次請求和響應都須要創建一個單獨的鏈接,每次鏈接只是傳輸一個文檔和圖像,器端每次創建和關閉鏈接倒是一個相對比較費時的過程,而且會嚴重影響客戶機和服務器的性能。

  2. HTTP 1.1支持持久鏈接,在一個TCP鏈接上能夠傳送多個HTTP請求和響應,減小了創建和關閉鏈接的消耗和延遲。HTTP 1.1還容許客戶端不用等待上一次請求結果返回,就能夠發出下一次請求,但服務器端必須按照接收到客戶端請求的前後順序依次回送響應結果。
  HTTP 1.1還提供了Host、身份認證、狀態管理和Cache緩存等機制相關的請求頭和響應頭。

 

·IP地址分類

  A類地址:以0開頭, 第一個字節範圍:0~126(1.0.0.0 - 126.255.255.255);
  B類地址:以10開頭, 第一個字節範圍:128~191(128.0.0.0 - 191.255.255.255);
  C類地址:以110開頭, 第一個字節範圍:192~223(192.0.0.0 - 223.255.255.255);
  10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用於內部)
  IP地址與子網掩碼相與獲得網絡號

 

·ARP是地址解析協議,簡單語言解釋一下工做原理。

  1:首先,每一個主機都會在本身的ARP緩衝區中創建一個ARP列表,以表示IP地址和MAC地址之間的對應關係
  2:當源主機要發送數據時,首先檢查ARP列表中是否有對應IP地址的目的主機的MAC地址,若是有,則直接發送數據,若是沒有,就向本網段的全部主機發送ARP數據包,該數據包包括的內容有:源主機IP地址,源主機MAC地址,目的主機的IP地址。
  3:當本網絡的全部主機收到該ARP數據包時,首先檢查數據包中的目的IP地址是不是本身的IP地址,若是不是,則忽略該數據包;若是是,則首先從數據包中取出源主機的IP和MAC地址寫入到ARP列表中,若是已經存在,則覆蓋,而後將本身的MAC地址寫入ARP響應包中,告訴源主機本身是它想要找的MAC地址。
  4:源主機收到ARP響應包後。將目的主機的IP和MAC地址寫入ARP列表,並利用此信息發送數據。若是源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。
  廣播發送ARP請求,單播發送ARP響應。

 

·各類協議的介紹

  ICMP協議:因特網控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制消息。
  TFTP協議:是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。
  HTTP協議:超文本傳輸協議,是一個屬於應用層的面向對象的協議,因爲其簡捷、快速的方式,適用於分佈式超媒體信息系統。
  NAT協議:網絡地址轉換屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化爲合法IP地址的轉換技術,
  DHCP協議:動態主機配置協議,一個局域網的網絡協議,使用UDP協議工做,用途:給內部網絡或網絡服務供應商自動分配IP地址,給用戶或者內部網絡管理員做爲對全部計算機做中央管理的手段。

 

·描述RARP協議

  RARP是逆地址解析協議,做用是完成硬件地址到IP地址的映射,主要用於無盤工做站,由於給無盤工做站配置的IP地址不能保存。工做流程:在網絡中配置一臺RARP服務器,裏面保存着IP地址和MAC地址的映射關係,當無盤工做站啓動後,就封裝一個RARP數據包,裏面有其MAC地址,而後廣播到網絡上去,當服務器收到請求包後,就查找對應的MAC地址的IP地址裝入響應報文中發回給請求者。由於須要廣播請求報文,所以RARP只能用於具備廣播能力的網絡。

 

·易混淆的協議所在層

ARP、RARP:屬於網絡層,工做在數據鏈路層。

ICMP:網絡層

 

·在瀏覽器中輸入www.baidu.com後執行的所有過程

  一、客戶端瀏覽器經過DNS解析到www.baidu.com的IP地址220.181.27.48,經過這個IP地址找到客戶端到服務器的路徑。客戶端瀏覽器發起一個HTTP會話到220.161.27.48,而後經過TCP進行封裝數據包,輸入到網絡層。
  二、在客戶端的傳輸層,把HTTP會話請求分紅報文段,添加源和目的端口,如服務器使用80端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如5000,與服務器進行交換,服務器把相應的請求返回給客戶端的5000端口。而後使用IP層的IP地址查找目的端。
  三、客戶端的網絡層不用關心應用層或者傳輸層的東西,主要作的是經過查找路由表肯定如何到達服務器,期間可能通過多個路由器,這些都是由路由器來完成的工做,我不做過多的描述,無非就是經過查找路由表決定經過那個路徑到達服務器。
  四、客戶端的鏈路層,包經過鏈路層發送到路由器,經過鄰居協議查找給定IP地址的MAC地址,而後發送ARP請求查找目的地址,若是獲得迴應後就可使用ARP的請求應答交換的IP數據包如今就能夠傳輸了,而後發送IP數據包到達服務器的地址。

 

·TCP三次握手和四次揮手的全過程

三次握手:
  第一次握手:客戶端發送syn包(syn=x)到服務器,並進入SYN_SEND狀態,等待服務器確認;
  第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=x+1),同時本身也發送一個SYN包(syn=y),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
  第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=y+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
  握手過程當中傳送的包裏不包含數據,三次握手完畢後,客戶端與服務器才正式開始傳送數據。理想狀態下,TCP鏈接一旦創建,在通訊雙方中的任何一方主動關閉鏈接以前,TCP 鏈接都將被一直保持下去。

四次揮手
  與創建鏈接的「三次握手」相似,斷開一個TCP鏈接則須要「四次握手」。
  第一次揮手:主動關閉方發送一個FIN,用來關閉主動方到被動關閉方的數據傳送,也就是主動關閉方告訴被動關閉方:我已經不會再給你發數據了(固然,在fin包以前發送出去的數據,若是沒有收到對應的ack確認報文,主動關閉方依然會重發這些數據),可是,此時主動關閉方還能夠接受數據。
  第二次揮手:被動關閉方收到FIN包後,發送一個ACK給對方,確認序號爲收到序號+1(與SYN相同,一個FIN佔用一個序號)。
  第三次揮手:被動關閉方發送一個FIN,用來關閉被動關閉方到主動關閉方的數據傳送,也就是告訴主動關閉方,個人數據也發送完了,不會再給你發數據了。
  第四次揮手:主動關閉方收到FIN後,發送一個ACK給被動關閉方,確認序號爲收到序號+1,至此,完成四次揮手。

 

·TCP和UDP的區別?

TCP提供面向鏈接的、可靠的數據流傳輸,而UDP提供的是非面向鏈接的、不可靠的數據流傳輸。
TCP傳輸單位稱爲TCP報文段,UDP傳輸單位稱爲用戶數據報。
TCP注重數據安全性,UDP數據傳輸快,由於不須要鏈接等待,少了許多操做,可是其安全性卻通常。
TCP對應的協議和UDP對應的協議

TCP對應的協議:
(1)FTP:定義了文件傳輸協議,使用21端口。
(2)Telnet:一種用於遠程登錄的端口,使用23端口,用戶能夠以本身的身份遠程鏈接到計算機上,可提供基於DOS模式下的通訊服務。
(3)SMTP:郵件傳送協議,用於發送郵件。服務器開放的是25號端口。
(4)POP3:它是和SMTP對應,POP3用於接收郵件。POP3協議所用的是110端口。
(5)HTTP:是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。

UDP對應的協議:
(1) DNS:用於域名解析服務,將域名地址轉換爲IP地址。DNS用的是53號端口。
(2) SNMP:簡單網絡管理協議,使用161號端口,是用來管理網絡設備的。因爲網絡設備不少,無鏈接的服務就體現出其優點。
(3) TFTP(Trival File Transfer Protocal),簡單文件傳輸協議,該協議在熟知端口69上使用UDP服務。

 

·DNS域名系統,簡單描述其工做原理。

  當DNS客戶機須要在程序中使用名稱時,它會查詢DNS服務器來解析該名稱。客戶機發送的每條查詢信息包括三條信息:指定的DNS域名,指定的查詢類型,DNS域名的指定類別。基於UDP服務,端口53. 該應用通常不直接爲用戶使用,而是爲其餘應用服務,如HTTP,SMTP等在其中須要完成主機名到IP地址的轉換。

 

·面向鏈接和非面向鏈接的服務的特色是什麼?

  面向鏈接的服務,通訊雙方在進行通訊以前,要先在雙方創建起一個完整的能夠彼此溝通的通道,在通訊過程當中,整個鏈接的狀況一直能夠被實時地監控和管理。
  非面向鏈接的服務,不須要預先創建一個聯絡兩個通訊節點的鏈接,須要通訊的時候,發送節點就能夠往網絡上發送信息,讓信息自主地在網絡上去傳,通常在傳輸的過程當中再也不加以監控。

 

·TCP的三次握手過程?爲何會採用三次握手,若採用二次握手能夠嗎?

  創建鏈接的過程是利用客戶服務器模式,假設主機A爲客戶端,主機B爲服務器端。

  (1)TCP的三次握手過程:主機A向B發送鏈接請求;主機B對收到的主機A的報文段進行確認;主機A再次對主機B的確認進行確認。
  (2)採用三次握手是爲了防止失效的鏈接請求報文段忽然又傳送到主機B,於是產生錯誤。失效的鏈接請求報文段是指:主機A發出的鏈接請求沒有收到主機B的確認,因而通過一段時間後,主機A又從新向主機B發送鏈接請求,且創建成功,順序完成數據傳輸。考慮這樣一種特殊狀況,主機A第一次發送的鏈接請求並無丟失,而是由於網絡節點致使延遲達到主機B,主機B覺得是主機A又發起的新鏈接,因而主機B贊成鏈接,並向主機A發回確認,可是此時主機A根本不會理會,主機B就一直在等待主機A發送數據,致使主機B的資源浪費。
  (3)採用兩次握手不行,緣由就是上面說的失效的鏈接請求的特殊狀況。

 

·瞭解交換機、路由器、網關的概念,並知道各自的用途。

  1)交換機
  在計算機網絡系統中,交換機是針對共享工做模式的弱點而推出的。交換機擁有一條高帶寬的背部總線和內部交換矩陣。交換機的全部的端口都掛接在這條背部總線上,當控制電路收到數據包之後,處理端口會查找內存中的地址對照表以肯定目的MAC(網卡的硬件地址)的NIC(網卡)掛接在哪一個端口上,經過內部交換矩陣迅速將數據包傳送到目的端口。目的MAC若不存在,交換機才廣播到全部的端口,接收端口迴應後交換機會「學習」新的地址,並把它添加入內部地址表 中。
  交換機工做於OSI參考模型的第二層,即數據鏈路層。交換機內部的CPU會在每一個端口成功鏈接時,經過ARP協議學習它的MAC地址,保存成一張 ARP表。在從此的通信中,發往該MAC地址的數據包將僅送往其對應的端口,而不是全部的端口。所以,交換機可用於劃分數據鏈路層廣播,即衝突域;但它不能劃分網絡層廣播,即廣播域。
  交換機被普遍應用於二層網絡交換,俗稱「二層交換機」。
  交換機的種類有:二層交換機、三層交換機、四層交換機、七層交換機分別工做在OSI七層模型中的第二層、第三層、第四層盒第七層,並所以而得名。
  2)路由器
  路由器(Router)是一種計算機網絡設備,提供了路由與轉送兩種重要機制,能夠決定數據包歷來源端到目的端所通過 的路由路徑(host到host之間的傳輸路徑),這個過程稱爲路由;將路由器輸入端的數據包移送至適當的路由器輸出端(在路由器內部進行),這稱爲轉 送。路由工做在OSI模型的第三層——即網絡層,例如網際協議。
  路由器的一個做用是連通不一樣的網絡,另外一個做用是選擇信息傳送的線路。 路由器與交換器的差異,路由器是屬於OSI第三層的產品,交換器是OSI第二層的產品(這裏特指二層交換機)。
  3)網關
  網關(Gateway),網關顧名思義就是鏈接兩個網絡的設備,區別於路由器(因爲歷史的緣由,許多有關TCP/IP 的文獻曾經把網絡層使用的路由器(Router)稱爲網關,在今天不少局域網採用都是路由來接入網絡,所以如今一般指的網關就是路由器的IP),常常在家 庭中或者小型企業網絡中使用,用於鏈接局域網和Internet。 網關也常常指把一種協議轉成另外一種協議的設備,好比語音網關。
  在傳統TCP/IP術語中,網絡設備只分紅兩種,一種爲網關(gateway),另外一種爲主機(host)。網關能在網絡間轉遞數據包,但主機不能 轉送數據包。在主機(又稱終端系統,end system)中,數據包需通過TCP/IP四層協議處理,可是在網關(又稱中介系 統,intermediate system)只須要到達網際層(Internet layer),決定路徑以後就能夠轉送。在當時,網關(gateway)與路由器(router)尚未區別。
  在現代網絡術語中,網關(gateway)與路由器(router)的定義不一樣。網關(gateway)能在不一樣協議間移動數據,而路由器(router)是在不一樣網絡間移動數據,至關於傳統所說的IP網關(IP gateway)。
  網關是鏈接兩個網絡的設備,對於語音網關來講,他能夠鏈接PSTN網絡和以太網,這就至關於VOIP,把不一樣電話中的模擬信號經過網關而轉換成數字信號,並且加入協議再去傳輸。在到了接收端的時候再經過網關還原成模擬的電話信號,最後才能在電話機上聽到。
  對於以太網中的網關只能轉發三層以上數據包,這一點和路由是同樣的。而不一樣的是網關中並無路由表,他只能按照預先設定的不一樣網段來進行轉發。網關最重要的一點就是端口映射,子網內用戶在外網看來只是外網的IP地址對應着不一樣的端口,這樣看來就會保護子網內的用戶。

 

·IP層爲何不對數據部分進行差錯校驗?

  由於網絡層是「盡最大努力完整的傳輸數據包」,差錯檢測已由數據鏈路層實現,IP層不必再進行一次校驗。
  優勢就是,由於不負責差錯檢測和糾錯,因此可得到較高的傳輸性能。
  缺點就是,由於IP層不負責差錯檢測,那麼錯誤檢測只能在傳輸層或應用層被發現,使糾正錯誤的時間增長了。
  試想一下,若是兩臺PC跨INTERNET通訊,之間隔了不少臺路由器,PC1給PC2發了個數據包,到達第一臺路由器後,在轉發的過程當中,數據包發生了錯誤:
  1-由於IP層不作差錯校驗,因此第2臺路由器經過廣域網協議(HDLC、PPP等)收到數據後,只要數據鏈路層正常,它就沒法得知收到的IP包是否正確,錯誤就會這麼傳遞下去,至到PC2才被發現。
  2-若是IP能夠實現差錯校驗的功能,那麼到了第2臺路由器時,路由器2就不會再繼續發錯誤包了,錯誤就會終止。
  不過如今網絡傳輸的誤碼率都極低,因此IP層不必再作一次校驗
相關文章
相關標籤/搜索