UNIX网络程序设计ppt课件.ppt

UNIX网络程序设计ppt课件.ppt

ID:58879074

大小:235.00 KB

页数:60页

时间:2020-09-30

UNIX网络程序设计ppt课件.ppt_第1页
UNIX网络程序设计ppt课件.ppt_第2页
UNIX网络程序设计ppt课件.ppt_第3页
UNIX网络程序设计ppt课件.ppt_第4页
UNIX网络程序设计ppt课件.ppt_第5页
资源描述:

《UNIX网络程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八讲套接字和网络通信1基本概念介绍在UNIX环境下,如何使用套接字API编写网络应用程序。大部分网络应用系统都可以分为客户端(client)和服务器端(server),就是通常所说的C/S结构,最典型也最常见的,上网就是一种C/S模式的应用,浏览器ie是客户端,web服务器作为服务器端。1基本概念网间进程通信网间进程通信要解决的是不同主机进程间的相互通信问题(可把同机进程通信看作是其中的特例)。为此,首先要解决的是网间进程标识问题。同一主机上,不同进程可用进程号(processID)唯一标识。但在网络环境下,各主机独立分配的进程号不能唯一标识该进程

2、。其次,操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式也不同。因此,网间进程通信还要解决多重协议的识别问题。1基本概念端口端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序(即进程)通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应进程所接收,相应进程发给传输层的数据都通过该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写原语访问。1基本概念端口端口号的分配有两种基本分配方式:全局分配;本地分配TCP/

3、IP端口号的分配中综合了上述两种方式。TCP/IP将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。因此,每一个标准服务器都拥有一个全局公认的端口(即周知口,well-knownport),即使在不同机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。1基本概念地址网络通信中通信的两个进程分别在不同的机器上。在互连网络中,两台机器可能位于不同的网络,这些网络通过网络互连设备(网关,网桥,路由器等)连接。因此需要三级寻址:1.某一主机可与多个网络相连,必须指定一特定网络地址;2.网络上每一台主机应有其唯一的地址;3.每一主机上

4、的每一进程应有在该主机上的唯一标识符。   通常主机地址由网络ID和主机ID组成,在TCP/IP协议中用32位整数值表示;TCP和UDP均使用16位端口号标识用户进程。1基本概念网络字节顺序不同的计算机存放多字节值的顺序不同,因此为保证数据的正确性,在网络协议中须指定网络字节顺序。TCP/IP协议使用16位整数和32位整数的高价先存格式。连接两个进程间的通信链路称为连接。连接在内部表现为一些缓冲区和一组协议机制,在外部表现出比无连接高的可靠性。1基本概念半相关网络中用一个三元组可以在全局唯一标志一个进程:(协议,本地地址,本地端口号)这样一个三元组,

5、叫做一个半相关(half-association),它指定连接的每半部分。全相关一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。。因此一个完整的网间通信需要一个五元组来标识:(协议,本地地址,本地端口号,远地地址,远地端口号)这样一个五元组,叫做一个相关(association),即两个协议相同的半相关才能组合成一个合适的相关,或完全指定组成一连接。1基本概念服务方式:面向连接服务,无连接服务面向连接服务面向连接服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经过建立连接,使用连接,终止连接的过程。在数据传输过程中,各数

6、据分组不携带目的地址,而使用连接号。本质上,连接是一个管道,收发数据不但顺序一致,而且内容相同。TCP协议提供面向连接的虚电路。无连接服务无连接服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系统中独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。UDP协议提供无连接的数据报服务。1基本概念客户/服务器模式服务器方:1.打开一通信通道并告知本地主机,它愿意在某一公认地址上(周知口,如FTP为21)接收客户请求;2.等待客户请求到达该端口;3.接收到重复服务请求,处理该请求并发送应答信号。接收到

7、并发服务请求,要激活一新进程来处理这个客户请求(如UNIX系统中用fork、exec)。新进程处理此客户请求,并不需要对其它请求作出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。4.返回第二步,等待另一客户请求。5.关闭服务器1基本概念客户方:1.打开一通信通道,并连接到服务器所在主机的特定端口;2.向服务器发服务请求报文,等待并接收应答;继续提出请求......3.请求结束后关闭通信通道并终止。2套接字1.套接字的经典定义Linux系统是通过提供套接字(socket)来进行网络编程的.网络程序通过socket和其它几个函数的调用,会返回一

8、个通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述符来操作,这就是linux的设备无关性的好处.我

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。