网络编程实用教程(第三版) Network Application Programming 3rd edition)
网络编程实用教程(第三版) 1 Network Application Programming(3rd Edition)
第1章概述 11网络编程相关的基本概念 12三类网络编程 13客户机/服务器交互模式 1.4P2P模式
第1章 概述 1.1 网络编程相关的基本概念 1.2 三类网络编程 1.3 客户机/服务器交互模式 1.4 P2P模式 2
第1章概述 本章介绍网络编程相关的基本概念,包括: ◆进程通信的概念 ◆因特网中网间进程的标识方法 ◆网络协议的特征 ◆TCP/P中用户数据报协议UDP和传输控制协议TCP的特点 ◆目前的网络编程现状 ◆网络应用程序的客户/服务器交互模式
本章介绍网络编程相关的基本概念,包括: ◆ 进程通信的概念 ◆ 因特网中网间进程的标识方法 ◆ 网络协议的特征 ◆ TCP/IP中用户数据报协议UDP和传输控制协议TCP的特点 ◆ 目前的网络编程现状 ◆ 网络应用程序的客户/服务器交互模式 第1章 概述
1网络编程相关的基本概念 1.1.1网络编程与进程通信 P1 1.进程与线程的基本概念 进程是处于运行过程中的程序实例,是操作系统调度和分 配资源的基本单位。一个进程实体由程序代码、数据和进程控 制块三部分构成。各种计算机应用程序在运行时,都以进程的 形式存在。网络应用程序也不例外。 我们用 Windows的浏览器上网,每一个窗口中运行的程序, 都是一个网络应用程序,运行中的网络应用程序就是一个网络 进程。 Windows系统不但支持多进程,还支持多线程。当创建 个进程时,系统会自动创建它的第一个线程,称为主线程, 该线程可以创建其子线程
1.1 网络编程相关的基本概念 1.1.1 网络编程与进程通信 P1 1.进程与线程的基本概念 进程是处于运行过程中的程序实例,是操作系统调度和分 配资源的基本单位。一个进程实体由程序代码、数据和进程控 制块三部分构成。各种计算机应用程序在运行时,都以进程的 形式存在。网络应用程序也不例外。 我们用Windows的浏览器上网,每一个窗口中运行的程序, 都是一个网络应用程序,运行中的网络应用程序就是一个网络 进程。 Windows系统不但支持多进程,还支持多线程。当创建 一个进程时,系统会自动创建它的第一个线程,称为主线程, 该线程可以创建其子线程
1.1网络编程相关的基本概念 在 Windows系统中,进程是分 线程线程 配资源的单位,但不是执行和调度 线程 的单位。若要使进程完成某项操作, 它必须拥有一个在它的环境中运行使程 线程 的线程,该线程负责执行包含在进 CP 程的地址空间中的代码。 线程 /程 实际上,一个进程可能包含若千 个线程,所有这些线程都“同时” 线程 执行进程地址空间中的代码。 租钱程 如图所示为在单CPU的计算机 上,CPU分时地运行各个线程
在Windows系统中,进程是分 配资源的单位,但不是执行和调度 的单位。若要使进程完成某项操作, 它必须拥有一个在它的环境中运行 的线程,该线程负责执行包含在进 程的地址空间中的代码。 实际上,一个进程可能包含若干 个线程,所有这些线程都“同时” 执行进程地址空间中的代码。 如图所示为在单CPU的计算机 上,CPU分时地运行各个线程。 1.1 网络编程相关的基本概念
1.1网络编程相关的基本概念 2.网络应用进程在网络体系结构中的位置 从计算机网络体系结构的角度来看,网络应用进程处于网 络层次结构的最上层。 从功能上,可以将网络应用程序分为两部分,一部分是专 门负责网络通信的模块,它们与网络协议栈相连接,借助网络 协议栈提供的服务完成网络上数据信息的交换。另一部分是面 向用户或者作其他处理的模块,它们接收用户的命令,或者对 借助网络传输过来的数据进行加工,这两部分模块相互配合, 来实现网络应用程序的功能
2.网络应用进程在网络体系结构中的位置 从计算机网络体系结构的角度来看,网络应用进程处于网 络层次结构的最上层。 从功能上,可以将网络应用程序分为两部分,一部分是专 门负责网络通信的模块,它们与网络协议栈相连接,借助网络 协议栈提供的服务完成网络上数据信息的交换。另一部分是面 向用户或者作其他处理的模块,它们接收用户的命令,或者对 借助网络传输过来的数据进行加工,这两部分模块相互配合, 来实现网络应用程序的功能。 1.1 网络编程相关的基本概念
1.1网络编程相关的基本概念 如图所示为网络应用程序在网络体系结构中的位置。 IE浏览器 3W服务器 用户界凵通信 HTTP请求报文 通信凵数据处 面模块∏模块 二模块理模块 HTTP响应报文 传输层 传输层 用户 网络层 网络层 数据库或 文件系统 数据链路层 数据链路层 物理层 物理层 Internet
如图所示为网络应用程序在网络体系结构中的位置。 1.1 网络编程相关的基本概念
1网络编程相关的基本概念 网络应用程序最终要实现网络资源的共享,共享的基 础就是必须能够通过网络轻松地传递各种信息。网络编程 首先要解决网间进程通信的问题。然后才能在通信的基础 上开发各种应用功能
网络应用程序最终要实现网络资源的共享,共享的基 础就是必须能够通过网络轻松地传递各种信息。网络编程 首先要解决网间进程通信的问题。然后才能在通信的基础 上开发各种应用功能。 1.1 网络编程相关的基本概念
1网络编程相关的基本概念 3.实现网间进程通信必须解决的问题P3 网间进程通信是指网络中不同主机中的应用进程之间 的相互通信问题,网间进程通信必须解决以下问题: (1)网间进程的标识问题。同一主机中用进程ID做唯一标 识,但在网络环境不行。 (2)与网络协议栈连接的问题。发送端应用进程在协议栈 把数据包层层向下递交,接收端网络协议再将数据包层层上 传。这通过定义 Socket网络编程接口来解决。 (3)多重协议的识别问题。如TCP/ IP IPX/SPX同时存在, 如何识别。 (4)不同的通信服务的问题。随着网络应用的不同,网间 通信要求的服务也不同
3.实现网间进程通信必须解决的问题 P3 网间进程通信是指网络中不同主机中的应用进程之间 的相互通信问题,网间进程通信必须解决以下问题: (1)网间进程的标识问题。同一主机中用进程ID做唯一标 识,但在网络环境不行。 (2)与网络协议栈连接的问题。发送端应用进程在协议栈 把数据包层层向下递交,接收端网络协议再将数据包层层上 传。这通过定义Socket网络编程接口来解决。 (3)多重协议的识别问题。如TCP/IP IPX/SPX同时存在, 如何识别。 (4)不同的通信服务的问题。随着网络应用的不同,网间 通信要求的服务也不同。 1.1 网络编程相关的基本概念
1.1网络编程相关的基本概念 1.12因特网中网间进程的标识P4 1.传输层在网络通信中的地位 下图说明了基于TCPP协议栈的进程之间的通信的情况。 3W POP3 POP3 SMTP lIS 浏览器客户客户 服务器服务器「服务器 HttP SmTA PoP3 PoP3 Ismte HTtP TCP UDP UDP TCP P 网络接口层 网络接口层 Internet
1.传输层在网络通信中的地位 下图说明了基于TCP/IP协议栈的进程之间的通信的情况。 1.1.2 因特网中网间进程的标识 P4 1.1 网络编程相关的基本概念