天天看點

計算機網絡原理相關面試問題

1.簡單介紹osi的七層網絡模型,畫圖描繪,描述主要幾層的各自作用。

osi(open system interconnect,開放系統互連)七層網絡模型。

tcp/ip四層模型和osi七層模型

表1-1是 tcp/ip四層模型和osi七層模型對應表。我們把osi七層網絡模型和linux tcp/ip四層概念模型對應,然後将各種網絡協定歸類。

表1-1  tcp/ip四層模型和osi七層模型對應表

osi七層網絡模型

linux tcp/ip四層概念模型

對應網絡協定

應用層(application)

應用層

tftp, ftp, nfs, wais

表示層(presentation)

telnet, rlogin, snmp, gopher

會話層(session)

smtp, dns

傳輸層(transport)

傳輸層

tcp, udp

網絡層(network)

網際層

ip, icmp, arp, rarp, akp, uucp

資料鍊路層(data link)

網絡接口

fddi, ethernet, arpanet, pdn, slip, ppp

實體層(physical)

ieee 802.1a, ieee 802.2到ieee 802.11

1.網絡接口

網絡接口把資料鍊路層和實體層放在一起,對應tcp/ip概念模型的網絡接口。對應的網絡協定主要是:ethernet、fddi和能傳輸ip資料包的任何協定。

2.網際層

網絡層對應linux tcp/ip概念模型的網際層,網絡層協定管理離散的計算機間的資料傳輸,如ip協定為使用者和遠端計算機提供了資訊包的傳輸方法,確定資訊包能正确地到達目的機器。這一過程中,ip和其他網絡層的協定共同用于資料傳輸,如果沒有使用一些監視系統程序的工具,使用者是看不到在系統裡的ip的。網絡嗅探器sniffers是能看到這些過程的一個裝置(它可以是軟體,也可以是硬體),它能讀取通過網絡發送的每一個包,即能讀取發生在網絡層協定的任何活動,是以網絡嗅探器sniffers會對安全造成威脅。重要的網絡層協定包括arp(位址解析協定)、icmp(internet控制消息協定)和ip協定(網際協定)等。

3.傳輸層

傳輸層對應linux tcp/ip概念模型的傳輸層。傳輸層提供應用程式間的通信。其功能包括:格式化資訊流;提供可靠傳輸。為實作後者,傳輸層協定規定接收端必須發回确認資訊,如果分組丢失,必須重新發送。傳輸層包括tcp(transmission control protocol,傳輸控制協定)和udp(user datagram protocol,使用者資料報協定),它們是傳輸層中最主要的協定。tcp建立在ip之上,定義了網絡上程式到程式的資料傳輸格式和規則,提供了ip資料包的傳輸确認、丢失資料包的重新請求、将收到的資料包按照它們的發送次序重新裝配的機制。tcp 協定是面向連接配接的協定,類似于打電話,在開始傳輸資料之前,必須先建立明确的連接配接。udp也建立在ip之上,但它是一種無連接配接協定,兩台計算機之間的傳輸類似于傳遞郵件:消息從一台計算機發送到另一台計算機,兩者之間沒有明确的連接配接。udp不保證資料的傳輸,也不提供重新排列次序或重新請求的功能,是以說它是不可靠的。雖然udp的不可靠性限制了它的應用場合,但它比tcp具有更好的傳輸效率。

4.應用層

應用層、表示層和會話層對應linux tcp/ip概念模型中的應用層。應用層位于協定棧的頂端,它的主要任務是應用。一般是可見的,如利用ftp(檔案傳輸協定)傳輸一個檔案,請求一個和目标計算機的連接配接,在傳輸檔案的過程中,使用者和遠端計算機交換的一部分是能看到的。常見的應用層協定有:http、ftp、telnet、smtp和gopher等。應用層是linux網絡設定最關鍵的一層。linux伺服器的配置文檔主要針對應用層中的協定。tcp/ip模型各個層次的功能和協定如表1-2所示。

表1-2  tcp/ip模型各個層次的功能和協定

層次名稱

功    能

協    議

(host-to-net layer)

負責實際資料的傳輸,對應osi參考模型的下兩層

hdlc(進階鍊路控制協定)

ppp(點對點協定)

slip(串行線路接口協定)

(inter-network layer)

負責網絡間的尋址

資料傳輸,對應osi參考模型的第三層

ip(網際協定)

icmp(網際控制消息協定)

arp(位址解析協定)

rarp(反向位址解析協定)

(transport layer)

負責提供可靠的傳輸服務,對應osi參考模型的第四層

tcp(控制傳輸協定)

udp(使用者資料報協定)

(application layer)

負責實作一切與應用程式相關的功能,對應osi參考模型的上三層

