22套接字编程的基本概念 22.1什么是套接字( SOCKET)(P27) 电话甲 电话乙 电冰 箱 电网 PSTN 电插座 回(公共电话交换网)回电话插座 电话插座 图2.1电气插座与电话插座的作用 套接口是对网络中不同主机上应用进程之间进行双向通 信的端点的抽象,一个套接口就是网络上进程通信的一端, 提供了应用层进程利用网络协议栈交换数据的机制
2.2 套接字编程的基本概念 套接口是对网络中不同主机上应用进程之间进行双向通 信的端点的抽象,一个套接口就是网络上进程通信的一端, 提供了应用层进程利用网络协议栈交换数据的机制。 图2.1 电气插座与电话插座的作用 2.2.1 什么是套接字(SOCKET) (P27)
221什么是套接字 我们应当从多个层面来理解套接字这个概念。 1)从套接字所处的地位来讲,套接字上联应用进程,下 联网络协议栈,是应用程序通过网络协议栈进行通信的接口, 是应用程序与网络协议栈进行交互的接口。 应用层协议 应用进程 应用进程 操 操作系 SOCKET SOCKET 作 运输层 运输层 网络层 网络层系 统数据链路层 数据链路凨|统 物理层 基于TCP/|P的网络 匚物理层 图2.2应用进程、套接口、网络协议栈及操作系统的关系
我们应当从多个层面来理解套接字这个概念。 1)从套接字所处的地位来讲,套接字上联应用进程,下 联网络协议栈,是应用程序通过网络协议栈进行通信的接口, 是应用程序与网络协议栈进行交互的接口。 2.2.1 什么是套接字 图2.2 应用进程、套接口、网络协议栈及操作系统的关系
221什么是套接字 2)从实现的角度来讲,非常复杂。套接字是一个复杂的 软件机构,包含了一定的数据结构,包含许多选项,由操作系 统内核管理。 3)从使用的角度来讲,非常简单。调用相应的过程后, 生成的套接字就是套接字描述符,用一个整数来代表。对于套 接字的操作形成了一种网络应用程序的编程接口(APD)。 这里把这一套操作套接字的编程接口函数称作套接字编 程接口,套接字是它的操作对象。 总之,套接字是网络通信的基石
2)从实现的角度来讲,非常复杂。套接字是一个复杂的 软件机构,包含了一定的数据结构,包含许多选项,由操作系 统内核管理。 3)从使用的角度来讲,非常简单。调用相应的过程后, 生成的套接字就是套接字描述符,用一个整数来代表。对于套 接字的操作形成了一种网络应用程序的编程接口(API)。 这里把这一套操作套接字的编程接口函数称作套接字编 程接口,套接字是它的操作对象。 总之,套接字是网络通信的基石。 2.2.1 什么是套接字
222套接字的特点(P28) 1.通信域 套接字存在于通信域中,通信域是为了处理一般的进程通过 套接字通信而引入的一种抽象概念,套接字通常只和同一域中的 套接字交换数据。 套接字实际是通过网络协议栈来通信,通信双方要使用相同 的通信协议。 在 Interne通信域中,所有计算机都使用 Interne协议族 (即TCP/IP协议族)来通信
1.通信域 套接字存在于通信域中,通信域是为了处理一般的进程通过 套接字通信而引入的一种抽象概念,套接字通常只和同一域中的 套接字交换数据。 套接字实际是通过网络协议栈来通信,通信双方要使用相同 的通信协议。 在Internet通信域中,所有计算机都使用Internet协议族 (即TCP/IP协议族)来通信。 2.2.2 套接字的特点 (P28)
222套接字的特点 2.套接字具有三种类型P29 每一个正被使用的套接字都有它确定的类型,只有相同 类型的套接字才能相互通信。 (1)数据报套接字( Datagram socket) 数据报套接字提供无连接的不保证可靠的独立的数据报 传输服务。在 Interne通信域中,数据报套接字使用UDP数据 报协议形成的进程间通路,具有UDP协议为上层所提供的服 务的所有特点
2.套接字具有三种类型 P29 每一个正被使用的套接字都有它确定的类型,只有相同 类型的套接字才能相互通信。 (1)数据报套接字(Datagram SOCKET) 数据报套接字提供无连接的不保证可靠的独立的数据报 传输服务。在Internet通信域中,数据报套接字使用UDP数据 报协议形成的进程间通路,具有UDP协议为上层所提供的服 务的所有特点。 2.2.2 套接字的特点