最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

中科大鄭烇、楊堅(jiān)全套《計(jì)算機(jī)網(wǎng)絡(luò)(自頂向下方法 第7版,James F.Kuro

2023-08-19 17:24 作者:忱恂_  | 我要投稿


### 1.1 什么是Internet

1. 從具體構(gòu)成角度:由通信鏈路和節(jié)點(diǎn)及協(xié)議構(gòu)成。

- 節(jié)點(diǎn):

- 主機(jī)及其上運(yùn)行的應(yīng)用程序——主機(jī)節(jié)點(diǎn),圖形上一般由正方形表示。

- 路由器(網(wǎng)絡(luò)層)、交換機(jī)(數(shù)據(jù)鏈路層)等網(wǎng)絡(luò)交換設(shè)備——數(shù)據(jù)交換節(jié)點(diǎn),圖形上一般表示圓形。

- 通信鏈路:光纖、同軸電纜、無線電、衛(wèi)星——傳輸速率:帶寬(bps)

- 接入網(wǎng)鏈路(access):主機(jī)連接到互聯(lián)網(wǎng)的鏈路(主機(jī)節(jié)點(diǎn)和數(shù)據(jù)交換節(jié)點(diǎn)之間的鏈路)

- 主干鏈路(backbone):路由器間的鏈路(數(shù)據(jù)交換節(jié)點(diǎn)之間)

- 協(xié)議:定義你兩個(gè)或多個(gè)通信實(shí)體之間的報(bào)文格式和次序,以及在報(bào)文傳輸或接收或其他事件方面所采取的動(dòng)作。對(duì)等層實(shí)體通信過程中遵守的規(guī)則集合。

- 協(xié)議三要素:語法、語義、時(shí)序

2. 從服務(wù)的角度:

- 分布式的應(yīng)用

- 為分布式應(yīng)用提供通信服務(wù)的基礎(chǔ)設(shè)施(應(yīng)用層以下都屬于基礎(chǔ)設(shè)施,提供形式:API(接口TCP/UDP))

### 1.2 網(wǎng)絡(luò)邊緣(edge):采用網(wǎng)絡(luò)設(shè)施的面向連接服務(wù)

- 主機(jī)(host/end system)

- 應(yīng)用程序(客戶端和服務(wù)器)

- 運(yùn)行模式:

- c/s模式——>客戶/服務(wù)器模式(主從模式)

- 客戶端向服務(wù)器請(qǐng)求、接收服務(wù)

- PTP模式——>Peer-Peer(對(duì)等模式)

- 目標(biāo):在端系統(tǒng)之間傳輸數(shù)據(jù)

- 握手:做數(shù)據(jù)傳輸之前做好準(zhǔn)備(兩個(gè)通信主機(jī)之間為連接建立狀態(tài))

- TCP——>傳輸控制協(xié)議(Transmission Control Protocol)——Internet 上面向連接的服務(wù)

- 可靠地、按順序地傳輸數(shù)據(jù)——確認(rèn)和重傳

- 流量控制——發(fā)送方不會(huì)淹沒接收方

- 擁塞控制——當(dāng)網(wǎng)絡(luò)擁塞時(shí),發(fā)送方降低發(fā)生速率

- UDP——>用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol)

- 無連接

- 不可靠數(shù)據(jù)傳輸

- 無流量控制

- 無擁塞控制

### 1.3網(wǎng)絡(luò)核心

- 網(wǎng)絡(luò)核心:路由器的網(wǎng)狀網(wǎng)絡(luò)

- 數(shù)據(jù)通過網(wǎng)絡(luò)進(jìn)行傳輸?shù)姆绞?/p>

- 電路交換(circuit switch)——通常被傳統(tǒng)電話網(wǎng)絡(luò)采用

- 獨(dú)享資源:不同享——性能保障

- 網(wǎng)絡(luò)資源被分成片的方式(如帶寬)——線路復(fù)用

- 頻分(Frequency-division-multiplexing)

- 時(shí)分(Time-division-multiplexing)

- 波分(Wave-division-multiplexing)——采用光通信

- 碼分(CDM)

- 分組交換:以分組為單位儲(chǔ)存-轉(zhuǎn)發(fā)方式——統(tǒng)計(jì)多路復(fù)用

- 傳輸時(shí)間使用全部帶寬,不再分為一個(gè)個(gè)片

- 主機(jī)之間傳輸數(shù)據(jù)被分為一個(gè)個(gè)分組(packet)

- 排隊(duì)和延遲——到達(dá)速率>鏈路輸出速率

- 路由:決定分組采用的源到目標(biāo)的路徑

- 轉(zhuǎn)發(fā):將分組從路由器輸入鏈路轉(zhuǎn)移到輸出鏈路

