体系结构 | 特点 | 使用案例 |
---|---|---|
客户/服务器(C/S)结构网络应用 | 最典型、最基本的网络应用;通信只在客户与服务器间进行。 | www应用、文件传输 FTP、电子邮件 |
纯 P2P 结构网络应用 | 所有通信都在对等的通行方之间直接进行。P2P应用中的对等端是一个服务器与客户的结合体 | Gnutella、BitTorent |
混合结构网络应用 | 将C/S应用与P2P应用相结合,既有中心服务器的存在,又有对等端(客户)间的直接通信。 | IPTV |
应用层协议定义了应用进程间交换的报文类型、报文构成部分具体含义以及交换时序等内容,即语法、 语义和时序等协议三要素内容。
C/S通信基本原理:
服务器端运行的是服务器进程,被动的等待客户请求服务。
客户端运行的是客户进程,主动发起通信,请求服务器进程提供服务。
应用进程间遵循应用协议交换应用层报文。
典型的网络应用编程接口是套接字,标识套接字的编号叫端口号,IP 地址是网络层地址用于唯一标识一个主机或路由器接口。
套接字是每个应用进程与其他应用进程网络通信时,接受和发送报文的通道
Internet 传输层能提供的服务只有两类:
简答题:面向连接的服务:
(1) 在应用层报文开始传送之前,TCP客户和服务器互相交换传输层控制信息,完成握手。在客户进程与服务器进程的套接字之间建立一条逻辑的TCP连接。 (2)这条连接是双全工的,即连接双方的进程都可以在此连接上同时进行报文收发。 (3) 当应用程序结束报文发送时,必须拆除该连接。
实现将域名映射为IP地址的过程,称为域名解析。域名服务器分布在整个互联网上,每个域名服务器只存储了部分域名信息。
一、 层次化域名空间
层次树状结构的命名方法。
域名类型 | 例子 |
---|---|
国家顶级域名(nTLD) | cn,us,uk |
通用顶级域名(gTLD) | com,net,org,edu,gov,mil,int。 |
基础结构域名 | arpa只有一个,用于反向域名解析,又称反向域名 |
二、 域名服务器
DNS服务器的管辖范围不是以“域”为单位,而是以区为单位。
三、 域名解析过程
万维网应用也称为Web应用
一、 万维网结构
Web应用主要包括
HTML 基本 Web 页也是通过 URL 地址引用页面中的其他对象。每个URL地址主要由两部分组成:存放对象的服务器主机域名(或 IP 地址)和对象的路径名。
二、 HTTP概述
①非持久连接的HTTP1.0中,客户HTTP需先向Web服务器发送请求建立TCP连接的请求报文,等待Web服务器的相应报文,这一来一回的一个往返时间为一个RTT; ②Web服务器响应HTTP客户后,HTTP客户再请求Web网页,Web服务器响应后,告知HTTP客户该网页有多少个图片引用,并通知TCP断开此TCP连接; ③随后HTTP客户再次请求TCP连接,Web响应后,再请求第一个图片的TCP连接,等待响应,Web响应后通知TCP连接断开此TCP连接; ④依次类推,如教材P60图2.10所示,获取含有3个图片的完整Web网页内容需要花费8RTT。
①非流水方式持久连接的HTTP1.1:在非流水方式持久连接的HTP1.1中只需建立一条TCP连接即可,全部的请求结束后再断开TCP连接;如教材P62图2.12所示,请求含有3个图片的完整Web内容只需花费5RTT. ②流水方式持久连接的HTTP1.1:同上述的HTTP1.1的工作原理相同,不过可以进行多个图片请求;如教材P62图2.13所示,请求含有3个图片的完整Web网页内容只需3RTT.
三、 Cookie
Cookie中文名称为小型文本文件,
弥补了HTTP协议无状态性的不足,有利于进行用户跟踪并提供针对性的服务,但也带来一些安全问题
主要包括四部分
①网站可以利用Cookie的ID来准确统计网站的实际访问人数等数据。 ②网站可以利用Cookie限制某些特定用户的访问。 ③网站可以存储用户访问过程的操作习惯和偏好,有针对性地为用户提供服务,提升用户体验感。 ④记录用户登录网站使用的用户名、密码等信息,当用户多次登录时,无须每次都从键盘输入这些烦琐的字符和数字。 ⑤电子商务网站利用Cookie可以实现“购物车”功能。
文本传输协议(FTP)在互联网的两个主机间实现文件互传的网络应用,其应用层协议也称为FTP。FTP 使用的默认端口号是 21。
C/S模式,采用控制连接:21端口传输控制命令,数据连接(20端口)传输文件内容。
特点如下:
P2P 体系结构对服务器的依赖很小,对于纯 P2P 来说,整个应用几乎不依赖某个集中服务器。 P2P 体系结构实现文件分发的最快时间为:
利用 Socket 编程技术可以开发客户/服务器网络应用程序。
网络应用进程可以创建3种类型的Socket:
SOCK_DGRAM
(面向UDP)SOCK_STREAM
(面向 TCP)典型的 SocketAPI 函数
API | 作用 |
---|---|
int socket() | 创建套接字 |
int close() | 关闭套接字 |
int bind() | 绑定套接字的本地端点地址(一般用于服务器端) |
int listen() | 监听状态(只用于服务器端,仅用于TCP服务器套接字) |
int connect | 将客户端套接字与服务器连接(只用于客户端) |
int accept | 创建新的套接字来与客户套接字建立TCP连接(只用于服务器端) |
Ssize_t_send() | 发送数据 |
Ssize_t_sendto() | 发送数据(只用于UDP) |
Ssize_t_recv() | 接收数据 |
Ssize_t_recvfrom() | 接收数据(只用于UDP) |
Int setsockopt | 设置套接字选项 |
Int getsockopt | 读取套接字选项 |
本篇文章使用的脑图原件下载?XX云下载