网络程序设计-第一章教学材料.ppt
文本预览下载声明
* (2)基于流的协议 基于流的协议不保护消息边界,将数据当作字节流连续地传输,不管实际消息边界是否存在。 发送端允许系统将原始消息分解成几条小消息分别发送,或把几条消息积累在一起形成大数据包发送,多次发送的数据统一编号。 如果发送端连续发送数据,接收端有可能在一次接收动作中接收两个或更多的数据包。 只要数据一到达,网络堆栈就开始读取并将其缓存,等待进程处理。 * (2)基于流的协议 图1.7 无消息边界的流传输服务 TCP是基于流的协议。 流传输,把数据当作一串数据流,不认为数据是一个一个的消息,编程时不要忽略这一点。 * 3.可靠性和次序性 可靠性:保证了发送端发出的每个字节都能到达既定的接收端,不出错,不丢失,不重复,保证数据的完整性,称为保证投递。 次序性:是指对数据到达接收端的顺序进行处理。保护次序性的协议保证接收端收到数据的顺序就是数据的发送顺序,称为按序递交。 协议的可靠性和次序性与是否面向连接密切相关,面向连接的协议可保证可靠性和次序性。 * 1.1.4 高效的用户数据报协议UDP 用户数据报协议(User Datagram Protocol,UDP),是一种尽力传送的、无连接的、不保障可靠的传输服务,是一种保护消息边界的数据传输。 基于UDP的应用程序在高可靠性、低延迟的网络中运行良好; 在网络层的基础上只增加了端口号的支持; 传输效率高,适用于交易型的应用程序,如TFTP、SNMP、DNS等应用进程。 * 1.1.5 可靠的传输控制协议TCP 1.可靠性是很多应用的基础 2.TCP为应用层提供的服务 传输控制协议TCP (Transmission Control Protocol,TCP)为应用层进程提供一个面向连接的、端到端的、完全可靠的(无差错、无丢失、无重复或失序)全双工的流传输服务。 IP为TCP提供的是无连接的、尽力传送的、不可靠的传输服务,TCP为了向应用层进程提供可靠的传输服务,采取了一系列保障机制。 TCP提供流传输服务,对传输数据的内部结构一无所知,只负责将字节流原封不动的传送到对方的应用进程。 * 3.TCP利用IP数据报实现了端对端的传输服务 TCP被称作一种端对端(end to end)协议,因为它提供一个直接从一台计算机上的应用进程到另一远程计算机上的应用进程的连接。 应用进程能请求TCP构造一个连接,通过这个连 接发送和接收数据,以及关闭连接。 由TCP提供的连接叫做虚连接,虚连接是由软件实现的。事实上,底层的因特网系统并不对连接提供硬件或软件支持,只是两台机器上的TCP软件模块通过交换消息来实现连接的虚拟。 * 图1.8 TCP是一个端到端的传输协议 3.TCP利用IP数据报实现了端对端的传输服务 从TCP角度来看,整个Internet是一个通信系统,能够接收和传递消息,而不会改变和干预消息的内容。 * 4.三次握手 为确保连接的建立和终止都是可靠的,TCP使用三次握手(3-way handshake)的方式来建立连接. 图1.9 TCP的三次握手过程 * 已证明:三次握手是在包丢失、重复和延迟的情况下确保非模糊协定的充要条件。 如图所示,前两个被称为SYN段。 TCP会重发丢失的SYN段。 三次握手确保TCP不会打开或关闭一个连接,直到两端达成一致。 创建一个连接的三次握手中,要求每一端产生一个随机32位序列号。 在计算机重启后,尝试建立一个新的TCP连接时,要选择一个新的随机数,可保证不受老连接的重复或延迟包的影响。 4.三次握手 * 1.2.1 基于TCP/IP协议栈的网络编程 三类网络编程 1.2 最基本的网络编程方式,主要是使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序。 本门课程主要讲解这种网络编程的相关技术。 直接利用网络协议栈提供的服务来实现网络应用,层次比较低,编程者自由度比较大,在利用套接字实现了网络进程通信以后,可以编写各种网络应用程序。 需掌握套接字网络编程接口及应用层网络协议 * 1.2.2 基于WWW应用的网络编程 WWW称为万维网或Web,是因特网上最广泛的应用。 基于WWW应用的网络编程技术,包括: 所见即所得的静态网页制作; HTML、JavaScript等。 动态服务器页面的制作。 ASP、PHP、JSP、J2EE、Hibernate、Spring、Struts等技术。 * 1.2.3 基于.NET框架的Web Services网络编程 1.关于.NET平台 微软公司在2000年7月公布的.NET平台是一个全新的开发框架,集成了微软二十世纪九十年代后期的许多技术,如COM+组件技术、ASP Web开发框架、XML和OOP面向对象设计等
显示全部