- 分組的存儲(chǔ)轉(zhuǎn)發(fā)一段一段從源端傳到目標(biāo)端,按照有無網(wǎng)絡(luò)層的連接,分為

- 數(shù)據(jù)報(bào)(datagram):通信之前無須建立連接,有數(shù)據(jù)就傳輸,每一個(gè)分組都獨(dú)立路由(路徑不同,可能會(huì)失序),路由器根據(jù)分組的目標(biāo)地址進(jìn)行路由。

- 虛電路(virtual circuit)——有連接

- 每個(gè)分組都帶標(biāo)簽(虛電路標(biāo)識(shí)VC ID),標(biāo)簽決定下一跳

- 做呼叫建立時(shí)決定路徑,做整個(gè)呼叫中路徑保持不變

### 1.4 接入網(wǎng)和物理媒體

- 端系統(tǒng)和邊緣路由器的連接

- 住宅接入網(wǎng)絡(luò):

- modem

- 將上網(wǎng)數(shù)據(jù)調(diào)制(調(diào)頻/調(diào)幅/調(diào)相位/綜合調(diào)制)加載音頻信號(hào)上,在電話線上傳輸,在局端將其中的數(shù)據(jù)解調(diào)出來

- 撥號(hào)調(diào)制解調(diào)器56kbps的速率直接介入路由器(通常更低),不能同時(shí)上網(wǎng)和打電話:不能總是在線

- 50kbps

- DSL(digital subscriber line)——使用額外帶寬

- 采用現(xiàn)存的到交換局DSLAM的電話線

- 如果上下行帶寬不對(duì)稱——IDSL

- 上行——2.5Mbps,下行——24 Mbps

- 線纜網(wǎng)絡(luò)

- 有線電視信號(hào)線纜雙向改造

- FDM(頻分多路復(fù)用):在不同頻段傳輸不同信道道數(shù)據(jù),數(shù)字電視和上網(wǎng)數(shù)據(jù)(上下行)

- HFC(hybrid fiber coax—混合光纖同軸電纜):非對(duì)稱:最高30Mbps下行傳輸,2Mbps上行傳輸速率

- 線纜和光纖網(wǎng)絡(luò)將各個(gè)家庭用戶接入ISP路由器

- 各用戶共享到線纜頭端到接入網(wǎng)絡(luò),與DSL不同,DSL每個(gè)用戶一個(gè)專用線路到CO(central office)

- 電纜模式

- 電力調(diào)制解調(diào)器

- FTTH(光纖到戶)

- 20Mbps

- 單位接入網(wǎng)絡(luò)(學(xué)校、公司)——Ethernet

- 交換機(jī)的集連

- 10Mbps、100Mbps、1Gbps、10Gbps傳輸速率

- 現(xiàn)在,端系統(tǒng)經(jīng)常直接連接到以太網(wǎng)絡(luò)交換機(jī)

- 無線接入網(wǎng)絡(luò)

- 各無線端系統(tǒng)共享無線接入網(wǎng)絡(luò)(端系統(tǒng)到無線路由器)——通過基站或叫接入點(diǎn)

- 物理媒體

- Bit:在發(fā)送-接收對(duì)間傳播

- 物理鏈路:連接每個(gè)發(fā)送-接受對(duì)之間的物理媒體

- 導(dǎo)引型媒體:信號(hào)沿固體媒介被導(dǎo)引

- 同軸電纜

- 兩根同軸的銅導(dǎo)線

- 雙向

- 基帶電纜——單個(gè)頻段(信道)工作

- 寬帶電纜——多個(gè)信道工作

- 雙絞線(TP)

- 5類:100Mbps以太網(wǎng),Gbps千兆以太網(wǎng)

- 6類:10Gbps萬兆以太網(wǎng)

- 光纖和光纜

- 光脈沖,每個(gè)脈沖表示一個(gè)bit,在玻璃纖維中傳輸

- 高速:點(diǎn)道點(diǎn)道高速傳輸

- 低誤碼率:在那個(gè)中繼器之間可以有很長的距離,不受電磁噪聲的干擾

- 安全

- 單模光纖——光信號(hào)垂直

- 多模光纖——一定入射角實(shí)現(xiàn)全反射

- 非導(dǎo)引型媒體:開放的空間傳輸電磁波或者光信號(hào),在電磁或者光信號(hào)中承載數(shù)字?jǐn)?shù)據(jù)

- 雙向

- 無需物理“線纜”

- 傳播環(huán)境效應(yīng)

- 反射

- 吸收

- 干擾

- 地面微波

- LAN

- Wide-area

- 衛(wèi)星

- 同步靜止衛(wèi)星或低軌衛(wèi)星

- 270msec端到端延遲

### 1.5 Internet 結(jié)構(gòu)和ISP

