🔥首先得說!
🔥1.本專欄的計算機網路文稿主要是因為愛好,順便包含了408考試的全部內容,如果可以將其內容全部掌握,408家族之一的計網組織便不攻自破了,
🔥2.本專欄將持續推送總結類筆記以及對應計算機網路習題總結,如對考試有所要求可以訂閱本專欄獲得第一手?🏻更新資訊哦~各位的點贊和收藏真的是滿滿地給我動力!!🙋🏻
🔥3.后續可能會對408和各高校的計網題目分類拆解
L:大仙這就是“計網”組織嗎?傳說中408家族的四大組織之一?
🐉:沒錯!看來你也了解到這一步了👀,那也就不瞞你了,對的
L:傳聞四大組織服務的主子各不相同,不知“計網”為誰服務啊?
🐉:簡單來說,網路應用就是計算機網路存在的理由;如果我們不能構想出任何有用的應用,也就沒有任何必要去設計它們的網路協議了
L:所以說,計網 是一個為網路應用服務的組織了🥷
L:就讓我把這個組織攪個底朝天吧!
🐉:小子!胡鬧,別亂來~

目錄
🔥首先得說!
🌔一、假如你想設計一個網路應用
??客戶/服務器模型(C/S)
1.服務器特點
2.客戶機特點
3.作業流程
4.主要特點
??B/S結構(Browser/Server)
C/S與B/S誰更好呢?
??P2P模型
1.優點
2.應用
3.缺點
??行程通信
1.客戶和服務器行程
2.行程與計算機網路之間的介面
??DNS:因特網的目錄服務
1.DNS提供的服務
·為什么說DNS是應用層協議?
2.層次域名空間
3.域名服務器
🔥根域名服務器
🔥頂級域名服務器
🔥權限/授權域名服務器
🔥本地域名服務器
4.域名決議程序
🌔一、假如你想設計一個網路應用
·假如咱們對網路應用有一些想法,自己也想制作一些網路應用,那么如何將此想法轉變為現實呢?
·我們要知道,研發網路應用程式的核心是寫出能夠運行在不同端系統和通過網路彼此通信的程式
·當咱研發新應用程式時,需要撰寫將在多臺端系統上運行的軟體(比如在mac上的CSDN和華為p40上的CSDN);同時由于網路核心設備(如路由器、鏈路層交換機)并不在應用層上起作用,因此我們無需在應用層撰寫運行在網路核心設備上的程式,
?端系統:因特網上的所有主機:macbook、ipad、iphone等等
???我是分割線???
??客戶/服務器模型(C/S)
引子:
🐉:小子,看這名字,能猜猜這模型有什么特點嗎?
L:客戶和服務器?聽名字挺像顧客和店家的感覺啊,那我就以KFC舉個例子
L:把KFC類比為服務器,那么一家KFC的具體地址咱們得知道吧,不然怎么去KFC吃飯呢?其次KFC總不能開兩分鐘就關門吧,它得持續保持打開!
L:哦對了!KFC還不需要知道我們從哪來的!
1.服務器特點
- 永久提供服務
- 永久性訪問地址/域名
- 服務器程式不需要知道客戶程式的地址
🐉:小子,分析的不錯,那你反向分析分析客戶端啊,行嗎你?
L:隨隨便便~我們去KFC就是去享受它提供給我們的服務;除此以外我們可以一周就星期四去(因為劃算),也可以天天去,總的來說:我們間歇性地體驗美食服務;我們可能從家里去KFC,也可能從學校去KFC,總之我們的起始地是動態的;最后我們也必須知道KFC在哪里,也就是知道它的地址
2.客戶機特點
- 與服務器通信,使用服務器提供的服務
- 間歇性接入網路
- 可能使用動態IP地址
- 客戶程式必須知道服務器程式的地址
·綜上,出于好玩的心理,🤔或者你可以說是應試,我想了個好玩口訣:
·服務器特點:校門口的 KFC24小時營業,它不知道我今天從寢室來還是從教室來,
確定地址 永久提供服務 服務器不需要知道客戶程式的地址·客戶機特點:我 每周四 放學都從教室或寢室出發到 校門口的KFC 體驗美食,
間歇性 動態IP 服務器地址 使用服務
3.作業流程
- 服務器處于接收請求的狀態
- 客戶機發出服務請求,并等待接收結果,
- 服務器收到請求后,分析請求,進行必要的處理,得到結果并發送給客戶機,
4.主要特點
1.網路中各計算機的地位不平等,服務器可以通過對用戶權限的限制來達到管理客戶機的目的,
2.客戶機相互之間不直接通信(例如:Web應用中兩個瀏覽器并不直接通信)
3.可擴展性不佳,受服務器硬體和網路帶寬的限制,服務器支持的客戶機數有限,
?解決辦法:應用資料中心
·一個資料中心能夠有數十萬臺服務器,它必須要供電和維護
·一個流行的社交網站站點如果僅有1臺服務器來處理所有請求,將很快變得不堪重負,為此配備大量主機的資料中心常被用于創建強大的虛擬服務器,例如:谷歌、百度、阿里、騰訊、位元組就有一個或多個資料中心
??B/S結構(Browser/Server)
簡而言之,B/S架構是從C/S架構改進而來,可以說是三層C/S架構 :在客戶機和服務器之間多了一個WEB服務器,
客戶機上只要安裝一個瀏覽器(如Chrome、Safari、Microsoft Edger)服務器安裝(SQL Server、Oracle、MYSQL)等資料庫,瀏覽器通過Web Server 同資料庫進行資料互動,
C/S與B/S誰更好呢?
在回應速度,用戶界面,資料安全等方面,C/S強于B/S
在業務擴展和適用www條件下,B/S明顯勝過C/S,
可以這么說,B/S的強項就是C/S的弱項,反之亦然;它們各有優缺點,相互無法取代,因此采用C/S與B/S混合模式才是最佳方案,
???我是分割線???
??P2P模型
·P2P模型中,所有主機是平等的,任意一對計算機稱為對等方(Peer),直接相互通信
1.優點
- 減輕了服務器的計算壓力,消除了對某個服務器的完全依賴,大大提高了系統效率和資源利用率
- 多個客戶機之間可以直接共享檔案(BitTorrent)
- 可擴展性好:下載的人越多,下載速度越快(傳統服務器有回應和帶寬的限制,因此只能接受一定數量的請求)
- 網路健壯性強,單個結點的失效不會影響其他部分的結點
2.應用
1.BitTorrent(P2P)
2.迅雷(P2SP) ·一邊從服務器下載,一邊從其他用戶那下載
3.視頻會議(Skype)
3.缺點
- 在獲取服務的同時,還要給其他結點提供服務,會占用較多的記憶體影響整機速度
???我是分割線???
??行程通信
·用作業系統的術語來說,進行通信的實際上是行程(process)而不是程式,一個行程可以被認為是運行在端系統的一個程式,我們關注運行在不同端系統上的行程間的通信,
·在兩個不同端系統上的行程,通過跨越計算機網路交換報文而相互通信,
1.客戶和服務器行程
·在一對行程之間的通信會話場景中
🔥客戶:發起通信(即在會話開始時發起與其他行程的聯系)的行程被標識為客戶
🔥服務器:在會話開始時等待聯系的行程被標識為服務器
·對于web:瀏覽器是一個客戶行程;Web服務器是一臺服務器行程
·對于P2P檔案共享:
(1)下載檔案的對等方標識為客戶,上載檔案的對等方標識為服務器
(2)P2P檔案共享的某些應用中,一個行程既能夠是客戶又是服務器