ftp(檔案傳輸協定)

http(超文本傳輸協定)

dns(域名伺服器協定)

smtp(簡單郵件傳輸協定)

nfs(網絡檔案系統協定)

說明  tcp/ip與osi最大的不同在于osi是一個理論上的網絡通信模型,而tcp/ip則是實際運作的網絡協定。

2.舉例伺服器常用端口及相對的服務

http伺服器,預設的端口号為80/tcp;

telnet(不安全的文本傳送)遠端登入協定,預設端口号為23/tcp;

ftp,(檔案傳輸)協定預設的端口号為21/tcp;

ssh(安全登入)、scp(檔案傳輸)、端口重定向,預設的端口号為22/tcp;

3.說明伺服器設定不同端口的意義

各種服務采用不同的端口可以分别提供不同的服務,比如:通常tcp/ip協定規定web采用80号端口,ftp采用21号端口等,而郵件伺服器是采用25号端口。通過不同端口,計算機就可以與外界進行互不幹擾的通信。

伺服器端口數最大可以有65535個,但是實際上常用的端口才幾十個,黑客程式可以采用某種方法,定義出一個特殊的端口來達到入侵的目的。木馬程式在入侵前是先通過某種手段在一台個人計算機中植入一個程式,打開某個(些)特定的端口,俗稱"後門"(backdoor),使這台計算機變成一台開放性極高(使用者擁有極高權限)的ftp伺服器,然後從後門就可以達到侵入的目的。

4.windows系統下常用的網絡指令,

用一條指令實作:将遠端主機c盤映射為自己的f盤

5.l/unix系統下常用的網絡指令。

hostname

代碼示例:

hostname 沒有選項,顯示主機名字

hostname –d 顯示機器所屬域名

hostname –f 顯示完整的主機名和域名

hostname –i 顯示目前機器的ip位址

ping

ping 将資料包發向使用者指定位址。當包被接收。目标機器發送傳回資料包. ping 主要有兩個作用

1. 用來确認網絡連接配接是暢通的。

2. 用來檢視連接配接的速度資訊。

如果 ping www.jbxue.com 它将傳回它的ip位址 。你可以通過 ctrl+c 來停止指令。

ifconfig

檢視使用者網絡配置。它顯示目前網絡裝置配置。對于需要接收或者發送資料錯誤查找,這個工具極為好用。

iwconfig

iwconfig 工具與 ifconfig 和ethtool類似。是用于無線網卡的 . 你可以用他檢視設定基本的wi-fi 網絡資訊,例如 ssid,channel和encryption.還有其他很多配置你也可以檢視和修改,, 包括 接收靈敏度, rts/cts, 發送資料包的分片大小,以及無線網卡的重傳機制

nslookup

nslookup 這個指令在 有ip位址時,可以用這個指令來顯示主機名,可以找到給定域名的所有ip位址。而你必須連接配接到網際網路才能使用這個指令

例子. nslookup blogger.com

你也可以使用 nslookup 從ip獲得主機名或從主機名獲得ip。

traceroute

一個友善的工具。可用來檢視資料包在送出到遠端系統或者網站時候所經過的路由器的ip位址、跳數和響應時間。同樣你必須連結到網際網路才能使用這個指令

finger

檢視使用者資訊。顯示使用者的登入名字、真實名字以及登入終端的名字和登入權限。這是unix一個很老的指令,現在已很少使用了

telnet

通過telnet協定連接配接目标主機,如果telnet連接配接可以在任一端口上完成即代表着兩台主機間的連接配接良好。

telnet hostname port – 使用指定的端口telnet主機名。這通常用來測試主機是否線上或者網絡是否正常。

ethtool

ethtool允許你檢視和更改網卡的許多設定(不包括wi-fi網卡)。你可以管理許多進階設定,包括tx/rx、校驗及網絡喚醒功能。下面是一些你可能感興趣的基本指令:

顯示一個特定網卡的驅動資訊,檢查軟體相容性時尤其有用。

ethtool -i

啟動一個擴充卡的指定行為,比如讓擴充卡的led燈閃爍,以幫助你在多個擴充卡或接口中辨別接口名稱:

ethtool -p

顯示網絡統計資訊:

ethtool -s

設定擴充卡的連接配接速度,機關是mbps: 

ethtool speed <10|100|1000>

netstat

發現主機連接配接最有用最通用的linux指令。你可以使用”netstat -g”查詢該主機訂閱的所有多點傳播組(網絡)

netstat -nap | grep port 将會顯示使用該端口的應用程式的程序id

netstat -a or netstat –all 将會顯示包括tcp和udp的所有連接配接