- 互聯(lián)網(wǎng)絡(luò)結(jié)構(gòu):網(wǎng)絡(luò)的網(wǎng)絡(luò)

- 端系統(tǒng)通過接入ISPs(Internet Service Providers)連接到互聯(lián)網(wǎng)

- 接入ISPs相應(yīng)的必須是互聯(lián)的

- 內(nèi)容提供商網(wǎng)絡(luò)(Internet Content Providers)可能會(huì)構(gòu)建它們自己的網(wǎng)絡(luò),將它們的服務(wù)、內(nèi)容更加靠近端用戶,向用戶提供更好的服務(wù),減少自己的運(yùn)營支出。

- ISP之間的連接

- POP:高層ISP面向客戶網(wǎng)絡(luò)的接入,涉及費(fèi)用結(jié)算

- 對(duì)等接入:2個(gè)ISP對(duì)等互解,不涉及費(fèi)用結(jié)算

- IXP:多個(gè)對(duì)等ISP互聯(lián)互通之處,通常不涉及費(fèi)用結(jié)算

- ICP自己部署專用網(wǎng)絡(luò),同時(shí)和各級(jí)ISP連接

### 1.6分組延時(shí)、丟失和吞吐量

- 分組延時(shí)

- 節(jié)點(diǎn)處理延時(shí)

- 檢查bit級(jí)差錯(cuò)

- 檢查分組首部和決定將分組導(dǎo)向何處

- 排隊(duì)延時(shí)

- 在輸出鏈路上等待傳輸?shù)臅r(shí)間,依賴于路由器的擁塞程度

- 流量強(qiáng)度I=La/R——a:?jiǎn)挝粫r(shí)間轉(zhuǎn)發(fā)分組數(shù)量——在0-1之間,設(shè)計(jì)時(shí)不能大于1

- 傳輸延時(shí)

- R=鏈路帶寬(bps)

- L=分組長度(bits)

- 將分組發(fā)送到鏈路上的時(shí)間=L/R

- 存儲(chǔ)轉(zhuǎn)發(fā)延時(shí)

- 傳播延時(shí)

- d=物理鏈路的長度

- s=在媒體上的傳播速度(2\*10^8m/sec)

- 傳播延時(shí)=d/s

-?分組丟失

- 鏈路的隊(duì)列緩沖區(qū)容量有限

- 當(dāng)分組到達(dá)一個(gè)滿的隊(duì)列是,該分組將會(huì)丟失

- 丟失的分組可能會(huì)被前一個(gè)節(jié)點(diǎn)或源端系統(tǒng)重傳或根本不重傳

- 吞吐量:在源端和目標(biāo)端之間傳輸?shù)乃俾剩〝?shù)據(jù)量/單位時(shí)間)

- 瞬間吞吐量:在一個(gè)時(shí)間點(diǎn)的速率

- 平均吞吐量:在一個(gè)長時(shí)間內(nèi)的平均值

- 瓶頸鏈路:端到端路徑上,限制端到端吞吐端鏈路

### 1.7協(xié)議層次及服務(wù)模型

- 層次化方式實(shí)現(xiàn)復(fù)雜網(wǎng)絡(luò)功能

- 將網(wǎng)絡(luò)復(fù)雜的功能分成功能明確的層次,每一個(gè)層次實(shí)現(xiàn)其中一個(gè)或一組功能,功能中有其上層可以使用的功能——>服務(wù)

- 協(xié)議的功能:本層協(xié)議實(shí)體相互交互執(zhí)行本層協(xié)議動(dòng)作,目的是實(shí)現(xiàn)本層功能,通過接口為上層提供更好的服務(wù)。

- 各協(xié)議實(shí)體之間是水平關(guān)系

- 實(shí)現(xiàn)本層協(xié)議是,利用了下層所提供的服務(wù)

- 本層的服務(wù)包括了借助下層提供的服務(wù)實(shí)現(xiàn)本層協(xié)議實(shí)體之間交互帶來的新功能和下層所提供的服務(wù)

- 服務(wù)(Service):低層實(shí)體向高層實(shí)體提供它們之間通信的能力

- 服務(wù)用戶(Service user)

- 服務(wù)提供者(Service provider)

- 原語(primitive):上層區(qū)分使用下層服務(wù)的形式,高層使用低層提供的服務(wù),以及低層向高層提供服務(wù)都是通過服務(wù)訪問原語來進(jìn)行交互——形式

- 服務(wù)訪問點(diǎn)SAP(Service Access Point):使用下層提供的服務(wù)通過層間的接口——地點(diǎn)

- 協(xié)議和服務(wù)關(guān)系

- 本層協(xié)議的實(shí)現(xiàn)依靠下層提供的服務(wù)

- 本層協(xié)議實(shí)體通過協(xié)議實(shí)現(xiàn)的功能—>為上層提供更好的服務(wù)

