




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗2:利用停止等待協議傳輸數據文件張建忠徐敬東南開大學計算機系zhangjz@實驗2:利用停止等待協議傳輸數據文件張建忠徐敬東停止等待協議停止等待協議:一種最簡單的(但效率較低的)差錯和流量控制協議基本原理:發送方發完一數據包后,需要等待接收方的應答信息發送方收到正確認信息ACK:接收方接收正確,發送方可發送下一數據包發送方收到負確認信息NAK:接收方接收錯誤,發送方應重發出錯的數據包停止等待協議停止等待協議:一種最簡單的(但效率較低的)差錯和停止等待協議的基本工作過程停止等待協議的基本工作過程數據包丟失數據包在傳輸過程中丟失,接收方未接收到任何數據發送方在發送數據包后啟動定時器規定時間內沒有收到確認信息,則認為數據包丟失,需重傳該包重傳次數達到一定的值,則數據傳輸失敗數據包丟失數據包在傳輸過程中丟失,接收方未接收到任何數據確認信息丟失確認信息在傳輸過程中丟失發送方采用定時器,定時器溢出后重發數據包數據包編號接收方收到與前一數據包編號相同的數據包后需要將其拋棄停等機制至少需要兩個編號(通常為0和1)確認信息需要指明收到數據包的編號。ACK1:準備接收編號為1的數據包;ACK0:準備接收編號為0的數據包確認信息丟失確認信息在傳輸過程中丟失停止等待協議的效率停止等待協議的效率停止等待協議的效率傳輸速率V在某種傳輸介質中是固定的信道的長度L越長、數據速率v越高、發送的數據位數l越少,傳輸效率越低停止等待協議的效率傳輸速率V在某種傳輸介質中是固定的差錯檢測奇偶校驗(paritycheck)校驗和(checksum)循環冗余校驗碼(CRC,cyclicredundancycode)……差錯檢測奇偶校驗(paritycheck)奇偶校驗停等協議中通常使用縱向的奇偶檢驗發送方在發送的數據塊后擴展一個字節擴展字節中的第j位保證所有發送數據字節中第j位1的個數為奇數或偶數。偶校驗碼中第j位pj的計算公式奇校驗碼中第j位pj的計算公式奇偶校驗停等協議中通常使用縱向的奇偶檢驗循環冗余校驗碼循環冗余校驗碼循環冗余校驗碼舉例循環冗余校驗碼舉例停止等待協議BSCBSC:一種典型的面向字符型停止等待協議BSC:使用ASCII碼中的10個控制字符完成通信控制功能BSC:規定了數據報文、控制報文的格式BSC:規定了協議的操作過程特點:規程簡單、容易實現,比較適宜于在中低速網絡中使用停止等待協議BSCBSC:一種典型的面向字符型停止等待協議控制字符符號名稱編碼功能說明SOH序始01H數據報文中報頭的開始STX文始02H數據報文中正文的開始ETX文終03H數據報文中正文的結束EOT送畢04H傳輸結束ENQ詢問05H詢問對方并請求對方予以響應ACK正確認06H接收方正確接收數據報文后的響應NAK負確認15H接收方接收數據報文錯誤的響應DLE轉義10H修改緊隨其后字符的語義SYN同步16H收發雙方的字符同步ETB組終17H成組傳輸時的組結束標記
控制字符符號名稱編碼功能說明SOH序始01H數據報文中報頭的報文格式數據報文常用的控制報文確認: SYNSYN0/1ACK否認: SYNSYNNAK詢問: SYNSYNENQ傳輸結束: SYNSYNEOT報文格式數據報文透明數據傳輸為什么提出透明數據傳輸?BSC中的數據以字符為單位數據字符與控制字符有可能相同解決方法:轉義字符DLE如果數據字符與控制字符相同,則在數據字符前增加DLEDLE也是控制字符,正文中出現DLE時也需要增加DLE透明數據傳輸為什么提出透明數據傳輸?BSC協議的執行過程BSC協議的執行過程停止等待協議編程實驗在異步串行口上實現停等協議,實現文件的可靠傳輸停止等待協議編程實驗在異步串行口上實現停等協議,實現文件的可簡化的停止等待協議目的:在不影響停等協議基本思想的基礎上簡化編程和實驗過程簡化后使用的控制字符:STX、ETX、EOT、ENQ、ACK和DLE簡化后的數據報文格式簡化的停止等待協議目的:在不影響停等協議基本思想的基礎上簡化界面示意圖界面示意圖選擇發送和接收文件explicitCFileDialog( BOOLbOpenFileDialog, LPCTSTRlpszDefExt=NULL, LPCTSTRlpszFileName=NULL, DWORDdwFlags=OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, LPCTSTRlpszFilter=NULL, CWnd*pParentWnd=NULL, DWORDdwSize=0);選擇發送和接收文件explicitCFileDialog(選擇發送和接收文件示例CStringFileName;CFileDialogGetFileName(TRUE, NULL, NULL, OFN_HIDEREADONLY, "文本文件(*.txt)|*.txt||", NULL, 0);if(GetFileName.DoModal()==IDOK) FileName=GetFileName.GetPathName();選擇發送和接收文件示例CStringFileName;磁盤文件操作virtualBOOLOpen( LPCTSTRlpszFileName, UINTnOpenFlags, CFileException*pError=NULL);virtualUINTRead( void*lpBuf, UINTnCount);
virtualvoidWrite( constvoid*lpBuf, UINTnCount);virtualvoidClose();磁盤文件操作virtualBOOLOpen(磁盤文件操作示例CFile rwFile; //需要讀取的文件char Buf[BUFFER_SIZE]; //讀取和寫入緩沖區int len,Len; if(!rwFile.Open(FileName, CFile::modeRead|CFile::modeWrite|CFile::typeBinary, NULL)) //打開文件{ …… //錯誤處理}……rwFile.Write(Buf,len); //將緩沖區Buf中len個字節寫入文件……len=rwFile.Read(Buf,Len); //從文件中讀取Len個字節的數據放入Buf中 //返回的len為實際讀到的字節數RecvFile.Close(); //關閉文件,文件操作結束磁盤文件操作示例CFile rwFile; //需要讀練習和思考通過改變傳輸速率、數據包長度、模擬長線路等操作定性地觀察停止等待協議的效率簡化的停止等待協議使用奇偶校驗碼對傳輸的正文信息進行校驗。奇偶校驗實現簡單但檢錯率不高。請查閱相關資料,將本實驗的奇偶校驗改為循環冗余校驗,以提高檢錯率練習和思考通過改變傳輸速率、數據包長度、模擬長線路等操作定性實驗2:利用停止等待協議傳輸數據文件張建忠徐敬東南開大學計算機系zhangjz@實驗2:利用停止等待協議傳輸數據文件張建忠徐敬東停止等待協議停止等待協議:一種最簡單的(但效率較低的)差錯和流量控制協議基本原理:發送方發完一數據包后,需要等待接收方的應答信息發送方收到正確認信息ACK:接收方接收正確,發送方可發送下一數據包發送方收到負確認信息NAK:接收方接收錯誤,發送方應重發出錯的數據包停止等待協議停止等待協議:一種最簡單的(但效率較低的)差錯和停止等待協議的基本工作過程停止等待協議的基本工作過程數據包丟失數據包在傳輸過程中丟失,接收方未接收到任何數據發送方在發送數據包后啟動定時器規定時間內沒有收到確認信息,則認為數據包丟失,需重傳該包重傳次數達到一定的值,則數據傳輸失敗數據包丟失數據包在傳輸過程中丟失,接收方未接收到任何數據確認信息丟失確認信息在傳輸過程中丟失發送方采用定時器,定時器溢出后重發數據包數據包編號接收方收到與前一數據包編號相同的數據包后需要將其拋棄停等機制至少需要兩個編號(通常為0和1)確認信息需要指明收到數據包的編號。ACK1:準備接收編號為1的數據包;ACK0:準備接收編號為0的數據包確認信息丟失確認信息在傳輸過程中丟失停止等待協議的效率停止等待協議的效率停止等待協議的效率傳輸速率V在某種傳輸介質中是固定的信道的長度L越長、數據速率v越高、發送的數據位數l越少,傳輸效率越低停止等待協議的效率傳輸速率V在某種傳輸介質中是固定的差錯檢測奇偶校驗(paritycheck)校驗和(checksum)循環冗余校驗碼(CRC,cyclicredundancycode)……差錯檢測奇偶校驗(paritycheck)奇偶校驗停等協議中通常使用縱向的奇偶檢驗發送方在發送的數據塊后擴展一個字節擴展字節中的第j位保證所有發送數據字節中第j位1的個數為奇數或偶數。偶校驗碼中第j位pj的計算公式奇校驗碼中第j位pj的計算公式奇偶校驗停等協議中通常使用縱向的奇偶檢驗循環冗余校驗碼循環冗余校驗碼循環冗余校驗碼舉例循環冗余校驗碼舉例停止等待協議BSCBSC:一種典型的面向字符型停止等待協議BSC:使用ASCII碼中的10個控制字符完成通信控制功能BSC:規定了數據報文、控制報文的格式BSC:規定了協議的操作過程特點:規程簡單、容易實現,比較適宜于在中低速網絡中使用停止等待協議BSCBSC:一種典型的面向字符型停止等待協議控制字符符號名稱編碼功能說明SOH序始01H數據報文中報頭的開始STX文始02H數據報文中正文的開始ETX文終03H數據報文中正文的結束EOT送畢04H傳輸結束ENQ詢問05H詢問對方并請求對方予以響應ACK正確認06H接收方正確接收數據報文后的響應NAK負確認15H接收方接收數據報文錯誤的響應DLE轉義10H修改緊隨其后字符的語義SYN同步16H收發雙方的字符同步ETB組終17H成組傳輸時的組結束標記
控制字符符號名稱編碼功能說明SOH序始01H數據報文中報頭的報文格式數據報文常用的控制報文確認: SYNSYN0/1ACK否認: SYNSYNNAK詢問: SYNSYNENQ傳輸結束: SYNSYNEOT報文格式數據報文透明數據傳輸為什么提出透明數據傳輸?BSC中的數據以字符為單位數據字符與控制字符有可能相同解決方法:轉義字符DLE如果數據字符與控制字符相同,則在數據字符前增加DLEDLE也是控制字符,正文中出現DLE時也需要增加DLE透明數據傳輸為什么提出透明數據傳輸?BSC協議的執行過程BSC協議的執行過程停止等待協議編程實驗在異步串行口上實現停等協議,實現文件的可靠傳輸停止等待協議編程實驗在異步串行口上實現停等協議,實現文件的可簡化的停止等待協議目的:在不影響停等協議基本思想的基礎上簡化編程和實驗過程簡化后使用的控制字符:STX、ETX、EOT、ENQ、ACK和DLE簡化后的數據報文格式簡化的停止等待協議目的:在不影響停等協議基本思想的基礎上簡化界面示意圖界面示意圖選擇發送和接收文件explicitCFileDialog( BOOLbOpenFileDialog, LPCTSTRlpszDefExt=NULL, LPCTSTRlpszFileName=NULL, DWORDdwFlags=OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, LPCTSTRlpszFilter=NULL, CWnd*pParentWnd=NULL, DWORDdwSize=0);選擇發送和接收文件explicitCFileDialog(選擇發送和接收文件示例CStringFileName;CFileDialogGetFileName(TRUE, NULL, NULL, OFN_HIDEREADONLY, "文本文件(*.txt)|*.txt||", NULL, 0);if(GetFileName.DoModal()==IDOK) FileName=GetFileName.GetPathName();選擇發送和接收文件示例CStringFileName;磁盤文件操作virtualBOOLOpen( LPCTSTRlpszFileName, UINTnOpenFlags, CFileException*pError=NULL);virtualUINTRead( void*lpBuf, UINTnCount);
virtualvoidWr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司每月娛樂活動方案
- 公司組織義工活動方案
- 公司組建舞蹈隊活動方案
- 公司研學策劃方案
- 公司組織燒烤策劃方案
- 公司派對活動方案
- 公司節后收心會活動方案
- 2025年心理健康教育輔導考試試題及答案
- 濱海生態補償機制-洞察及研究
- 2025年食品科學與工程專業考試試卷及答案
- 涼山州屬國有企業專業技術人員及管理人員招聘筆試真題2024
- 數學建模思想在中小學數學課堂教學中的應用研究
- 2025年五級應急救援員資格理論考試題庫(含答案)
- 國家開放大學漢語言文學本科《古代小說戲曲專題》期末紙質考試第一大題選擇題庫2025春期版
- GB/T 45236-2025化工園區危險品運輸車輛停車場建設規范
- 深圳市勞動合同樣本大全
- GB/T 45144-2024道路車輛車輪和輪輞使用、維護和安全的一般要求及報廢條件
- 2025年中考物理終極押題猜想(新疆卷)(考試版A4)
- 護理文化建設與人文護理
- 《植物生理學》章節復習提綱(大學期末復習資料)
評論
0/150
提交評論