計算機網路期末復習攻略
一、名詞解釋
-
IP:Internet Protocol 網際互連協議
-
IPCP:IP Control Protocol IP控制協議
-
ARP:Address Resolution Protocol 地址決議協議
-
RARP:Reverse Address Resolution Protocol 逆地址決議協議
-
HTTP:Hypertext Transfer Protocol 超文本傳輸協議
-
ICMP:Internet Control Message Protocol 網際控制報文協議
-
DNS:Domain Name System 域名系統
-
PPP:Point-to-Point Protocol 點對點協議
-
TCP:Transmission Control Protocol 傳輸控制協議
-
UDP:User Datagram Protocol 用戶資料報協議
-
WWW:World Wide Web 萬維網
-
IMAP:Internet Message Access Protocol 網際報文存取協議
-
RIP:Routing Information Protocol 路由資訊協議
-
FTP:File Transfer Protocol 檔案傳輸協議
-
TFTP:Trivial File Transfer Protocol 簡單檔案傳輸協議
-
DHCP:Dynamic Host Configuration Protocol 動態主機配置協議
-
EGP:External Gateway Protocol 外部網關協議
-
IGP:Interior Gateway Protocol 內部網關協議
-
LAN:Local Area Network 局域網
-
MAN:Metropolitan Area Network
-
NCP:Network Control Protocol 網路控制協議
-
P2P:Peer-to-Peer 對等方式
-
PAN:Personal Area Network 個人區域網
二、簡答題
1. DNS 作業原理
DNS:(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式資料庫,能夠使用戶更方便的訪問互聯網,
而不去記住能夠被機器直接讀取的IP數串,通過主機名,最終得到該主機名對應的IP地址的程序叫域名決議,
1) DNS 服務
將IP地址與形象易記的域名一一對應起來,使用戶在訪問服務器或網站時不使用IP地址,而使用簡單易記的域名,通過DNS服務器將域名自動決議成IP地址并定位服務器,
2) 正向決議和反向決議
當DNS 客戶機向DNS 服務器提交域名查詢IP 地址,或DNS 服務器向另一臺DNS 服務器提交域名查詢IP 地址,DNS 服務器作出回應的程序稱為正向決議,反之,當DNS 客戶機向DNS 服務器提交IP 地址查詢域名,或DNS 服務器向另一臺DNS 服務器提交IP 地址查詢域名,DNS 服務器作出回應的程序成為反向決議,
3) 遞回查詢與迭代查詢
遞回查詢:收到客戶機查詢請求后,DNS 服務器在自己的快取或區域資料庫中查找,如找到則回傳結果;如找不到,DNS 服務器指向轉發器定義的其他DNS 服務器進行查詢,最終將查詢結果回傳給客戶機,
迭代查詢:將請求發給根域DNS 服務器,依序從根域查到頂級域,從頂級域查到二級域,再從二級域查到三級域,經此類推直至找到要決議的地址或域名,然后向客戶機所在網路的DNS 服務器發出應答資訊,DNS 服務器收到資訊后轉發給客戶機,如果最終都沒有找到所需的資訊,則向客戶機回傳錯誤資訊,
2. ARP
1) ARP簡介
地址決議協議(Address Resolution Protocol),其基本功能為透過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行,它是IPv4中網路層必不可少的協議,不過在IPv6中已不再適用,并被鄰居發現協議(NDP)所替代,
2) IP 地址與MAC 地址
MAC 地址是資料鏈路層和物理層使用的地址,而IP 地址是網路層和以上各層使用的地址,是一種邏輯地址(IP 地址是使用軟體實作的),在發送資料時,資料從高層到低層,然后才到通信鏈路上傳輸,使用IP 地址的IP 資料報一旦交給了資料鏈路層就被封裝成了MAC 幀,**MAC 幀在傳送時使用的原地址和目的地址都是硬體地址,連接在通信鏈路上的設備(主機或路由器)在接受MAC 幀時,根據的是MAC 幀首部的硬體地址,**在資料鏈路層看不到隱藏在MAC 幀中的IP 地址,只有剝去MAC 幀的首部和尾部后把MAC 層的資料交給網路層后,網路層才能在IP資料報的首部中找到源IP 地址和目的IP 地址,
3) 基本功能
在以太網協議中規定,同一局域網中的一臺主機要和另一臺主機進行直接通信,必須要知道目標主機的MAC地址,而在TCP/IP協議中,網路層和傳輸層只關心目標主機的IP地址,這就導致在以太網中使用IP協議時,資料鏈路層的以太網協議接到上層IP協議提供的資料中,只包含目的主機的IP地址,于是需要一種方法,根據目的主機的IP地址,獲得其MAC地址,這就是ARP協議要做的事情,所謂地址決議(address resolution)就是主機在發送幀前將目標IP地址轉換成目標MAC地址的程序,
注意:在點對點鏈路中不使用ARP,實際上在點對點網路中也不使用MAC地址,因為在此類網路中分別已經獲取了對端的IP地址,
4) 作業原理
在TCP/IP 協議中,A 給B 發送IP 包時,在A 不知道B 的MAC 地址的情況下,A 就廣播一個ARP 請求包,請求包中填有B 的IP ,以太網中的所有計算機都會接收這個請求,而正常情況下只有B 會給出ARP 應答包,包中就填充上了B 的MAC 地址,并回復給A ,A 得到ARP 應答后,將B 的MAC 地址放入本機快取,便于下次使用,
(1)ARP行程在本局域網上廣播發送一個ARP請求分組
(2)本局域網上所有的主機上運行的ARP行程都收到此ARP請求分組,
(3)主機B在ARP分組中見到自己的IP地址就向A發送ARP回應分組,并寫入自己的硬體地址,相應分組是普通的單播,
(4)主機A收到主機B的ARP回應分組后,就在其ARP高速快取中寫入主機B的IP地址到硬體地址的映射,
(5)另外,當發送主機和目的主機不在同一個局域網中時,即便知道目的主機的MAC地址,兩者也不能直接通信,必須經過路由轉發才可以,所以此時,發送主機通過ARP協議獲得的將不是目的主機的真實MAC地址,而是一臺可以通往局域網外的路由器的MAC地址,于是此后發送主機發往目的主機的所有幀,都將發往該路由器,通過它向外發送,這種情況稱為委托ARP或ARP代理(ARP Proxy),
3. 常用傳輸媒體
1) 常用傳輸媒體有哪些
- **雙絞線 :**屏蔽雙絞線 STP(Shielded Twisted Pair) 無屏蔽雙絞線 UTP(Unshielded Twisted Pair)
- **同軸電纜:**50W 同軸電纜 75W 同軸電纜
- **光纜:**單模光纖 多模光纖
- **無線傳輸:**短波通信 / 微波 / 衛星通信
2)簡介
- 雙絞線分屏蔽雙絞線和無屏蔽雙絞線,由兩根相互絕緣的導線組成,可以傳輸模擬信號,也可以傳輸數字信號,有效帶寬達250kHz,通常距離一般為幾道十幾公里,導線越粗其通信距離越遠,在數字傳輸時,若傳輸速率為每秒幾兆位元,則傳輸距離可達幾公里,一般用作電話線傳輸聲音信號,雖然雙絞線容易受到外部高頻電磁波的干擾,誤碼率高,但因為其價格便宜,且安裝方便,既適于點到點連接,又可用于多點連接,故仍被廣泛應用,
- 同軸電纜分基帶同軸電纜和寬帶同軸電纜,其結構是在一個包有絕緣的實心導線外,再套上一層外面也有一層絕緣的空心圓形導線,由于其高帶寬(高達300~400Hz)、低誤碼率、性能價格比高,所以用作LAN中,同軸電纜的最大傳輸距離隨電纜型號和傳輸信號的不同而不同,由于易受低頻干擾,在使用時多將信號調制在高頻載波上,
- 光導纖維以光纖維載體,利用光的全反向原理傳播光信號,其優點是直徑小、質量輕:傳播頻帶款、通信容量大:抗雷電和電磁干擾性能好,五串音干擾、保密性好、誤碼率低,但光電介面的價格較昂貴,光纖被廣泛用于電信系統鋪設主干線,
- 無線電微波通信分為地面微波接力通信和衛星通信,其主要優點是頻率高、頻帶范圍寬、通信信道的容量大;信號所受工業干擾較小、傳播質量高、通信比較穩定;不受地理環境的影響,建設投資少、見效快,缺點是地面微波接力通信在空間是直線傳播,傳輸距離受到限制,一般只有50km,隱蔽性和保密性較差;衛星通信雖然通信距離遠且通信費用與通信距離無關,但傳播時延較大,技術較復雜,價格較貴,
3)特點
- 雙絞線:
- 可以傳輸模擬信號、數字信號
- 雙絞線容易受到外部高頻電子波的干擾,誤碼率高
- 價格便宜、安裝方便、既適用點到點連接又可用于多點連接
- 同軸電纜:
- 在局域網發展的初期曾廣泛使用同軸電纜作為傳輸媒體
- 具有很好的抗干擾特性
- 光導纖維:
- 傳輸損耗小,可實作長距離傳輸
- 體積小,質量輕
- 傳輸速率高,通信容量大
- 抗雷電和電磁干擾性能好,保密性好,誤碼率低
- 無線電微波通信
- 通信容量大,傳輸頻率寬
- 受外界干擾小,傳輸質量高
- 初建成本低,易于跨越山區、江河
4. 信道復用
1)為什么要使用信道復用技術
信道復用的目的是讓不同的計算機連接到相同的信道上,以共享信道資源,在一條傳輸介質上傳輸多個信號,提高線路的利用率,降低網路的成本,采用信道復用是為了提高系統容量和系統的效率,
2)信道復用技術都有哪些
常用的信道復用技術有四種:頻分復用、時分復用、波分復用和碼分復用,
頻分復用(Frequency Division Multiplexing,FDM)就是將用于傳輸信道的總帶寬劃分成若干個子頻帶(或稱子信道),每一個子信道傳輸一路信號,頻分復用要求總頻率寬度大于各個子信道頻率之和,同時為了保證各子信道中所傳遞的信號互不干擾,應在各子信道之間設立隔離帶,這樣就保證了各路信號互不干擾(條件之一),頻分復用技術的特點是所有子信道傳輸的信號以并行的方式作業,每一路信號傳輸時可不考慮傳輸時延,因而頻分復用技術取得了非常廣泛的應用,頻分復用除傳統意義上的頻分復用(FDM)外還有一種是正交頻分復用(OFDM),
時分復用(Time Division Multiplexing,TDM)就是將提供給整個信道傳輸資訊的時間劃分成若干時間片(簡稱時隙),并將這些時隙分配給每一個信號源使用,每一路信號在自己的時隙內單獨占用信道進行資料傳輸,時分復用技術的特點是時隙事先規劃分配好且固定不變,所以有時候也叫同步時分復用,其優點是時隙分配固定,便于調節控制,適于數字資訊的傳輸;缺點是當某信號源沒有資料傳輸時,它所對應的信道會出現空閑而其他繁忙的信道無法占用這個空閑的信道,因此會降低線路的利用率,
頻分復用(Wavelength Division Multiplexing, WDM)在光通信領域人們習慣按波長而不是按頻率來命名,因此所謂的波分復用其本質上也是頻分復用而已,WDM是在一根光纖上承載多個波長(信道)系統將一根光纖轉換為多條“虛擬”光纖,每條“虛擬”光纖獨立作業在不同波長上,這樣極大地提高了光纖的傳輸容量,
碼分復用(Code Division Multiplexing,CDM)是靠不同的編碼來區分各路原始信號的一種復用方式,主要和各種多址技術結合產生了各種接入技術,包括無線和有線接入,
5. 資料鏈路層三大任務
1)封裝成幀
資料鏈路層的發送方應當讓接收方的資料鏈路層知道,所發送的幀是從什么地方開始到什么地方結束,
- 就是在一段資料的前后分別添加首部和尾部,這樣就構成了一個幀,
- 接收端在收到物理層上交的位元流后,就能根據首部和尾部的標記,從收到的位元流中識別幀的開始和結束,
- 分組交換的一個重要概念:就是所有因特網上傳送的資料都是以分組(即IP 資料報)為傳送單位,
- 網路層的IP 資料報傳送到資料鏈路層就成為幀的資料部分,在幀的資料部分前面和后面分別添加上首部和尾部,就構成了一個完整的幀,
- 幀長等于資料部分長度加上幀首部和幀尾部的長度,而首部和尾部的一個重要作用就是進行幀定界(即確定幀的界限),
- 首部和尾部還包含許多必要的控制資訊,在發送幀時,是從幀首部開始發送,
- 各種資料鏈路層協議都要對幀首部和幀尾部的格式有明確的規定,
- 為了提高幀的傳輸效率,應當使幀的資料部分長度盡可能大于首部和尾部的長度,但是,每一種鏈路層協議都規定了幀的資料部分長度上限——最大傳送單元MTU(Maximum Transfer Unit),
- 當資料是由可列印的ASCII碼組成的文本檔案時,幀定界可以使用特殊的幀定界符,
- 控制字符SOH(Start Of Header)放在一幀的最前面,表示幀的首部開始,另一個控制字符EOT(End Of Transmission)表示幀的結束,他們的十六進制編碼分別是01(二進制是00000001)和04(二進制是00000100),
- 當資料在傳輸中出現差錯時,幀定界符的作用更加明顯,假定發送端在尚未發完一個幀時突然出現故障,中斷了發送,但隨后很快又恢復正常,于是重新從頭開始發送剛才未發送完的幀,由于使用了幀定界符,在接收端就知道前面收到的資料時個不完整的幀(只有首部SOH,沒有傳輸結束符EOT),必須丟棄,而后面收到的資料有明顯的幀定界符(SOH和EOT),因此這是一個完整的幀,應當收下,
2)透明傳輸
資料鏈路層傳送的位元組合必須是不受限制的,
- 由于幀的開始和結束的標記是使用專門指明的控制字符,因此,所傳輸的資料中任何8bit 的組合一定不允許和用作幀定界的控制字符的位元編碼一樣,否則就會出現幀定界的錯誤,
- 當傳送的幀使用文本檔案組成的幀時(文本檔案中的字符是從鍵盤上輸入的),其資料部分顯然不會出現像SOH或EOT這樣的幀定界控制字符,可見不管從鍵盤上輸入什么字符都可以放在這樣的幀中傳輸過去,因此這樣的傳輸就是透明傳輸,
- 當資料部分是非ASCII碼的文本檔案時(如二進制代碼的計算機程式或影像等),如果資料中心的某個字符的二進制代碼恰好和SOH或EOT這種控制字符一樣,資料鏈路層就會錯誤地找到幀的邊界,把部分幀收下(誤以為是完整的幀),而把剩下的那部分資料丟棄(這部分找不到幀定界控制字符SOH),這樣的幀的傳輸顯然就不是透明傳輸,
- 為了解決透明傳輸的問題,就必須設法使資料中可能出現的控制字符在接收端不被決議為控制字符,
- 解決方法是發送端的資料鏈路層在資料中出現控制字符的前面加上一個轉義字符“ESC”(其十六進制編碼是1B),而在接收端的資料鏈路層在資料送往網路層之前洗掉這個插入的轉義字符,這種方法稱為位元組填充(byte stuffing)或字符填充(character stuffing),如果轉義字符也出現在資料當中,那么解決方法仍然是在轉義字符的前面插入一個轉義字符,因此,當接收端收到連續的兩個轉義字符時就洗掉其中的前面一個,
3)差錯檢測
資料鏈路層必須有差錯檢測功能,
- 傳輸差錯:可分為兩大類,位錯和幀錯,位錯就是最基本的位元差錯,幀錯就是收到的幀并沒有出現錯誤,但卻出現了幀丟失、幀重復或幀失序,
- 位元差錯:就是位元在傳輸程序中可能會產生差錯,即1變成0,0變成1,
- 誤碼率BER(Bit Error Rate):就是在一段時間內,傳輸錯誤的位元占所傳輸位元總數的比率,誤碼率與信噪比有很大的關系,如果提高信噪比,就可以使誤碼率減小,
- 實際的通信鏈路并非理想的,不可能使誤碼率下降到零,
- 為了保證資料傳輸的可靠性,在計算機網路傳輸資料時,必須采用各種檢測措施,
- 目前在資料鏈路層廣泛使用了回圈冗余校驗CRC(Cycle Redundancy Check)的檢測技術,
- 在資料鏈路層使用CRC檢驗,能夠實作無位元差錯的傳輸,但這還不是可靠傳輸,
因特網廣泛使用的資料鏈路層協議都不適用確認和重傳機制,即不要求資料鏈路層向上層提供可靠傳輸的服務(因為這要付出的代價太高,不合算),如果在資料鏈路層傳輸資料時除了差錯并且需要進行改正,那么改正差錯的任務就由上層協議(如,運輸層TCP協議)來完成,實驗證明,這樣可以提高通信效率,
6. 網路層提供的兩種服務
1)虛電路服務
- 傳統電信網提供的主要業務是提供電話服務,電信網使用昂貴的程控交換機,用面向連接的通信方式,使電信網路能夠向用戶(實際上就是電話機)提供可靠傳輸的服務,
- 當兩個計算機進行通信的步驟:
- (1)應當先建立連接(但在分組交換中是建立一條虛電路VC(Virtual Circuit)),以保證通信雙方所需的一切網路資源,
- (2)然后雙方就沿著已建立的虛電路發送分組,
- (3)這樣的分組的首部就不需要填寫完整的目的主機地址,而只需填寫這條虛電路的編號(一個不大的整數),因而減少了分組的開銷,
- (4)如果這種通信方式再使用可靠傳輸的網路協議,就可使所發送的分組無差錯按序地到達終點,當然也不丟失、不重復,
- (5)在通信結束后,要釋放建立的虛電路,
2)資料報服務
- 因特網在設計上就采用了和電信網完全不同的思路,
- 由于傳輸網路不提供端到端的可靠傳輸服務,這就使網路中的路由器可以做得比較簡單,而且價格低廉(與電信網的交換機相比較),
- 因特網的設計思路:
- (1)網路層向上只提供簡單靈活的、無連接的、盡最大努力交付的資料報服務,網路在發送分組時不需要先建立連接,每個分組(也就是IP資料報)獨立發送,與其前后的分組無關(不進行編號),
- (2)網路層不提供服務質量的承諾,也就是說所傳送的分組,可能出錯、丟失、重復或失序,當然也不保證分組交付的時限,
- 這種設計思路的好處:
- (1)網路的造價大大降低,
- (2)運行方式靈活,
- (3)能夠適應多種應用,
7. TCP/IP
從字面意義上,TCP/IP 是指TCP 和IP 兩種協議,然而很多情況下它只是利用IP 進行通信時所必須用到的協議群的統稱,
1)計算機網路體系結構分層
| OSI七層模型 | TCP/IP 概念層模型 | 功能 | 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 |
2)資料包
包、幀、資料包、段、訊息
- 包是全能術語
- 幀用于表示資料鏈路層中包的單位
- 資料報是IP 和UDP 等網路層以上的分層中包的單位
- 段則是表示TCP 資料流中的資訊
- 訊息是指應用協議中資料的單位
每個分層中,都會對所發送的資料添加一個首部,在這個首部中包含了該層必要的資訊,如發送的不標地址以及協議相關資訊,通常,為協議提供的資訊為包首部,所要發送的內容為資料,在下一層的角度看,從上一層收到的包全部都被認為是本層的資料,
資料包首部
網路中傳輸的資料包由首部和上一層傳過來的資料組成,首部的結構由協議的具體規范詳細定義,在資料包的首部明確標明了協議應該如何讀取資料,
3)資料處理流程
- 應用程式處理
- 首先應用程式會進行編碼處理,這些編碼相當于OSI 的表示層功能
- 編碼轉化后,郵件不一定馬上被發送出去,這種何時建立通信連接何時發送資料的管理功能,相當于OSI 的會話層功能
- TCP 模塊的處理
- TCP根據應用的指示,負責建立連接、發送資料以及斷開連接,TCP 提供將應用層發來的資料順利發送至對端的可靠傳輸,為了實作這一功能,需要在應用層資料的前端附加一個TCP 首部,
- IP 模塊的處理
- IP 將TCP傳過來的TCP 首部和TCP 資料合起來當做自己的資料,并在TCP 首部加上自己的IP 首部,IP 包生成后,參考路由控制表決定接受此IP 包的路由或主機,
- 網路介面(以太網驅動)的處理
- 從IP 傳過來的IP 包對于以太網來說是資料,給這些資料附加上以太網首部并進行發送處理,生成的以太網資料包將通過物理層發送給接收端,
- 網路介面(以太網驅動)的處理
- 主機收到以太網包后,首先從以太網包首部找到MAC 地址判斷是否為發送給自己的包,若不是則丟棄資料,
- 如果是發送給自己的包,則從以太網包首部中的型別確定資料型別,再傳給相應的模塊,如IP、ARP等,
- IP 模塊的處理
- IP 模塊接收到資料后也做類似的處理,從包首部中判斷此IP 地址是否和自己的IP 地址匹配,如果匹配則根據首部的協議型別將資料發送給對應的模塊,如TCP、UDP,
- 對于有路由器的情況,接收端地址往往不是自己的地址,此時需要借助路由控制表,在調查應該送往的主機或路由器之后再進行轉發資料,
- TCP 模塊的處理
- 在TCP 模塊中,首先會計算一下校驗和,判斷資料是否被破壞,然后檢查是否在按照序號接收資料,最后檢查埠號,確定具體的應用程式,資料被完整地接收以后,會傳給埠號識別的應用程式,
- 應用程式的處理
- 接收端應用程式會直接接收發送端發送的資料,通過決議資料,展示回應的內容,
8. IP 詳解
- 網路層的主要作用是“實作終端節點之間的通信”,這種終端及誒按之間的通信也叫“點對點通信”,
- 網路層的下一層——資料鏈路層的主要作用的在互連同一種資料鏈路之間進行包傳遞,而一旦跨越多種資料鏈路,就需要借助網路層,網路層可以跨越不同的資料鏈路,即使是在不同的資料鏈路上也能實作兩端接點之間的資料包傳輸,
- IP 大致分為三大作用模塊,它們是IP 尋址、路由(最終節點為止的轉發)以及IP 分包與組包,
1)IP 地址
IP地址概述
- 在計算機通信中,為了識別通信對端,必須要有一個類似于地址的識別碼進行標識,在資料鏈路中的 MAC 地址正是用來標識同一個鏈路中不同計算機的一種識別碼,
- 作為網路層的 IP ,也有這種地址資訊,一般叫做 IP 地址,IP 地址用于在“連接到網路中的所有主機中識別出進行通信的目標地址”,因此,在 TCP/IP 通信中所有主機或路由器必須設定自己的 IP 地址,
- 不論一臺主機與哪種資料鏈路連接,其 IP 地址的形式都保持不變,
- IP 地址(IPv4 地址)由32位正整數來表示,IP 地址在計算機內部以二進制方式被處理,然而,由于我們并不習慣于采用二進制方式,我們將32位的 IP 地址以每8位為一組,分成4組,每組以 “.” 隔開,再將每組數轉換成十進制數
IP 地址由網路和主機兩部分標識組成
網路標識在資料鏈路的每個段配置不同的值,網路標識必須保證相互連接的每個段的地址不相重復,而相同段內相連的主機必須有相同的網路地址,IP 地址的“主機標識”則不允許在同一個網段內重復出現,由此,可以通過設定網路地址和主機地址,在相互連接的整個網路中保證每臺主機的 IP 地址都不會相互重疊,即 IP 地址具有了唯一性,
IP地址的分類
- IP 地址分為四個級別,分別為A類、B類、C類、D類,它根據 IP 地址中從第 1 位到第 4 位的位元列對其網路標識和主機標識進行區分,
- **A 類 IP 地址是首位以 “0” 開頭的地址,**從第 1 位到第 8 位是它的網路標識,用十進制表示的話,0.0.0.0~127.0.0.0 是 A 類的網路地址,A 類地址的后 24 位相當于主機標識,因此,一個網段內可容納的主機地址上限為16,777,214個,
- **B 類 IP 地址是前兩位 “10” 的地址,**從第 1 位到第 16 位是它的網路標識,用十進制表示的話,128.0.0.0~191.255.0.0 是 B 類的網路地址,B 類地址的后 16 位相當于主機標識,因此,一個網段內可容納的主機地址上限為65,534個,
- **C 類 IP 地址是前三位為 “110” 的地址,**從第 1 位到第 24 位是它的網路標識,用十進制表示的話,192.0.0.0~223.255.255.0 是 C 類的網路地址,C 類地址的后 8 位相當于主機標識,因此,一個網段內可容納的主機地址上限為254個,
- **D 類 IP 地址是前四位為 “1110” 的地址,**從第 1 位到第 32 位是它的網路標識,用十進制表示的話,224.0.0.0~239.255.255.255 是 D 類的網路地址,D 類地址沒有主機標識,常用于多播,
- 在分配 IP 地址時關于主機標識有一點需要注意,即要用位元位表示主機地址時,不可以全部為 0 或全部為 1,因為全部為 0 只有在表示對應的網路地址或 IP 地址不可以獲知的情況下才使用,而全部為 1 的主機通常作為廣播地址,因此,在分配程序中,應該去掉這兩種情況,這也是為什么 C 類地址每個網段最多只能有 254( 28 - 2 = 254)個主機地址的原因,
廣播地址
- 廣播地址用于在同一個鏈路中相互連接的主機之間發送資料包,將 IP 地址中的主機地址部分全部設定為 1,就成了廣播地址,
- 廣播分為本地廣播和直接廣播兩種,在本網路內的廣播叫做本地廣播;在不同網路之間的廣播叫做直接廣播,
IP 多播
-
多播用于將包發送給特定組內的所有主機,由于其直接使用 IP 地址,因此也不存在可靠傳輸,
-
相比于廣播,多播既可以穿透路由器,又可以實作只給那些必要的組發送資料包
-
多播使用 D 類地址,因此,如果從首位開始到第 4 位是 “1110”,就可以認為是多播地址,而剩下的 28 位可以成為多播的組編號,
-
此外, 對于多播,所有的主機(路由器以外的主機和終端主機)必須屬于 224.0.0.1 的組,所有的路由器必須屬于 224.0.0.2 的組,
-
子網掩碼
-
現在一個 IP 地址的網路標識和主機標識已不再受限于該地址的類別,而是由一個叫做“子網掩碼”的識別碼通過子網網路地址細分出比 A 類、B 類、C 類更小粒度的網路,這種方式實際上就是將原來 A 類、B 類、C 類等分類中的主機地址部分用作子網地址,可以將原網路分為多個物理網路的一種機制,
-
子網掩碼用二進制方式表示的話,也是一個 32 位的數字,它對應 IP 地址網路標識部分的位全部為 “1”,對應 IP 地址主機標識的部分則全部為 “0”,由此,一個 IP 地址可以不再受限于自己的類別,而是可以用這樣的子網掩碼自由地定位自己的網路標識長度,當然,子網掩碼必須是 IP 地址的首位開始連續的 “1”,
-
對于子網掩碼,目前有兩種表示方式,第一種是,將 IP 地址與子網掩碼的地址分別用兩行來表示,以 172.20.100.52 的前 26 位是網路地址的情況為例,如下
- 第二種表示方式是,在每個 IP 地址后面追加網路地址的位數用 “/ ” 隔開,如下:
2)路由
- 發送資料包時所使用的地址是網路層的地址,即 IP 地址,然而僅僅有 IP 地址還不足以實作將資料包發送到對端目標地址,在資料發送程序中還需要類似于“指明路由器或主機”的資訊,以便真正發往目標地址,保存這種資訊的就是路由控制表,
- 該路由控制表的形成方式有兩種:一種是管理員手動設定,另一種是路由器與其他路由器相互交換資訊時自動重繪,前者也叫做靜態路由控制,而后者叫做動態路由控制,
- IP 協議始終認為路由表是正確的,然后,IP 本身并沒有定義制作路由控制表的協議,即 IP 沒有制作路由控制表的機制,該表示由一個叫做“路由協議”的協議制作而成,
IP 地址與路由控制
- IP 地址的網路地址部分用于進行路由控制,
- 路由控制表中記錄著網路地址與下一步應該發送至路由器的地址,
- 在發送 IP 包時,首先要確定 IP 包首部中的目標地址,再從路由控制表中找到與該地址具有相同網路地址的記錄,根據該記錄將 IP 包轉發給相應的下一個路由器,如果路由控制表中存在多條相同網路地址的記錄,就選擇一個最為吻合的網路地址,
IP 分包與組包
- 每種資料鏈路的最大傳輸單元(MTU)都不盡相同,因為每個不同型別的資料鏈路的使用目的不同,使用目的不同,可承載的 MTU 也就不同,
- 任何一臺主機都有必要對 IP 分片進行相應的處理,分片往往在網路上遇到比較大的報文無法一下子發送出去時才會進行處理,
- 經過分片之后的 IP 資料報在被重組的時候,只能由目標主機進行,路由器雖然做分片但不會進行重組,
路徑MTU 發現
- 分片機制也有它的不足,如路由器的處理負荷加重之類,因此,只要允許,是不希望由路由器進行 IP 資料包的分片處理的,
- 為了應對分片機制的不足,“路徑 MTU 發現” 技術應運而生,路徑 MTU 指的是,從發送端主機到接收端主機之間不需要分片是最大 MTU 的大小,即路徑中存在的所有資料鏈路中最小的 MTU ,
- 進行路徑 MTU 發現,就可以避免在中途的路由器上進行分片處理,也可以在 TCP 中發送更大的包,
9. UDP/TCP 詳解
- TCP是面向連接的、可靠的流協議,流就是不間斷的資料結構,當應用程式采用TCP 發送訊息時,雖然可以保證發送的順序,但還是猶如沒有任何間隔的資料流發送給接收端,TCP 為提供可靠性傳輸,實行“順序控制”或“重發控制”機制,此外還具備“流量控制”、“擁塞控制”、提高網路利用率等眾多功能,
- UDP 是不具有可靠性的資料報協議,細微的處理會交給它上層的應用去完成,在UDP 的情況下,雖然可以確保發送訊息的大小,卻不能保證訊息一定會到達,因此有時會根據自己的需要進行重發處理,
- TCP 用于在傳輸層有必要實作可靠傳輸的情況;UDP主要用于那些對高速傳輸和實時性有較高要求的通信或廣播通信,
1)埠號
資料鏈路和IP 中的地址,分別指的是MAC 地址和IP 地址,前者用來識別同一鏈路中不同的計算機,后者用來識別TCP/IP 網路中互聯的主機和路由器,在傳輸層也有類似于地址的概念,就是埠號,埠號用來識別同一臺計算機中進行通信的不同應用程式,因此,它也被稱為程式地址,
埠號的確定
- 標準既定的埠號:這種方法也叫靜態方法,它是指每個應用程式都有其指定的埠號,但并不是說可以隨意使用任何一個埠號,例如 HTTP、FTP、TELNET 等廣為使用的應用協議中所使用的埠號就是固定的,這些埠號被稱為知名埠號,分布在 0~1023 之間;除知名埠號之外,還有一些埠號被正式注冊,它們分布在 1024~49151 之間,不過這些埠號可用于任何通信用途,
- 時序分配法:服務器有必要確定監聽埠號,但是接受服務的客戶端沒必要確定埠號,在這種方法下,客戶端應用程式完全可以不用自己設定埠號,而全權交給作業系統進行分配,動態分配的埠號范圍在 49152~65535 之間,
埠號與協議
- 埠號由其使用的傳輸層協議決定,因此,不同的傳輸層協議可以使用相同的埠號,
- 此外,那些知名埠號與傳輸層協議并無關系,只要埠一致都將分配同一種應用程式進行處理,
2)UDP
- UDP 不提供復雜的控制機制,利用IP 提供面向無連接的通信服務,
- 它是將應用程式發來的資料在收到的那一刻,立即按照原樣發送到網路上的一種機制,即使是出現網路擁堵的情況,UDP 也無法進行流量控制等避免網路擁塞行為,
- 此外,傳輸途中出現丟包,UDP也不負責重發,
- 甚至當包的到達順序出現亂序時也沒有糾正的功能,
- 如果需要以上的細節控制,不得不交由采用UDP 的應用程式去處理,
- UDP 常用于以下幾個方面:
- 包總量較少的通信(DNS、SNMP等);
- 視頻、音頻等多媒體通信(即時通信);
- 限定于LAN等特定網路中的應用通信;
- 廣播通信(廣播、多播),
3)TCP
- TCP 充分地實作了資料傳輸時的各種控制功能,可以進行丟包時的重發控制,還可以對次序亂掉的分包進行順序控制,
- 此外,TCP 作為一種面向連接的協議,只有在確認通信對端存在時才會發送資料,從而可以控制通信流量的浪費,
- 根據TCP 的這些機制,在IP 這種無連接的網路上也能夠實作高可靠性的通信(主要通過檢驗和、序列號、確認應答、重發控制、連接管理以及視窗控制等機制實作),
三次握手
- TCP 提供面向有連接的通信傳輸,面向有連接是指在資料通信開始之前先做好兩端之間的準備作業,
- 所謂三次握手是建立一個TCP 連接時需要客戶端和服務器端總共發送三個包以確認連接的建立,
- 第一次握手:客戶端將標志位SYN置為1,隨機產生一個值seq=J,并將該資料包發送給服務器端,客戶端進入SYN_SENT狀態,等待服務器端確認,
- 第二次握手:服務器端收到資料包后,由標志位SYN=1知道客戶端請求建立連接,服務器端將標志位SYN和ACK都置為1,ack=J+1,隨機產生一個值seq=K,并將資料包發送給客戶端以確認連接請求,服務器端進入SYN_RCVD狀態,
- 第三次握手:客戶端收到確認后,檢查ack是否為J+1,ACK是否為1,如果正確則將標志位ACK置為1,ack=K+1,并將該資料包發送給服務器端,服務器端檢查ack是否為K+1,ACK是否為1,如果正確則連接建立成功,客戶端和服務器端進入ESTABLISHED狀態,完成三次握手,隨后客戶端與服務器端直接可以開始傳輸資料了,
四次揮手
- 四次揮手即終止TCP連接,就是指斷開一個TCP連接時,需要客戶端和服務端總共發送4個包以確認連接的斷開,
- 由于TCP 連接是全雙工的,因此每個方向必須要單獨進行關閉,這一原則是當一方完成資料發送任務后,發送一個FIN 來終止這一方向的連接,收到一個FIN 只是意味著這一方向上沒有資料流動了,即不會再收到資料了,但是在這個TCP 連接上仍然能夠發送資料,直到這一方向也發送了FIN,首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉,
- 中斷連接端可以是客戶端,也可以是服務器端,
- 第一次揮手:客戶端發送一個FIN=M,用來關閉客戶端到服務器端的資料傳送,客戶端進入FIN_WAIT_1狀態,即客戶端沒有資料要繼續發送,但是如果服務器端還有資料沒有發送完畢可以繼續發送,
- 第二次揮手:服務器端收到FIN 后,先發送ack=M+1,告訴客戶端收到了請求,但是還沒有準備好,請繼續等待訊息,這時客戶端進入FIN_WAIT_2狀態,繼續等待服務器端的FIN 報文,
- 第三次揮手:當服務器端確定資料已經發送完成,則向客戶端發送FIN=N報文,告訴客戶端資料已經發送完畢,準備好關閉連接了,服務器端進入LAST_ACK狀態,
- 第四次揮手:客戶端收到FIN=N 報文后,知道可以關閉連接了,但是還是要向服務器端發送ack=N+1進行確認,發送后進入TIME_WAIT狀態,如果服務器端沒收到ACK則可以重傳,服務器端收到ACK后,就知道可以斷開連接了,客戶端等待2MSL后依然沒有收到回復,則證明服務器端已經正常關閉,則服務器端也關閉連接,最終完成四次揮手,
問題匯總
-
為什么要三次握手
為了防止已失效的連接請求報文突然又傳送到了服務端,因為產生錯誤,
具體解釋: “已失效的連接請求報文段”產生情況:
client 發出的第一個連接請求報文段并沒有丟失,而是在某個網路節點長時間滯留,因此導致延誤到連接釋放以后的某個時間才到達 service,如果沒有三次握手,那么此時server收到此失效的連接請求報文段,就誤認為是 client再次發出的一個新的連接請求,于是向 client 發出確認報文段,同意建立連接,而此時 client 并沒有發出建立連接的情況,因此并不會理會服務端的回應,而service將會一直等待client發送資料,因此就會導致這條連接線路白白浪費,
如果此時變成兩次揮手行不行?
這個時候需要明白全雙工與半雙工,再進行回答,比如:
- 第一次握手: A給B打電話說,你可以聽到我說話嗎?
- 第二次握手: B收到了A的資訊,然后對A說: 我可以聽得到你說話啊,你能聽得到我說話嗎?
- 第三次握手: A收到了B的資訊,然后說可以的,我要給你發資訊啦!
在三次握手之后,A和B都能確定這么一件事: 我說的話,你能聽到; 你說的話,我也能聽到, 這樣,就可以開始正常通信了,如果是兩次,那將無法確定,
-
為什么要四次揮手
TCP 協議是一種面向連接,可靠,基于位元組流的傳輸層通信協議,TCP 是全雙工模式(同一時刻可以同時發送和接收),這就意味著,當主機1發出 FIN 報文段時,只是表示主機1已結沒有資料要發送了,主機1告訴主機2,它的資料已經全部發送完畢;但是,這個時候主機1還是可以接受來自主機2的資料;當主機2回傳 ACK報文段時,這個時候就表示主機2也沒有資料要發送了,就會告訴主機1,我也沒有資料要發送了,之后彼此就會中斷這次TCP連接,
-
為什么要等待 2MSL
MSL:報文段最大生存時間,它是任何報文段被丟棄前在網路內的最長時間
原因如下:
- 保證TCP協議的全雙工連接能夠可靠關閉
- 保證這次連接的重復資料從網路中訊息
第一點: 如果主機1直接 關閉,由于IP協議的不可靠性或者其他網路原因,導致主機2沒有收到主機1最后回復的 ACK,那么主機2就會在超時之后繼續發送 FIN,此時由于主機1已經關閉,就找不到與重發的 FIN 對應的連接,所以,主機1 不是直接進入 關閉,而是TIME_WAIT 狀態,當再次收到 FIN 的時候,能夠保證對方收到 ACK ,最后正確關閉連接,
第二點:如果主機1直接 關閉,然后又再向主機 2 發起一個新連接,我們不能保證這個新連接與剛才關閉的連接埠是不同的,也就是說有可能新連接和老連接的埠號是相同的,一般來說不會發生什么問題,但還是有特殊情況出現;假設新連接和已經關閉的老連接埠號是一樣的,如果前一次連接的某些資料仍然滯留在網路中( Lost Duplicate ),那些延遲資料在建立新連接之后才到達主機2,由于新連接和老連接的埠號是一樣的,TCP 協議就認為哪個延遲的資料時屬于新連接的,這樣就和真正的新連接的資料包發生混淆了,所以TCP連接要在 TIME_WAIT 狀態等待兩倍 MSL ,保證本次連接的所有資料都從網路中消失,
通過序列號與確認應答提高可靠性
- 在TCP 中,在發送端的資料到達接收主機時,接收端主機會回傳一個已收到訊息的通知,這個訊息叫做確認應答(ACK),當發送端將資料發出之后會等待對端的確認應答,如果有確認應答,說明資料已經成功到達對端,反之,則資料丟失的可能性很大,
- 在一定時間內沒有等待到確認應答,發送端就可以認為資料已經丟失,并進行重發,由此,即使產生了丟包,仍然能夠保證資料能夠到達對端,實作可靠傳輸,
- 未收到確認應答并不意味著資料一定丟失,也可能是資料對方已經收到,只是回傳的確認應答在途中丟失,這種情況也會導致發送端誤以為資料沒有到達目的地而重發資料,
- 此外,也有可能因為一些其他原因導致確認應答延遲到達,在源主機重發資料以后才到達的情況也屢見不鮮,此時,源主機只要按照重傳機制重發資料即可,
- 對于目標主機來說,反復收到相同的資料是不可取的,為了對上層應用提供可靠的傳輸,目標主機必須放棄重復的資料包,為此我們引入了序列號,
- 序列號是按照順序給發送資料的每一個位元組(8位位元組)都標上號碼的編號,接收端查詢接收資料 TCP 首部中的序列號和資料的長度,將自己下一步應該接收的序列號作為確認應答返送回去,通過序列號和確認應答號,TCP 能夠識別是否已經接收資料,又能夠判斷是否需要接收,從而實作可靠傳輸,
重發超時的確定
- **重發超時是指在重發資料之前,等待確認應答到來的那個特定時間間隔,**如果超過這個時間仍未收到確認應答,發送端將進行資料重發,最理想的是,找到一個最小時間,它能保證“確認應答一定能在這個時間內回傳”,
- TCP 要求不論處在何種網路環境下都要提供高性能通信,并且無論網路擁堵情況發生何種變化,都必須保持這一特性,為此,它在每次發包時都會計算往返時間及其偏差,將這個往返時間和偏差時間相加,重發超時的時間就是比這個總和要稍大一點的值,
- 在 BSD 的 Unix 以及 Windows 系統中,超時都以0.5秒為單位進行控制,因此重發超時都是0.5秒的整數倍,不過,最初其重發超時的默認值一般設定為6秒左右,
- 資料被重發之后若還是收不到確認應答,則進行再次發送,此時,等待確認應答的時間將會以2倍、4倍的指數函式延長,
- 此外,資料也不會被無限、反復地重發,達到一定重發次數之后,如果仍沒有任何確認應答回傳,就會判斷為網路或對端主機發生了例外,強制關閉連接,并且通知應用通信例外強行終止,
以段為單位發送資料
- 在建立 TCP 連接的同時,也可以確定發送資料包的單位,我們也可以稱其為“最大訊息長度”(MSS),最理想的情況是,最大訊息長度正好是 IP 中不會被分片處理的最大資料長度,
- TCP 在傳送大量資料時,是以 MSS 的大小將資料進行分割發送,進行重發時也是以 MSS 為單位,
- MSS 在三次握手的時候,在兩端主機之間被計算得出,兩端的主機在發出建立連接的請求時,會在 TCP 首部中寫入 MSS 選項,告訴對方自己的介面能夠適應的 MSS 的大小,然后會在兩者之間選擇一個較小的值投入使用,
利用視窗控制提高速度
- TCP 以1個段為單位,每發送一個段進行一次確認應答的處理,這樣的傳輸方式有一個缺點,就是包的往返時間越長通信性能就越低,
- 為解決這個問題,TCP 引入了視窗這個概念,確認應答不再是以每個分段,而是以更大的單位進行確認,轉發時間將會被大幅地縮短,也就是說,發送端主機,在發送了一個段以后不必要一直等待確認應答,而是繼續發送,如下圖所示:
- 視窗大小就是指無需等待確認應答而可以繼續發送資料的最大值,上圖中視窗大小為4個段,這個機制實作了使用大量的緩沖區,通過對多個段同時進行確認應答的功能,
滑動視窗控制
- 上圖中的視窗內的資料即便沒有收到確認應答也可以被發送出去,不過,在整個視窗的確認應答沒有到達之前,如果其中部分資料出現丟包,那么發送端仍然要負責重傳,為此,發送端主機需要設定快取保留這些待被重傳的資料,直到收到他們的確認應答,
- 在滑動視窗以外的部分包括未發送的資料以及已經確認對端已收到的資料,當資料發出后若如期收到確認應答就可以不用再進行重發,此時資料就可以從快取區清除,
- 收到確認應答的情況下,將視窗滑動到確認應答中的序列號的位置,這樣可以順序地將多個段同時發送提高通信性能,這種機制也別稱為滑動視窗控制,
視窗控制中的重發控制
- 確認應答未能回傳的情況,在這種情況下,資料已經到達對端,是不需要再進行重發的,如下圖
- 某個報文段丟失的情況,接收主機如果收到一個自己應該接收的序列號以外的資料時,會針對當前為止收到資料回傳確認應答,如下圖所示,當某一報文段丟失后,發送端會一直收到序號為1001的確認應答,因此,在視窗比較大,又出現報文段丟失的情況下,同一個序列號的確認應答將會被重復不斷地回傳,而發送端主機如果連續3次收到同一個確認應答,就會將其對應的資料進行重發,這種機制比之前提到的超時管理更加高效,因此也被稱為高速重發控制,
其他
1. IP over everything和 everything over IP的含義是什么?
- IP over everything 指在TCP/IP體系結構下,IP通過網路介面層可以運行在不同的物理網路之上,
- everything over IP指在TCP/IP體系結構下,各種網路應用均是建立在IP基礎之上,
- everything=任意通信介質、任意電氣特性、任意通信介面、任意CPU、任意主板、任意作業系統、任意應用軟體=任意硬體系統+任意軟體系統=任意物,
2. 簡述因特網標準定制的幾個階段,請指出這每個階段的主要特點,
因特網標準制定通常要經過以下四個階段(RFC 2026)
- 因特網草案(Internet Draft).–此階段還不是RFC檔案.
- 建議標準(Proposed Standard).-從此階段開始成為RFC檔案.
- 草案標準(Draft Standard).
- 因特網標準(Internet Standard).
3. 因特網的兩大組成部分(邊緣部分與核心部分)的特點是什么?它們的作業方式各有什么特點?
- 邊緣部分:由各主機構成,用戶直接進行資訊處理和資訊共享;低速連入核心網.
- 核心部分:由各路由器連網,負責為邊緣部分提供高速遠程分組交換.
4. 五層協議堆疊的體系結構自上往下分別是什么?
- 應用層
- 運輸層
- 網路層
- 資料鏈路層
- 物理層
5. 協議與服務有何區別?有何關系?
關系:在協議的控制下,兩個對等物體間的通信使得本層能夠向上一層提供服務,而要實作本層協議,還需要使用下面一層提供服務,
協議和服務的概念的區分:
1、協議的實作保證了能夠向上一層提供服務,本層的服務用戶只能看見服務而無法看見下面的協議,下面的協議對上面的服務用戶是透明的,
2、協議是“水平的”,即協議是控制兩個對等物體進行通信的規則,但服務是“垂直的”,即服務是由下層通過層間介面向上層提供的,上層使用所提供的服務必須與下層交換一些命令,這些命令在OSI中稱為服務原語,
6. 網路協議的三個要素是什么?各有什么含義?
網路協議:為進行網路中的資料交換而建立的規則、標準或約定,由以下三個要素組成:
(1)語法:即資料與控制資訊的結構或格式,
(2)語意:即需要發出何種控制資訊,完成何種動作以及做出何種回應,
(3)同步:即事件實作順序的詳細說明,
7. 常見的導引型傳輸媒體有哪幾種?各有什么特點?
1、導引型傳輸媒體(有線的)有雙絞線、 同軸電纜和光纖 ,屬于常見的三種傳輸媒體.
2、雙絞線收螺旋扭在一起的兩根絕緣導線組成.線對扭在一起可以減少相互間的輻射電磁干擾,雙絞線早就用在電話通信中模擬信號的傳輸,也可用于資料信號的傳輸,是最常用的傳輸媒體.
3、同軸電纜也象雙絞線那樣由一對導體組成,但它們的按"同軸"形式構成線對,最里層是內芯,外包一層絕緣材料,外面再一層屏蔽層,最外面則是起保護作用的塑料外套.內芯和屏蔽層構成一對導體.
4、光纖是光導纖維的簡稱,它由能傳導光波的石英下班纖維,外加保護層構成. 相對于金屬來說重量輕、體積(細).用光纖來傳輸電信號時,在發送端先要將其轉換成光信號,而在接收端又要由光檢波器瞠原成電信號.
8. 物理層要解決哪些問題?物理層的主要特點是什么?
物理層要解決的主要問題:
(1)物理層要盡可能地屏蔽掉物理設備和傳輸媒體,通信手段的不同,使資料鏈路層感覺不到這些差異,只考慮完成本層的協議和服務.
(2)給其服務用戶(資料鏈路層)在一條物理的傳輸媒體上傳送和接收位元流(一般為串行按順序傳輸的位元流)的能力,為此,物理層應該解決物理連接的建立、維持和釋放問題.
(3)在兩個相鄰系統之間唯一地標識資料電路.
物理層的主要特點:
(1)由于在OSI之前,許多物理規程或協議已經制定出來了,而且在資料通信領域中,這些物理規程已被許多商品化的設備所采用,加之,物理層協議涉及的范圍廣泛,所以至今沒有按OSI的抽象模型制定一套新的物理層協議,而是沿用已存在的物理規程,將物理層確定為描述與傳輸媒體介面的機械,電氣,功能和規程特性.
(2)由于物理連接的方式很多,傳輸媒體的種類也很多,因此,具體的物理協議相當復雜.
9. 資料鏈路層的三個基本問題是什么?為什么必須解決?怎么解決?
三個問題: 封裝成幀、透明傳輸、差錯檢測
為什么必須解決:
⑴封裝成幀就是在一段資料前后分別添加首部和尾部,接收端以便從收到的位元流中識別幀的開始與結束,幀定界是分組交換的必然要求;
⑵ 透明傳輸避免訊息符號與幀定界符號相混淆;
⑶差錯檢測防止差錯的無效資料幀,浪費網路資源,
怎么解決:
(1)封裝成幀就是在一段資料的前后分別添加首部和尾部,這樣就構成了一個幀,接收端在收到物理層上交的位元流后,就能根據首部和尾部的標記,從位元流中識別幀的開始和結束,
(2)為了解決透明傳輸問題,位元組填充法或字符填充:在控制字符SOH、EOT的前面插入一個轉義字符ESC(其十六進制編碼是1B,二進制是00011011),而接收端的資料鏈路層在把資料送往網路層之前洗掉這個插入的轉義字符,
(3)現實的通信鏈路都不會是理想的,傳輸程序中,1可能變成0, 0 可能變成1 ,這就叫位元差錯——誤碼率, 誤碼率和信噪比有很大的關系,因此,在計算機網路傳輸資料時,必須采用各種差錯控制技術,目前在資料鏈路層廣泛使用了回圈冗余檢驗(CRC)的檢錯技術,
10. IP地址和MAC地址的區別有哪些?為什么要使用這兩種不同的地址?
IP地址和硬體地址的區別
1、長度的區別:物理地址即硬體地址,由48bit構成;IP地址由32bit組成,是邏輯地址.
2、放置位置的區別:IP地址放IP資料報的首部,而硬體地址則放在MAC幀的首部.
3、使用的區別:在網路層和網路層以上使用IP地址,資料鏈路層及以下使用硬體地址
為什么要使用這兩種不同的地址
因為是解決了不同層次的問題
11. 運輸層和網路層的通信有什么重要的區別?為什么說運輸層是必不可少的?
運輸層處于面向通信部分的最高層,同時也是用戶功能中的最低層,向它上面的應用層提供服務運輸層為應用行程之間提供端到端的邏輯通信,但網路層是為主機之間提供邏輯通信(面向主機,承擔路由功能,即主機尋址及有效的分組交換).各種應用行程之間通信需要"可靠或盡力而為"的兩類服務質量,必須由運輸層以復用和分用的形式加載到網路層.
12. 舉例說明有哪些應用程式寧愿使用不可靠的UDP,而不采用可靠的TCP?為什么這樣做?
DP是面向無連接的服務,特點就是,用這種協議傳輸資料速度快.使用這種協議追求的是傳輸的即時性而不是傳輸的質量.在實際應用中比如,qq聊天的語聊,視頻,還有網路電話使用的就是UDP協議,還有就是迅雷等一些下載工具用的也是UDP協議.
13. 埠的作用是什么?有哪三種埠號?
(1) 埠的作用是對TCP/IP體系的應用行程進行統一的標志,使運行不同作業系統的計算機的應用行程能夠互相通信.
(2) 三類埠號
1、熟知埠數值一般為0~1023,標記常規的服務行程;
2、登記埠號,數值為1024~49151,標記沒有熟知埠的非常規的服務行程.
3、動態和/或私有埠(Dynamicand/orPrivatePorts):從49152到65535.
14. 在停止等待協議中,如果收到兩個重復的報文段時,接收方直接丟棄重復的報文段然后什么也不做是否可行?為什么?
(1)不行
(2)收到重復幀不確認相當于確認丟失,發送方會認為接收方一直沒有收到所要發送的TCP報文段,然后會一直重復發送該報文段.
15. IP資料報中的首部檢驗和并不檢驗資料報中的資料,這樣做的最大好處是什么?壞處是什么?
在首部中的錯誤比在資料中的錯誤更嚴重,例如,一個壞的地址可能導致分組被投寄到錯誤的主機,許多主機并不檢查投遞給他們的分組是否確實是要投遞給它們,它們假定網路從來不會把本來是要前往另一主機的分組投遞給它們,資料不參與檢驗和的計算,因為這樣做代價大,上層協議通常也做這種檢驗作業,從前,從而引起重復和多余,因此,這樣做可以加快分組的轉發,但是資料部分出現差錯時不能及早發現,
報文鑒別 物體鑒別
主動攻擊 被動攻擊
三、計算題
2-16
共有4個站進行碼分多址通信,4個站的碼片序列為 A:(-1-1-1+1+1-1+1+1) B:(-1-1+1-1+1+1+1-1) C:(-1+1-1+1+1+1-1-1) D:(-1+1-1-1-1-1+1-1) 現收到這樣的碼片序列S:(-1+1-3+1-1-3+1+1),問哪個站發送資料了?發送資料的站發送的是0還是1?
解:S?A=(+1-1+3+1-1+3+1+1)/8=1, A發送1
S?B=(+1-1-3-1-1-3+1-1)/8=-1, B發送0
S?C=(+1+1+3+1-1-3-1-1)/8=0, C無發送
S?D=(+1+1+3-1+1+3+1-1)/8=1, D發送1
3-07
要發送的資料為1101011011,采用CRC的生成多項式是P(X)=X4+X+1,試求應添加在資料后面的余數,資料在傳輸程序中最后一個1變成了0,問接收端能否發現?若資料在傳輸程序中最后兩個1都變成了0,問接收端能否發現?采用CRC檢驗后,資料鏈路層的傳輸是否就變成了可靠的傳輸?
作二進制除法,1101011011 0000 10011 得余數1110 ,添加的檢驗序列是1110.作二進制除法,兩種錯誤均可發展僅僅采用了CRC檢驗,缺重傳機制,資料鏈路層的傳輸還不是可靠的傳輸,
4-09
(1)子網掩碼為255.255.255.0代表什么意思?
有三種含義
其一是一個A類網的子網掩碼,對于A類網路的IP地址,前8位表示網路號,后24位表示主機號,使用子網掩碼255.255.255.0表示前8位為網路號,中間16位用于子網段的劃分,最后8位為主機號,第二種情況為一個B類網,對于B類網路的IP地址,前16位表示網路號,后16位表示主機號,使用子網掩碼255.255.255.0表示前16位為網路號,中間8位用于子網段的劃分,最后8位為主機號,
第三種情況為一個C類網,這個子網掩碼為C類網的默認子網掩碼,
(2)一網路的現在掩碼為255.255.255.248,問該網路能夠連接多少個主機?
255.255.255.248即11111111.11111111.11111111.11111000. 每一個子網上的主機為(2^3)=6 臺 掩碼位數29,該網路能夠連接8個主機,扣除全1和全0后為6臺,
(3)一A類網路和一B網路的子網號subnet-id分別為16個1和8個1,問這兩個子網掩碼有何不同?
A類網路:11111111 11111111 11111111 00000000
給定子網號(16位“1”)則子網掩碼為255.255.255.0
B類網路 11111111 11111111 11111111 00000000
給定子網號(8位“1”)則子網掩碼為255.255.255.0但子網數目不同
(4)一個B類地址的子網掩碼是255.255.240.0,試問在其中每一個子網上的主機數最多是多少?
(240)10=(128+64+32+16)10=(11110000)2 Host-id的位數為4+8=12,因此,最大主機數為: 2^12-2=4096-2=4094
11111111.11111111.11110000.00000000 主機數2^12-2
(5)一A類網路的子網掩碼為255.255.0.255;它是否為一個有效的子網掩碼?
是 10111111 11111111 00000000 11111111
(6)某個IP地址的十六進制表示C2.2F.14.81,試將其轉化為點分十進制的形式,這個地址是哪一類IP地址?
C2 2F 14 81–à(1216+2).(216+15).(16+4).(8*16+1)—à194.47.20.129 C2 2F 14 81 —à11000010.00101111.00010100.10000001 C類地址
(7)C類網路使用子網掩碼有無實際意義?為什么?
有實際意義.C類子網IP地址的32位中,前24位用于確定網路號,后8位用于確定主機號.如果劃分子網,可以選擇后8位中的高位,這樣做可以進一步劃分網路,并且不增加路由表的內容,但是代價是主機數相信減少.
4-20
設某路由器建立了如下路由表:
目的網路 子網掩碼 下一跳
128.96.39.0 255.255.255.128 介面m0
128.96.39.128 255.255.255.128 介面m1
128.96.40.0 255.255.255.128 R2
192.4.153.0 255.255.255.192 R3
*(默認) —— R4
現共收到5個分組,其目的地址分別為:
(1)128.96.39.10
(2)128.96.40.12
(3)128.96.40.151
(4)192.153.17
(5)192.4.153.90
試分別計算其下一跳:
1)分組的目的站IP地址為:128.96.39.10,先與子網掩碼255.255.255.128相與,得128.96.39.0,可見該分組經介面0轉發,
(2)分組的目的IP地址為:128.96.40.12,
① 與子網掩碼255.255.255.128相與得128.96.40.0,不等于128.96.39.0,
② 與子網掩碼255.255.255.128相與得128.96.40.0,經查路由表可知,該項分組經R2轉發,
(3)分組的目的IP地址為:128.96.40.151,與子網掩碼255.255.255.128相與后得128.96.40.128,與子網掩碼255.255.255.192相與后得128.96.40.128,經查路由表知,該分組轉發選擇默認路由,經R4轉發,
(4)分組的目的IP地址為:192.4.153.17,與子網掩碼255.255.255.128相與后得192.4.153.0,與子網掩碼255.255.255.192相與后得192.4.153.0,經查路由表知,該分組經R3轉發,
(5)分組的目的IP地址為:192.4.153.90,與子網掩碼255.255.255.128相與后得192.4.153.0,與子網掩碼255.255.255.192相與后得192.4.153.64,經查路由表知,該分組轉發選擇默認路由,經R4轉發,
4-28
4-29(型別題)
假設要發送的資料為11001010,采用的CRC的生成多項式為P(x)=X3+X+1,試求應添加在資料后面的余數?如果采用了CRC校驗,資料鏈路層是否就變成了可靠的傳輸?