- 數(shù)據(jù)單元:

- SDU(Service Data Unit):上層交給下層要傳輸?shù)臄?shù)據(jù)

- ICI(Interface Control Information):上層SDU穿過層間接口到達(dá)下層需添加的信息

- 協(xié)議數(shù)據(jù)單元PDU(Protocol Data Unit):上層SDU+本層ICI——>對(duì)等協(xié)議實(shí)體交換本層PDU

- 層次化優(yōu)點(diǎn)

- 概念化:結(jié)構(gòu)清晰,便于標(biāo)示網(wǎng)絡(luò)組件以及描述相互關(guān)系

- 結(jié)構(gòu)化:模塊化更易于維護(hù)和系統(tǒng)升級(jí)

- Internet協(xié)議棧

- 應(yīng)用層:面向用戶提供服務(wù)——message報(bào)文

- FTP,SMTP,HTTP,DNS

- 傳輸層:在網(wǎng)絡(luò)層提供端到端通信基礎(chǔ)上,細(xì)分為進(jìn)程到進(jìn)程,將網(wǎng)絡(luò)層不可靠的服務(wù)變成可靠的服務(wù)——報(bào)文段segment:TCP段,UDP段

- TCP,UDP

- 網(wǎng)絡(luò)層:在鏈路層提供服務(wù)基礎(chǔ)上,傳輸以分組(packet,如果是無連接的方式:數(shù)據(jù)報(bào)datagram)為單位的端到端的數(shù)據(jù)傳輸(選擇路由)

- IP(轉(zhuǎn)發(fā)),路由協(xié)議

- 鏈路層:在物理層提供服務(wù)的基礎(chǔ)上,相鄰兩點(diǎn)(網(wǎng)絡(luò)節(jié)點(diǎn))之間傳輸以幀(frame)為單位的數(shù)據(jù)

- PPP,802.11(wifi)

- 物理層:將數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為物理信號(hào),物理線路上傳送bit(位)

- ISO——國際標(biāo)準(zhǔn)化組織/OSI(開放系統(tǒng)互聯(lián)open system interconection)參考模型

- 應(yīng)用層

- 表示層:允許應(yīng)用解釋傳輸?shù)臄?shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行加密,壓縮,機(jī)器相關(guān)的表示轉(zhuǎn)換

- 會(huì)話層:數(shù)據(jù)交換的同步,檢查點(diǎn),恢復(fù)

- 傳輸層

- 網(wǎng)絡(luò)層

- 鏈路層

- 物理層

?
1.9 小結(jié) P11 - 06:09
?

### 2.1 應(yīng)用層協(xié)議原理

- 網(wǎng)絡(luò)應(yīng)用體系結(jié)構(gòu)

- cs(客戶-服務(wù)器模式)

- 服務(wù)器

- 一直運(yùn)行

- 固定ip地址和端口號(hào)(例如web80)

- 擴(kuò)展性差

- 客戶端

- 主動(dòng)與服務(wù)器通信

- 與互聯(lián)網(wǎng)有間歇性連接

- 可能是動(dòng)態(tài)ip地址

- 不直接與其他客戶端通信

- 對(duì)等模式(peer to peer)

- 任意端系統(tǒng)之間可以進(jìn)行通信

- 每個(gè)節(jié)點(diǎn)既是客戶端又是服務(wù)器

- 才能與端主機(jī)間歇性連接且可以改變ip地址導(dǎo)致難以管理

- 沒有一直運(yùn)行的服務(wù)器(幾乎)

- 混合體:cs和對(duì)等體系結(jié)構(gòu)

- Napster

- 即使通信

- 進(jìn)程通信

- 進(jìn)程:主機(jī)上運(yùn)行的應(yīng)用程序

- 客戶端進(jìn)程:發(fā)起通信的進(jìn)程

- 服務(wù)器進(jìn)程:等待連接的進(jìn)程

- 同一個(gè)主機(jī)內(nèi),使用的是進(jìn)程間通信機(jī)制通信(操作系統(tǒng)定義)

- 不同主機(jī),通過交換報(bào)文(message)來通信

- 分布式應(yīng)用進(jìn)程通信條件

- 進(jìn)程標(biāo)識(shí)(SAP)

- 主機(jī)ip地址

- 采用傳輸層協(xié)議:TCP/UDP

- 端口號(hào)

- \http:TCP80

- Maul:TCP25

- \FTP:TCP21

- 端節(jié)點(diǎn):用于標(biāo)識(shí)一個(gè)進(jìn)程:IP+Port

- 一對(duì)主機(jī)經(jīng)常之間的通信由兩個(gè)端節(jié)點(diǎn)構(gòu)成

- 傳輸層提供的服務(wù)

- 穿過層間接口所需提供信息

- SDU