netstat –tcp or netstat –t 将會顯示tcp連接配接

netstat –udp or netstat –u 将會顯示udp連接配接

netstat -g 将會顯示該主機訂閱的所有多點傳播網絡

6.arp協定的用途,在哪一層上會使用arp ?

在以太網協定中規定,同一區域網路中的一台主機要和另一台主機進行直接通信,必須要知道目标主機的mac位址。而在tcp/ip協定中,網絡層和傳輸層隻關心目标主機的ip位址。這就導緻在以太網中使用ip協定時,資料鍊路層的以太網協定接到上層ip協定提供的資料中,隻包含目的主機的ip位址。于是需要一種方法,根據目的主機的ip位址,獲得其mac位址。這就是arp協定要做的事情。所謂位址解析(address resolution)就是主機在發送幀前将目标ip位址轉換成目标mac位址的過程。

osi模型把網絡工作分為七層,ip位址在osi模型的第三層,mac位址在第二層,彼此不直接打交道。在通過以太網發送ip資料包時,需要先封裝第三層(32位ip位址)、第二層(48位mac位址)的報頭,但由于發送時隻知道目标ip位址,不知道其mac位址,又不能跨第二、三層,是以需要使用位址解析協定。使用位址解析協定,可根據網絡層ip資料包標頭中的ip位址資訊解析出目标硬體位址(mac位址)資訊,以保證通信的順利進行。

7.如何實作透明傳輸?

"透明"傳輸表示不用關心下層協定的傳輸,比如你要寄信,隻需要寫位址交給郵局就行了,然後對方就能收到你的信,但是中途經過多少車站,火車,郵差,你根本不知道,是以對于你來說郵遞的過程是透明的。

“透明”是一個重要術語,表示:某一個實際存在的事物看起來卻好像不存在一樣。

8.阻塞方式和非阻塞方式,阻塞connect與非阻塞connect。

9.路由表的内容。

在計算機網絡中,路由表或稱路由擇域資訊庫(rib)是一個存儲在路由器或者聯網計算機中的電子表格(檔案)或類資料庫。

路由表存儲着指向特定網絡位址的路徑(在有些情況下,還記錄有路徑的路由路徑成本)。

路由表中含有網絡周邊的拓撲資訊。路由表建立的主要目标是為了實作路由協定和靜态路由選擇。

10.分組轉發算法。

ip資料報的首部中沒有地方可以用來指明“下一跳路由器的 ip 位址”。

(1)首先從ip資料報首部提取出目的主機的ip位址d,得出其所在的網絡n。

(2)若n就是與此路由器直接相連的某個網絡,則進行直接傳遞,不需要經過其它的路由器進行轉發,直接把資料報傳遞給目的主機。否則就執行(3)

(3)若路由表中有目的位址為d的特定主機路由,則把資料報傳給路由表中所指明的下一跳路由器。否則執行(4)

(4)若路由表中有到達網絡n的路由,則把資料報傳給路由表中所指明的下一跳路由器。否則執行(5)

(5)若路由表中有一個預設路由,則把資料報傳給預設路由所指明的預設路由器。

否則執行(6)

(6)報告轉發分組出錯。

11.tcp 封包的格式,字段的意義。

12.http基本格式。

13.tcp的流量控制和擁塞控制實作。

tcp的流控制方案是采用滑動視窗協定來進行的。

14.tcp通過哪些措施,保證傳輸可靠?

15.多點傳播和廣播的概念。

在ipv4網絡中,主機可采用的通信方式有如下三種:

1、單點傳播:單台主機與單台主機之間的資料通信

2、廣播:單台主機向網絡中所有主機發送資料包的過程

3、多點傳播:單台主機向標明的一組主機發送資料包的過程

單點傳播、廣播以及多點傳播的用途各不相同,并且使用不同的ip位址做為目的位址。

16.ping協定的實作原理,ping的指令格式。

ping 程式是用來探測主機到主機之間是否可通信,如果不能ping到某台主機,表明不能和這台主機建立連接配接。ping 使用的是icmp協定,它發送icmp回送請求消息給目的主機。icmp協定規定:目的主機必須傳回icmp回送應答消息給源主機。如果源主機在一定時間内收到應答,則認為主機可達。icmp協定通過ip協定發送的,ip協定是一種無連接配接的,不可靠的資料包協定。

ping指令的工作原理是:向網絡上的另一個主機系統發送icmp封包,如果指定系統得到了封包,它将把封包一模一樣地傳回給發送者,這有點象潛水艇聲納系統中使用的發聲裝置。

17.子網劃分的概念,子網路遮罩。

