




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
TCP/IP原理及實現(xiàn)
TCP/IP原理及實現(xiàn)
第二講TCP/IP軟件結(jié)構(gòu)內(nèi)容綱要
概述相關(guān)基礎(chǔ)
TCP/IP軟件結(jié)構(gòu)-Xinu
TCP/IP軟件結(jié)構(gòu)-Unix總結(jié)內(nèi)容綱要
概述相關(guān)基礎(chǔ)
TCP/IP軟件結(jié)構(gòu)-Xinu
TCP/IP軟件結(jié)構(gòu)-Unix總結(jié)TCP/IP協(xié)議軟件的設(shè)計側(cè)重以下方面:1.確定協(xié)議實體的形式(過程/進(jìn)程)2.協(xié)議功能的實現(xiàn)流程3.協(xié)議實體之間的交互(調(diào)用、進(jìn)程間通信)2.1概述操作系統(tǒng)的基本功能包括存儲管理、文件管理、進(jìn)程管理和通信、中斷管理等。TCP/IP軟件作為系統(tǒng)軟件或組件嵌入在操作系統(tǒng)內(nèi)部,為用戶提供聯(lián)網(wǎng)的增值服務(wù)。TCP/IP軟件與操作系統(tǒng)2.1概述內(nèi)容綱要
概述
相關(guān)基礎(chǔ)
TCP/IP軟件結(jié)構(gòu)-Xinu
TCP/IP軟件結(jié)構(gòu)-Unix總結(jié)2.2相關(guān)基礎(chǔ)當(dāng)發(fā)生外部事件或者程序運行異常時,CPU暫時停止當(dāng)前程序的執(zhí)行轉(zhuǎn)而執(zhí)行處理新情況的程序和執(zhí)行過程。軟件中斷VS硬件中斷硬件中斷:中斷控制器軟件中斷:軟中斷指令中斷是什么?2.2相關(guān)基礎(chǔ)進(jìn)程是正在執(zhí)行的程序。進(jìn)程VS程序操作系統(tǒng)通過一個特定的數(shù)據(jù)結(jié)構(gòu)(PCB)來管理進(jìn)程相關(guān)的信息,包括:進(jìn)程狀態(tài),程序計數(shù)器,堆棧區(qū),數(shù)據(jù)段,寄存器組,所有打開的文件句柄等。進(jìn)程是什么?2.2相關(guān)基礎(chǔ)intglobal=0;intmain(intarg){floatlocal;char*ptr;ptr=malloc(100);local=0;local+=10*5;…..….foo();…./*returnaddr*/….return0;}DynamicallyallocatedGlobalvariablesProgramcodeLocalvariablesReturnaddress進(jìn)程的內(nèi)存映像2.2相關(guān)基礎(chǔ)進(jìn)程最主要的特性是獨立性、并發(fā)性。進(jìn)程的并發(fā)性要求解決
進(jìn)程間互斥和通信的問題。進(jìn)程特性2.2相關(guān)基礎(chǔ)進(jìn)程的同步:基于系統(tǒng)功能的需要,兩個或多個進(jìn)程之間需要相互合作、協(xié)同工作。進(jìn)程的互斥:多個進(jìn)程因爭用臨界資源而互斥執(zhí)行。臨界資源指的是一段時間內(nèi)只允許一個進(jìn)程訪問的資源。進(jìn)程間的同步和互斥2.2相關(guān)基礎(chǔ)共享存儲器數(shù)據(jù)結(jié)構(gòu)/存儲區(qū)消息傳遞直接VS間接管道通信共享文件常見的進(jìn)程間同步和互斥的方法2.2相關(guān)基礎(chǔ)Xinu系統(tǒng)提供了三種進(jìn)程間通信的機(jī)制:信號量 (semaphore)端口 (port)消息傳遞 (messagepasssing)2.2相關(guān)基礎(chǔ)信號量用于實現(xiàn)進(jìn)程之間的合作和互斥。分為兩種類型:binary(二進(jìn)制)和counting(計數(shù))相關(guān)系統(tǒng)調(diào)用
semid=screate(initcount);//創(chuàng)建信號量
wait(semid)//進(jìn)入臨界區(qū)(CS)前調(diào)用
signal(semid)//離開臨界區(qū)(CS)前調(diào)用
信號量typedef
struct{ unsignedintcount;
list_of_processesqueue;
}semaphore;wait(s):
if(s.count≥1)then
s.count--elseblock(s)whereblock(s)placestheprocessons.queueandinvokestheprocessscheduler.signal(s):ifs.queueisnon-emptythen
wakeup(s);else
s.count++;wherewakeup(s)removesaprocessfroms.queueandplacesitintothereadylist.2.2相關(guān)基礎(chǔ)二進(jìn)制信號量的實現(xiàn)2.2相關(guān)基礎(chǔ)
信號量使用的基本方法semid=screate(1); while(1){
wait(semid); CS;
signal(semid);}2.2相關(guān)基礎(chǔ)
信號量使用實例一:在一個盒子里,混裝了數(shù)量相等的黑白圍棋子。設(shè)計自動分揀系統(tǒng)把黑子、白子分開。設(shè)分揀系統(tǒng)有二個進(jìn)程P1和P2,其中P1揀白子;P2揀黑子。規(guī)定每個進(jìn)程每次揀一子;當(dāng)一個進(jìn)程在揀時,不允許另一個進(jìn)程去揀;當(dāng)一個進(jìn)程揀了一子時,必須讓另一個進(jìn)程去揀。。
2.2相關(guān)基礎(chǔ)
信號量使用實例一:偽代碼P1:
repeatwait(s1);
揀白子
signal(s2);untilfalse;
P2:
repeatwait(s2);
揀白子
signal(s1);untilfalse;
s1=screate(1);s2=screate(0);2.2相關(guān)基礎(chǔ)
信號量使用實例二:桌上有一只盤子,最多可以容納兩個水果,每次僅能放入或取出一個水果。爸爸向盤子中放蘋果(apple),媽媽向盤子中放桔子(orange),兩個兒子專等吃盤子中的桔子,兩個女兒專等吃盤子中的蘋果。
2.2相關(guān)基礎(chǔ)
信號量使用實例二:偽代碼father:
repeat
wait(s);
放蘋果
signal(s1);untilfalse;
mother:
repeat
wait(s);
放桔子
signal(s2);untilfalse;
s=screate(2);s1=screate(0);s2=screate(0);2.2相關(guān)基礎(chǔ)
信號量使用實例二:偽代碼(續(xù))daughter:
repeatwait(s1);
取蘋果
signal(s);untilfalse;
son:
repeatwait(s2);
取桔子
signal(s);untilfalse;
2.2相關(guān)基礎(chǔ)計數(shù)信號量用于實現(xiàn)多進(jìn)程對隊列訪問的同步,可以解決經(jīng)典的生產(chǎn)-消費者問題。生產(chǎn)者進(jìn)程向隊列中加入數(shù)據(jù);消費者進(jìn)程從隊列中提取數(shù)據(jù);
在有限隊列長度的情況下,如何協(xié)調(diào)多進(jìn)程的生產(chǎn)和消費過程。 計數(shù)信號量2.2相關(guān)基礎(chǔ)假設(shè)B是能夠容納N個數(shù)據(jù)的隊列;s1是跟蹤隊列還剩多少空閑位置的信號量;s2是記錄隊列B中已存在多少數(shù)據(jù)項的信號量。s1和s2的定義如下:s1=screate(N);s2=screate(0);
利用計數(shù)信號量解決生產(chǎn)-消費者問題2.2相關(guān)基礎(chǔ)Producer:wait(s1); …//向隊列添加數(shù)據(jù)signal(s2);Consumer:wait(s2); …//從隊列提取數(shù)據(jù)signal(s1);利用計數(shù)信號量解決生產(chǎn)-消費者問題(續(xù))2.2相關(guān)基礎(chǔ)端口實際封裝了利用計數(shù)信號量實現(xiàn)生產(chǎn)者和消費者進(jìn)程對隊列的同步訪問的過程。Xinu系統(tǒng)定義的端口相關(guān)系統(tǒng)調(diào)用包括:1.portid=pcreate(psize);//創(chuàng)建端口,指定隊列大小2.psend(portid,message);//發(fā)送數(shù)據(jù)到指定端口3.message=preceive(portid);//從端口接收數(shù)據(jù)4.n=pcount(portid);//返回隊列中的數(shù)據(jù)數(shù)目端口機(jī)制2.2相關(guān)基礎(chǔ)消息傳遞允許進(jìn)程之間直接傳送消息,實現(xiàn)進(jìn)程之間的通信。Xinu系統(tǒng)定義的消息傳遞相關(guān)系統(tǒng)調(diào)用包括:1.send(msg,pid);//發(fā)送消息2.message=receive();//等待消息到來3.message=recvclr();//清除隊列并接收4.message=recvtim(50);//等待消息到來,并制定最大的等待時間消息傳遞機(jī)制內(nèi)容綱要
概述相關(guān)基礎(chǔ)
TCP/IP軟件結(jié)構(gòu)-Xinu
TCP/IP軟件結(jié)構(gòu)-Unix總結(jié)2.3TCP/IP軟件結(jié)構(gòu)-Xinu當(dāng)數(shù)據(jù)(幀)到達(dá)網(wǎng)絡(luò)接口設(shè)備(NIC)時,系統(tǒng)內(nèi)部形成硬中斷,CPU根據(jù)中斷控制器提供的中斷類型號找到相應(yīng)的中斷處理程序(網(wǎng)卡驅(qū)動),啟動網(wǎng)絡(luò)接口層的協(xié)議處理過程。Xinu系統(tǒng)的網(wǎng)絡(luò)接口層軟件設(shè)計(以太網(wǎng))
1.以太數(shù)據(jù)幀的解析處理
2.與上層協(xié)議軟件的交互接收數(shù)據(jù)時的協(xié)議處理流程2.3TCP/IP軟件結(jié)構(gòu)-Xinu差錯檢測(硬件處理)殘幀檢測(硬件處理)協(xié)議解析(分用處理)
ARPRARPIP數(shù)據(jù)幀的處理2.3TCP/IP軟件結(jié)構(gòu)-XinuCPU調(diào)用網(wǎng)卡驅(qū)動將解析獲得的IP數(shù)據(jù)包置入接口隊列,并通過消息來通知IP協(xié)議軟件實體。接口隊列的設(shè)計:兩種思想
單接口隊列為每個網(wǎng)絡(luò)接口設(shè)置單獨的隊列,存放到達(dá)對應(yīng)接口的所有數(shù)據(jù)包;
多接口隊列設(shè)置一個全局隊列,存放到達(dá)所有接口的數(shù)據(jù)包,實現(xiàn)多個接口之間的共享使用。
Xinu系統(tǒng)采用單接口隊列。接口層與IP協(xié)議的交互2.3TCP/IP軟件結(jié)構(gòu)-XinuIP協(xié)議實現(xiàn)為一個獨立的進(jìn)程,不斷從多個接口隊列中提取IP數(shù)據(jù)包并進(jìn)行處理。IP協(xié)議軟件設(shè)計內(nèi)容:從接口隊列提取數(shù)據(jù)包的策略
空隊列情況下的處理協(xié)議解析的實現(xiàn)
與其他協(xié)議之間的交互(TCP、UDP、ICMP等)路由表的設(shè)計、路由操作接收數(shù)據(jù)時的協(xié)議處理流程-續(xù)2.3TCP/IP軟件結(jié)構(gòu)-XinuIP進(jìn)程與相鄰層協(xié)議的交互IP-接口共享隊列+消息IP-UDP
過程調(diào)用IP-TCP
進(jìn)程間通信(端口)2.3TCP/IP軟件結(jié)構(gòu)-XinuIP進(jìn)程與相鄰層協(xié)議的交互IP-接口共享隊列+消息IP-UDP
過程調(diào)用IP-TCP
進(jìn)程間通信(端口)2.3TCP/IP軟件結(jié)構(gòu)-XinuIP進(jìn)程與相鄰層協(xié)議的交互IP-接口共享隊列+消息IP-UDP
過程調(diào)用IP-TCP
進(jìn)程間通信(端口)2.3TCP/IP軟件結(jié)構(gòu)-Xinu由于UDP協(xié)議很簡單,僅僅提供端口復(fù)用和差錯檢測的功能,所以,UDP協(xié)議實現(xiàn)為過程直接被IP進(jìn)程調(diào)用來處理到達(dá)的UDP數(shù)據(jù)包。UDP協(xié)議軟件設(shè)計內(nèi)容:協(xié)議的解析功能
與應(yīng)用層協(xié)議實體之間的交互
接收數(shù)據(jù)時的協(xié)議處理流程-續(xù)2.3TCP/IP軟件結(jié)構(gòu)-XinuTCP協(xié)議很復(fù)雜,包含許多控制功能,如差錯控制、流量控制、擁塞控制、連接管理等。Xinu系統(tǒng)中TCP協(xié)議軟件實現(xiàn)為三個獨立的進(jìn)程,分別是TCP輸入進(jìn)程、TCP輸出進(jìn)程和定時管理進(jìn)程。三個進(jìn)程協(xié)同工作,完成TCP協(xié)議的功能。其中,TCP輸入進(jìn)程負(fù)責(zé)TCP報文段的輸入處理過程。
接收數(shù)據(jù)時的協(xié)議處理流程-續(xù)2.3TCP/IP軟件結(jié)構(gòu)-Xinu從指定端口中提取來自IP進(jìn)程的輸入TCP數(shù)據(jù)分段執(zhí)行輸入分段的報文解析任務(wù)。若接收窗口允許,接收無差錯的報文,存放到對應(yīng)的TCP輸入緩沖,等待應(yīng)用進(jìn)程提取。如必要,向TCP輸出進(jìn)程指示確認(rèn)消息。
TCP輸入進(jìn)程2.3TCP/IP軟件結(jié)構(gòu)-Xinu應(yīng)用進(jìn)程通過系統(tǒng)調(diào)用訪問UDP的輸出過程,根據(jù)用戶提供數(shù)據(jù)和尋址信息封裝成UDP數(shù)據(jù)包,并通過端口交付給IP進(jìn)程。應(yīng)用進(jìn)程通過系統(tǒng)調(diào)用將等待發(fā)送的數(shù)據(jù)存放到對應(yīng)TCP連接的輸出緩沖中,后續(xù)的數(shù)據(jù)發(fā)送過程由TCP輸出進(jìn)程來執(zhí)行。發(fā)送數(shù)據(jù)時的協(xié)議處理流程2.3TCP/IP軟件結(jié)構(gòu)-XinuTCP的數(shù)據(jù)發(fā)送由TCP輸出進(jìn)程和定時管理進(jìn)程協(xié)同完成。TCP輸出進(jìn)程從相應(yīng)輸出緩沖中提取數(shù)據(jù),結(jié)合連接的信息封裝TCP報文分段,交付給IP進(jìn)程,并創(chuàng)建定時事件。TCP定時管理進(jìn)程負(fù)責(zé)對所有的定時事件進(jìn)行管理,及時發(fā)現(xiàn)超時,并通知TCP輸出進(jìn)程執(zhí)行重傳。TCP數(shù)據(jù)發(fā)送過程2.3TCP/IP軟件結(jié)構(gòu)-Xinu端口的作用?2.3TCP/IP軟件結(jié)構(gòu)-XinuIP軟件接收到來自上層的數(shù)據(jù)后,執(zhí)行:封裝IP分組選擇路由
交付網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)時的協(xié)議處理流程(續(xù))2.3TCP/IP軟件結(jié)構(gòu)-Xinu單接口輸出隊列每個網(wǎng)絡(luò)接口設(shè)置一個獨立輸出隊列,存放來自IP進(jìn)程的等待從對應(yīng)接口輸出的數(shù)據(jù)包。接口輸出隊列滿怎么辦?2.3TCP/IP軟件結(jié)構(gòu)-Xinu網(wǎng)絡(luò)接口層執(zhí)行輸出通過以下兩種途徑:當(dāng)接口硬件空閑時,IP協(xié)議軟件直接調(diào)用接口程序,執(zhí)行輸出處理;一旦本次輸出完成,接口硬件觸發(fā)輸出中斷,CPU執(zhí)行中斷處理,調(diào)用接口輸出程序,從接口輸出隊列中提取數(shù)據(jù)并發(fā)送。發(fā)送數(shù)據(jù)時的協(xié)議處理流程(續(xù))2.3TCP/IP軟件結(jié)構(gòu)-Xinu協(xié)議實體形式:
進(jìn)程+過程(包括中斷服務(wù)例程)協(xié)議間的交互:
進(jìn)程間通信(消息傳遞+端口+信號量)過程調(diào)用Xinu系統(tǒng)TCP/IP軟件設(shè)計思想總結(jié)內(nèi)容綱要
概述相關(guān)基礎(chǔ)
TCP/IP軟件結(jié)構(gòu)-Xinu
TCP/IP軟件結(jié)構(gòu)-Unix總結(jié)2.4TCP/IP軟件結(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 列夫·托爾斯泰《窮人》:環(huán)境描寫的作用、語句理解(講義)解析版-2025-2026學(xué)年六年級語文上冊(統(tǒng)編版五四學(xué)制)
- 遼寧省沈陽市五校協(xié)作體2024-2025學(xué)年高一年級上冊期末考試 化學(xué)試題(解析版)
- 鈉及其化合物 同步測試-人教版高中化學(xué)必修第一冊
- 滬科版八年級數(shù)學(xué)下冊第17章學(xué)情評估
- 湖南省永州市藍(lán)山縣2023-2024學(xué)年七年級上學(xué)期期中數(shù)學(xué)試卷(含答案)
- 2025至2030年中國工程設(shè)備融資租賃行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報告
- 2025至2030年中國冷鮮雞肉行業(yè)市場運行現(xiàn)狀及未來發(fā)展預(yù)測報告
- MySQL數(shù)據(jù)庫應(yīng)用實戰(zhàn)教程(慕課版)(第2版)實訓(xùn)指導(dǎo)-9-2 權(quán)限管理
- 農(nóng)產(chǎn)品代理服務(wù)協(xié)議合同
- 租商鋪協(xié)議書合租商鋪協(xié)議書
- 化學(xué)藥品說明書及標(biāo)簽藥學(xué)相關(guān)信息撰寫指導(dǎo)原則(試行)
- 煤礦安全生產(chǎn)管理培訓(xùn)課件
- 醫(yī)院醫(yī)德醫(yī)風(fēng)培訓(xùn)課件
- 酒店前臺發(fā)票管理制度
- 離心機(jī)驗證方案
- 智能客服系統(tǒng)操作手冊
- 設(shè)備部安全培訓(xùn)
- 2025年上音b級樂理試題及答案
- 外研版英語九年級下冊單詞表
- 2024貴州畢節(jié)市農(nóng)業(yè)發(fā)展集團(tuán)有限公司面向社會引進(jìn)2名專業(yè)技術(shù)人才筆試參考題庫附帶答案詳解
- 翼狀胬肉手術(shù)及并發(fā)癥的處理
評論
0/150
提交評論