- 傳輸源端IP+TCP(UDP)端口號(hào)

- 接收端IP+TCP(UDP)端口號(hào)

- Socket API:為便于管理,使用一個(gè)代號(hào)標(biāo)識(shí)雙方(TCP)或單方(UDP)——>穿過層間接口信息大小最小

- TCP socket(套接字):4元組(源ip,源port,目標(biāo)ip,目標(biāo)port)的一個(gè)具有本地意義的標(biāo)識(shí),可使用這個(gè)標(biāo)識(shí),與遠(yuǎn)程的應(yīng)用進(jìn)程通信

- 如果進(jìn)程通信之前要建立連接,通信關(guān)系穩(wěn)定,使用一個(gè)整數(shù)表示兩個(gè)應(yīng)用實(shí)體之間的**通信關(guān)系**,本地標(biāo)識(shí)

- 簡(jiǎn)單,便于管理(類似于操作系統(tǒng)打開一個(gè)文件,os返回一個(gè)文件句柄,可以使用這個(gè)文件句柄對(duì)文件進(jìn)行操作)

- UDP socket:2元組(源ip,源port)的一個(gè)具有本地意義的標(biāo)識(shí)

- 制定了應(yīng)用所在的一個(gè)端節(jié)點(diǎn)(end port)

- 發(fā)送報(bào)文是需指定目標(biāo)ip和port

- 傳輸層提供服務(wù)基礎(chǔ)上實(shí)現(xiàn)應(yīng)用

- 定義應(yīng)用層協(xié)議:運(yùn)行在不同端系統(tǒng)上的應(yīng)用經(jīng)常如何交換報(bào)文

- 交換的報(bào)文類型:請(qǐng)求和應(yīng)答報(bào)文

- 報(bào)文類型的語法:字段及其描述

- 字段的語義

- 進(jìn)程對(duì)發(fā)送報(bào)文及對(duì)報(bào)文響應(yīng)的規(guī)則

- 編制程序,通過api調(diào)用網(wǎng)絡(luò)基礎(chǔ)設(shè)施提供通信服務(wù)傳報(bào)文,解析報(bào)文,實(shí)現(xiàn)應(yīng)用時(shí)序

- 應(yīng)用層對(duì)傳輸層所提供服務(wù)質(zhì)量的一些指標(biāo)

- 數(shù)據(jù)丟失率

- 延遲

- 吞吐

- 安全性

- 機(jī)密性

- 完整性

- 可認(rèn)證性(鑒別)

- UDP存在的必要性

- 區(qū)分不同的進(jìn)程,ip服務(wù)不能

- 無需建立連接

- 不做可靠性工作

- 沒有擁塞控制和流量控制,應(yīng)用能夠按照設(shè)定的速度發(fā)送數(shù)據(jù)

- SSL——TCP和UDP都沒有加密,明文通過互聯(lián)網(wǎng)傳輸

- 在TCP上面實(shí)現(xiàn),通過加密的TCP連接

- 私密性

- 數(shù)據(jù)完整性

- 端到端鑒別

- 在應(yīng)用層:應(yīng)用采用SSL庫,SSL庫使用TCP通信

- SSL socket API:應(yīng)用通過API將明文交給socket,SSL將其加密在互聯(lián)網(wǎng)傳輸

### 2.2 Web 和HTTP

- Web頁:由一些對(duì)象組成,含有一天基本都HTML文件,該基本HTML文件又包含若干對(duì)象的應(yīng)用(鏈接URL:訪問協(xié)議,用戶名,口令字,端口等)

- HTTP:超文本傳輸協(xié)議——TCP上——帶內(nèi)傳送

- HTTP是無狀態(tài):服務(wù)器并不維護(hù)客戶的任何信息

- 非持久HTTP1.0

- 持久HTTP1.1

- 非流水方式——一次只發(fā)送一個(gè)請(qǐng)求,收到響應(yīng)后在發(fā)送新的請(qǐng)求,每個(gè)引用對(duì)象花費(fèi)一個(gè)RTT

- 流水方式——HTTP/1.1默認(rèn)模式,客戶端遇到引用對(duì)象就產(chǎn)生一個(gè)請(qǐng)求,所有引用(?。?duì)象的時(shí)間只花費(fèi)一個(gè)RTT是可能的

- 往返時(shí)間RTT(round-trip time):一個(gè)小的分組從客戶端到服務(wù)器,然后回到客戶端到時(shí)間(傳輸時(shí)間忽略)

- 響應(yīng)時(shí)間:2RTT(TCP連接RTT、HTTP請(qǐng)求RTT)+傳輸時(shí)間

- HTTP請(qǐng)求報(bào)文:請(qǐng)求(ASCII人能閱讀)、響應(yīng)

- cookies:維護(hù)客戶端和服務(wù)端狀態(tài)