子網劃分定義:internet組織機構定義了五種ip位址,有a、b、c三類位址。a類網絡有126個,每個a類網絡可能有16777214台主機,它們處于同一廣播域。而在同一廣播域中有這麼多結點是不可能的,網絡會因為廣播通信而飽和,結果造成16777214個位址大部分沒有配置設定出去。可以把基于每類的ip網絡進一步分成更小的網絡,每個子網由路由器界定并配置設定一個新的子網網絡位址,子網位址是借用基于每類的網絡位址的主機部分建立的。劃分子網後,通過使用掩碼,把子網隐藏起來,使得從外部看網絡沒有變化,這就是子網路遮罩。

18.ip位址的分類,如何劃分的,及會計算各類位址支援的主機數。

ip位址是一個32位的二進制數,通常被分割為4個“8位二進制數”(也就是4個位元組)。ip位址通常用“點分十進制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進制整數。例:點分十進ip位址(100.4.5.6),實際上是32位二進制數(01100100.00000100.00000101.00000110)。

19.dns的概念,用途。

dns(domain name system,域名系統),網際網路上作為域名和ip位址互相映射的一個分布式資料庫,能夠使使用者更友善的通路網際網路,而不用去記住能夠被機器直接讀取的ip數串。

通過主機名,最終得到該主機名對應的ip位址的過程叫做域名解析(或主機名解析)。

dns協定運作在udp協定之上,使用端口号53。

20.tcp與udp的概念,互相的差別及優劣。

osi 和 tcp/ip 模型在傳輸層定義兩種傳輸協定:tcp(或傳輸控制協定)和 udp(或使用者資料報協定)。

udp 

udp 與 tcp 的主要差別在于 udp 不一定提供可靠的資料傳輸。事實上,該協定不能保證資料準确無誤地到達目的地。udp 在許多方面非常有效。當某個程式的目标是盡快地傳輸盡可能多的資訊時(其中任意給定資料的重要性相對較低),可使用 udp。icq 短消息使用 udp 協定發送消息。 

許多程式将使用單獨的tcp連接配接和單獨的udp連接配接。重要的狀态資訊随可靠的tcp連接配接發送,而主資料流通過udp發送。

tcp

tcp的目的是提供可靠的資料傳輸,并在互相進行通信的裝置或服務之間保持一個虛拟連接配接。tcp在資料包接收無序、丢失或在傳遞期間被破壞時,負責資料恢複。它通過為其發送的每個資料包提供一個序号來完成此恢複。記住,較低的網絡層會将每個資料包視為一個獨立的單元,是以,資料包可以沿完全不同的路徑發送,即使它們都是同一消息的組成部分。這種路由與網絡層處理分段和重新組裝資料包的方式非常相似,隻是級别更高而已。

為確定正确地接收資料,tcp要求在目标計算機成功收到資料時發回一個确認(即 ack)。如果在某個時限内未收到相應的 ack,将重新傳送資料包。如果網絡擁塞,這種重新傳送将導緻發送的資料包重複。但是,接收計算機可使用資料包的序号來确定它是否為重複資料包,并在必要時丢棄它。

tcp與udp的選擇

如果比較udp包和tcp包的結構,很明顯udp包不具備tcp包複雜的可靠性與控制機制。與tcp協定相同,udp的源端口數和目的端口數也都支援一台主機上的多個應用。一個16位的udp包包含了一個位元組長的頭部和資料的長度,校驗碼域使其可以進行整體校驗。(許多應用隻支援udp,如:多媒體資料流,不産生任何額外的資料,即使知道有破壞的包也不進行重發。) 

很明顯,當資料傳輸的性能必須讓位于資料傳輸的完整性、可控制性和可靠性時,tcp協定是當然的選擇。當強調傳輸性能而不是傳輸的完整性時,如:音頻和多媒體應用,udp是最好的選擇。在資料傳輸時間很短,以至于此前的連接配接過程成為整個流量主體的情況下,udp也是一個好的選擇,如:dns交換。把snmp建立在udp上的部分原因是設計者認為當發生網絡阻塞時,udp較低的開銷使其有更好的機會去傳送管理資料。tcp豐富的功能有時會導緻不可預料的性能低下,但是我們相信在不遠的将來,tcp可靠的點對點連接配接将會用于絕大多數的網絡應用。

tcp協定和udp協定特性差別總結:

1. tcp協定在傳送資料段的時候要給段标号;udp協定不

2. tcp協定可靠;udp協定不可靠

3. tcp協定是面向連接配接;udp協定采用無連接配接

4. tcp協定負載較高,采用虛電路;udp采用無連接配接

5. tcp協定的發送方要确認接收方是否收到資料段(3次握手協定)

6. tcp協定采用視窗技術和流控制(特别)

繼續閱讀