- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通信网络程序的设计第6章 TCP IP网络编程
基于TCP/IP协议的网络程序是当前网络通信的主要方式,TCP/IP协议目前也处于鼎盛时期。随着TCP/IP由IPv4向IPv6过渡,可以预见,这种通信协议还会使用很长时间。因此,基于TCP/IP协议的编程方法也是本书所介绍的重点内容之一。 本章首先简要地介绍TCP/IP协议的基本内容,然后介绍TCP/IP在Windows操作系统下网络编程的重要编程接口——WinSock,基于WinSock进行TCP/IP传输层两种通信方式(即TCP和UDP)的编程,接着介绍基于WinSock的TCP/IP组播编程。为了使网络编程更加具有灵活性,本章介绍了三种I/O控制方法。 6.1.1 基本概念 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是一系列协议,或者说是一个协议族,它定义了数据传输如何通过因特网进行交换。TCP/IP起源于20世纪60年代末美国政府资助的一个分组交换网络研究项目,到20世纪90年代已发展成为计算机之间最常用的组网协议。 TCP/IP允许分布在各地安装着完全不同系统的计算机互相通信,是一个真正的开放系统。TCP/IP是根据它最主要的两个协议命名的,已经实际应用了许多年,并在世界范围内证明了它的有效性。 1.协议栈结构 TCP/IP模型进一步提炼与合并了OSI模型,它取消了OSI模型中的表示层和会话层,并合并了数据链路层和物理层(由于主要与连接有关并依赖于阐述介质,因此TCP/IP参考模型实际上对物理层并没有定义),使得逻辑更加简洁明晰,在此基础上逐步实现了各种子协议。TCP/IP模型与OSI模型的比较如图6-1所示。 TCP/IP模型每一层所负责的功能如下: 链路层:有时被称做数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。 网络层:有时也被称为互连网层,负责分组在网络中的活动,包括IP(网际协议)、ICMP(Internet互联网控制报文协议)以及IGMP(Internet组管理协议)。这一层TCP/IP有两个基本组件:一个是IP协议,另一个是路由协议。 图6-1 TCP/IP模型与OSI模型的比较 传输层:该层主要为两台主机上的应用程序提供端到端的数据通信,它分为两个不同的协议,即TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供端到端的保证质量的数据传输,该层负责数据的分组、质量控制和超时重发等,对于应用层来说,就可以忽略这些工作。UDP则只简单地把数据报从一端发送到另一端,至于数据是否到达或按时到达、数据是否损坏,这都必须由应用层来做。这两种协议各有用途,前者可用于面向连接的应用,而后者则在及时性服务中有着重要的用途,如网络多媒体通信等。 应用层:该层负责处理实际的应用程序细节,包括Telnet、HTTP、SMTP、FTP、DNS和SNMP等协议和应用。 层与层之间的联系与逻辑分离是利用封装与分用过程分别实现的。 2.协议封装 当应用程序传送数据时,数据按自上而下的方向被送入协议栈中,然后逐个通过每一层直到被当做一串比特流送入网络。其中,每一层对收到的上一层数据都要增加一些首部信息(有时还要增加尾部信息),通过层层包裹完成数据的封装过程,使之适合网络传输,这相当于完成了1.1.2节提及的数字通信中的信道编码。以应用程序通过TCP协议传输数据为例,该过程如图6-2所示。 图6-2 应用程序通过TCP协议传输数据封装过程 用户数据首先被添加应用首部,传给TCP层;在TCP层,数据被再安装TCP首部后,传给IP层(TCP传给IP的数据单元称作TCP报文段或简称为TCP段);在IP层,数据被再次安装IP首部后,传给链路层(IP传给网络接口层的数据单元称作IP数据报);在链路层,数据再被安装以太网首部,并添加以太网尾部,形成适合网络(光、电信号)传输的数据比特流,该比特流称做帧(Frame)。 读者可能对首部和尾部的概念还不太了解。实际上,首部和尾部是一种协议指定的数据结构,按照一定的顺序规则填写数据。关于各种首部中的字段含义、用途将在后面章节进行详细介绍。 3.协议分用 网络接口分别发送和接收IP、ARP和RARP数据。IP层接口负责发送ICMP、IGMP、TCP、UDP数据包,因此必须在以太网的帧首部、IP特定字段中加入某种形式的标识,以指明生成数据的网络协议。例如:以太网的帧首部有一个16?bit的帧类型域,当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议上加的报文首部。每层协议都要检查报文协议标识,以确定
您可能关注的文档
最近下载
- 曲沃县各级文物保护单位一览表(2021版).docx VIP
- 2025年甘肃省公路交通建设集团武仙公路收费运营人员招聘61人简历怎么投递笔试备考题库及答案解析.docx VIP
- 2025年安徽省淮南市招聘社区工作者考试题(含答案).docx VIP
- 小学新学期开学收心会开学第一课收心主题班会通用PPT.pptx
- 做中文讲师妈妈.doc VIP
- 细胞的基本结构-细胞膜的结构和功能.ppt VIP
- 2025年初中语文九年级上册教学计划及进度表 .pdf VIP
- 部编版小学四年级语文上册教案(全册).pdf VIP
- 2025年甘肃省公路交通建设集团武仙公路收费运营人员招聘61人简历怎么投递笔试备考试题及答案解析.docx VIP
- 高中生物实验探究教学中的跨学科学习研究教学研究课题报告.docx
文档评论(0)