- 用戶驗(yàn)證

- 購物車

- 推薦

- 用戶狀態(tài)

- Web緩存(代理服務(wù)器):不訪問原始服務(wù)器,就滿足客戶的請(qǐng)求

### 2.3 FTP——有狀態(tài)協(xié)議

- 控制連接(21控制命令的發(fā)送)和數(shù)據(jù)連接(20服務(wù)器主動(dòng)發(fā)出)——帶外傳送(out of band兩個(gè)連接傳送)

### 2.4 EMail

- 用戶代理

- 郵件服務(wù)器

- 郵箱中管理和維護(hù)發(fā)送給用戶的郵件

- 輸出報(bào)文隊(duì)列保持帶發(fā)送郵件報(bào)文

- 郵件服務(wù)器之間的SMTP協(xié)議:發(fā)送email報(bào)文

- 簡(jiǎn)單郵件傳輸協(xié)議:SMTP(發(fā)送)25

- 報(bào)文必須為7位ASCII碼

- 報(bào)文格式:多媒體擴(kuò)展MIME(多媒體郵件擴(kuò)展)

- 接收方用戶代理拉取協(xié)議

- POP3——無狀態(tài)

- 用戶確認(rèn)階段

- 事物處理階段

- IMAP

- 相比POP3遠(yuǎn)程目錄維護(hù)——狀態(tài)維護(hù)

- HTTP

### 2.5 DNS(Domain Name System)域名解析系統(tǒng)

?- DNS協(xié)議:查詢和響應(yīng)的報(bào)文格式相同

- 必要性:將字符串由DNS轉(zhuǎn)換為二進(jìn)制網(wǎng)絡(luò)地址(IP地址:標(biāo)識(shí)主機(jī)、路由器)

- 主要思路

- 分層的、基于域的命名機(jī)制

- 若干分布式的數(shù)據(jù)庫完成名字到IP地址的轉(zhuǎn)換

- 運(yùn)行在UDP53端口的應(yīng)用服務(wù)

- 是Internet的核心功能,但以應(yīng)用層協(xié)議實(shí)現(xiàn),運(yùn)行在網(wǎng)絡(luò)邊緣

- 主要目的

- 實(shí)現(xiàn)主機(jī)名-iP地址的轉(zhuǎn)換

- 其他目的

- 主機(jī)別名到規(guī)范名字的轉(zhuǎn)換

- 郵件服務(wù)器別名到郵件服務(wù)器正規(guī)名字的轉(zhuǎn)換

- 負(fù)載均衡

- DNS域名結(jié)構(gòu)

- DNS采用層次樹狀結(jié)構(gòu)的命名方法

- Internet根被劃分為幾百個(gè)頂級(jí)域(top lever domains)

- .com、.edu、.gov、.org、.cn、.us、.jp

- 每個(gè)(子)域下面可劃分為若干個(gè)子域

- 樹葉是主機(jī)

- 名字服務(wù)器:維護(hù)所管轄區(qū)域的權(quán)威信息,允許被放置在區(qū)域之外,以保障可靠性,為提高性能會(huì)進(jìn)行緩存(TTL:默認(rèn)兩天)

- 區(qū)域(zone)

- 頂級(jí)域(TLD)服務(wù)器:負(fù)責(zé)頂級(jí)域名和所有國家級(jí)的頂級(jí)域名

- 權(quán)威DNS服務(wù)器(名字服務(wù)器):組織機(jī)構(gòu)的DNS服務(wù)器,提供組織機(jī)構(gòu)服務(wù)器可訪問的主機(jī)和IP之間的映射

### 2.6 P2P應(yīng)用

- 非結(jié)構(gòu)化P2P

- 集中化目錄:

- 查詢洪泛:Gnutella

- 利用不勻稱性:kaZaA

- 結(jié)構(gòu)化(DHT)P2P

### 2.7 視頻流化服務(wù)和CDN:上下文

- 分布式的,應(yīng)用層面的基礎(chǔ)設(shè)施

- CBR(constant bit rate):固定速率編碼

- VBR(variable bit rate):視頻編碼速率隨時(shí)間的變化而變化

- 存儲(chǔ)視頻的流化服務(wù):DASH(Dynamic adaptive Streaming over HTTP)

- 將視頻文件分為多個(gè)塊

- 每個(gè)塊獨(dú)立存儲(chǔ),編碼與不同碼率

- 告示文件(manifest file):提供不同塊的URL

- CDN(Content?Distribute Networks)內(nèi)容分發(fā)網(wǎng)絡(luò) over top——網(wǎng)絡(luò)邊緣

- enter deep:將CDN服務(wù)器深入到許多本地ISP

- bring home:部署于關(guān)鍵位置POP,采用主要線路將服務(wù)器簇連

