- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WinSock 程式設計原理介紹
TCP/IP通訊協定與主從架構
TCP/IP通訊協定組是美國國防部有鑑於單位內各種不同廠商儀器設備與網路眾多,期待能將之互連,提供使用者更方便與整體的服務,因此開始了設備網路互連的計畫,TCP/IP協定的架構如圖一所示,由上而下分別是:應用層、傳輸層、Internet層、與實體網路層。其中Internet層相當於OSI 七層架構的網路層,此一層次的的通訊協定即IP(Internet Protcol),而傳輸層即相當於OSI七層架構的傳輸層,此層的通訊協定有兩種,分別是UDP(User Datagram Protocol)與TCP(Transmission Control Protocol)。
圖一、TCP/IP通訊協定之層次架構
網際網路協定(IP),提供了網際網路上每部連接的主機的定址模式,該位址即眾人所熟知的IP位址,IP位址由兩部份所組成:一是網路號碼(Net ID)與主機號碼(Host ID),共分成五大類:Class A至Class E,如圖二所示。此外網際網路協定並提供選徑、封包切割、封包重組等功能,其藉由IP位址與各種不同的路徑協定,如RIP、OSPF等的協助,將資料可以由一部IP主機傳送到網際網路上的另一部IP主機,其中透過網際網路協定所傳送的資料有一固定格式稱為IP封包,而由於封包在網際網路上傳送的過程中,由於經過各式不同的網路,因此封包的大小規定不一,於是傳送的過程中可能需要有切割與重組的處理。
UDP是一種非連線導向式(Connectionless)的傳輸服務,其提供不可靠的資料務服務(Datagram services)。資料務服務就像是信件遞送的服務,將資料包成一封一封的信送到目的地。由於信不一定保證送達,且送達的順序可能有變,因此我們認為這種服務是屬於不可靠的的服務(Unreliable service)。這種服務的優點是簡單。
圖二、IP位址的種類
而TCP則是一種連線導向式(Connection-based or Connection-oriented)的傳輸服務,也稱為資料流服務(Stream service)。資料流的服務就像是電話的服務,資料送出端與目的端之間彷彿有一條虛擬的連線。當你撥一個號碼,有時你會聽到忙線的聲音,代表你建立連線的要求被拒絕了。而當你聽到鈴聲且有人回話時,表示你成功的建立了連線。這種服務保證資料會正確且依序的到達。此類服務屬於可靠的服務(Reliable service)。
於TCP/IP網路上,網路應用程式的基本運作架構為主從架構模式,其運作模式如圖三所示:
圖三、主從架構示意圖
其中用戶端(Client)主動提出需求,而伺服器端(Server)會被動的等待用戶端的需求,病逝時的做出回應。在初步接觸的時候,用戶端會送出第一個封包,由一個伺服器接收。在初步接觸之後,用戶端和伺服器端均可以開始送收資料。我們由初步接觸的動作來判定誰誰是用戶端,誰是伺服器端。當網路應用程式開始運作通訊之後之後,兩端的角色則可隨時因應用程式的需求而互換。
如前所示,在TCP/IP通訊協定下,用戶端和伺服器端之間通訊連結所用的協定有兩種選折。一是非連線導向的UDP,另一種是連線導向式的服務TCP。
Socket 簡介
為方便應用程式設計的開發,提供一個標準的應用程式介面(API:Application Program Interface)是一個常見的做法,其中BSD Socket API是一知名的提供網路傳輸功能的API,它是BSD UNIX的一部份,提供系統使用者有關TCP/IP網路的功能,而WinSock即是以BSD Socket API基礎開發而來,適用於Windows的作業平台上。
WinSock API於Windows系統上的實作方式是採用DLL(Dynamic Linking Library)的做法,如圖四所示。
(a) Windows 95 (b) Windows NT
圖四、Windows95與Windows NT中TCP/IP功能與Socket API的做法
當用戶端和伺服器端要建立連結時,兩端都必須要有互相知道的通訊端點,這個通訊端點稱之為socket。在TCP/IP的協定下,socket是由一個IP和一個port number (通訊埠編號)所組成的。IP協定提供封包的定址服務,使封包在IP網路上傳送時,可以找到該IP主機的位址。而port number則是為了讓IP主機知道要用哪一個通訊埠來接收這個封包。所以,一個socket包含了三個部份:協定,通訊埠編號,和IP位址。
2.1 WinSock應用程式機制簡介:
當我們要開發一個網路應用程式的時候,首先要做的事情,是決定要使用的底層協定。在本實
您可能关注的文档
- T The manager 致 经理HSBC Bank China Cmpany Limite 汇丰银行.pdf
- VOC冷凝系統介紹.pdf
- 安宁疗护的历史.ppt
- 巴马香猪种猪的饲养管.pdf
- 包埋光合细菌净化观赏鱼养殖污水的研究.doc
- 悲莫悲兮生别离.ppt
- 北方裂解炉的动态仿真.pdf
- 北京翻译公司-三玛新诺翻译公司收集整理.pdf
- 编辑真实评测 最新款超薄日用卫生巾测评报告.pdf
- 步整合税务信息化.pdf
- 2025年浙江省舟山市高职单招职业技能考试模拟试题及答案解析.docx
- 2025年长沙环境保护职业技术学院单招职业技能考试模拟试题及答案解析.docx
- 2025年运城职业技术大学单招职业技能考试模拟试题及答案解析.docx
- 2025年浙江机电职业技术学院单招职业技能考试模拟试题及答案解析.docx
- 2025年漳州职业技术学院单招职业技能考试模拟试题及答案解析.docx
- 2025年长垣烹饪职业技术学院单招职业技能考试模拟试题及答案解析.docx
- 2025年浙江省温州市高职单招职业技能考试题库及答案解析.docx
- 2025年浙江工商职业技术学院单招职业技能考试模拟试题及答案解析.docx
- 2025年云南省丽江市高职单招职业技能考试题库及答案解析.docx
- 2025年云南省昭通市高职单招职业技能考试模拟试题及答案解析.docx
文档评论(0)