一小时搞定计算机网络面试
一小時搞定計算機網絡面試
一.計算機網絡體系結構參考模型:
七層協議的作用:
?1.物理層:主要定義物理設備標準,如網線的接口類型、光纖的接口類型、各種傳輸介
質的傳輸速率等。它的主要作用是傳輸比特流(就是由1、0轉化為電流強弱來進行傳輸,到
達目的地后再轉化為1、0,也就是我們常說的數模轉換與模數轉換)。這一層的數據叫做比
特(Bit)。
2.數據鏈路層:定義了如何讓格式化數據以進行傳輸,以及如何讓控制對物理介質的訪
問。這一層通常還提供錯誤檢測和糾正,以確保數據的可靠傳輸(CRC),這一層的數據叫做幀(Frame)。
3.網絡層:在位于不同地理位置的網絡中的兩個主機系統之間提供連接和路徑選
擇。Internet的發展使得從世界各站點訪問信息的用戶數大大增加,而網絡層正是管理這種
連接的層,這一層的數據叫做分組(數據包:Packet)。
4.傳輸層:定義了一些傳輸數據的協議和端口號(WWW端口80等),如:TCP(傳輸控制協議,傳輸效率低,可靠性強,用于傳輸可靠性要求高,數據量大的數據),UDP(用戶數據報協議,與TCP特性恰恰相反,用于傳輸可靠性要求不高,數據量小的數據,?主要是將從下層接收的數據進行分段和傳輸,到達目的地址后再進行重組。常常把這一層數據叫做段(Segment)。
5.會話層:通過傳輸層(端口號:傳輸端口與接收端口)建立數據傳輸的通路(session),提供訪問驗證和會話管理。常見:服務器的用戶登陸,和斷定續傳(會話協議數據單元SPDU)。
6.表示層:對數據進行翻譯、加密和壓縮,可確保一個系統的應用層所發送的信息可以被另一個系統的應用層讀取(表示協議數據單元PPDU)。
例如,PC程序與另一臺計算機進行通信,其中一臺計算機使用擴展二一十進制交換碼(EBCDIC),而另一臺則使用美國信息交換標準碼(ASCII)來表示相同的字符。如有必要,表示層會通過使用一種通格式來實現多種數據格式之間的轉換。
7.應用層:是最靠近用戶的OSI層。這一層為用戶的應用程序(例如電子郵件、文件傳輸
和終端仿真)提供網絡服務(應用協議數據單元APDU)。
每一層的協議如下:
| 物理層:RJ45、CLOCK、IEEE802.3 數據鏈路:PPP、FR、HDLC、VLAN、MAC? 網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP 傳輸層:TCP、UDP、SPX 會話層:NFS、SQL、NETBIOS、RPC 表示層:JPEG、MPEG、ASII 應用層:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS ? |
?
?
各層對應的典型設備如下:
?
| 應用層?……………….計算機:應用程序,如FTP,SMTP,HTTP 表示層?……………….計算機:編碼方式,圖像編解碼、URL字段傳輸編碼 會話層?……………….計算機:建立會話,SESSION認證、斷點續傳 傳輸層?……………….計算機:進程和端口 網絡層…………………網絡:路由器,防火墻、多層交換機 數據鏈路層?………..網絡:網卡,網橋,交換機 物理層…………………網絡:中繼器,集線器、網線、HUB ? |
?
數據鏈路層:
1.物理設備
| 網橋(Bridge)像一個聰明的中繼器。中繼器從一個網絡電纜里接收信號,?放大它們,將其送入下一個電纜。相比較而言,網橋對從關卡上傳下來的信息更敏銳一些。網橋是一種對幀進行轉發和過濾的技術,根據MAC分區塊,可隔離碰撞。網橋將網絡的多個網段在數據鏈路層連接起來。適用于局域網,涉及到的是算法是CSMA/CD(即載波監聽多路訪問/沖突避免)實現了過濾通信量,擴大了物理范圍,匹配不同的物理層的速率,但是容易發生網絡風暴,時延增加,沒用實現流量控制會發生丟幀現象。 相關概念: 透明網橋: 采用自學習算法來建立自己的轉發表。實現非人工配置,容易出現數據幀兜圈子的問題,因此采用的是生成樹算法(spanning tree)生成一個網絡拓撲子集防止回路。 交換機(多接口網橋): 計算機網絡系統中,交換機是針對共享工作模式的弱點而推出的。通過內部?交換矩陣迅速將數據包傳送到目的端口。目的MAC若不存在,交換機才廣播到所有的端口,接收端口回應后交換機會“學習”新的地址,并把它添加入內部地址表?中(局域網生成網絡拓撲子集)實現無碰撞傳輸數據,能匹配不同的速率。 交換機工作于數據鏈路層。交換機內部的CPU會在每個端口成功連接時,通過ARP協議學習它的MAC地址,保存成一張?ARP表。在今后的通訊中,發往該MAC地址的數據包將僅送往其對應的端口,而不是所有的端口。還是過濾和轉發。 Ps:交換機被廣泛應用于二層網絡交換,俗稱“二層交換機”。 交換機的種類有:二層交換機、三層交換機、四層交換機、七層交換機分別工作在OSI七層模型中的第二層、第三層、第四層盒第七層,并因此而得名。 |
2.層協議
| CSMA/CD協議 無連接的工作方式。 盡最大努力交付的服務(不可靠交付)。 協議要點:多點接入?載波監聽?碰撞檢測 工作過程:準備發送(必須先檢測信道)-》檢測信道(如果忙則等待空閑時間大于96比特時間則發送)-》發送數據幀(邊發送邊監聽) 相關網頁:http://baike.baidu.com/link?url=4f63cFm1DxHFmuVItj5WzqT9QTDyI_05n29KpIUM_XdgMqlpJKggBPvPrt-KRKsM |
?
網絡層
1.分類的IP地址
1.1?二層IP地址
| A類:A類地址:以0開頭 | 第一個字節范圍:0~127(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) |
| D類地址:以1110開頭 | 多播地址 |
| E類地址:以1111開頭 | 保留 |
| 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上保留地址用于內部) | |
1.2?子網和超網(三級IP地址)
| 子網掩碼:實現對子網的數據發送。 子網掩碼和IP地址進行&運算確定子網號。 路由表的包含必需數據項:?目的IP地址,?子網掩碼,?下一跳地址。 CIDR地址塊??斜線記法 |
2.物理設備
| 路由器: ???? Router是一種計算機網絡設備,提供了路由與轉送兩種重要機制,可以決定數據包從來源端到目的端所經過?的路由路徑(host到host之間的傳輸路徑),這個過程稱為路由;將路由器輸入端的數據包移送至適當的路由器輸出端(在路由器內部進行),這稱為轉送。路由工作在OSI模型的第三層——即網絡層,例如網際協議。 路由器的一個作用是連通不同的網絡,另一個作用是選擇信息傳送的線路。(轉發分組) |
| 包含:路由選擇部分和分組轉發部分 |
| ?路由器與交換器的差別,路由器是屬于OSI第三層的產品,交換器是OSI第二層的產品(這里特指二層交換機)。 |
?
層協議
| ARP是地址解析協議 |
|
|
| 1:首先,每個主機都會在自己的ARP緩沖區中建立一個ARP列表,以表示IP地址和MAC地址之間的對應關系(ARP高效運行的關鍵是由于每個主機上都有一個?ARP高速緩存。這個高速緩存存放了最近Internet地址到硬件地址之間的映射記錄。高速緩存中每一項的生存時間一般為?2 0分鐘,起始時間從被創建時開始算起)。 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響應。 |
| 在大多數的?TCP / IP實現中, A R P是一個基礎協議,但是它的運行對于應用程序或系統管 理員來說一般是透明的。?A R P高速緩存在它的運行過程中非常關鍵,我們可以用?a r p命令對高速緩存進行檢查和操作。高速緩存中的每一項內容都有一個定時器,根據它來刪除不完整和完整的表項。 |
| Linux?相關命令:tcpdump?,arp? |
一句話就是?把MAC地址變為?IP地址。實現網絡的拓撲。
| RARP協議: |
| 逆地址解析協議,與ARP相反主要的差別是?RARP請求或 應答的幀類型代碼為?0 x 8 0 3 5,而且RARP請求的操作代碼為?3,應答操作代碼為?4。 對應于ARP,ARP請求以廣播方式傳送,而RARP應答一般是單播?( unicast )傳送的。 |
?
?
| IP網際協議 |
| IP是TCP / IP協議族中最為核心的協議。所有的?TCP、UDP、ICMP及IGMP數據都以IP數據報格式傳輸, 不可靠( unreliable)的意思是它不能保證?I P數據報能成功地到達目的地。 無連接( connection less)這個術語的意思是?I P并不維護任何關于后續數據報的狀態信息。每個數據報的處理是相互獨立的。 |
| IP數據報由首部?和數據?兩部分組成。首部由固定部分和可選部分?組成。首部的固定部分有20字節。可選部分的長度變化范圍為1——40字節。固定部分的字段:
|
| Linux?相關命令:ifconfig(-a)?和?netstat?(-i,?-n) |
?
| ICMP協議 |
| ICMP經常被認為是?I P層的一個組成部分。它傳遞差錯報文以及其他需要注意的信息。ICMP報文通常被?I P層或更高層協議( TCP或UDP)使用。一些?I C M P報文把差錯報文返回給用戶進程,?為了更有效的轉發數據包和提高交付成功的機會。 有兩種:???差錯報告報文???????????????????詢問報文 |
| ICMP的應用:分組間探測PING(packet InterNet Groper) 沒用通過運輸層TCP or UDP 重要的事說三遍:沒用通過運輸層,沒用通過運輸層,沒用通過運輸層TCP or UDP |
?
| IGMP(Internet?組管理協議)【了解】: IGMP協議(Internet Group Management Protocol),是因特網協議家族中的一個組播協議。該協議運行在主機和組播路由器之間。IGMP協議共有三個版本,即IGMPv1、v2?和v3。 |
?
I P路由選擇主要完成以下這些功能(動態):
1)?搜索路由表,尋找能與目的?IP地址完全匹配的表目(網絡號和主機號都要匹配)。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網絡接口(取決于標志字段的值)。
2)?搜索路由表,尋找能與目的網絡號相匹配的表目。如果找到,則把報文發送給該表目指定下一站路由器或直接連接的網絡接口(取決于標志字段的值)。目的網絡上的所有主機都可以通過這個表目來處置。例如,一個以太網上的所有主機都是通過這種表目進行尋徑的。
3)?搜索路由表,尋找標為“默認( d e f a u l t)”的表目。如果找到,則把報文發送給該表目
指定的下一站路由器。
如果上面這些步驟都沒有成功,那么該數據報就不能被傳送。如果不能傳送的數據報來自本機,那么一般會向生成數據報的應用程序返回一個“主機不可達”或“網絡不可達”的錯誤。
完整主機地址匹配在網絡號匹配之前執行。只有當它們都失敗后才選擇默認路由。
路由選擇協議:
| 路由信息協議RIP(內部網關協議): |
| RIP是一種分布式的基于距離向量的路由選擇協議?,使用UDP傳輸端口為(520) 優點:實現簡單,開銷較少 缺點:換消息傳的慢 總結:僅相鄰路由器中間交換信息,按照固定時間交換路由信息(每個30s)好消息傳的快,壞消息傳的慢適用與規模較小的網絡。 |
| RIP協議每個路由器都維護一個距離(跳數小于16當?等于16時表示不可達)向量表。因此不能從路由器中獲取跳數為0?或者大于15跳數也就是在路由表不會出現。 |
?
、
| 開放最短路徑優先OSPF協議: |
| OSPF是分布式鏈路狀態協議?采用的IP數據包傳輸 優點:支持多播,子網,流量平衡(管理員指派不同的代價),收斂更快,多路間負載平衡 采用SPF(最短路徑算法) PS:?采用30min刷新數據庫鏈路狀態。 |
| OSPF在一個鏈路狀態協議中,路由器并不與其鄰站交換距離信息。它采用的是每個路由器主 動地測試與其鄰站相連鏈路的狀態,將這些信息發送給它的其他鄰站,而鄰站將這些信息在 自治系統中傳播出去。每個路由器接收這些鏈路狀態信息,并建立起完整的路由表。采用洪泛法(FLOODING)生成一個全網拓撲結構圖。 |
?
| 邊界網關協議BGP: |
| BGP?有不同的AS?,每一個AS有一個BGP發言人,通過共享網絡聯系在一起 |
| BGP與RIP和OSPF的不同之處在于?BGP使用TCP作為其傳輸層協議(端口179)。兩個運行BGP的系統之間建立一條?TCP連接,然后交換整個?BGP路由表。從這個時候開始,在路由表發生變化時,再發送更新信號。 BGP是一個路徑向量協議,但是與(通告到目的地址跳數的)RIP不同的是BGP列舉了到每個目的地址的路由(自治系統到達目的地址的序列號)。這樣就排除了一些距離向量協議的問題。采用16 bit?數字表示自治系統標識。 BGP?通過定期發送keepalive報文給其鄰站來檢測?TCP連接對端的鏈路或主機失敗。兩報 文之間的時間間隔建議值為?3 0秒。應用層的?keepalive報文與TCP的keepalive選項是獨立的。 |
?
傳輸層
1.TCP
| 傳輸控制協議TCP |
| TCP是面向連接的運輸層協議 TCP是點對點(也就是直接支持多播和廣播) TCP是提供可靠的交付服務。 TCP提供全雙工通信 TCP面向字節流 Socket = {IP+:+port} TCP連接?= {socket1,socket2} |
| 數據包格式 |
|
|
| 一個TCP報文段分為首部和數據兩部分。首部由固定部分和選項部分組成,固定部分是20字節。TCP首部的最大長度為60。首部固定部分字段:
|
| TCP可靠傳輸: TCP的滑動窗口以字節為單位,實現了TCP的流量控制。
發送端是一K一K地發送數據,而接收端的應用程序可以兩K兩K地提走數據,當然也有可能一次提走3K或6K數據,或者一次只提走幾個字節的數據,也就是說,應用程序所看到的數據是一個整體,或說是一個流(stream),在底層通訊中這些數據可能被拆成很多數據包來發送,但是一個數據包有多少字節對應用程序是不可見的,因此TCP協議是面向流的協議。 |
| TCP擁塞擁塞控制: 所謂擁塞控制就是防止過多數據注入到網絡中。 幾種擁塞控制的方法: 1)慢開始: 由小到達主鍵增加發送窗口(cwnd),每經過一次傳輸輪次,cwnd加倍。 2)擁塞避免 讓cwnd緩慢增大,每經過RTT cwnd++而不是cwnd×=cwnd?從而實現緩慢增長。 3)快重傳 當發送方只要一連收到三個重復確認號則重新傳報文段。 4)快恢復 當出現快重傳的時候就執行懲罰減少的算法,把賣開始的門限ssthresh /=2?后執行擁塞避免算法實現窗口的緩慢線性增大。 |
| TCP三次握手建立鏈接?和?TCP四次握手關閉鏈接
|
| 三次握手: 第一次握手:客戶端發送syn包(syn=J)到服務器,并進入SYN_SEND狀態,等待服務器確認; 第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=J+1),同時自己也發送一個SYN包(syn=K),即SYN+ACK包,此時服務器進入SYN_RECV狀態; 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=K+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。 握手過程中傳送的包里不包含數據,三次握手完畢后,客戶端與服務器才正式開始傳送數據。理想狀態下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接之前,TCP連接都將被一直保持下去。 ? 四次揮手 與建立連接的“三次握手”類似,斷開一個TCP連接則需要“四次握手”。 第一次揮手:主動關閉方發送一個FIN,用來關閉主動方到被動關閉方的數據傳送,也就是主動關閉方告訴被動關閉方:我已經不?會再給你發數據了(當然,在fin包之前發送出去的數據,如果沒有收到對應的ack確認報文,主動關閉方依然會重發這些數據),但是,此時主動關閉方還可以接受數據(TCP處于半連接狀態)。 第二次揮手:被動關閉方收到FIN包后,發送一個ACK給對方,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號)。 第三次揮手:被動關閉方發送一個FIN,用來關閉被動關閉方到主動關閉方的數據傳送,也就是告訴主動關閉方,我的數據也發送完了,不會再給你發數據了。 第四次揮手:主動關閉方收到FIN后,發送一個ACK給被動關閉方,確認序號為收到序號+1,至此,完成四次揮手。 |
| TCP狀態圖 ? |
| 狀態介紹: CLOSED:?表示初始狀態。 LISTEN:?這個也是非常容易理解的一個狀態,表示服務器端的某個SOCKET處于監聽狀態,可以接受連接了。 SYN_RCVD:?這個狀態表示接受到了SYN報文,在正常情況下,這個狀態是服務器端的SOCKET在建立TCP連接時的三次握手會話過程中的一個中間狀態,很短暫,基本?上用netstat你是很難看到這種狀態的,除非你特意寫了一個客戶端測試程序,故意將三次TCP握手過程中最后一個ACK報文不予發送。因此這種狀態?時,當收到客戶端的ACK報文后,它會進入到ESTABLISHED狀態。 SYN_SENT:?這個狀態與SYN_RCVD遙想呼應,當客戶端SOCKET執行CONNECT連接時它首先發送SYN報文,因此也隨即它會進入到了SYN_SENT狀?態,并等待服務端的發送三次握手中的第2個報文。SYN_SENT狀態表示客戶端已發送SYN報文。 ESTABLISHED:這個容易理解了,表示連接已經建立了。 FIN_WAIT_1:?這個狀態要好好解釋一下,其實FIN_WAIT_1和FIN_WAIT_2狀態的真正含義都是表示等待對方的FIN報文。而這兩種狀態的區別?是:FIN_WAIT_1狀態實際上是當SOCKET在ESTABLISHED狀態時,它想主動關閉連接,向對方發送了FIN報文,此時該SOCKET即?進入到FIN_WAIT_1狀態。而當對方回應ACK報文后,則進入到FIN_WAIT_2狀態,當然在實際的正常情況下,無論對方何種情況下,都應該馬上回應ACK報文,所以FIN_WAIT_1狀態一般是比較見到的,而FIN_WAIT_2狀態還有時常常可以用netstat看到。 FIN_WAIT_2:上面已經詳細解釋了這種狀態,實際上FIN_WAIT_2狀態下的SOCKET,表示半連接,也即有一方要求close連接,但另外還告訴對方,我暫時還有點數據需要傳送給你,稍后再關閉連接。 TIME_WAIT:?表示收到了對方的FIN報文,并發送出了ACK報文,就等2MSL后即可回到CLOSED可用狀態了。如果FIN_WAIT_1狀態下,收到了對方同時帶?FIN標志和ACK標志的報文時,可以直接進入到TIME_WAIT狀態,而無須經過FIN_WAIT_2狀態。 CLOSING:?這種狀態比較特殊,實際情況中應該是很少見,屬于一種比較罕見的例外狀態。正常情況下,當你發送FIN報文后,按理來說是應該先收到(或同時收到)對方的?ACK報文,再收到對方的FIN報文。但是CLOSING狀態表示你發送FIN報文后,并沒有收到對方的ACK報文,反而卻也收到了對方的FIN報文。什么情況下會出現此種情況呢?其實細想一下,也不難得出結論:那就是如果雙方幾乎在同時close一個SOCKET的話,那么就出現了雙方同時 發送FIN報?文的情況,也即會出現CLOSING狀態,表示雙方都正在關閉SOCKET連接。 CLOSE_WAIT:?這種狀態的含義其實是表示在等待關閉。怎么理解呢?當對方close一個SOCKET后發送FIN報文給自己,你系統毫無疑問地會回應一個ACK報文給對?方,此時則進入到CLOSE_WAIT狀態。接下來呢,實際上你真正需要考慮的事情是察看你是否還有數據發送給對方,如果沒有的話,那么你也就可以?close這個SOCKET,發送FIN報文給對方,也即關閉連接。所以你在CLOSE_WAIT狀態下,需要完成的事情是等待你去關閉連接。 LAST_ACK:?這個狀態還是比較容易好理解的,它是被動關閉一方在發送FIN報文后,最后等待對方的ACK報文。當收到ACK報文后,也即可以進入到CLOSED可用狀態了。 |
| PS:2MSL等待狀態(TIME_WAIT狀態) TIME_WAIT狀態的存在有兩個理由: (1)讓4次握手關閉流程更加可靠;4次握手的最 后一個ACK是是由主動關閉方發送出去的,若這個ACK丟失,被動關閉方會再次發一個FIN 過來。若主動關閉方能夠保持一個2MSL的TIME_WAIT狀態,則有更大的機會讓丟失的ACK 被再次發送出去。 (2)防止lost duplicate對后續新建正常鏈接的傳輸造成破壞,這種?2MSL等待的另一個結果是這個?TCP連接在?2 MSL等待期間,定義這個連接的插口(客戶的?IP地址和端口號,服務器的?IP地址和端口號)不能再被使用。這個連接只能在?2 MSL結束后才能再被使用,特別是在服務器中,如果但對于被動打開方服務器,一般是server,就悲劇了,因為server一般是熟知端口。比如http,一般端口是80,不可能允許這個服務在2MSL內不能起來。解決方案是給服務器的socket設置SO_REUSEADDR選項,這樣的話就算熟知端口處于TIME_WAIT狀態,在這個端口上依舊可以將服務啟動。 相關拓展: 該狀態為什么設計在主動關閉這一方: (1)發最后ack的是主動關閉一方 (2)只要有一方保持TIME_WAIT狀態,就能起到避免incarnation connection在2MSL內 的重新建立,不需要兩方都有。 關于泛洪攻擊。。。。。。 ? |
?
2.UDP
| 用戶數據報UDP協議 |
| UDP?是無連接的。 UDP是盡最大努力交付。 UDP是面向報文的。 UDP沒有擁塞控制 UDP支持一對一?一對多?多對多的交互通信 UDP的首部開銷小 |
|
|
| U D P檢驗和覆蓋U D P首部和U D P數據。回想?I P首部的檢驗和,它只覆蓋?I P的首部—?并不覆蓋I P數據報中的任何數據。U D P和T C P在首部中都有覆蓋它們首部和數據的檢驗和。?U D P的檢驗和是可選的,而?T C P的檢驗和是必需的 |
| PS: 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服務。 |
?
PS:多播和廣播的區別
| 廣播: 主機之間一對所有的通訊模式,網絡對其中每一臺主機發出的信號都進行無條件復制并轉發,所有主機都可以接收到所有信息(不管你是否需要),由于其不用路徑選擇,所以其網絡成本可以很低廉。有線電視網就是典型的廣播型網絡,我們的電視機實際上是接受到所有頻道的信號,但只將一個頻道的信號還原成畫面。在數據網絡中也允許廣播的存在,但其被限制在二層交換機的局域網范圍內,禁止廣播數據穿過路由器,防止廣播數據影響大面積的主機。 廣播的優點: 1)網絡設備簡單,維護簡單,布網成本低廉 2)由于服務器不用向每個客戶機單獨發送數據,所以服務器流量負載極低。 ? 廣播的缺點: 1)無法針對每個客戶的要求和時間及時提供個性化服務。 2)網絡允許服務器提供數據的帶寬有限,客戶端的最大帶寬=服務總帶寬。例如有線電視的客戶端的線路支持100個頻道(如果采用數字壓縮技術,理論上可以提供500個頻道),即使服務商有更大的財力配置更多的發送設備、改成光纖主干,也無法超過此極限。也就是說無法向眾多客戶提供更多樣化、更加個性化的服務。 3)廣播禁止允許在Internet寬帶網上傳輸。 多播又叫?組播: 主機之間一對一組的通訊模式,也就是加入了同一個組的主機可以接受到此組內的所有數據,網絡中的交換機和路由器只向有需求者復制并轉發其所需數據。主機可以向路由器請求加入或退出某個組,網絡中的路由器和交換機有選擇的復制并傳輸數據,即只將組內數據傳輸給那些加入組的主機。這樣既能一次將數據傳輸給多個有需要(加入組)的主機,又能保證不影響其他不需要(未加入組)的主機的其他通訊。 組播的優點: 1)需要相同數據流的客戶端加入相同的組共享一條數據流,節省了服務器的負載。具備廣播所具備的優點。 2)由于組播協議是根據接受者的需要對數據流進行復制轉發,所以服務端的服務總帶寬不受客戶接入端帶寬的限制。IP協議允許有2億6千多萬個組播,所以其提供的服務可以非常豐富。 3)此協議和單播協議一樣允許在Internet寬帶網上傳輸。 ? 組播的缺點: 1)與單播協議相比沒有糾錯機制,發生丟包錯包后難以彌補,但可以通過一定的容錯機制和QOS加以彌補。 2)現行網絡雖然都支持組播的傳輸,但在客戶認證、QOS等方面還需要完善,這些缺點在理論上都有成熟的解決方案,只是需要逐步推廣應用到現存網絡當中。 ? |
?
應用層:
相關協議:
1、遠程登錄協議(Telnet)
2、文件傳輸協議(FTP)
3、超文本傳輸協議(HTTP)
| HTTP協議由兩部分程序實現:一個客戶機程序和一個服務器程序,它們運行在不同的端系統中,通過交換HTTP報文運行會話。HTTP定義了Web客戶機是如何向Web服務器請求Web頁面,以及服務器如何將Web頁面傳送給客戶機的。 HTTP使用TCP作為它的支撐運輸協議。HTTP客戶機發起一個與服務器的TCP連接,一旦連接建立,瀏覽器(客戶機)和服務器進程就可以通過套接字接口訪問TCP。至于TCP是什么,在后面的文章中,會詳細介紹,這里讀者只需要知道,TCP是面向連接的,提供可靠的數據傳輸服務,可以無差錯、按順序地交付要發送的數據。即使用TCP作為其支撐的HTTP協議不用擔心數據丟失,也不用擔心TCP是如何從網絡的數據丟失和亂序故障中恢復的,因為那是TCP以及協議棧底層協議的工作。 HTTP是一個無狀態協議,所以服務器向客戶機發送被請求的文件時,并不存儲任何關于該客戶機的狀態信息。舉個例子來說,就是假如某個特定的客戶機在短短幾秒內兩次請求同一個對象,服務器并不會因為剛剛為該用戶提供了該對象而不做出反應,而是重新發送該對象,就好像服務器已經完全忘記了之前所做的事一樣。 ? |
| 持久化鏈接和非持久化鏈接 當客戶機/服務器的交互運行于TCP協議上時,應用程序的每個請求/響應對是經一個單獨的TCP連接,則該應用程序使用非持久連接,而當應用程序的每個請求/響應對是經相同的TCP連接發送,則該應用程序使用持久連接。 在非持久連接的情況下,服務器在發送響應后,關閉TCP連接。我們定義往返時間RTT為一個小分組從客戶機到服務器再回到客戶所花費的時間。所以RTT包括分組傳播時延、排列時延以及分組處理時延。 |
| 常見的HTTP狀態碼和短語 200 OK:請求成功,信息包含在返回的響應報文中。 301 Moved Permanently:請求的對象已經被永久轉移了,新的URL定義在響應報文的Location?首部行中指定。客戶機可自動用新的URL獲取該對象。 400 Bad Repuest:一個通用差錯代碼,指示該請求不能被服務器所理解。 404 Not Found:被請求的文檔不在服務器上。 505 HTTP Version Not Supported:服務器不支持請求報文使用的HTTP協議版本。 |
| 詳細請看:http://blog.csdn.net/ljianhui/article/details/13087145 |
?
4、域名服務協議(DNS)
5、簡單郵件傳輸協議(SMTP)
6、郵局協議(POP3)
版權所有?轉載請注明出處:
參考資料:
?TCP/IP卷(一)
?linux-cmd.zh.pdf 邢文鵬
?計算機網絡第6版 謝希仁 等等
版權所有?轉載請注明出處:
?http://blog.sina.com.cn/s/blog_c0e9eba20102vo2l.html
?
總結
以上是生活随笔為你收集整理的一小时搞定计算机网络面试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向Facebook学什么
- 下一篇: ICME2021:基于机器视觉的RD模型