- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 网络程序设计 8.1 概述 8.2 TCP客户—服务器程序 8.3 与socket有关的系统调用 8.4 单进程并发处理 8.5 UDP通信 8.6 与TCP/IP通信相关的命令 8.1 概 述 8.1.1 socket 网络协议规定了两台计算机之间进行数据交换的共同规则,包括交换数据的格式和动作序列。网络协议的标准化使得遵守共同标准的两台计算机之间的数据交换成为可能。但是,协议标准详细规定的是两计算机之间交换的数据格式和操作流程,并不规定在一台计算机内利用网络协议传输信息的应用程序和实现这些协议的协议实体之间的程序接口。 UNIX中传输层和传输层以下的协议在操作系统内核中实现,那么,就必须规定一种应用程序使用内核的这些网络功能的方法。UNIX总是习惯于将设备和其他机制组织成文件的方式,然后通过文件描述符像访问普通文件那样访问它们。这次也不例外,UNIX访问网络也用文件描述符引用一个特殊文件的方法。但是,网络机制要比终端和管道复杂得多,所以,还提供了一组施加在这种特殊文件描述符上的系统调用实现网络所必需的功能。这组函数,就是应用程序和网络之间的接口。目前,应用程序与网络之间接口有socket和TLI。其中,socket最先由4.3 版的BSD提供,TLI(tansport layer interface,传输层接口)由ATT的System V提供。除此之外,还有其他的几种接口,但没有被程序员普遍接受。 对于socket和TLI,多数程序员更偏爱socket,在System V和其他的UNIX系统中也提供了socket编程界面。Windows系统中也有类似的Winsock界面,几乎所有函数都兼容。在这里,仅介绍流行的socket网络编程界面。 最流行的网络协议是TCP/IP,socket提供的编程接口可以使用TCP/IP协议。BSD UNIX设计的socket编程界面是一种通用的网络编程界面,充分考虑了各种网络,例如:IPX网络,X.25网络,ISO的传输层协议TP4,IBM的SNA,以及UNIX内的进程之间通信等。但是,许多系统并不提供所有这些网络支持,有的系统甚至只允许TCP/IP协议的socket编程。 在运行TCP/IP协议的计算机中,一般都支持软件虚拟的IP数据报自环接口loopback。如果试图和IP地址等于自己地址的计算机通信,或者与地址的计算机通信,数据不会发送到网络上,而是通过内核实现的虚拟的自环接口loopback,将数据回环到计算机自身。利用这一点,可以在一个计算机的多个进程之间进行通信。现代的许多软件设计,同一台计算机内的进程之间通信也使用socket方式,这使得系统有很大的灵活性,因为需要的时候,只要将两个进程分布到不同的计算机上运行就可以了,而不需要更改程序。 8.1.2 TCP与UDP TCP/IP对应用程序提供的服务主要有两种:一种是面向连接的可靠的数据流传输TCP,另一种是无连接不可靠数据报传输UDP。 应用程序员在使用TCP/IP网络编写通信程序之前,应当首先在TCP和UDP协议之间作出选择,它们决定了由系统提供的通信可靠性。 TCP提供了完全可靠的通信服务,它能够自动地重传;计算校验和以保证数据的正确性;TCP协议保证数据在接收端按在发送端发送的次序接收,不会出现后发送的数据先到达的情况;能自动地扔掉那些重复传输的数据;它提供了流量控制机制,保证发送者发送的数据不要太快以至于接收者来不及处理它们,甚至还考虑了不以过快的速度发送数据以防整个网络拥堵。当由于某种原因TCP通信无法进行时,会通过一定的手段通知应用程序。 使用UDP,所有上述TCP的可靠机制都没有。由应用程序想办法解决可靠性问题,这些问题包括:错报、重报、丢报、乱序和流量控制。 选择UDP协议的程序,应当进行周密的测试。否则,一个在时延短误码率低的本地局域网上调试好的程序在时延长差错率高,或者时延和误码率经常变化的广域网上可能会出现问题。或者,在数据量较小时,运行正常,但数据量增大时运行不稳定。选择UDP协议通信的程序,必须利用一些技术,以保证数据的可靠传输,或者是高层的软件在UDP不可靠的服务面前也能够正常工作。相对来说,要比直接使用TCP难度更大。使用UDP协议的典型应用有域名服务DNS和简单文件传送协议TFTP,简单网管协议SNMP,以及路由信息协议RIP。 由于TCP通信需要在端到端的两个计算机之间建立连接,所以,需要使用广播(broadcast)或者组播(multicast)功能时,只能选择UDP。 8.1.3 网络字节次序 不同的计算机厂商在计算机内部存储整数的方法会有些不同。例如:一个4B的整数,占用内存的连续的4个存储单元,有的厂商将这个整数的低位字节放在最低地址处,
您可能关注的文档
最近下载
- 2022年教师资格之中学体育学科知识与教学能力模拟试题含答案.docx VIP
- iatf16949考试试题及答案.docx VIP
- 《深冷空分装置操作与安全标准手册》.docx VIP
- 新版典范英语7-2Noisy-Neighbours原文及翻译.pdf VIP
- 某酒店月度经营分析会PPT(共 185张).ppt VIP
- 机械租赁服务方案(3).docx VIP
- gb1231-2016螺栓扭矩标准.pdf VIP
- 陆上风电场工程设计概算编制规定及费用标准(2019).docx VIP
- {安全管理制度}空分安全操作规程.pdf VIP
- 2025年浙江省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)