《socket编程学习资料1.doc》由会员分享,可在线阅读,更多相关《socket编程学习资料1.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一节 网络编程基础1.1 TCP/IP网络模型各层的功能如下:l 应用层:向用户提供一组常用的应用程序(如FTP,HTTP等),用户也可以在互联网之上,建立自己的专用应用程序。l 传输层(TCP):提供一个应用程序到另一个应用程序之间(即端到端)的通信,实现可靠的传输。l 互联网层(IP):使主机可以把分组发往任何网络并使分组独立地传向目标,其功能包括三方面:一、处理来自传输层的分组发送请求;二、处理输入数据报;三、处理差错与控制报文(ICMP),处理路径、流控、拥塞等问题。l 网络接口:这是TCP/IP软件的最底层,负责接收IP数据报并通过网络发送,或者从网络上接收物理帧,抽出IP数据报,
2、交给IP层。1.1 1.2 TCP/IP网络协议1.1.1 1.2.1网络软件设计时需要考虑的问题l 识别发送方和接收方的机制;l 数据传送的规则; l 差错控制;l 保持报文发送的先后顺序;l 拥塞避免l 报文的分割与重组;l 多路复用与解多路复用;l 路由选择。1.2.2 TCP/IP各层的网络协议1、应用层协议:SMTP:简单邮件传输协议DNS:域名服务HTTP:超文本传输协议FTP:文件传输协议TELNET:远程登录协议2、传输层协议:TCP:传输控制协议UDP:用户数据报协议3、互联网层协议:IP:网际互连协议ICMP:网际控制报文协议ARP:地址解析协议RARP:反向地址解析协议1
3、.2 1.3客户机/服务器模型1.3.1计算机系统的发展主机结构的计算机系统:使用多用户操作系统,各个用户通过终端访问计算机系统,资源共享、数据的安全保密、通信等全部由计算机提供。系统的管理任务仅局限在单一的计算机平台上,管理和维护比较简单。但是主机系统的灵活性比较差,系统的更新换代需要更强大的计算机设备。客户机/服务器体系结构:至少需要两台以上的计算机,这些计算机由网络连接在一起,实现资源与数据共享。功能进行分离。使用网络操作系统,可以提供文件服务、打印服务、信息服务、应用服务与数据库服务等。LINUX和WINNT都是网络操作系统。1.3.2客户机/服务器结构的理解1、客户机/服务器结构广泛
4、应用2、客户机/服务器是软件意义上的概念3、客户机/服务器与浏览器/服务器1.3.3 客户机/服务器与网络协议客户机与服务器之间必须按照协议相互通信。如HTTP、FTP与TELNET等。1.3.4 客户机/服务器的标识l 主机地址:一般意义上的IP地址l 端口:提供不同服务,常用的端口有HTTP、FTP、TELNET等。端口的分类。1.3.5 不同的服务器策略l 串联服务器l 父服务器l 线程服务器1.3 1.4 Berkely套接字1.3.1 1.4.1 BSD对于计算机网络发展的意义:l 将TCP/IP软件移植到UNIX操作系统中,成为TCP/IP实现的事实标准l 提出了套接字的概念,使T
5、CP/IP功能的调用非常简单1.3.2 1.4.2 套接字接口理解与电话系统的插口的类比1.4.3 套接字的描述l 每一个套接字都用半相关描述:协议,本地地址,本地端口l 一个完整的套接字使用一个相关描述协议,本地地址,本地端口,远程地址,远程端口套接字是面向客户机/服务器模型设计的。针对客户机和服务器提供不同的套接字系统调用,客户随机申请一个套接字号,服务器则拥有全局公认的套接字号。相当于110或119。1.3.3 1.4.4 套接字类型1、流式套接字l 流式套接字可以提供可靠的、面向连接的通信流,数据按顺序到达。l 流式套接字使用TCP协议传输,保证了数据的可靠传输2、数据报套接字l 数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错。l 数据报套接字使用用户数据报协议3、原始套接字原始套接字允许对低层协议如IP和ICMP进行访问,主要用于新的网络协议的设计与实现。