没有合适的资源?快使用搜索试试~ 我知道了~
WinSock网络编程指南
需积分: 9 20 下载量 167 浏览量
2009-07-11
16:27:55
上传
评论
收藏 173KB DOC 举报
温馨提示
试读
24页
WinSock网络编程 指南 教材 WinSock网络编程 指南 教材 WinSock网络编程 指南 教材
资源推荐
资源详情
资源评论
WinSock 网络编程
是一套开放的、支持多种协议的 下的网络编程接口。现在的 已经基本上
实现了与协议无关,你可以使用 来调用多种协议的功能,但较常使用的是 协议。 无
疑是我们进行网络编程的利器。
编程之 体系结构
一、什么是
指的是 上使用的两种网络协议:传输控制协议和网际协议;事实上, 协诡计和 协议只是
一个称为 协议族中的两种而已。
协议族可以将各种操作系统和网络部件连接起来,它能提供一种在各种系统间移动数据的标准方法。这
些协议既可以用于 上,也可以用于专用网中。
协议族中的协议为当今网络用户的各种服务提供数传输功能,这些服务包括:
电子邮件的传送
文件传输
即时消息
访问万维网
开放式系统互联()参考模型
参考模型用于对涉网络的各种技术进行标准化,它定义的七层结构代表了数据通信协议的基本结构。 模
型中的每一层都指定了特定的功能,它可以看作是各层紧挨着另一屋的一个栈。对于给定的层,它所提供的服
务是由这一层的协议定义的。理解了 模型及其各层有助于理解 网络中的各部分与应用程序之间是如
何进行交互的。 模型栈的七层分别是:
第 层(应用层),这是 模型的最高层,本层定义了应用程序与网络及其他系统之间的交互方式
第 层(表示层),包含了部分操作系统的协议,这一层定义了信息的显示格式,数据加密和解释属于本层功
能。
第 层(会话层),协调端到端的通信,本层维护各种会话状态,提供安全、登录和管理功能。
第 层(传输层),控制各系统之间的数据流,定义各种消息的数据结构,并进行差错校验。 浏览器的加
密通常在本层实现。
第 层(网络层),定义了系统间路由数据的各种协议,点到点通信发生在此层,确保数据到达正确的目的的
主机。
第 层(数据链路层或网络接口层),定义了局部网络环境(即局域网)中从一个节点到另一节点发送和接收
消息的规则。
第 层(物理层媒体层),控制硬件的连接和字节流的编码,这是惟一涉及到网络节点间信息的物理传输的一
层。
的 对服务、接口和协议的概念区别十分明了,但它却没有真正的用户群。 模型对服务、接口和
协议的概念区别不象 模型那样明晰,但很实用。对于 而言,最重要的是应用层、传输层、网络层和
数据链路层;这些层都有特定的协议与这关联,这些协议将在后面的章节中讨论。这些协议可以分为两大类:
网络类和应用类(参见图 )。
参考模型 协议族
应用层 、
!、
"
!、
##
#
表示层
"$
会话层
%
传输层 、&
网络层
数据链路层
'%
物理层 物理层协议
图 和 协议栈
结构事实上并不严格遵循模型。但当前关于如何使用分层模型来描述又没有一个统一的协定。
一般承认比 层模型层次少( 到 层)。这里我们以 层结构进行讲解。
结构中忽略了模型中的某些特征,只综合了部分相邻层的特征并分离其它各层。信息由
层结构中的应用层传送到物理层。当发送数据时,每层将其从上层接收到的信息作为本层数据,并在数据前添
加控制信息头,然后一起传送到下一层。每层的接收数据过程与以上发送过程正好相反,其中在数据被传送到
上一层之前要将其控制信息头移去。
层模型以及每层主要功能描述如下:
应用层('(( )*)+)
组中的应用层综合了应用层、表示层以及会话层的功能。因此,在结构中,传输层以上
的任何过程都称之为应用。在中,使用套接字()和端口描述应用程序通信路径。大多数应用层
协议与一个或多个端口号相关联。
传输层()(*)+)
结构中包含两种传输层协议。其一传输控制协议(),确保信息传输过程。其二用户数据报协
议(&,),直接传输数据报,而不需要提供端对端可靠校验。两种协议对应不同的应用具有各自功能。
地址用来寻址指定的计算机或者网络设备,而 的端口号用来确定运行在目的设备上的哪个应用程序
应该接受这个封包。端口号是 位的。连接的两端都要使用端口号,但没必要相同。
网络层(#*)+)
网络层中的主要协议是网际协议()。所有网络层以下或以上的各层通信在跨越 协议栈
时,都必须通过完成。此外,网络层还包含部分支持性协议,如",实施和管理路由过程。
互联网使用 地址来唯一标志一台计算机。 地址可以通过软件分配给网络接口,将 地址和网络接口的
"' 地址关联在一起。为了使用 寻址,关联的 "' 地址需要保存起来,这由 '%(地址解析协议)负责。
每个主机都维护了一个记录 和 "' 地址对的清单。
网络访问层(#'*)+)
在结构中,网络访问层由数据链路层和物理层合并而成。网络访问层并没有重新定义新标准,
而是有效利用原有数据链路层和物理层标准。很多%中描述了如何使用数据链路协议并作为其接口界面,
如以太网、令牌环、,,、!和'"等。物理层中规定了硬件通信属性,但它不直接作为网络层及以上层
的协议的接口。
这一层也称为介质访问控制层("')-例如网卡就属于这一层;以太网接口的各层都有不同的寻址方法,
在 "' 层,寻址是通过 "' 号进行的。"' 号是一个48位的标志,它被硬性分配到每一个网络接口单元,
它是由 ... 注册分配的,保证每个以太网结点都有世界唯一的号码。
数据传输
协议的基本传输单位是数据包/))0)123 协议负责把数据分成若干个数据包,并给每个数据包
加上包头/就像给一封信加上信封2,包头上有相应的编号,以保证在数据接收端能将数据还原为原来的格式,
协议在每个包头上再加上接收端主机地址,这样数据找到自己要去的地方/就像信封上要写明地址一样2,如果传
输过程中出现数据丢失、数据失真等情况, 协议会自动要求数据重新传输,并重新组包。总之, 协议保
证数据的传输, 协议保证数据传输的质量。
协议数据的传输基于 协议的四层结构:应用层、传输层、网络层、接口层,数据在传输时每
通过一层就要在数据上加个包头,其中的数据供接收端同一层协议使用,而在接收端,每经过一层要把用过的
包头去掉,这样来保证传输数据的格式完全一致。
与其他协议相比, 具有两大优点:它是一种轻量级的、实现成本比较低的协议。基于上述原因 ,
成为最受欢迎的协议。45 年, 被集成到 $,- 发布版本中,然后很快又被集成到 
的商业版本中,并且被纳为 的标准,沿用至今 。
今天, 得到了除 通信以外的广泛应用。例如企业内部网()通常都使 来构建。在
这些应用中, 显示出了其他网络协议无与伦比的优势。比如 可以运行在各种各样的硬件和操作系
统平台之上;使用 可以快速方便地构建异构网络,实现 ")、$" 兼容机、大型机、7 服务器、
" 各种类型机器的互联。这些机器可以通过一种通用的协议族进行通信,这也是 自问世以来能够长
盛不衰的原因。
二、体系结构与特点
、 体系结构
协议实际上就是在物理网上的一组完整的网络协议。其中 是提供传输层服务,而 则是提供网
络层服务。 包括以下协议:(结构如图 -)
/图 -2
:网间协议/ 2负责主机间数据的路由和网络上数据的存储。同时为 ",,&, 提
供分组发送服务。用户进程通常不需要涉及这一层。
'%:地址解析协议/'% 7 2
此协议将网络地址映射到硬件地址。
%'%:反向地址解析协议/%8'% 7 2
此协议将硬件地址映射到网络地址
":网间报文控制协议/ ")0 2
此协议处理信关和主机的差错和传送控制。
:传送控制协议/)1 2
这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并
为数据可靠传输建立检查。(注:大多数网络用户程序使用 )
&,:用户数据报协议/&,))0)1 2
这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。
:文件传输协议/ )9 2
允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。
":简单邮件传送协议/1( ") )9 2
" 协议为系统之间传送电子邮件。
.*#.:终端协议/ 1) 2
允许用户以虚终端方式访问远程主机
!:超文本传输协议/!+(:)9 2
;简单文件传输协议/8) )9 2
、 特点
协议的核心部分是传输层协议/、&,2,网络层协议/2和物理接口层,这三层通常是在操作系
统内核中实现。因此用户一般不涉及。编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;
二、使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通过核外的应用程序
才能实现,所以要使用套接字/2来实现。
图 - 是 协议核心与应用程序关系图。
/图 -2
三、专用术语
、套接字
套接字是网络的基本构件。它是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个
与之相连听进程。套接字存在通信区域(通信区域又称地址簇)中。套接字只与同一区域中的套接字交换数据
(跨区域时,需要执行某和转换进程才能实现)。#,中的套接字只支持一个域——网际域。套接字具
有类型。
#, <. - 版 本 支 持 两 种 套 接 字 : 流 套 接 字 /<=%.'"2 和 数 据 报 套 接 字
/<=,>%'"2
、#,<.实现
一个 #,<.实现是指实现了 #,<. 规范所描述的全部功能的一套软件。一
般通过 ,** 文件来实现(=-,**)
、阻塞处理例程
阻塞处理例程/ 0?3阻塞钩子2是 #,<. 实现为了支持阻塞套接字函数调用而提供的
一种机制。
、多址广播(17 ),多点传送或组播)
是一种一对多的传输方式,传输发起者通过一次传输就将信息传送到一组接收者,与单点传送 /7)2和广
播/$))2相对应。
练习题:
@:请你分别划划 的七层网络结构图,和 的五层结构图?
第七层;'(( )
第六层;)
第五层; 第五层;'(( )
第四层;)( 第四层;)(
第三层;# 第三层;
第二层;,))* 第二层;,))*
第一层;?+) 第一层;?+)
@:请你详细的解释一下 协议的定义,在哪个层上面,主要有什么作用? 与 &, 呢?
协议是为跨越局域网和广域网环境的大规模互联网络而设计的世界标准的协议组。
协议工作在第三层3主要用于实现连接到互联网上的结点之间的通信。
@:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?
交换机工作在第二层,通过 "' 地址进行数据帧的交换。路由器工作在第三层,通过最优路径来传输数据包。
编程之套接字原理
一、客户机服务器模式
在 网络中两个进程间的相互作用的主机模式是客户机服务器模式/ 81 2。该模式的建
立基于以下两点:、非对等作用;、通信完全是异步的。客户机服务器模式在操作过程中采取的是主动请示
方式:
首先服务器方要先启动,并根据请示提供相应服务:(过程如下)
、打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。
、等待客户请求到达该端口。
、接收到重复服务请求,处理该请求并发送应答信号。
、返回第二步,等待另一客户请求
、关闭服务器。
客户方:
、打开一通信通道,并连接到服务器所在主机的特定端口。
、向服务器发送服务请求报文,等待并接收应答;继续提出请求……
、请求结束后关闭通信通道并终止。
二、基本套接字
为了更好说明套接字编程原理,给出几个基本的套接字,在以后的篇幅中会给出更详细的使用说明。
、创建套接字——/2
功能:使用前创建一个新的套接字
格式:<.''*'%/)93+(3( 2A
参数:)9;通信发生的区域
+(;要建立的套接字类型
( ;使用的特定协议
、指定本地地址——/2
功能:将套接字地址与所创建的套接字号联系起来。
格式:''*'%/<.37)'%B)13)1 2A
参数:;是由 /2调用返回的并且未作连接的套接字描述符(套接字号)。
其它:没有错误,/2返回 C,否则 <.=.%%%
地址结构说明:
7)=
剩余23页未读,继续阅读
资源评论
Net_David
- 粉丝: 31
- 资源: 62
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功