




已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
應用層,第2章,探索上網、傳送文件、收發(fā)郵件等常見網絡應用之謎,內容領航,應用層基本概念 域名解析與DNS協(xié)議 Web應用與HTTP協(xié)議 文件傳送與FTP協(xié)議 電子郵件與SMTP、POP3協(xié)議 遠程登錄與telnet協(xié)議 套接字編程初步,應用層的特點,內容豐富 因特網可以為用戶提供各種不同的應用,每一種應用都有自己的應用層協(xié)議,所以應用層的協(xié)議非常多。 面向應用 應用層協(xié)議離用戶最近,直接為用戶服務。 應用層協(xié)議一般只關注特定應用中信息如何交互,而很少關心信息的傳送細節(jié)。,如何構建一個網絡應用?,網絡應用往往涉及兩個進程,它們通過網絡進行通信。 進程(Process):主機中動態(tài)運行的程序 同一主機的進程間通信:進程間通信(IPC) 不同主機的進程間通信:消息傳遞 如何構建和部署一個新的網絡應用? 位于網絡兩端的兩個程序以何種方式互相通信?,客戶/服務器模式,客戶/服務器模式是網絡應用程序的主要通信模式。 服務器 提供服務的進程 一直保持運行狀態(tài),隨時準備接受請求。 地址固定 客戶 請求服務的進程 需要時運行,可以向服務器發(fā)送請求。 地址可變,數據鏈路層,物理層,運輸層,網絡層,數據鏈路層,物理層,運輸層,網絡層,應用層,應用層,因特網,計算機A,計算機B,套接字(socket),進程通過它的套接字在網絡上發(fā)送和接收數據。,如何為進程編址?,IP地址 唯一標識一臺因特網的主機 32位二進制數 端口號 唯一標識主機中的一個進程 16位二進制數 套接字就是利用IP地址和端口號的組合來標識的。,進一步討論端口號,端口是應用進程的標識 本質上是在運輸層首部的一個字段的值,有TCP端口號和UDP端口號兩種。 端口占兩個字節(jié),范圍是065535 01023為保留使用的端口號(熟知端口號),通常分配給相關應用的服務器進程 HTTP:80 DNS:53 SMTP:25 POP:110 102465535為用戶進程可以使用的動態(tài)分配的臨時端口號 試問:為什么不使用操作系統(tǒng)的進程號來標識網絡進程?,IP地址與端口號圖示,客戶端A向服務器B端請求網頁,源端口隨機從可用端口取,目標端口為80,C打開兩個瀏覽器,向B發(fā)送兩個網頁請求,常用應用程序對傳輸功能的要求,應用程序 文件傳輸 e-mail Web 網頁 實時音頻/視頻 存儲音頻/視頻 交互式游戲 金融應用,數據丟失 不丟失 不丟失 不丟失 允許丟失 允許丟失 允許丟失 允許丟失 不丟失,帶寬 彈性 彈性 彈性 音頻: 5Kb-1Mb 視頻:10Kb-5Mb 同上 幾 Kb/s 以上 彈性,實時性 無 無 無 100s msec few secs 100s msec yes and no,Internet 的傳輸協(xié)議提供的服務,TCP 提供的服務:可靠 面向連接:在客戶端和服務器進程之間需要建立連接,可靠傳輸 流量控制:通過限制發(fā)送方的發(fā)送速度使接收方有能力接收 擁塞控制:當網絡超負荷時,減少發(fā)送速度 不提供:實時性,最小帶寬承諾 UDP服務:速度快,不可靠 不提供:連接建立,可靠性保證,流量控制,擁塞控制,實時性,最小帶寬承諾,因特網應用對傳輸協(xié)議的選擇,應用 e-mail 遠程終端訪問 Web 文件傳輸 流媒體 網絡文件服務器 IP電話,應用協(xié)議 smtp RFC 821 telnet RFC 854 http RFC 2068 ftp RFC 959 專有協(xié)議 (e.g. RealNetworks) NSF 專有協(xié)議 (e.g., Vocaltec),使用的傳輸層協(xié)議 TCP TCP TCP TCP TCP or UDP TCP or UDP typically UDP,DNS域名解析系統(tǒng)(RFC1034,1035),2.的IP地址是1,ISP2,DNS服務器,3.這下我知道江西師大的IP地址了,我可以請求網頁了,1.請問的IP地址是多少?,從Hosts文件到DNS,早期Hosts文件解析主機名 主機名稱重復 名稱解析效能下降 更新維護困難 DNS服務 層次性域名 分布式服務,域名空間結構,根域 頂級域 組織域 國家或地區(qū)域 反向域 二級域 主機名 FQDN(Fully Qualified Domain Name):全域名,cn,com,edu,edu,ncu,jxnu,cs,ma,en,com,jxnu,,,,,,頂級域名服務器,本地域名服務器 也是的授權域名服務器,.,cn,uk,根域名服務器,二級域名服務器,dns.root,主機,域名服務器,DNS查詢過程,DNS客戶機,本地域名服務器,根DNS服務器,cn,,,2,3,4,6,7,1,遞歸查詢,迭代查詢,Web服務器,5,,DNS查詢類型,從查詢方式上分 遞歸查詢 要么做出查詢成功響應,要么作出查詢失敗的響應 迭代查詢 若有可能,返回下一級DNS服務器的IP地址 從查詢內容上分 正向查詢由域名查找IP地址 反向查詢由IP地址查找域名,DNS的進一步討論,問題:每次訪問網頁前進行的DNS請求都按前述步驟進行,會出現哪些不利因素? 性能瓶頸 效率低下 怎樣克服上述不利因素? 高速緩存機制,DNS的高速緩存,高速緩存機制 客戶端短期內會將DNS映射緩存 DNS服務器從上級DNS服務器獲得的DNS映射會緩存 緩存的映射必須有生存時間 問題:緩存機制帶來的都是好處嗎? 導致有時無法及時獲得更新的DNS映射 導致DNS的負載均衡部分失效,域名解析順序,解析域名順序 本機DNS緩存 本機Hosts文件 DNS服務器 本機DNS緩存 Ipconfig /displaydns Ipconfig /flushdns 本機Hosts文件 Hosts文件%SystemRoot%system32driversetchosts,DNS的資源記錄(Resource Record),name:域名,value:根據type的不同意義不同,RR類型: type value A 域名對應的IP地址 NS 域名對應的授權域名服務器名稱 CNAME 域名對應的別名 MX 域名對應的郵件服務器的名稱,ttl:該記錄在緩存中能停留的時間,0表示不能緩存,class: RR的類別代碼,默認為0001,表示因特網,DNS的報文格式,事務標識號,標記(報文類型):如標記請求還是響應,問題的個數,回答RR個數,授權域名RR數,附加RR數,問題具體的RR,回答具體的RR,域名對應的授權域名服務器相關RR,附加的具體RRs,標記字段詳解,QR,AA,TC,RD,RA,Opcode,Z,RCODE,QR 是1 bit字段:0表示查詢報文,1表示響應報文。,opcode是一個4 bit字段:通常值為0(標準查詢),其他值為1(反向查詢)和2(服務器 狀態(tài)請求)。,AA表示“授權回答”。該名字服務器是授權于該域的。,TC表示“可截斷的”。使用UDP時,它表示當應答的總長度超 過512字節(jié)時,只返回前512個字節(jié)。,RD表示“期望遞歸”。該比特能在一個查詢中設置,并在響應中返回。,RA表示“可用遞歸”。如果名字服務器支持遞歸查詢,則在響應中將該比特設置為1。,未用,全為0,rcode字段的值一般為0(沒有差錯)和3(名字差錯)。名字差錯從一個授權名字服務器上返回,表示在查詢中指定的域名不存在。,實驗:DNS的基本操作和協(xié)議分析,實驗目的: 掌握DNS客戶端的配置方法 通過ping和nslookup觀察DNS的解析過程 掌握使用協(xié)議分析軟件驗證分析DNS請求報文和響應報文的格式 掌握在Windows 2003中搭建DNS服務器,WWW萬維網,www通過網頁的形式訪問站點,通過超級鏈接,鏈接不同的網站不同的頁面,WWW的相關概念,萬維網采用的是C/S模式 客戶端程序:瀏覽器 如:IE, firefox 服務器端程序: 如:IIS, Tomcat, Apache Web頁面:即網頁,由文字、圖片、聲音、視頻、超級鏈接等多種對象組成,構建WWW應用需解決哪些問題?,如何唯一標識分布在因特網上的網頁及其中包含的各種對象? 統(tǒng)一資源定位符 URL (Uniform Resource Locator) URL格式:,:/:/,ftp:文件傳送協(xié)議 http: 超文本傳送協(xié)議, 是存放資源的主機 在因特網中的域名或IP地址,端口根據協(xié)議有默認值,如http為80端口,默認端口可以省略; 路徑是文件在主機中的相對位置,當路徑省略時自動打開默認文檔,構建WWW應用需解決哪些問題?,客戶端如何從服務器端得到網頁及相關對象? 超文本傳送協(xié)議 HTTP (Hyper Text Transfer Protocol),使用TCP作為傳輸層,默認端口號80 如何表示和顯示包含鏈接、圖片等多種信息的網頁? 超文本標記語言 HTML (Hyper Text Markup Language) 怎樣使用戶能夠很方便地找到所需的信息? 搜索引擎SE(Search Engine) 如:,,HTTP協(xié)議,Web服務器,HTTP請求報文:給我某個頁面吧,HTTP響應報文:我有這個頁面,給你,瀏覽器,輸入網址后發(fā)生了什么?,1.客戶端瀏覽器向DNS服務器請求的IP地址,3.服務器收到請求,向客戶端提供所需的網頁,2.瀏覽器獲得IP地址,向Web服務器建立TCP連接,不斷發(fā)送頁面對象請求。,4.客戶端獲得頁面對象后斷開TCP連接,HTTP1.0(RFC1945)的工作過程,Web服務器,瀏覽器,第一階段:TCP建立連接階段,第三階段:斷開TCP連接,依次請求頁面鏈接的對象,。,第二階段:獲取頁面文檔階段,斷開TCP連接,客戶端分析頁面的鏈接對象,依次建立新的TCP連接,獲取頁面鏈接的對象,如圖片,動畫等,HTTP1.0的性能討論,非持續(xù)連接(Non-persistent):使用多條TCP連接獲取對象(http1.0默認使用的方式) 獲得對象需要2 RTTs 每次傳送都要受到TCP初始化時的慢啟動影響 瀏覽器同時打開多個并行的連接來改善性能 非流水線作業(yè)方式 完整收到每個對象后才發(fā)送對下一個對象的請求 討論:怎樣改進HTTP1.0的性能?,改進版:HTTP1.1(RFC2616),瀏覽器,第一階段:TCP建立連接階段,第三階段:在同一個TCP上依次請求頁面鏈接的對象,。,第二階段:獲取頁面文檔階段,客戶端分析頁面的連接對象,在同一個TCP連接上連續(xù)發(fā)送多個頁面鏈接的對象的請求,如圖片,動畫等,逐漸接收對象,HTTP1.1的特點,持續(xù)連接(Persistent):多個對象共享同一條TCP連接(http/1.1的默認設置) 客戶端一旦下載到了基本的html文件(base HTML),馬上發(fā)送對所有網頁引用對象的請求 較少的RTTs, 較少的慢啟動 流水線作業(yè)方式 沒有收到上一個請求的對象就發(fā)送對新的對象的請求,HTTP請求報文的格式,HTTP請求報文一般不需要數據,注意:HTTP協(xié)議首部使用ASCII碼作為編碼方式,HTTP請求報文的格式,常見的HTTP請求的方法: OPTION 請求一些選項的信息 GET 請求讀取由URL所標志的信息 HEAD 請求讀取由URL所標志的信息的首部 POST 給服務器添加信息(例如,注釋) PUT 在指明的URL下存儲一個文檔 DELETE 刪除指明的URL所標志的資源 TRACE 用來進行環(huán)回測試的請求報文 CONNECT 用于代理服務器 首部字段名定義了一些雙方協(xié)商的參數,如客戶端瀏覽器的類型,允許接收的數據類型,允許接收的語言,使用的編碼方式等,HTTP響應報文的格式,HTTP響應報文的數據一般就是客戶端請求的頁面內容,HTTP響應報文的格式,響應報文的開始行是狀態(tài)行,它包括: HTTP 的版本 狀態(tài)碼(3位數字) 解釋狀態(tài)碼的簡單短語 常見的狀態(tài)碼: 1xx 表示通知信息的,如請求收到了或正在進行處理。 2xx 表示成功,如接受或知道了。 3xx 表示重定向,表示要完成請求還必須采取進一步的行動。 4xx 表示客戶的差錯,如請求中有錯誤的語法或不能完成。 5xx 表示服務器的差錯,如服務器失效無法完成請求。,狀態(tài)碼及狀態(tài)信息舉例,200 OK 請求成功,請求的對象在這個報文后面 301 Moved Permanently 請求的對象已轉移,新的URL在響應報文的Location:首部行中指定 400 Bad Request 請求報文不為服務器理解 404 Not Found 請求的文檔沒有在該服務器上發(fā)現 505 HTTP Version Not Supported 請求的HTTP版本不被支持,WWW的性能討論,企業(yè)網,Web服務器,Internet,瀏覽器,R1,R2,企業(yè)網多個用戶需要訪問同一個Web服務器,Internet鏈路負載和時延都很大,試問:如何提高客戶端訪問效率,并減少Internet鏈路的流量和Web服務器的負載?,使用Web緩存,企業(yè)網,Web服務器,Internet,瀏覽器,R1,R2,增加一個Web高速緩存代理服務器,緩存頁面,1.內網瀏覽器首次發(fā)送請求數據給Web服務器,2.Web服務器發(fā)送頁面,3.頁面進入內網會保存一份副本到代理服務器的緩存中,高速緩存 (代理服務器),4.其余內網用戶需訪問同一Web頁面,會首先訪問代理服務器,試問:如何保證代理服務器的頁面與Web服務器的相關最新頁面一致?,條件GET方法,代理服務器收到的HTTP響應報文,記錄頁面的最后修改時間,代理服務器發(fā)送給Web服務器的HTTP請求報文,判斷頁面是否有更新,HTTP響應 HTTP/1.0 200 OK ,未修改,已修改,緩存的效能舉例,假定 平均對象長度 = 100kb 來自機構的瀏覽器的 平均請求 = 15次/s 從機構路由器到服務器 并返回的平均時延= 2 s 結果 LAN帶寬利用率 = 15% 接入鏈路流量強度 = 1 總時延 = 因特網時延 + 接入排隊時延 + LAN時延 = 2 s + 分鐘 + 毫秒,服務器,公共因特網,機構網絡,10 Mbps LAN,1.5 Mbps 接入鏈路,解決方案1:提高接入帶寬,措施 將訪問鏈路的帶寬提高 到10 Mbps 結果 LAN帶寬利用率 = 15% 接入鏈路流量強度= 0.15 總時延 = 因特網時延 + 接入排隊時延 + LAN時延 = 2 s + 毫秒 + 毫秒 通常升級費用可觀,服務器,公共因特網,機構網絡,10 Mbps LAN,10 Mbps 接入鏈路,解決方案2:設置緩存服務器,假定 Web緩存的命中率是0.4 結果 40%請求將幾乎立即得到滿足 60%請求由起始服務器 滿足 接入鏈路的流量強度減少到0.6, 產生可忽略不計的時延 總平均時延= 因特網時延 + 接入排隊時延 + LAN時延 = 0.6*(2.01s) + 0.4*(0.01s) = 1.21 s 時延更短 成本更低,服務器,公共因特網,機構網絡,10 Mbps LAN,1.5 Mbps 接入鏈路,機構緩存服務器,一般情況下,流量強度小于0.8時排隊時延比較小,HTTP的無狀態(tài)性,HTTP是“無狀態(tài)的” 服務器不保留有關客戶機過去請求的任何信息。,試問:服務器如何維護用戶登錄名和密碼信息,保證用戶下次訪問不需要再次登錄?,Cookie的奧妙,Cookie文件名,文件內容,HTTP請求報文攜帶cookie內容,使用Cookie保存信息,實驗:構建Web服務與Http協(xié)議分析,實驗目的: 了解iis的基本配置方法 判斷Http是否加密傳輸? 測試Http的服務器監(jiān)聽端口是否必須是80端口 分析持續(xù)連接和非持續(xù)連接,流水線和非流水線 分析Http的請求報文和響應報文的格式 驗證Web緩存,FTP文件傳輸協(xié)議,FTP(file transfer protocol)用于因特網文件傳輸(RFC 959) 使用客戶端/服務器模式 使用TCP提供可靠的傳輸 FTP屬于維護狀態(tài)的協(xié)議 FTP使用兩條TCP連接完成數據傳輸 數據連接:端口20 控制連接:端口21,控制連接與數據連接,Internet,控制進程,數據傳送 進程,用戶界面,控制進程,數據傳送 進程,客戶端,服務器端,控制連接:端口21,數據連接:端口20,討論:FTP為什么使用兩條TCP連接,FTP下載文件與HTTP文件下載的方式有何不同?,與FTP服務器交互,登錄FTP,也可輸入ftp,再用open + IP(域名),服務器端返回信息(控制連接),用戶名,服務器端返回信息(控制連接),密碼,客戶端不會回顯,服務器端返回信息(控制連接),列出目錄,服務器端返回信息(控制連接),服務器FTP共享目錄內容( 數據連接),服務器端返回信息(控制連接),進入class目錄,下載文件rfc945(ftp).txt,服務器端返回信息(控制連接),退出FTP,斷開和服務器的控制連接,服務器端返回信息(控制連接),FTP協(xié)議分析,服務器端返回信息(控制連接),客戶端輸入用戶名,服務器端返回信息(控制連接),客戶端輸入密碼,密碼明文傳輸,分析:客戶端輸入ls命令和get命令后FTP協(xié)議具體通信內容,判斷數據連接和控制連接,實驗:構建FTP服務與FTP協(xié)議分析,實驗目的: 學會構建FTP服務器,學會FTP服務器的配置和FTP客戶端的使用 學會使用FTP命令行的方式在FTP客戶端訪問FTP 分析FTP協(xié)議的工作細節(jié) 分析FTP數據連接和控制連接 分析協(xié)議的安全性,電子郵件系統(tǒng),電子郵件系統(tǒng)的組成 用戶代理:電子郵件客戶端軟件,如IE瀏覽器,Outlook,Outlook Express,Foxmail等 郵件服務器:提供郵件服務的主機,如163郵件服務器和 郵件發(fā)送和接收協(xié)議:HTTP,SMTP,POP3等,用 戶 代 理,用 戶 代 理,郵件 服務器,郵件 服務器,電子郵件的發(fā)送和接收過程,假設一個新浪網的用戶發(fā)送一封郵件到,接收郵件必須由接收端主動接收,郵件發(fā)送到目標郵件服務器后便完成發(fā)送,郵件服務器使用先到先服務原則發(fā)送郵件到目標郵件服務器,通過IE(HTTP)和郵件代理(SMTP)發(fā)送郵件,發(fā)送方,接收方,SMTP協(xié)議,SMTP(Simple Mail Transfer Protocol):簡單郵件傳輸協(xié)議 使用TCP可靠的傳送郵件報文, 服務器監(jiān)聽端口為25 使用命令/響應代碼完成郵件傳輸的控制交互 命令: ASCII文本 響應: 狀態(tài)碼和短語 注意:郵件報文必須使用7-bit ASCII表示,SMTP協(xié)議細節(jié),發(fā)送方,接收方,三次握手建立TCP連接,討論:SMTP協(xié)議發(fā)郵件不需要認證可能帶來的問題,SMTP進一步討論,SMTP發(fā)送郵件不認證導致垃圾郵件泛濫,ESMTP使得發(fā)送郵件需要認證 SMTP使用持續(xù)連接完成郵件的發(fā)送 SMTP協(xié)議只能傳輸ASCII碼,使得郵件只能發(fā)送文本文件 為突破只能發(fā)送文本文件的限制,SMTP使用擴展MIME將非文本文件采用Base64或Quoted printable編碼成文本文件 討論:SMTP協(xié)議與HTTP協(xié)議的異同,MIME,MIME(Multipurpose Internet Email Extension):多功能Internet郵件擴展 參考RFC 2045,RFC2046,MIME的關鍵是如何將非ASCII碼轉變成ASCII碼,MIME協(xié)議分析,編碼方式:Base64,編碼內容,Base64編碼,將三個Byte的數據變成4個6位的數 根據每個6位二進制數的值查找Base64編碼表,找到對應的字符 用對應的4個字符來表示原來的三個字節(jié)的數據,0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 Y 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 + 12 M 29 d 46 u 63 / 13 N 30 e 47 v (pad) = 14 O 31 f 48 w 15 P 32 g 49 x 16 Q 33 h 50 y,Base64編碼表,Base64編碼圖示,編碼效率:75%,Base64編碼舉例,abc 01100001 01100010 01100011 (編碼前:3字節(jié)) 011000 010110 001001 100011 00011000 00010110 00001001 00100011 24 22 09 35 YWJj (編碼后:4字節(jié)) ab 01100001 01100010 011000 010110 001000 (補零) 00011000 00010110 00001000 24 22 08 YWI= a 01100001 011000 010000 (補零) 00011000 00010000 24 16 YQ=,Quote Printable編碼,對于所有可打印的ASCII碼,除等號“=”外,都不改變。 對于等號“=”和不可打印的ASCII碼以及非ASCII碼(如漢字),將每個字節(jié)的二進制代碼用兩個十六進制數字表示,然后在前面再加上一個等號“=” 例:“系統(tǒng)” 11001111 10110101 11001101 10110011 (編碼前:4字節(jié)) CF B5 CD B3 =CF=B5=CD=B3 (編碼后:12字節(jié)) 例:“=” 00111101 (編碼前:1字節(jié)) 3D =3D (編碼后:3字節(jié)),討論:Base64編碼和Quote Printable編碼的優(yōu)缺點與適用場合。,郵件接收協(xié)議,用戶收取郵件常用的協(xié)議 POP(Post Office Protocol郵局協(xié)議) RFC 1939:服務器端口默認110 IMAP(Internet Mail Access 因特網郵件訪問協(xié)議) Protocol RFC 1730:服務器默認端口143 HTTP,用戶代理或瀏覽器,郵件 服務器,POP3協(xié)議,認證階段: 客戶端命令 服務器響應 user: 用戶名 +OK pass: 口令 -ERR,交互階段: 客戶端: list: 列出郵件號碼 retr: 用郵件號碼取信 dele:用郵件號碼刪信 quit,明文發(fā)送密碼,IMAP協(xié)議,IMAP具備和POP一樣的郵件下載功能 IMAP 允許只讀取郵件中的某一個部分。 IMAP提供操作的三種模式 在線方式:郵件保留在Mail服務器端,客戶端可以對其進行管理。其使用方式與WebMail相類似 離線方式:郵件保留在Mail客戶端,客戶端可以對其進行管理。其使用方式與POP3相類似 分離方式:郵件的一部分在Mail服務器端,一部分在客戶端。,實驗:構建郵件服務和相關協(xié)議分析,實驗目的: 掌握郵件服務器的構建 學會Outlook Express等郵件代理的基本配置 分析SMTP協(xié)議 分析POP協(xié)議 分析SMTP和POP的安全性,遠程登錄與Telnet協(xié)議(RFC854),遠程登錄:通過網絡遠程登錄到其他主機。 Telnet(Telecommunication Network Protocol)是標準的提供遠程登錄功能的應用,幾乎每個TCP/IP的實現都提供這個功能。 Telnet使用TCP提供可靠傳輸,服務器端口號23,傳統(tǒng)的終端聯機系統(tǒng),Telnet的工作原理,偽終端驅動,終端驅動,應用程序,操作系統(tǒng),終端,操作系統(tǒng),Telnet協(xié)議的特點,網絡虛擬終端(Network Virtual Terminal, NVT) 選項協(xié)商機制 對稱處理連接的兩端,網絡虛擬終端NVT,偽終端,終端,本地計算機,字符集,遠程計算機,字符集,NVT字符集,NVT字符集,NVT包括兩個字符集 數據字符集 對于數據,NVT通常使用NVT ASCII,是8bit字符集,其中7個最低比特位和US ASCII相同,但最高位是0。 現在也可以最高位也可以是1,但必須在客戶和服務器之間使用選項協(xié)商取得一致。 控制字符集 也使用8bit字符集,但最高位為1。,Telnet的控制字符集,數據信息與控制信息,Telnet僅使用一個TCP連接同時用于發(fā)送數據和控制信息。 思考:如何把字符流中的數據信息和控制信息區(qū)分開? IAC(將下一字符解釋為命令) 在每個控制字符序列的前面加上控制字符IAC(FF) 。 如果要發(fā)送數據FF,則必須發(fā)送兩個連續(xù)的IAC。 例:輸入dir命令時,如果錯輸為dit則需使用回退鍵進行改正,回退字符將被轉換為兩個字符(IAC EC),即最終傳給服務器的內容是(d i t IAC EC r)。,選項協(xié)商,Telnet運行客戶與服務器相互進行選項協(xié)商。 選項協(xié)商是對稱的,任何一方都可以主動發(fā)送選項協(xié)商請求給對方。 對于任何給定的選項,連接的任何一方都可以發(fā)送下面4種請求的任意一種請求: WILL (FB) 發(fā)送方本身想激活(enable)選項 WONT (FC) 發(fā)送發(fā)本身想禁止(disable)選項 DO (FD) 發(fā)送方想讓接收方激活選項 DONT (FE) 發(fā)送方想讓接收方禁止選項,選項協(xié)商,Telnet規(guī)定:對于激活選項請求(WILL和DO),可以同意或不同意,而對于禁止選項請求(WONT和DONT),必須同意。因此共有6種組合情況:,常見選項,子選項協(xié)商,有些選項不能僅僅用“激活”或“禁止”來表達,例如設置終端窗口的大小,為了處理這種選項,必須依靠子選項協(xié)商。 例:窗口大小選項協(xié)商 服務器: 客戶端: ,子選項開始,子選項結束,客戶轉義符,Telnet運行用戶直接和客戶進程進行交互,而不是被發(fā)送到服務器進程。 用戶可以使用客戶轉義符(也叫Escape字符,通常是Ctrl + ),使得客戶進程顯示其提示符(通常是“telnet”),這時有一些命令可供用戶使用,以改變連接的特性或打印某些信息。 一般按回車鍵可以重新讓用戶和服務器進行交互。,操作方式,大多數Telnet的實現工作在三種方式中的一種: 默認方式(半雙工方式) 字符方式 行方式,默認方式(半雙工方式),回顯由客戶完成 用戶鍵入字符,客戶就把字符回顯到屏幕,但到整個一行完成之前并不發(fā)送給服務器。 在把整個一行發(fā)送給服務器后,客戶在接收來自用戶的一個新行之前,要等待來自服務器的GA(Go ahead)命令。 這種操作是半雙工的,因此比較低效。,字符方式,每一個鍵入的字符從客戶發(fā)送給服務器。服務器通常將這個字符返回給客戶,并顯示在客戶的屏幕上。 對每一個字符數據必須發(fā)送3個TCP報文段: 用戶鍵入字符,發(fā)送給服務器 服務器確認收到的字符,將該字符回送給客戶 客戶確認收到被回送的字符,客戶,服務器,行模式,行編輯(回顯、字符刪除、行刪除等操作)由客戶完成,然后客戶把整個的行發(fā)送給服務器。 默認工作在全雙工方式 客戶一行接一行地發(fā)送,而不需要等待來自服務器的GA(Go ahead)命令。,實驗:telnet使用及telnet協(xié)議分析,實驗目的: 學習net start telnet及tlntadmn命令的用法 學習telnet客戶的添加 學習telnet客戶端命令的使用 分析telnet協(xié)議的選項協(xié)商及操作方式 分析telnet協(xié)議的安全性,套接字編程初步,套接字 API 在 BSD4.1 UNIX中首次引入(1981) 由應用程序顯式產生、使用和釋放 客戶機/服務器模式 通過套接字 API 提供兩類運輸服務: 不可靠數據報 可靠, 面向字節(jié)流,TCP套接字編程,服務器首先運行并創(chuàng)建歡迎套接字 ,等待客戶請求 客戶創(chuàng)建客戶套接字(需指定服務器的IP地址及端口號),并建立到服務器的TCP連接 當客戶請求到達時, 服務器生成新的連接套接字,并通過新套接字與該客戶通信 允許服務器同時為多個 客戶服務 源端口號用于區(qū)分不同的客戶,例:轉換為大寫,應用描述 1. 客戶從標準輸入讀取行 2. 客戶把該行數據發(fā)送給服務器 3. 服務器收到該行數據后,將其中的所有字符轉換成大寫字符 4. 服務器把修改后的行發(fā)回給客戶端 5. 客戶機收到后,把修改后的行打印出來,一個流是流入或流出 某進程的字符序列,客戶端Java代碼,import java.io.*; import .*; class TCP Client public static void main(String argv) throws Exception String sentence; String modifiedSentence; /創(chuàng)建與標準輸入設備相連的輸入流對象 BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in); /創(chuàng)建客戶套接字,與服務器建立連接 Socket ClientSocket = new Socket(“hostname“, 6789); /創(chuàng)建與客戶套接字相連的輸出流對象 DataOutputStream outToServer = new DataOutputStream(ClientSocket.getOutputStream();,客戶端Java代碼(續(xù)),/創(chuàng)建與客戶套接字相連的輸入流對象 BufferedReader inFromServer = new BufferedReader(new InputStreamReader(ClientSocket.getInputStream(); /通過輸入流對象從標準輸入設備讀入一行 sentence = inFromUser.readLine(); /通過輸出流對象向套接字寫入一行,即發(fā)送給服務器 outToServer.writeBytes(sentence + n); /通過輸出流對象從套接字讀入被服務器修改后的行 modifiedSentence = inFromServer.readLine(); System.out.println(“FROM Server: “ + modifiedSentence); ClientSocket.close(); ,服務器端Java代碼,import java.io.*; import .*; class TCP Server public static void main(String argv) throws Exception String ClientSentence; String capitalizedSentence; /在端口6789 創(chuàng)建歡迎套接字 ServerSocket welcomeSocket = new ServerSocket(6789); while(true) /在歡迎套接字上接收到客戶請求后返回新的連接套接字 Socket connectionSocket = welcomeSocket.accept(); /創(chuàng)建與連接套接字相連的輸入流對象 BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream();,服務器端Java代碼(續(xù)),/創(chuàng)建與連接套接字相連的輸出流對象 DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream(); /通過與連接套接字相連的輸入流對象讀取行 ClientSentence = inFromClient.readLine(); /進行大寫轉換 capitalizedSentence = ClientSentence.toUpperCase() + n; /通過與連接套接字相連的輸出流對象寫入行,即發(fā)回客戶端 outToClient.writeBytes(capitalizedSentence); ,客戶/服務器工作流程分析,UDP套接字編程,UDP客戶端與服務器之間沒有“連接”,也無需握手,因此不需要歡迎套接字 UDP不提供面向字符流的傳輸服務,所以無需與套接字相連的輸入輸出流 發(fā)送方必須在每個分組上攜帶目的IP地址和目的端口號,以指明接收方的地址 服務器必須從接收到的分組提取源IP地址和源端口號,以得到客戶端的地址,例:轉換為大寫(UDP版),(UDP版)客戶端Java代碼,import java.io.*; import .*; class UDPSocket public static void main(String args) throws Exception /創(chuàng)建與標準輸入設備相連的輸入流對象 BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in); /創(chuàng)建客戶套接字(數據報套接字) DatagramSocket ClientSocket = new DatagramSocket(); /調用DNS將服務器主機名解析為IP地址 InetAddress IPAddress = InetAddress.getByName(“hostname“); byte sendData = new byte1024; byte receiveData = new byte1024; String sentence = inFromUser.readLine(); sendData = sentenc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023廣東輔警招聘評估試題
- 2023江蘇省稅務系統(tǒng)-納稅服務測試題(含答案)
- 貴州省畢節(jié)市大方縣第三中學2024-2025學年七年級下學期期末模擬考試英語試卷(含解析無聽力原文及音頻)
- 2025年全民普法知識競賽考試試題庫及答案
- 《連鎖經營管理理論與實務》課件第一章
- 《高等數學》上冊課件09-01級數及其基本性質
- 2025年供應鏈管理與流程優(yōu)化考試題及答案
- 新建月餅包裝機項目可行性研究報告立項模板
- SMT錯件問題及預防措施培訓
- 2025年各類藝術類專業(yè)考試試卷及答案
- 煙草行業(yè)大數據應用建設方案
- 2025年一級建造師之一建公路工程實務??寄M試題(全優(yōu))
- 酒店收益管理關鍵試題及答案
- 100米課件教學課件
- 裝修避坑知識
- 廣東省深圳市龍崗區(qū)2023-2024六年級下學期期中科學試卷(含答案)
- Unit 5 Animal friends Reading 課件 譯林版英語七年級下冊
- 2025年版村規(guī)民約
- 2023西寧中考物理試題(附參考答案)
- 太極拳理論考試復習題
- 2025至2031年中國火鍋底料行業(yè)投資前景及策略咨詢研究報告
評論
0/150
提交評論