《《計算機網(wǎng)絡(luò)基礎(chǔ)》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《計算機網(wǎng)絡(luò)基礎(chǔ)》PPT課件.ppt(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、網(wǎng)絡(luò)程序設(shè)計,主講人:王巖 沈陽航空航天大學(xué) 計算機學(xué)院 電子信箱:,參考書,任泰明 TCP/IP協(xié)議與網(wǎng)絡(luò)編程 西安電子科技大學(xué)出版社 譚獻海 等 網(wǎng)絡(luò)編程技術(shù)及應(yīng)用 清華大學(xué)出版社 謝希仁 計算機網(wǎng)絡(luò)教程,C:Documents and Settingswy ping ,應(yīng)用舉例,,,第一章 計算機網(wǎng)絡(luò)基礎(chǔ),OSI參考模型 TCP/IP參考模型 網(wǎng)絡(luò)程序?qū)ぶ贩绞?網(wǎng)絡(luò)程序體系結(jié)構(gòu) 系統(tǒng)類型重定義,國際標(biāo)準(zhǔn)化組織( I S O )開發(fā)了開放式系統(tǒng)互聯(lián)( O S I )參考模型,以促進計算機系統(tǒng)的開放互聯(lián)。該模型為計算機間開放式通信所需要定義的功能層次建立了全球標(biāo)準(zhǔn)。 O S I模型將通信會
2、話需要的各種進程劃分成7個相對獨立的功能層次(見右圖),這些層次的組織是以在一個通信會話中事件發(fā)生的自然順序為基礎(chǔ)的。,OSI七層協(xié)議模型,1. OSI參考模型,OSI模型的數(shù)據(jù)傳輸,PH,SH,TH,NH,DH,DT,AH,應(yīng)用層,表示層,會話層,傳輸層,網(wǎng)絡(luò)層,鏈路層,物理層,應(yīng)用層,表示層,會話層,傳輸層,網(wǎng)絡(luò)層,鏈路層,物理層,發(fā)送進程,接收進程,,,,,,,,,,,,,,,物理傳輸媒體,,,,,,,,,2. TCP/IP參考模型,TCP/IP的架構(gòu),TCP/IP中每一層負(fù)責(zé)不同的功能:,應(yīng)用層,負(fù)責(zé)處理特定的應(yīng)用程序細節(jié)。各種不同的TCP/IP實現(xiàn)都會提供下面這些通用的應(yīng)用程序:
3、Telnet 遠程登錄。 FTP 文件傳輸協(xié)議。 SMTP 簡單郵件傳送協(xié)議。 SNMP 簡單網(wǎng)絡(luò)管理協(xié)議。 HTTP 超文本傳輸協(xié)議。 TFTP 簡單文件傳輸協(xié)議。 傳輸層,主要為兩臺主機上的應(yīng)用程序提供端到端的通信。在TCP/IP協(xié)議族中,有兩個傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。,網(wǎng)絡(luò)層,有時也稱作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動,例如分組的選路。網(wǎng)絡(luò)層協(xié)議包括:IP協(xié)議(網(wǎng)際協(xié)議),ARP協(xié)議(地址解析協(xié)議),RARP(逆地址解析協(xié)議),ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報文協(xié)議),IGMP協(xié)議( Internet組管理協(xié)議)。 網(wǎng)絡(luò)接口層,通常
4、包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機中對應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節(jié)。,TCP/IP 協(xié)議族,,HTTP,。。。,SMTP,FTP,TELNET,SNMP,TFTP,。。。,,,,,,,,,應(yīng)用層,Port,23,21,25,80,161,69,網(wǎng)絡(luò)接口 1,網(wǎng)絡(luò)接口 2,網(wǎng)絡(luò)接口3,利用TCP/IP 協(xié)議進行通訊,,Application,Transport,Network interface,,,,,,FTP client,TCP,,,,FTP server,TCP,,,,,,(端-端 通信),Network,(設(shè)備驅(qū)動與接口卡),(網(wǎng)絡(luò)應(yīng)用:ft
5、p, smtp, http),(路由,轉(zhuǎn)發(fā),互連),Windows操作系統(tǒng)的總體架構(gòu),應(yīng)用程序(EXE),動態(tài)鏈接庫(DLL),應(yīng)用程序 (EXE),驅(qū)動程序(VXD, SYS),硬件,,,應(yīng) 用 層,核 心 層,EXE是一個獨立且能直接執(zhí)行的模塊。DLL是一個共享的函數(shù)庫,它提供標(biāo)準(zhǔn)的接口供其它應(yīng)用程序調(diào)用,本身不能單獨運行,被應(yīng)用程序調(diào)用時就成為程序的一部分。,應(yīng)用層是可以直接接觸到的,各種用戶界面都是應(yīng)用層程序執(zhí)行的結(jié)果。文件擴展名是.exe或.dll。,在應(yīng)用層下面是核心層(kernel)。Windows95/98下核心層程序擴展名是.vxd;WindowsNT/2000下核心層擴展名
6、是.sys,核心層的程序叫驅(qū)動程序。驅(qū)動程序為上層應(yīng)用程序提供底層的支持。,,,,TCP/IP協(xié)議,Windows程序,User.exe,WS2_32.DLL,ftp.exe,Tcpip.sys,Tcpip.sys,Ne2000.sys,網(wǎng)卡,應(yīng)用層,核心層,網(wǎng)卡驅(qū)動程序,TCP/IP 協(xié)議在Windows中的實現(xiàn),,,,,3 . 網(wǎng)絡(luò)程序?qū)ぶ贩绞?使用TCP/IP協(xié)議的互連網(wǎng)使用3個等級的地址:即物理(鏈路)地址、互連網(wǎng)(IP)地址、端口地址。 每一種地址都與TCP/IP體系結(jié)構(gòu)中的特定層相對應(yīng)。,地址分類,(一)物理地址 在局域網(wǎng)中,硬件地址又稱為物理地址或MAC地址,這一地址被固化在每個
7、網(wǎng)卡的ROM中,每個網(wǎng)卡在出廠時都賦于了一個全世界范圍內(nèi)唯一的地址編號,地址為6字節(jié)(即48位)。,(二)IP地址 IP 地址就是給每個連接在因特網(wǎng)上的主機(或路由器)分配一個在全世界范圍是唯一的 32 位的標(biāo)識符。 目前IP地址是一個32位地址(IPv4),可以用來標(biāo)識連接在因特網(wǎng)上的每一個主機。 在因特網(wǎng)上沒有兩個主機具有同樣的IP地址。 下一代的IP為IPv6。,為了使32位地址更加簡潔和更容易閱讀,因特網(wǎng)的地址通常寫成用小數(shù)點將各字節(jié)分開的形式。,IP地址設(shè)置,,,,,TCP 報文,,IP 數(shù)據(jù)報,,MAC 幀,,,,,,,,應(yīng)用層數(shù)據(jù),首部,,,首部,,,,,尾部,首部,,,,,,,
8、,,A,Y,X,B,Z,主機 B 向 A 發(fā)送 ARP 響應(yīng)分組,主機 A 廣播發(fā)送 ARP 請求分組,ARP 請求,,ARP 請求,,ARP 請求,,209.0.0.5,209.0.0.6,00-00-C0-15-AD-18,08-00-2B-00-EE-0A,,我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18 我想知道主機 209.0.0.6 的硬件地址,,我是 209.0.0.6 硬件地址是 08-00-2B-00-EE-0A,,,,,,,A,Y,X,B,Z,209.0.0.5,209.0.0.6,00-00-C0-15-AD-18,,,,,,,,,,,,,,,I
9、P1,HA1,HA5,HA4,HA3,,,HA6,HA2,IP6,主機 H1,主機 H2,,路由器 R1,IP 層上的互聯(lián)網(wǎng),IP2,IP4,IP3,,,,IP5,,,,路由器 R2,,IP 數(shù)據(jù)報,,IP層抽象的互聯(lián)網(wǎng)屏蔽了下層很復(fù)雜的細節(jié) 在抽象的網(wǎng)絡(luò)層上討論問題,就能夠使用 統(tǒng)一的、抽象的 IP 地址 研究主機和主機或主機和路由器之間的通信,不同層次、不同區(qū)間的源地址和目的地址,(三)端口地址 到達目的主機并非在因特網(wǎng)上進行數(shù)據(jù)通信的最終目的。 今天的計算機是多進程設(shè)備,即可以在同一時間運行多個進程。 因特網(wǎng)通信的最終目的是使一個進程能夠和另一個進程通信。 為了能同時運行多個進程,需要有
10、一種方法對不同的進程打上標(biāo)號。換言之,必須將地址賦給這些進程。 端口是用來標(biāo)志應(yīng)用層的進程。 TCP/IP中的端口地址是16位長。,4 .網(wǎng)絡(luò)程序體系結(jié)構(gòu),客戶機服務(wù)器結(jié)構(gòu),網(wǎng)絡(luò)應(yīng)用程序一般是以客戶機服務(wù)器結(jié)構(gòu)工作的。在這種工作方式中,一個服務(wù)器程序通常事先已經(jīng)啟動,并在一個眾所周知的端口監(jiān)聽對服務(wù)的請求??蛻魬?yīng)用程序需要服務(wù)時,便向提供該服務(wù)的服務(wù)器發(fā)出請求,服務(wù)器在接收到請求后,就響應(yīng)客戶提出的請求。,,客戶機服務(wù)器結(jié)構(gòu)的特點,客戶機程序之間并不直接交流信息,它們僅與服務(wù)器通信。客戶機之間可以通過服務(wù)器中轉(zhuǎn)通信。,服務(wù)器方有一個固定的、公開的地址,包括IP地址和端口號碼。IP地址唯一地標(biāo)識
11、主機,端口號標(biāo)識主機上運行的某個服務(wù)進程。,服務(wù)器的兩種工作方式,服務(wù)器都可工作在兩種不同的方式: 循環(huán)方式在計算機中一次只運行一個服務(wù)器進程。當(dāng)有多個客戶進程請求服務(wù)時,服務(wù)器進程就按請求的先后順序依次做出響應(yīng)。 并發(fā)方式在計算機中同時運行多個服務(wù)器進程,每一個服務(wù)器進程對某個特定的客戶進程做出響應(yīng)。,網(wǎng)絡(luò)程序中通信雙方的標(biāo)識,為了唯一地標(biāo)識網(wǎng)絡(luò)中通信的某一方,就要使用一個如下的三元組:(本地協(xié)議,本地IP地址,本地端口號),因此通信的雙方可以使用如下六元組: (本地協(xié)議,本地IP地址,本地端口號,遠程協(xié)議,遠程IP地址,遠程端口號),由于通信的雙方在端到端的傳輸層只能使用相同的協(xié)議,因此一
12、個完整的網(wǎng)間通信可簡化為一個五元組: (協(xié)議,本地IP地址,本地端口號,遠程IP地址,遠程端口號) 這里的協(xié)議主要是TCP、UDP,傳統(tǒng)客戶/服務(wù)器模式的不足,瓶頸問題:服務(wù)器的帶寬、存儲、計算等資源受限,容易成為網(wǎng)絡(luò)瓶頸 單點失效問題:服務(wù)器是整個網(wǎng)絡(luò)的中心,失效將會導(dǎo)致服務(wù)無法訪問,網(wǎng)絡(luò)邊緣閑置資源利用的需求,隨著計算技術(shù)的發(fā)展,位于Internet邊緣的接入設(shè)備(也就是網(wǎng)絡(luò)的最終用戶)擁有 越來越強的計算、存儲等能力,傳統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)無法有效地利用這些資源,完全分布式的網(wǎng)絡(luò)結(jié)構(gòu) 無中心服務(wù)器,網(wǎng)絡(luò)中的節(jié)點既是客戶端又是服務(wù)器 將服務(wù)器的功能分布到各個網(wǎng)絡(luò)中的各個節(jié)點,充分利用這些節(jié)點的計算
13、、存儲、帶寬等資源,P2P(Peer-to-Peer,點對點)結(jié)構(gòu),typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; typedef char CHAR; typedef int BOOL; typedef floa
14、t FLOAT; typedef int INT;,部分常用的從基本類型重新定義出來的新類型,5 . 系統(tǒng)類型重定義,typedef unsigned int UINT; typedef short SHORT; typedef long LONG; typedef SHORT * PSHORT; typedef LONG * PLONG; typedef void * HANDLE; //Handle to a window typedef UINT WPARAM; //32-bit message parameter. typedef LONG LPARAM; //32-bit message parameter. typedef LONG LRESULT; //Signed result of message processing,Thank You!,