采用了CRC回圈以后,接受端可以檢測該幀是否有傳輸的錯誤,即在外界干擾下是否有0變成1,1變成0 的情況,如果沒有錯誤,就接收,如果有錯誤,則直接丟棄該幀,不檢查幀的順序、重復等,資料鏈路層并不具備保證可靠傳輸的“重傳”、“確認”機制,所以不是可靠的傳輸,
4-30(同上)
4-37
某單位分配到一個地址塊136.23.12.64/26,現在需要進一步劃分為4個一樣大的子網,試問:
(1)每一個子網的網路前綴有多長?
(2)每一個子網中有多少個地址?
(3)每一個子網的地址是什么?
(4)每一個子網可分配給主機使用的最小地址和最大地址是什么?
(1)每個子網前綴28位,
(2)每個子網的地址中有4位留給主機用,因此共有16個地址,
(3)四個子網的地址塊是:
第一個地址塊136.23.12.64/28,可分配給主機使用的
最小地址:136.23.12.01000001=136.23.12.65/28
最大地址:136.23.12.01001110=136.23.12.78/28
第二個地址塊136.23.12.80/28,可分配給主機使用的
最小地址:136.23.12.01010001=136.23.12.81/28
最大地址:136.23.12.01011110=136.23.12.94/28
第三個地址塊136.23.12.96/28,可分配給主機使用的
最小地址:136.23.12.01100001=136.23.12.97/28
最大地址:136.23.12.01101110=136.23.12.110/28
第四個地址塊136.23.12.112/28,可分配給主機使用的
最小地址:136.23.12.01110001=136.23.12.113/28
最大地址:136.23.12.01111110=136.23.12.126/28
4-42
假定網路中的路由器A的路由表有如下的專案(格式同上題):
N1 4 B
N2 2 C
N3 1 F
N4 5 G
現將A收到從C發來的路由資訊(格式同上題):
N1 2
N2 1
N3 3
N4 7
試求出路由器A更新后的路由表(詳細說明每一個步驟),
N1 3 C 不同的下一跳,距離更短,改變
N2 2 C 不同的下一跳,距離一樣,不變
N3 1 F 不同的下一跳,距離更大,不改變
N4 5 G 無新資訊,不改變
5-23
主機A向主機B連續發送了兩個TCP報文段,其序號分別為70和100,試問:
(1) 第一個報文段攜帶了多少個位元組的資料?
(2) 主機B收到第一個報文段后發回的確認中的確認號應當是多少?
(3) 如果主機B收到第二個報文段后發回的確認中的確認號是180,試問A發送的第二個報文段中的資料有多少位元組?
(4) 如果A發送的第一個報文段丟失了,但第二個報文段到達了B,B在第二個報文段到達后向A發送確認,試問這個確認號應為多少?
(1)第一個報文段的資料序號是70到99,共30位元組的資料,
(2)確認號應為100.
(3)80位元組,
(4)70
5-28
主機A向主機B發送TCP報文段,首部中的源埠是m而目的埠是n,當B向A發送回信時,其TCP報文段的首部中源埠和目的埠分別是什么?
分別是n和m,
5-39
TCP的擁塞視窗cwnd大小與傳輸輪次n的關系如下所示:
cwnd 1 2 4 8 16 32 33 34 35 36 37 38 39
n 1 2 3 4 5 6 7 8 9 10 11 12 13
cwnd 40 41 42 21 22 23 24 25 26 1 2 4 8
n 14 15 16 17 18 19 20 21 22 23 24 25 26
(1)試畫出如圖5-25所示的擁塞視窗與傳輸輪次的關系曲線,
(2)指明TCP作業在慢開始階段的時間間隔,
(3)指明TCP作業在擁塞避免階段的時間間隔,
(4)在第16輪次和第22輪次之后發送方是通過收到三個重復的確認還是通過超市檢測到丟失了報文段?
(5)在第1輪次,第18輪次和第24輪次發送時,門限ssthresh分別被設定為多大?
(6)在第幾輪次發送出第70個報文段?
(7)假定在第26輪次之后收到了三個重復的確認,因而檢測出了報文段的丟失,那么擁塞視窗cwnd和門限ssthresh應設定為多大?
(2) 慢開始時間間隔:【1,6】和【23,26】
(3) 擁塞避免時間間隔:【6,16】和【17,22】
(4) 在第16輪次之后發送方通過收到三個重復的確認檢測到丟失的報文段,在第22輪次之后發送方是通過超時檢測到丟失的報文段,
(5) 在第1輪次發送時,門限ssthresh被設定為32 在第18輪次發送時,門限ssthresh被設定為發生擁塞時的一半,即21. 在第24輪次發送時,門限ssthresh是第18輪次發送時設定的21
(6) 第70報文段在第7輪次發送出,
(7) 擁塞視窗cwnd和門限ssthresh應設定為8的一半,即4.
5-41(型別題)
用TCP傳輸256位元組資料,設定接收視窗為100位元組,而TCP報文段每次也是傳送100位元組的資料,假設發送方和接收方的序號分別為100和200,試畫出TCP從連接建立、資料傳輸到連接釋放的作業示意圖,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287155.html
標籤:其他
上一篇:C++ 類和物件上
下一篇:相機標定原理與張氏標定法