- 工作原理

- 客戶向本地服務(wù)器解析請(qǐng)求視頻地址Ip返回CDN-URL(重定向),再向CDN-權(quán)威DNS服務(wù)器解析,選擇離客戶端最近Cache節(jié)點(diǎn)(CDN)IP地址返回,該地址提供流化服務(wù)

### TCP套接字編程

- socket:分布式應(yīng)用進(jìn)程之間的門,傳輸層協(xié)議提供的端到端之間的服務(wù)接口

- sockaddr_in

```c

struct sockaddr_in{

short sin_family;????// 地址簇,默認(rèn)為AF_INET代表TCP/IP協(xié)議族

u_short sin_port;?????// port(使用網(wǎng)絡(luò)字節(jié)順序)

struct in_addr sin_addr; // sin_addr存儲(chǔ)ip地址,使用in_addr這個(gè)數(shù)據(jù)結(jié)構(gòu)

char sin_zero[8];????/* 對(duì)齊,為了讓sockaddr和sockaddr_in兩個(gè)數(shù)據(jù)結(jié)構(gòu)保持大小相同保留的空字節(jié) */

}

```

- hostent(host entry)

- 作為調(diào)用域名解析函數(shù)時(shí)的參數(shù),返回后將IP地址拷貝到sockaddr_id的Ip地址部分

```c

struct hostent{

char *h_name;????// 地址的正式名稱(域名)

char **h_aliases;??// 地址的預(yù)備名稱指針(別名)

int h_addrtype;???// 地址類型,通常為AF_INET

int h_length;????// 地址長度

char **h_addr_list;?/* 主機(jī)網(wǎng)絡(luò)地址指針,網(wǎng)絡(luò)字節(jié)順序:占內(nèi)存多于一個(gè)字節(jié)類型的數(shù)據(jù)在內(nèi)存中的存放順序,通常有小端、大端 */

# define h_addr h_addr_list[0]; // h_addr_list中第一地址?

}

```

- ![[P30808-224451.jpg]]

- ![[Pasted image 20230808224942.png]]

- 例C客戶端(TCP)

```c

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#include <arpa/inet.h>


int main() {

??// 創(chuàng)建 socket

??int client_socket = socket(AF_INET, SOCK_STREAM, 0);

??if (client_socket == -1) {

????perror("Socket creation failed");

????exit(EXIT_FAILURE);

??}


??// 設(shè)置服務(wù)器地址和端口

??struct sockaddr_in server_address;

??memset(&server_address, 0, sizeof(server_address));

??server_address.sin_family = AF_INET;

??server_address.sin_port = htons(8080);

??server_address.sin_addr.s_addr = inet_addr("127.0.0.1");?// 服務(wù)器的IP地址


??// 連接到服務(wù)器

??if (connect(client_socket, (struct sockaddr*)&server_address, sizeof(server_address)) == -1) {

????perror("Connection failed");

????exit(EXIT_FAILURE);

??}


??// 發(fā)送數(shù)據(jù)到服務(wù)器

??char message[] = "Hello, server!";

??if (send(client_socket, message, strlen(message), 0) == -1) {

????perror("Send failed");

????exit(EXIT_FAILURE);

??}


??// 接收服務(wù)器的響應(yīng)

??char buffer[1024] = {0};

??if (recv(client_socket, buffer, sizeof(buffer), 0) == -1) {

????perror("Receive failed");

????exit(EXIT_FAILURE);

??}


??printf("Server response: %s\n", buffer);


??// 關(guān)閉 socket

??close(client_socket);


??return 0;

}

```

- 服務(wù)器端(TCP)

```c

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#include <arpa/inet.h>


int main() {

??// 創(chuàng)建 socket

??int server_socket = socket(AF_INET, SOCK_STREAM, 0);

??if (server_socket == -1) {

????perror("Socket creation failed");

????exit(EXIT_FAILURE);

??}


??// 設(shè)置服務(wù)器地址和端口

??struct sockaddr_in server_address;

??memset(&server_address, 0, sizeof(server_address));

??server_address.sin_family = AF_INET;

??server_address.sin_port = htons(8080);?// 使用的端口號(hào)

??server_address.sin_addr.s_addr = INADDR_ANY;?// 使用任意可用的IP地址


??// 綁定地址和端口

??if (bind(server_socket, (struct sockaddr*)&server_address, sizeof(server_address)) == -1) {

????perror("Binding failed");

????exit(EXIT_FAILURE);

??}


??// 監(jiān)聽連接請(qǐng)求

??if (listen(server_socket, 5) == -1) {

????perror("Listening failed");

????exit(EXIT_FAILURE);

??}


??printf("Waiting for incoming connections...\n");


??while (1) {

????// 接受連接請(qǐng)求

????struct sockaddr_in client_address;

????socklen_t client_address_length = sizeof(client_address);

????int client_socket = accept(server_socket, (struct sockaddr*)&client_address, &client_address_length);

????if (client_socket == -1) {

??????perror("Accepting connection failed");

??????continue;

????}


????printf("Client connected: %s\n", inet_ntoa(client_address.sin_addr));


????// 接收客戶端發(fā)送的數(shù)據(jù)

????char buffer[1024] = {0};

????if (recv(client_socket, buffer, sizeof(buffer), 0) == -1) {

??????perror("Receive failed");

??????close(client_socket);

??????continue;

????}


????printf("Received from client: %s\n", buffer);


????// 發(fā)送響應(yīng)給客戶端

????char response[] = "Hello from server!";

????if (send(client_socket, response, strlen(response), 0) == -1) {

??????perror("Send failed");

????}


????// 關(guān)閉客戶端 socket

????close(client_socket);

??}


??// 關(guān)閉服務(wù)器 socket

??close(server_socket);


??return 0;

}

```

