套接字编程基础知识.ppt
文本预览下载声明
一 网络基本概念 计算机网络 OSI七层参考模型 TCP/IP模型 TCP、UDP介绍 C/S服务模型 套接字的基本概念 计算机网络 最简单定义是:一些相互连接的、独立自主的计算机的集合。 最简单的计算机网络:只有两台计算机和连接它们的一条链路,即两个节点和一条链路。因为没有第三台计算机,因此不存在交换的问题。 目前最庞大的计算机网络:因特网。 两台计算机通过网络进行通信 IP地址 IP网络中每台主机都必须有一个惟一的IP地址; IP地址是一个逻辑地址;(物理地址:MAC) 因特网上的IP地址具有全球唯一性; 32位,4个字节,常用点分十进制的格式表示,例如: 协议 为进行网络中的数据交换(通信)而建立的规则、标准或约定。 不同层具有各自不同的协议。 ISO/OSI七层参考模型 ISO(International Standard Organization)国际标准化组织 OSI(Open Systems Interconnection)开放系统互连 ISO/OSI标准是网络的国际标准,由七个层次组成:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 OSI七层参考模型 ISO/OSI七层参考模型 通信实体的对等层之间不允许直接通信。 各层之间是严格单向依赖。 上层使用下层提供的服务 — Service user; 下层向上层提供服务 — Service provider。 实际通信在最底层完成。 OSI各层所使用的协议 应用层:远程登录协议Telnet、文件传输协议FTP、 超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3等。 传输层:传输控制协议TCP、用户数据报协议UDP。 TCP:面向连接的可靠的传输协议。 UDP:是无连接的,不可靠的传输协议。 网络层:网际协议IP、Internet互联网控制报文协议ICMP、Internet组管理协议IGMP。 数据封装 一台计算机要发送数据到另一台计算机,数据首先必须打包,打包的过程称为封装。 封装就是在数据前面加上特定的协议头部。 数据封装 OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。 OSI参考模型中每一层都要依靠下一层提供的服务。 为了提供服务,下层把上层的PDU作为本层的数据封装,然后加入本层的头部(和尾部)。头部中含有完成数据传输所需的控制信息。 这样,数据自上而下递交的过程实际上就是不断封装的过程。到达目的地后自下而上递交的过程就是不断拆封的过程。由此可知,在物理线路上传输的数据,其外面实际上被包封了多层“信封”。 但是,某一层只能识别由对等层封装的“信封”,而对于被封装在“信封”内部的数据仅仅是拆封后将其提交给上层,本层不作任何处理。 数据封装 TCP/IP模型 TCP/IP起源于美国国防部高级研究规划署(DARPA)的一项研究计划——实现若干台主机的相互通信。 现在TCP/IP已成为Internet上通信的工业标准。 TCP/IP模型包括4个层次: 应用层 传输层 网络层 网络接口 TCP/IP与OSI参考模型的对应关系 TCP/IP协议栈的进程之间的通信 TCP/IP协议栈的进程之间的通信 Internet是基于TCP/IP协议的, TCP/IP协议的特点是两头大,中间小。 两头大:在应用层,有众多的应用进程,分别使用不同的应用层协议;在网络接口层,有多种数据链路层协议,可以和各种物理网相接。 中间小:在网络层,只有一个IP实体。它利用IP地址统一了Internet中各种主机的物理地址;利用IP数据报统一了各类网络的帧,实现了异构网的互连。 TCP/IP协议栈的进程之间的通信 粗略地说,在Internet中,每一台主机都有一个唯一的IP地址,利用IP地址可以唯一地定位Internet中的一台计算机,实现计算机之间的通信。 但是最终的网络通信不是整个计算机,而是计算机中的某个应用进程。 每个主机中有许多应用进程,仅有IP地址是无法区别一台主机中的多个应用进程的。所以还需要引入应用进程的某种标识符。 端口 TCP/IP提出了传输层协议端口(Protocol Port,简称端口)的概念,成功地解决了进程的标识问题。 端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出。 端口 端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立。如TCP有一个255号端口,UDP也可以有一个255号端口。
显示全部