??DNS:因特網的目錄服務
🐉:小子,因特網上的主機和咱們人類一樣,可以用多種方式進行標識,主機的一種標識方法是用它的主機名(hostname),如 www.baidu.com、www.google.com 等,這些名字便于記憶也樂于令人們記憶
L:哦哦,所以主機名就好比咱們人類的名字對吧,好記!
🐉:但是主機名幾乎沒有提供關于主機💻在因特網中位置的資訊;況且主機名可能由不定長的字母數字組成,路由器難以處理,因此主機也可以使用IP地址(IP address)進行標識,
L:所以IP地址就好比咱們人類的身份證號咯!
1.DNS提供的服務
·人們喜歡記好記的主機名;而路由器喜歡記定長的、有層次結構的IP地址,因此就需要一種能進行主機名到IP地址轉換到目錄服務——DNS的主要任務
·DNS是:
- 一個由分層次的DNS服務器實作的分布式資料庫
- 一個能使主機查詢分布式資料庫的應用層協議
- DNS協議運行在UDP上,使用53號埠
- DNS服務器通常是運行BIND軟體的UNIX機器
·從概念上可將DNS分為3個部分:層次域名空間、域名服務器、決議器
·為什么說DNS是應用層協議?
1.使用客戶-服務器模式運行在通信的端系統之間
2.在通信的端系統之間使用下層的UDP傳送DNS報文
??特別之處在于:DNS不是一個與用戶直接打交道的應用(HTTP、FTP、SMTP),它為因特網上的應用程式及其他軟體提供一種核心功能(主機名---->IP地址)
實作程序如下:
舉例,林軒的mac上的一個瀏覽器請求URL 二·浮光掠影_kikokingの位元宇宙-CSDN博客
https://blog.csdn.net/qq_54151955/article/details/121279919?spm=1001.2014.3001.5501
- step1.林軒的mac上運行著DNS應用的客戶端
- step2.瀏覽器從上述URL中抽取出主機名CSDN博客 - 專業IT技術發表平臺,并將這個主機名傳給DNS應用的客戶端
- step3.DNS客戶端向DNS服務器發送一個包含主機名的請求
- step4.DNS客戶最侄訓收到一份回答報文,其中包含有對于該主機名的IP地址
- step5.瀏覽器能夠向位于該IP地址80埠的HTTP服務器行程發起一個TCP連接
2.層次域名空間
·因特網采取層次樹狀結構的命名方法:舉例:kikoking.blog.csdn.net(119條訊息) kikokingの位元宇宙_kikokingzz_CSDN博客-C的語言世界,資料結構的江湖,CSAPP 加油站領域博主
https://kikoking.blog.csdn.net/
·域名即主機名;域是名字空間中一個可被管理的劃分,域可以劃分為子域,而子域可以繼續劃分為子域的子域,這樣就形成了頂級域、二級域、三級域
·每個域名都由標號序列組成,各標號之間用點“.”隔開
·關于域名中的標號有以下幾點需要注意:
- 標號中的英文不區分大小寫,
- 標號中除連字符(-)外不能使用其他的標點符號,
- 每個標號不超過63個字符,多標號組成的完整域名最長不超過255個字符,
- 級別最低的域名寫在最左邊,級別最高的頂級域名寫在最右邊,
🐉:小子看看這層次域名空間,想到些什么?
L:這分成子域,子域的子域,不就相當于咱們現實生活中的地址嘛?不愧是美國人先研究出來的,這地址順序和英文一樣啊!
🐉:喲呵,小伙子發現的不錯嘛!
L: 中國.黑龍江省.哈爾濱市.哈爾濱工程大學
Harbin Engineering University.Harbin City.Heilongjiang Province.China
四級地名 三級地名 二級地名 頂級地名
L:不就是如此!just so so~
·對于上述案例 也就很好理解了:
頂級域名(Top Level DomainTLD)分為如下三大類:
1.國家頂級域名(nTLD)
·國家和某些地區的域名,如“.cn”表示中國,“us”表示美國,.uk"表示英國,
2.通用頂級域名(gTLD)
·常見的有“.com”(公司)、“.net"(網路服務機構)、“.org”(非營利性組織)和“.gov"(國家或政府部門)等,
3.基礎結構域名
·這種頂級域名只有一個,即arpa,用于反向域名決議,因此又稱反向域名,
3.域名服務器
- 因特網的域名系統被設計成一個聯機分布式的資料庫系統,并采用客戶/服務器模型
- 域名到IP地址的決議是由運行在域名服務器上的程式完成的,
- 一個服務器所負責管轄的(或有權限的)范圍稱為區(不以“域”為單位),一個區中的所有結點必須是能夠連通的,每個區設定相應的權限域名服務器,用來保存該區中的所有主機的域名到IP地址的映射,
- 每個域名服務器不但能夠進行一些域名到IP地址的決議,而且還必須具有連向其他域名服務器的資訊,當自己不能進行域名到IP地址的轉換時,能夠知道到什么地方去找其他域名服務器,
- ·DNS使用了大量的域名服務器,它們以層次方式組織,沒有一臺域名服務器具有因特網上所有主機的映射,相反,該映射分布在所有的DNS上,
·采用分布式設計的DNS,是一個在因特網上實作分布式資料庫的精彩范例,主要有4種型別的域名服務器
🔥根域名服務器
- 1.最高層次域名服務器,因特網上有13個根域名服務器
- 2.所有根域名服務器都知道所有的頂級域名服務器的IP地址
- 3.本地域名服務器無法決議時,首先求助于根域名服務器
- 4.根域名服務器掌管頂級域(.com/.net),但通常不直接將查詢的域名轉換為IP地址,而是告訴本地域名服務器下一步應當找哪個頂級域名服務器查詢
🔥頂級域名服務器
- 1.管理在該服務器注冊的所有二級域名
- 2.對DNS查詢請求可能是最后的結果,也可能讓你找下一個服務器(就是給你下一個服務器的IP)
🔥權限/授權域名服務器
- 1.每臺主機都必須在授權域名服務器登記(1臺主機最好至少有2個授權域名服務器-萬一一個壞了呢?那就找不到主機了)
- 2.許多域名服務器同時充當本地域名服務器和授權域名服務器
- 3.授權域名服務器總能將其管轄的主機名轉換為該主機的IP地址
🔥本地域名服務器
- 1.每個因特網的服務提供者(ISP)、或一所大學、或者未來的林軒大佬!都可以擁有一個本地服務器
- 2.當一臺主機發出DNS查詢請求時,這個查詢請求報文就發送給該主機的本地域名服務器
4.域名決議程序
·正向決議:域名--->IP地址
·反向決議: IP--->域名
·重點:當客戶端需要域名決議時,通過本機的DNS客戶端構造一個DNS請求報文,以UDP資料報方式發往本地域名服務器(后面有道題,這里是重點!)
·兩種查詢方式:
·上題談到了本地快取問題,這邊就補充一下:為了提高DNS的查詢效率,在域名服務器中廣泛使用高速快取,當一個DNS服務器收到該DNS的查詢結果時,它能將該DNS資訊快取在高速快取中,這樣,當另一個相同域名查詢到該DNS服務器時,該服務器就可以直接告訴它答案啦!
·但是DNS服務器會在一段時間過后丟棄告訴戶
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357079.html
標籤:其他
上一篇:基于TCP的網路編程
下一篇:[Java基礎]Map集合的遍歷