- UDP套接字編程

- 客戶端和服務(wù)器之間沒有鏈接

- 傳送數(shù)據(jù)可能失序也可能丟失

- ![[P30809-000646.jpg]]

- ![[Pasted image 20230809000829.png]]

- UDP客戶端

```c

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#include <arpa/inet.h>


int main() {

??// 創(chuàng)建 socket

??int client_socket = socket(AF_INET, SOCK_DGRAM, 0);

??if (client_socket == -1) {

????perror("Socket creation failed");

????exit(EXIT_FAILURE);

??}


??// 設(shè)置服務(wù)器地址和端口

??struct sockaddr_in server_address;

??memset(&server_address, 0, sizeof(server_address));

??server_address.sin_family = AF_INET;

??server_address.sin_port = htons(8080);?// 使用的端口號(hào)

??server_address.sin_addr.s_addr = INADDR_ANY;?// 使用任意可用的IP地址


??// 發(fā)送數(shù)據(jù)到服務(wù)器

??char message[] = "Hello from UDP client!";

??if (sendto(client_socket, message, strlen(message), 0, (struct sockaddr*)&server_address, sizeof(server_address)) == -1) {

????perror("Sendto failed");

????exit(EXIT_FAILURE);

??}


??printf("Message sent to server: %s\n", message);


??// 關(guān)閉 socket

??close(client_socket);


??return 0;

}

```

- UDP服務(wù)端

```c

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#include <arpa/inet.h>


int main() {

??// 創(chuàng)建 socket

??int server_socket = socket(AF_INET, SOCK_DGRAM, 0);

??if (server_socket == -1) {

????perror("Socket creation failed");

????exit(EXIT_FAILURE);

??}


??// 設(shè)置服務(wù)器地址和端口

??struct sockaddr_in server_address;

??memset(&server_address, 0, sizeof(server_address));

??server_address.sin_family = AF_INET;

??server_address.sin_port = htons(8080);?// 使用的端口號(hào)

??server_address.sin_addr.s_addr = INADDR_ANY;?// 使用任意可用的IP地址


??// 綁定 socket 到指定的地址和端口

??if (bind(server_socket, (struct sockaddr*)&server_address, sizeof(server_address)) == -1) {

????perror("Bind failed");

????exit(EXIT_FAILURE);

??}


??char buffer[1024];

??struct sockaddr_in client_address;

??socklen_t client_address_length = sizeof(client_address);


??// 接收來自客戶端的數(shù)據(jù)

??ssize_t bytes_received = recvfrom(server_socket, buffer, sizeof(buffer), 0, (struct sockaddr*)&client_address, &client_address_length);

??if (bytes_received == -1) {

????perror("Recvfrom failed");

????exit(EXIT_FAILURE);

??}


??buffer[bytes_received] = '\0';

??printf("Message received from client: %s\n", buffer);


??// 關(guān)閉 socket

??close(server_socket);


??return 0;

}


```

?
2.10 小結(jié) P22 - 02:18
?


中科大鄭烇、楊堅(jiān)全套《計(jì)算機(jī)網(wǎng)絡(luò)(自頂向下方法 第7版,James F.Kuro的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
蛟河市| 巴中市| 疏附县| 黄龙县| 麻城市| 乌审旗| 兴海县| 花垣县| 门头沟区| 福建省| 南郑县| 通榆县| 神池县| 微山县| 资兴市| 定日县| 华容县| 邵东县| 晋州市| 临高县| 灵寿县| 博野县| 天镇县| 施甸县| 宿迁市| 长沙市| 和林格尔县| 宜章县| 丰顺县| 清原| 横山县| 进贤县| 乐陵市| 大埔区| 达孜县| 湄潭县| 章丘市| 闵行区| 岐山县| 襄垣县| 泾阳县|