




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
TCP/IP原理及實現
TCP/IP原理及實現
第二講TCP/IP軟件結構內容綱要
概述相關基礎
TCP/IP軟件結構-Xinu
TCP/IP軟件結構-Unix總結內容綱要
概述相關基礎
TCP/IP軟件結構-Xinu
TCP/IP軟件結構-Unix總結TCP/IP協議軟件的設計側重以下方面:1.確定協議實體的形式(過程/進程)2.協議功能的實現流程3.協議實體之間的交互(調用、進程間通信)2.1概述操作系統的基本功能包括存儲管理、文件管理、進程管理和通信、中斷管理等。TCP/IP軟件作為系統軟件或組件嵌入在操作系統內部,為用戶提供聯網的增值服務。TCP/IP軟件與操作系統2.1概述內容綱要
概述
相關基礎
TCP/IP軟件結構-Xinu
TCP/IP軟件結構-Unix總結2.2相關基礎當發生外部事件或者程序運行異常時,CPU暫時停止當前程序的執行轉而執行處理新情況的程序和執行過程。軟件中斷VS硬件中斷硬件中斷:中斷控制器軟件中斷:軟中斷指令中斷是什么?2.2相關基礎進程是正在執行的程序。進程VS程序操作系統通過一個特定的數據結構(PCB)來管理進程相關的信息,包括:進程狀態,程序計數器,堆棧區,數據段,寄存器組,所有打開的文件句柄等。進程是什么?2.2相關基礎intglobal=0;intmain(intarg){floatlocal;char*ptr;ptr=malloc(100);local=0;local+=10*5;…..….foo();…./*returnaddr*/….return0;}DynamicallyallocatedGlobalvariablesProgramcodeLocalvariablesReturnaddress進程的內存映像2.2相關基礎進程最主要的特性是獨立性、并發性。進程的并發性要求解決
進程間互斥和通信的問題。進程特性2.2相關基礎進程的同步:基于系統功能的需要,兩個或多個進程之間需要相互合作、協同工作。進程的互斥:多個進程因爭用臨界資源而互斥執行。臨界資源指的是一段時間內只允許一個進程訪問的資源。進程間的同步和互斥2.2相關基礎共享存儲器數據結構/存儲區消息傳遞直接VS間接管道通信共享文件常見的進程間同步和互斥的方法2.2相關基礎Xinu系統提供了三種進程間通信的機制:信號量 (semaphore)端口 (port)消息傳遞 (messagepasssing)2.2相關基礎信號量用于實現進程之間的合作和互斥。分為兩種類型:binary(二進制)和counting(計數)相關系統調用
semid=screate(initcount);//創建信號量
wait(semid)//進入臨界區(CS)前調用
signal(semid)//離開臨界區(CS)前調用
信號量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相關基礎二進制信號量的實現2.2相關基礎
信號量使用的基本方法semid=screate(1); while(1){
wait(semid); CS;
signal(semid);}2.2相關基礎
信號量使用實例一:在一個盒子里,混裝了數量相等的黑白圍棋子。設計自動分揀系統把黑子、白子分開。設分揀系統有二個進程P1和P2,其中P1揀白子;P2揀黑子。規定每個進程每次揀一子;當一個進程在揀時,不允許另一個進程去揀;當一個進程揀了一子時,必須讓另一個進程去揀。。
2.2相關基礎
信號量使用實例一:偽代碼P1:
repeatwait(s1);
揀白子
signal(s2);untilfalse;
P2:
repeatwait(s2);
揀白子
signal(s1);untilfalse;
s1=screate(1);s2=screate(0);2.2相關基礎
信號量使用實例二:桌上有一只盤子,最多可以容納兩個水果,每次僅能放入或取出一個水果。爸爸向盤子中放蘋果(apple),媽媽向盤子中放桔子(orange),兩個兒子專等吃盤子中的桔子,兩個女兒專等吃盤子中的蘋果。
2.2相關基礎
信號量使用實例二:偽代碼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相關基礎
信號量使用實例二:偽代碼(續)daughter:
repeatwait(s1);
取蘋果
signal(s);untilfalse;
son:
repeatwait(s2);
取桔子
signal(s);untilfalse;
2.2相關基礎計數信號量用于實現多進程對隊列訪問的同步,可以解決經典的生產-消費者問題。生產者進程向隊列中加入數據;消費者進程從隊列中提取數據;
在有限隊列長度的情況下,如何協調多進程的生產和消費過程。 計數信號量2.2相關基礎假設B是能夠容納N個數據的隊列;s1是跟蹤隊列還剩多少空閑位置的信號量;s2是記錄隊列B中已存在多少數據項的信號量。s1和s2的定義如下:s1=screate(N);s2=screate(0);
利用計數信號量解決生產-消費者問題2.2相關基礎Producer:wait(s1); …//向隊列添加數據signal(s2);Consumer:wait(s2); …//從隊列提取數據signal(s1);利用計數信號量解決生產-消費者問題(續)2.2相關基礎端口實際封裝了利用計數信號量實現生產者和消費者進程對隊列的同步訪問的過程。Xinu系統定義的端口相關系統調用包括:1.portid=pcreate(psize);//創建端口,指定隊列大小2.psend(portid,message);//發送數據到指定端口3.message=preceive(portid);//從端口接收數據4.n=pcount(portid);//返回隊列中的數據數目端口機制2.2相關基礎消息傳遞允許進程之間直接傳送消息,實現進程之間的通信。Xinu系統定義的消息傳遞相關系統調用包括:1.send(msg,pid);//發送消息2.message=receive();//等待消息到來3.message=recvclr();//清除隊列并接收4.message=recvtim(50);//等待消息到來,并制定最大的等待時間消息傳遞機制內容綱要
概述相關基礎
TCP/IP軟件結構-Xinu
TCP/IP軟件結構-Unix總結2.3TCP/IP軟件結構-Xinu當數據(幀)到達網絡接口設備(NIC)時,系統內部形成硬中斷,CPU根據中斷控制器提供的中斷類型號找到相應的中斷處理程序(網卡驅動),啟動網絡接口層的協議處理過程。Xinu系統的網絡接口層軟件設計(以太網)
1.以太數據幀的解析處理
2.與上層協議軟件的交互接收數據時的協議處理流程2.3TCP/IP軟件結構-Xinu差錯檢測(硬件處理)殘幀檢測(硬件處理)協議解析(分用處理)
ARPRARPIP數據幀的處理2.3TCP/IP軟件結構-XinuCPU調用網卡驅動將解析獲得的IP數據包置入接口隊列,并通過消息來通知IP協議軟件實體。接口隊列的設計:兩種思想
單接口隊列為每個網絡接口設置單獨的隊列,存放到達對應接口的所有數據包;
多接口隊列設置一個全局隊列,存放到達所有接口的數據包,實現多個接口之間的共享使用。
Xinu系統采用單接口隊列。接口層與IP協議的交互2.3TCP/IP軟件結構-XinuIP協議實現為一個獨立的進程,不斷從多個接口隊列中提取IP數據包并進行處理。IP協議軟件設計內容:從接口隊列提取數據包的策略
空隊列情況下的處理協議解析的實現
與其他協議之間的交互(TCP、UDP、ICMP等)路由表的設計、路由操作接收數據時的協議處理流程-續2.3TCP/IP軟件結構-XinuIP進程與相鄰層協議的交互IP-接口共享隊列+消息IP-UDP
過程調用IP-TCP
進程間通信(端口)2.3TCP/IP軟件結構-XinuIP進程與相鄰層協議的交互IP-接口共享隊列+消息IP-UDP
過程調用IP-TCP
進程間通信(端口)2.3TCP/IP軟件結構-XinuIP進程與相鄰層協議的交互IP-接口共享隊列+消息IP-UDP
過程調用IP-TCP
進程間通信(端口)2.3TCP/IP軟件結構-Xinu由于UDP協議很簡單,僅僅提供端口復用和差錯檢測的功能,所以,UDP協議實現為過程直接被IP進程調用來處理到達的UDP數據包。UDP協議軟件設計內容:協議的解析功能
與應用層協議實體之間的交互
接收數據時的協議處理流程-續2.3TCP/IP軟件結構-XinuTCP協議很復雜,包含許多控制功能,如差錯控制、流量控制、擁塞控制、連接管理等。Xinu系統中TCP協議軟件實現為三個獨立的進程,分別是TCP輸入進程、TCP輸出進程和定時管理進程。三個進程協同工作,完成TCP協議的功能。其中,TCP輸入進程負責TCP報文段的輸入處理過程。
接收數據時的協議處理流程-續2.3TCP/IP軟件結構-Xinu從指定端口中提取來自IP進程的輸入TCP數據分段執行輸入分段的報文解析任務。若接收窗口允許,接收無差錯的報文,存放到對應的TCP輸入緩沖,等待應用進程提取。如必要,向TCP輸出進程指示確認消息。
TCP輸入進程2.3TCP/IP軟件結構-Xinu應用進程通過系統調用訪問UDP的輸出過程,根據用戶提供數據和尋址信息封裝成UDP數據包,并通過端口交付給IP進程。應用進程通過系統調用將等待發送的數據存放到對應TCP連接的輸出緩沖中,后續的數據發送過程由TCP輸出進程來執行。發送數據時的協議處理流程2.3TCP/IP軟件結構-XinuTCP的數據發送由TCP輸出進程和定時管理進程協同完成。TCP輸出進程從相應輸出緩沖中提取數據,結合連接的信息封裝TCP報文分段,交付給IP進程,并創建定時事件。TCP定時管理進程負責對所有的定時事件進行管理,及時發現超時,并通知TCP輸出進程執行重傳。TCP數據發送過程2.3TCP/IP軟件結構-Xinu端口的作用?2.3TCP/IP軟件結構-XinuIP軟件接收到來自上層的數據后,執行:封裝IP分組選擇路由
交付網絡接口發送數據時的協議處理流程(續)2.3TCP/IP軟件結構-Xinu單接口輸出隊列每個網絡接口設置一個獨立輸出隊列,存放來自IP進程的等待從對應接口輸出的數據包。接口輸出隊列滿怎么辦?2.3TCP/IP軟件結構-Xinu網絡接口層執行輸出通過以下兩種途徑:當接口硬件空閑時,IP協議軟件直接調用接口程序,執行輸出處理;一旦本次輸出完成,接口硬件觸發輸出中斷,CPU執行中斷處理,調用接口輸出程序,從接口輸出隊列中提取數據并發送。發送數據時的協議處理流程(續)2.3TCP/IP軟件結構-Xinu協議實體形式:
進程+過程(包括中斷服務例程)協議間的交互:
進程間通信(消息傳遞+端口+信號量)過程調用Xinu系統TCP/IP軟件設計思想總結內容綱要
概述相關基礎
TCP/IP軟件結構-Xinu
TCP/IP軟件結構-Unix總結2.4TCP/IP軟件結
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年 上海寶山區社區工作者招聘考試筆試試題附答案
- 2025年 懷化麻陽苗族自治縣招聘事業單位工作人員考試試題附答案
- 2025年 漢陰縣職業技術教育培訓中心招聘考試筆試試題附答案
- 2025年 福建信息職業技術學院招聘考試筆試試題附答案
- 2025年中國定制門窗行業市場深度分析及未來發展趨勢預測報告
- 中國影音設備行業市場全景調研及投資規劃建議報告
- 2024年中國電解氯化氫行業市場調查報告
- 中國甜菜行業發展潛力預測及投資戰略研究報告
- 2019-2025年中國低溫肉制品市場行情動態分析及發展前景趨勢預測報告
- 中國單色數字示波器行業市場發展前景及發展趨勢與投資戰略研究報告(2024-2030)
- 風場前期相關windpro2中文版幫助文件
- GB/T 12149-2017工業循環冷卻水和鍋爐用水中硅的測定
- 成都小升初數學分班考試試卷五
- Q∕SY 01007-2016 油氣田用壓力容器監督檢查技術規范
- 水利水電 流體力學 外文文獻 外文翻譯 英文文獻 混凝土重力壩基礎流體力學行為分析
- 零星維修工程項目施工方案
- 物流公司超載超限整改報告
- 起重機安裝施工記錄表
- 江蘇省高中學生學籍卡
- 碳排放問題的研究--數學建模論文
- 贏越酒會講解示范
評論
0/150
提交評論