网络通信程序开发.docx
- 文档编号:13092319
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:149
- 大小:132.54KB
网络通信程序开发.docx
《网络通信程序开发.docx》由会员分享,可在线阅读,更多相关《网络通信程序开发.docx(149页珍藏版)》请在冰点文库上搜索。
网络通信程序开发
第1章计算机网络基础
计算机网络技术是计算机科学中蓬勃发展的技术之一,是计算机应用的一个重要领域,同时也是涉及计算机硬件、软件、通信技术和信息处理技术的一门新兴的综合性学科。
它已广泛应用于学校、办公自动化、信息管理、工业自动化等领域中,并引起了各国政府的高度重视,特别是Internet的逐步普及,已经极大地影响和改变了人们的生活。
计算机网络已成为衡量一个国家的科技发展水平、信息化程度以及综合国力的重要标志。
第一节计算机网络的发展历史
计算机网络的发展象计算机发展一样,虽然历史不长,但速度很快。
它是从简单的为解决远程运算、远程信息处理而形成的专用联机系统开始的。
随着计算机技术和通信技术的发展,又在联机系统广泛使用的基础上,发展到了把多台中心计算机连接起来,组成以共享资源为目的的计算机网络。
这样就进一步扩大了计算机的应用范围,促进了包括计算机技术、通信技术在内的多个领域的飞速发展。
计算机网络的发展经历了以下几个阶段:
一、具有通信功能的单机系统(面向终端)
二、具有通信功能的多机系统(面向终端)
三、计算机通信网络
四、计算机网络
第二节计算机网络的定义、功能
一、计算机网络的定义
凡将地理位置不同,并具有独立功能的多个计算机系统,通过通信设备和线路将其连接起来,由功能完善的网络软件(网络协议、信息交换方式、控制程序和网络操作系统)实现网络资源共享的系统称为计算机网络。
*计算机网络的定义包含如下几个内容:
独立功能的计算机系统,通信线路连接,共享资源。
二、计算机网络的功能
1、数据通信:
数据通信即数据传送,是计算机网络的最基本功能之一,用以实现计算机与终端或计算机之间传送各种信息。
利用这一功能,地理位置分散的计算机可通过计算机网络连接起来,以实现数据信息的快速传输和集中处理。
2、资源共享:
充分利用计算机系统资源是组建计算机网络的主要目标之一。
计算机资源包括软件、硬件和数据。
初级的是资源共享硬件设备,而现在资源共享主要是共享数据库和软件。
3、提高计算机的可靠性:
在单机使用的情况下,如没有备用机,则计算机或某一部件发生故障便引起停机。
如有备用机,则费用会大为增设。
当计算机连成网络之后,网络中各台计算机可以通过网络彼此互为后备机。
4、能均衡负载,互相协作:
当某个计算中心的计算任务很重时,可通过网络将某些任务传送给空闲的计算机去处理。
从而提高了计算机的工作效率,也提高了每一台计算机的可用性。
5、能进行分布处理:
对于综合性的大型问题可以采用合适的算法,将任务分散到不同的计算机上进行分布处理。
各计算机连成网络也有利于共同协作进行重大科研的开发研究。
6、能实现优质的通信:
进行各种信息交流,使通信向更高水平发展。
7、提高了性能价格比:
计算机组组成网络,其性能价格比有明显的提高,虽然增加了通信费用,然而维护使用费用却明显下降。
此外系统扩充容易,运行灵活方便,提高了运行性能,这些是一般计算机系统无法相比的。
第三节计算机网络的类型
计算机网络是由数据通信和数据处理相互结合的系统。
计算机网络可按不同的方法分类,为了使读者对计算机网络有一个清楚的认识,下面将从几个不同角度对计算机网络的类型作一简单介绍。
一、远程网和局部网
二、专用网和公用网
三、对等网和基于服务器
四、文件共享和客户/服务器:
客户机/服务器系统工作过程是:
一个请求程序(Client)首先通过网络协议(如TCP/IP及IPX/SPX等)与接收程序(Server)进行连接,由客户端发出请求给服务器,服务器则进行相应的处理,然后将结果送回客户端。
客户机/服务器已广泛应用于网络应用中,最典型的应用是在Internet上。
基本模式是Web服务器和浏览器的组合。
第四节计算机网络的组成
计算机网络一般由数据传输线路、调制解调器、通信处理机、主计算机系统、集中器、各终端设备,数据交换的接口设备以及网络软件所组成。
对于组成计算机网络的硬件,由以下几部分组成。
计算机网络的组成
一、主机:
二、集中器
三、通信处理机
四、调制解调器
五、终端
六、通信线路
计算机网络拓扑结构
星形、树形、总线结构、环形、不规则形和全部互连。
通信子网的通信方式:
通常分成点到点通信方式和广播通信方式两大类。
一、点到点通信方式
所有信息传输都是在两个相邻有通信介质直接连接的IMP(InterfaceMessageProcessor接口信息处理机)之间进行。
如两个要求通信的IMP没有直接通路时,需要经由其它IMP。
发送IMP将信息传给相邻的IMP,相邻IMP将信息全部接收下来后,再传给下一个IMP,一直到目的IMP。
这种传输过程称存储转发,两个直邻IMP间进行点到点的通信。
适合于这种通信方式了子网拓扑结构示于图1.4。
这种通信方式的优点是通信线路的利用率较高,在源与目的端多个IMP间的线路段是分时使用的。
这对用户在同一时间内只使用一段线路,其它线路段仍可为别的用户服务。
这种点到点通信方式适合星形、树形、环形、总线、不规则形
二、广播式通信方式
所谓广播式通信,网络中一个结点发送的信息,其它各结点都能收到,例如,电视广播是一种典型的广播式通信。
但是,计算机网络的广播式通信还有其特点。
网中的结点都能发送和接收信息,网络中所有结点都使用同一个通信信道发送信息,信息在信道上传输是双向的。
为了避免信息在信道上发生冲突,而导致通信失败,在同一时间内只允许一个结点往共用信道上发送信息。
这就需要有相应措施来解决多个结点争胜信道的问题。
另外,点到点通信时通信双方的关系比较明确。
在广播式通信中收发关系是在通信时确定的,在信息分组中必须有信息源结点地址和目的结点地址。
接收时根据目的地址,并从源地址得知信息的发送结点。
广播式通信方式大多用于局域网。
广播式通信子网的物理拓扑结构主要有总线结构、环形、星形、卫星或无线电
第五节计算机网络的体系结构与OSI参考模型
三、问题的提出
所谓计算机网络体系结构,即是指整个网络系统中的逻辑构造和功能分配。
便利整个系统中的各种设备能在统一的思想原则指导下,最合理有效地运用和发展。
它提供了一种按分层结构来考察网络的方法,描述了任意两个结点之间的逻辑连接和信息传输。
四、协议与层次
通过分层可以将复杂的通信过程分解成相互关联,功能简化的通信模型,有利于对通信机制的理解和掌握。
同时,只要不改变与其它层的接口,改变某一层次的功能不会影响通信的进行。
另外,每层次都有自己独立的功能,便于设计,实现和修改某一层次的功能。
现代计算机网络的设计,是按高度结构化方式进行的。
为了减少协议设计的复杂性,大多数网络都按层或级的方式来组织,每一层都建立在它的下层之上,不同的网络,其层的数量,各层的名称,内容和功能不尽相同。
但是,在所有的网络中,每一层的功能都是为其上层提供服务,而把服务是如何实现具体细节对上层加以屏蔽。
通信双方对等层之间必须遵守一定的规则和协定,这些规则和协定称为协议。
实际上,在通信过程中,数据不是从一方的第n层直接传送到另一方的第n层。
而是每一层都把数据和控制信息传给它的下层,一直传到最下层,再通过物理介质进行实际的数据通信。
每一相邻层之间都有一个或多个接口,该接口定义了下一层向上一层提供的原语操作和服务。
当网络设计都有决定一个网络应当包括多少层,每一层应做什么时,其中很重要的考虑就是要在相邻层之间定义一个清晰的接口。
为达此目的,又要求每层完成一个特定的有明确定义的功能集合,除了要尽可能减少在相邻层之间传递的信息量外,还要有一个清晰的接口。
当某一层的功能实现过程变化时,只要不改变向上层提供的服务和与相邻层的接口即可。
五、OSI/RM模型
OSI模型的体系结构示于下图
主机主机
应用层
应用层
表示层
表示层
会话层
会话层
传输层
传输层
网络层
网络层
网络层
网络层
链路层
链路层
链路层
链路层
物理层
物理层
物理层
物理层
通信子网
图OSI模型和网络体系结构
OSI开放系统互连参考模型将网络协议分为七个层次,下面简单介绍各层功能。
●物理层(Physicallayer)
物理层是在通信信道上传输位流的层次。
设计本层的目的,是要确保一方发送的二进制信号“1”或“0”,能正确到达接收方。
物理层规定了信号传送接口的机械、电气、功能和规程的接口标准。
●数据链路层(DataLinklayer)
数据链路层的主要任务是为网络层提供一条无差错的传输线路。
在网络中通常采用反馈重传纠错方式来纠正传输中出现的差错。
为此,在这一层次间传送的信息必须有一定的格式,称为帧。
帧需要有帧首、帧尾来标志区分帧的界线;具有检错功能的编码;物理信道的寻址;控制信息等。
数据链路层还要解决的另一个总是是防止高速处理的发送方的数据在低速处理的接收方丢失,因此需要进行流量调节。
●网络层(Networklayer)
网络层是在通信子网中为两个端点(信息的源端和目的端)提供可靠的逻辑链路。
在广域网中信息经由中间站点时采用存储转发技术。
因此,网络层的功能是向着目的端的方向,在邻接站之间转发报文分组。
需要完成路径选择和防止子网阻塞的拥塞控制等功能,网络层必须解决异种网络互连问题。
在局域网中大多数采用广播式通信,不存在路径选择问题,因此,在单个局域网中可以不需要网络层,但多个局域网互连时也会象广域网那样产生路径选择问题。
●传输层(Transportlayer)
传输层提供了端到的可靠的数据传输服务。
提供了建立、维护和中断网络连接的机制。
基本功能是从会话层接收数据,在必要时把它们划分成较小的单元,传递给网络层,并保证到达对方的各段信息正确无误。
传输层为会话层提供透明的数据传送服务。
传输层为会话层提供两种服务,一种是提供端到端的无差错的逻辑信道,能保证报文按发送顺序到达目的端,另一种是提供广播信道,可将报文传递给多个目的端。
●会话层(Sessionlayer)
会话层允许不同机器上的用户之间创建会话关系。
会话层服务之一是管理对话控制;控制会话双方是进行全双工还是半双工通信,需要在会话连接之前确认。
另一种会话服务是同步机制,当会话过程中传输长文件时,接收端出现故障而中断会话。
同步机制保证重新恢复会话连接后,文件在断点开始重传,而不是从头开始。
会话层协议还要保证每次会话能完整地执行。
●表示层(Presentationlayer)
表示层是控制数据表示形式的层次。
为应用层提供一组可选的服务,以使通信双方了解所交换数据的意义。
表示层的功能包括字符集的转换,数据的压缩和恢复,数据的加密和解密。
其目的分别是统一用户设备的不一致性,提高通信效率和增强通信的保密性。
这些功能都是根据用户的需要以调用子程序的形式来实现的。
●应用层(Applicationlayer)
应用层是网络协议的最高层次。
由用户根据应用情况来选择其内容。
虚终端协议是其中之一。
假定网络上有很多不同类型的终端,各种终端的屏幕格式、插入、删除和光标移动的换码符等都不同,全屏幕编辑时的困难可想而知。
解决这个问题的方法之一是定义一个抽象网络虚终端,所有的编辑程序和其它程序都由虚终端处理,再写一段软件,把网络虚终端的功能映射到实际的终端上去。
其它应用层功能有WWW服务,文件传输(FTP、TFTP)、电子邮件、电子数据交换(EDI)、计算机支持的合作工作(CSCW)、TELNET等。
六、OSI体系结构的几个概念
开放系统是遵循OSI标准进行通信的计算机系统,也就是说凡是遵守OSI标准的计算机系统间都是开放的,都可在互连后进行通信,即系统的互连性。
在此基础上,系统为用户提供一个统一的操作环境称开放系统环境。
它应具有应用的可操作性和可移植性。
所谓互操作性,即在这个环境中的不同计算机系统之间可以相互交换信息。
所谓可移植性,即在一个平台上开发的应用软件能在系统环境内的其它平台(不同的子网类型,不同的操作系统)上运行,并能为应用提供统一的用户界面。
应用的可移植性和可操作性可以通过标准化来实现,例如通信标准、操作系统标准、数据管理标准、接口标准和编程语言标准等。
开放系统由端系统(ESEndSystem),子网(Subnetwork)和中介系统(ISIntermecliateSystem)组成。
端系统在开发系统环境中是通信过程中数据的源端和目的端。
子网在开放系统环境中是一个单一的、具体的、物理的通信网络。
中介系统是在子网中各种结点的集合,例如接口信息处理机IMP。
通常只运行OSI的低三层协议。
在开放系统内,端系统和中介系统在逻辑上是一致的,即在逻辑上都是数据通信时的源端和目的端。
实体(Entity)是在开放系统中一个层次的执行单元,完成这个层次的协议功能。
在每个层次中都包含一个或多个实体。
实体可以是一个硬件设备或部件,一个软件,或者是两者的集合。
通信双方相同层次的实体称对等实体。
用“(N)—实体”表示为N层的实体。
服务访问点(SAPServiceAccessPoint)是下层实体为上层实体提供服务的接口。
例如,(N)—实体通过该层的SAP向(N+1)—实体提供服务,该接口简称为(N)—SAP。
一个(N)—实体可服务于一个或多个(N)—SAP,一个(N+1)—实体可使用一个或多个(N)—SAP来得服务。
编址在OSI模型中低层和高层的编址规则是不同的。
数据链路层地址对网络和每一个结点都有一个唯一的地址,有时也称物理地址,即一个物理设备的具体地址。
例如,大部份局域网的链路层地址驻留在网络适配器(网卡)上,其48位长的地址由定义协议标准的组织来分配,使每一个网络适配器都有一个唯一的地址。
网络层地址为每个端系统提供确定的无二义的地址,称NSAP。
七、OSI模型中数据传输
下图给出了在OSI模型中数据传输的示意图。
发送端用户将数据传送给接收端用户。
发送端用户把数据(data)交给应用层,应用层实体在用户数据前面加上应用层头部(AH),即成了应用层协议数据单元(A—PDU),再传给表示层。
表示层将A—PDU附加上表示层的头部PH,组成P—PDU。
这一过程重复进行一直传送到物理层。
物理层将L—PDU通过通信介质传送到接收方。
在接收方,信息逐层向上传递。
每经过一层将本层的头部(PCI)处理完后删去,并送给上一层实体,最后数据到达接收端用户。
数据
AH
数据
PH
A-PDU
SH
P-PDU
TH
S-PDU
NH
T-PDU
DLH
N-PDU
DLT
DL-PDU
图1.16用户数据在OSI模型中的传输过程
PDU是对每一层包含该层协议和服务数据的数据单元的统称。
在实际中,不同层次的PDU都赋予不同的名称。
例如,在物理层称位(bit),在数据链路层称帧(frame),在网络层称分组或包(packet),在传输层及以上层次称报文(message)。
有时把协议称为协议栈。
通过传输数据的封装过程也可以更好地理解协议栈的含义:
发送数据时由高层向低层传递数据,一层一层地加入协议头,先加入高层协议头,后加入低层协议头,高层协议头在里,低层协议头在外。
接收数据时由低层向高层传递数据,一层一层地去掉协议头,低层协议头在外,高层协议头在里,先去掉低层协议头,后去掉高层协议头。
先加入的高层协议头后去掉,后加入的低层协议头先去----符合栈的先进后出,后进先出原则。
在端用户间传输数据的过程中可看出,数据在层间传输过程中,下层实体不改变上层PDU的结构和内容,只在前面增加本层的协议信息。
但在三个层次中有例外,表示层实体可以对应用层PDU根据需要进行代码转换;数据链路层实体除在网络层PDU前加头部外,还在PDU后面加尾部和一个帧的首尾标志,因为数据链路层实体是从物理层接收位信息,必须在这些位信息中判断接收一个完整的帧,用首尾标志来定界帧的开始和结束,在尾部增加检错码,来检查帧的正确性;而物理层实体不再增加任何信息,只是将数据链路层的帧按位串在传输介质上发送出去。
第2章
TCP/IP基础
第一节TCP/IP协议及在网络中的地位
网络设计者在解决网络体系结构时经常使用ISO/OSI(国际标准化组织/开放系统互连)七层模型,该模型每一层代表一定层次的网络功能。
最下面是物理层,它代表着进行数据转输的物理介质,换句话说,即网络电缆。
其上是数据链路层,它通过网络接口卡提供服务。
最上层是应用层,这里运行着使用网络服务的应用程序。
1.TCP/IP的发展过程及组织
ISOC(InternetSociety)
应用软件IAB
IETFIANAIRTF
TCP/IP协议最早是为广域网设计的一个协议集,目的是为了使不同不同体系结构、不同硬件结构的计算机能够互相通信。
,当UNIX操作系统集成TCP/IP协议后,该协议随UNIX的流行而迅速发展成为广域网的标准协议,现在广域网特别是Internet网广泛使用该协议。
TCP/IP是同ISO/OSI模型等价的。
当一个数据单元从网络应用程序下流到网络接口卡,它通过了一列的TCP/IP模块。
这其中的每一步,数据单元都会同网络另一端对等TCP/IP模块所需的信息一起打成包。
这样当数据最终传到网卡时,它成了一个标准的以太帧(假设物理网络是以太网)。
而接收端的TCP/IP软件通过剥去以太网帧并将数据向上传输过TCP/IP栈来为处于接收状态的应用程序重新恢复原始数据(一种最好的了解TCP/IP工作实质的方法,是使用探测程序来观察网络中的到处流动的帧中被不同TCP/IP模块所加上的信息)。
这就是TCP/IP所做的:
将许多小网联成一个大网。
并在这个大网也就是Internet上提供应用程序所需要的相互通信的服务。
TCP/IP协议在使用和发展过程中,逐渐形成了一个标准的网络协议集,协议集除了TCP/IP核心协议之外,还包括了一些应用层的协议,如HTTP,FTP,TELNET等,这些应用层的协议都是建立在TCP/IP核心协议基础上,利用不同的端口而实现的。
TCP/IP是一族用来把不同的物理网络联在一起构成网际网的协议。
TCP/IP联接独立的网络形成一个虚拟的网,在网内用来确认各种独立的不是物理网络地址,而是IP地址。
TCP/IP使用多层体系结构,该结构清晰定义了每个协议的责任。
TCP和UDP向网络应用程序提供了高层的数据传输服务,并都需要IP来传输数据包。
IP有责任为数据包到达目的地选择合适的路由。
Internet依赖TCP/IP协议组(IP,TCP,UDP,ICMP等)。
在Internet主机上,两个运行着的应用程序之间传送要通过主机的TCP/IP堆栈上下移动。
在发送端TCP/IP模块加在数据上的信息将在接收端对应的TCP/IP模块上滤掉,并将最终恢复原始数据。
2.TCP/IP的重要性
可以连接不同系统
开放系统,可通过Requestforcomments开发自己的TCP/IP解法
与Internet连接
提供强有力的WAN连接,可路由,为广域网设计的
3.TCP/IP与OSI参考模型的对应关系
OSI模型最初是用来作为开发网络通信协议族的一个工业参考标准。
通过严格遵守OSI模型,不同的网络技术之间可以轻易地实现互操作。
OSI模型是一种通用的、标准的、垂直分层模型,每层至少与一个协议相联系,各层协议像栈一样堆在一起,协议栈来自垂直分层和栈式协议这些网络概念。
没有一个流行的网络协议完全遵守OSI模型。
TCP/IP也不例外,TCP/IP协议族有自己的模型,被称为TCP/IP协议栈,又称DOD模型(Departmentofdefense)
OSI参考模型TCP/IP模型
应用层ApplicationLayer
应用层ApplicationLayer
表示层PresentLayer
会话层SemissionLayer
传输层TransportLayer
传输层TransportLayer
网络层InternetLayer
网络层InternetLayer
数据链路层DataLinkLayer
网络访问层NetworkAccessLayer
物理层PhysicalLayer
◇网络接口层:
在模型的最底层是网络接口层。
本层负责将帧放入线路或从线路中取下帧。
◇Internet层:
Internet协议将数据包封装成Internet数据包并运行必要的路由算法。
◇传输层:
传输协议在计算机之间提供通信会话。
数据投递要求的方法决定了传输协议。
◇应用层:
在模型的顶部是应用层。
本层是应用程序进入网络的通道。
在应用层有许多TCP/IP工具和服务,如:
FTP、Telnet等等。
该层为网络用户提供了许多实用应用程。
OSI模型包含许多被分割成层的组件。
在网络数据通信的过程中,每一层完成一个特定的任务。
当传输数据的时候,每一层接收到上面层格式化后的数据,对数据进行操作,然后把它传给下面的层。
当接收数据的时候,每一层接收到下面层传过来的数据,对数据进行解包,然后把它传给上一层。
OSI模型的一个关键概念是虚电路。
就模型的层次而言,每一层都有一虚电路直接连接目的主机上的对应层。
就每一层而言,它的数据在目的层被解包的方式和被打包的方式是完全一样的。
每一层都利用其上层和下层的服务来维持它和远地主机上对应层的虚电路。
4.TCP/IP协议栈模型
应用程序
应用程序
应用层
表示层
硬件接口
会话层
传输层TCPUDP
网络层ICMPIPIGMP
RARP
ARP
链路层
物理层
5.TCP/IP框架与数据流
应用层
应用程序
应用程序
表示层
会话层
传输层UDPTCPTCPUDP
网络层IPIP
硬件接口
硬件接口
链路层
物理层
传输线
第二节TCP/IP协议族及内部依赖关系
1.TCP/IP协议族
英文全称:
TransmissionControlProtocol/InternetProtocol
中文全称:
传输控制协议/互联网协议
TCP/IP实际上是一族协议,不是单一的协议。
TCP/IP通过Internet传输信息。
以太网卡表示链路层,链路层(网卡)不同,不影响TCP/IP应用程序
简单说明:
1.硬件协议层(面向硬件)
●不同介质:
以太网、令牌网等;高速、低速
●按硬件要求对网络设备进行控制。
2.IP层(网络层)
●“点到点”的“数据报”传输机制,不保证传输的可靠性。
●将各种“硬件协议”统一成IP数据报和IP地址形式。
●屏蔽硬件差异:
物理帧、网络地址。
●简洁清晰;效率高,对数据进行“尽力传递”。
●一般是不允许应用程序直接访问IP层。
3.TCP/UDP层(传输层)
●提供“端到端”的数据传输机制。
●格式化信息流。
●提供网络进程通信能力。
●提供高效的UPD和可靠的TCP。
●BSDUNIX的socket接口。
4.应用程序层
分为3种:
依赖于无连接的UDP;依赖于有连接的TCP;或两者均可。
2.各个协议说明:
链路层有两个地址协议:
地址解析协议(ARP)和反向地址解析协议(RARP)
物理地址6个字节,IP地址4个字节。
以太帧物理地址6个字节,TCP/IP协议使用IP地址,地址解析协议和反向地址解析协议解决了地址转换问题。
网卡的物理地址实际上是在链路层上。
◇ARP(AddressResolu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 通信 程序 开发