wordpress用户中心模板,专业的网站优化公司,万网怎样做网站调试,久久文化传媒有限公司招聘信息目录 1. Principles of network applications创建一个网络应用1.1 网络应用架构1.1.1 客户-服务器架构1.1.2 P2P架构1.1.3 两种架构的比较 1.2 不同终端上的进程通信1.3 应用需要什么样的传输服务1.4 因特网能够提供的传输服务1.5 应用层协议1.6 小结 2. Web and HTTPWeb应用画… 目录 1. Principles of network applications创建一个网络应用1.1 网络应用架构1.1.1 客户-服务器架构1.1.2 P2P架构1.1.3 两种架构的比较 1.2 不同终端上的进程通信1.3 应用需要什么样的传输服务1.4 因特网能够提供的传输服务1.5 应用层协议1.6 小结 2. Web and HTTPWeb应用画像一些术语2.1 超文本传输协议--HTTP 概述2.2 非持久连接和持久连接2.2.1 非持久 HTTP2.2.2 持久 HTTP 2.3 HTTP 报文格式2.4 用户与服务器交互: cookie2.5 Web缓存代理服务器2.6 条件 GET2.7 小结 3. File Transfer and FTP3.1 文件传输应用画像3.2 FTP用户代理3.3 使用分离的控制连接和数据连接3.4 建立连接3.5 有关控制连接与数据连接的问题3.6 FTP小结 1. Principles of network applications
创建一个网络应用 创建一个网络应用的核心是编写一个分布式程序使其可以运行在不同的端系统上并能通过网络相互通信。例如web服务器软件与浏览器软件 应用程序只运行在终端上只在端系统上开发应用应用程序员不需要为网络核心设备编写程序我们默认可以调用一些API这极大地方便了网络应用的开发和快速部署。 我们不需要为网络核心设备编写程序的原因一方面会浪费大量的时间与精力另一方面网络的核心设备我们是不接触不到的。
1.1 网络应用架构 在开发一个应用程序之前首先要决定采用什么样的网络应用架构网络应用架构规定了在各个端系统上组织应用程序的方法目前有两种主流的网络应用架构
客户-服务器架构Client-server 中心化的架构对等架构Peer-to-peer P2P 没有服务器的概念
1.1.1 客户-服务器架构 服务器server
有一台总是在线的主机上面运行着服务器程序 server 有请求要及时响应请求。服务器主机 server machine 具有永久的、众所周知的地址。服务器端会在很多地方部署大量的计算集群
客户client
用户终端上运行一个客户程序 client需要时与服务器程序通信请求服务。客户机client machine使用动态地址通常不会总是在线 客户只与服务器通信客户之间不通信
1.1.2 P2P架构 没有总是在线的服务器主机。任意一对端系统对等方可以直接通信。对等方多为用户自己的计算机使用动态地址。每个对等方既可请求服务也可提供服务。典型的P2P应用BT、迅雷、Skype、PPLive。
1.1.3 两种架构的比较
客户-服务器架构P2P架构资源集中资源服务只在某些固定的终端上提供资源分散任何终端都可以提供资源服务优点资源发现简单优点易于扩容、均衡网络流量缺点集中式计算带来的问题如服务端扩容压力、网络流量不均衡、响应延迟长缺点资源发现困难社会问题版权、安全性等
1.2 不同终端上的进程通信 进程 主机上运行的程序. 在同一台主机中由操作系统来提供进程之间的通信。在不同的主机上通过交换报文进行通信。在一次确定的通信会话中总能标示一方为客户进程另一方为服务器进程
客户进程主动发起请求的进程服务器进程接收请求的进程
套接字socket进程与网络的接口应用程序和网络之间的一扇门。
发送报文发送进程将报文推到门外门外的运输设施因特网将报文送到接收进程的门口接收报文接收进程打开门即可收到报文
套接字是应用层和传输层的接口也是应用程序和网络之间的API。 每个进程需要一个标识以便其它进程能够找到它那么进程如何该如何标识自己可以用进程所在主机的地址来标识进程吗 答案是不能因为同一个主机上可能运行着许多进程我们用端口号来区分同一个主机上的不同进程 进程标识包括
主机地址与该进程关联的端口号
端口号的例子HTTP server使用端口80Mail server使用端口25
1.3 应用需要什么样的传输服务 在创建一个应用程序时开发者需要选定一种传输服务。
Data integrity数据完整性 有些应用如音视频可以容忍一定程度的数据丢失。有些应用如加密的文件要求完全可靠的数据传输。 Timing时效性 有些应用如网络电话交互式网络游戏要求延迟保证。有些应用如邮件传输对延迟不敏感。 Throughput吞吐量 有些应用如多媒体要求保证最低可用带宽。有些应用称弹性应用微信文字信息可以适应各种可能的带宽。 Security 加密数据完整性……
1.4 因特网能够提供的传输服务 因特网提供2种传输服务分别用TCP和UDP协议实现。
TCP service: 面向连接保证传输顺序。可靠传输不出错。流量控制发送进程不会“压垮”接收进程。拥塞控制 网络超载时抑制发送进程。不提供及时性最低带宽保证安全性 UDP service: 通过因特网接收和发送报文。不提供顺序保证可靠传输流量控制拥塞控制及时性最低带宽保证安全性。相对于TCP延迟相对小一点但可能会丢包。
1.5 应用层协议
应用层协议定义 报文类型request, response报文语法报文中的字段及其描述。报文语义各字段中信息的含义。发送/响应报文应遵循的规则。 公共域协议: 在RFC文档中定义。允许互操作。e.g. HTTP, SMTP 专用协议: e.g. Skype
1.6 小结
为创建一个新的网络应用需要 选择一种网络应用架构客户-服务器 or P2P选择一种网络服务TCP or UDP确定一个端口号定义应用层协议可以用已有的协议如HTTP…编写客户程序和服务器程序调用套接字接口 网络应用和应用层协议 应用层协议只是网络应用的一部分网络应用还包括客户程序、服务器程序等 要求掌握的概念 客户-服务器模型网络应用编程接口
2. Web and HTTP
Web应用画像
应用层资源网页web pages网络应用架构客户-服务器架构 客户浏览器服务器web服务器 要求的网络服务TCP服务端口号80应用层协议HTTPHyper Text Transfer ProtocolHTTPS(在安全性能上做了优化)
一些术语
Web page由一些对象object组成。对象简单来说就是文件可以是HTML文件、图像、Java小程序、音频文件…每个对象通过一个URL (Uniform Resource Locator) 获取例如 HTMLHyper Text Markup Language是一种格式语言用于描述页的内容和显示方式。HTML文件是用HTML语言编写的超文本文件需要通过专门的浏览器软件进行展示。Web页通常包含一个HTML基本文件和若干引用对象每个引用对象在文档中用其URL给出。超文本文件包含超链接的文件超链接中的文字包含有连接到文档中其他位置或者其它文档的链接允许从当前阅读位置直接切换到超链接所指向的位置。超文本Hyper text一种信息组织方式通过超链接将各种不同空间的文字信息组织成网状文本。
2.1 超文本传输协议–HTTP 概述 Web采用客户-服务器模式
client: 浏览器请求、接收和显示web对象。server: Web服务器应客户请求发送对象。 HTTP协议定义了浏览器和web服务器之间的通信规则。 HTTP的主要版本HTTP 1.0RFC 1945和 HTTP 1.1RFC 2068 HTTP为什么要使用TCP服务Web服务器并不保留客户所请求的信息HTTP协议是无状态的为了发送文件的稳定。 HTTP使用TCP服务过程
客户发起到服务器 80 端口的 TCP 连接客户端创建一个套接字服务器接受服务器端监听80端口来自客户的TCP连接服务器端创建一个套接字浏览器和服务器交换HTTP报文 通过各自的套接字关闭TCP 连接关闭各自的套接字
2.2 非持久连接和持久连接
主要区别在一个TCP连接上只能传输一个对象还是能传输多个对象。
2.2.1 非持久 HTTP
在一个TCP连接上最多发送一个对象。HTTP/1.0 使用非持久连接。
内容获取过程 假设用户输入以下URLhttp://www.someSchool.edu/someDepartment/home.index (包含文本及10个Jpeg图像)
HTTP客户发起到以下HTTP 服务器进程的连接 www.someSchool.edu on port 80。www.someSchool.edu上的HTTP服务器在端口80等待TCP连接接受连接并通知客户。(建立连接)HTTP客户将一个HTTP请求报文包含URL写入它的套接字报文指示希望获取以下对象someDepartment/home.indexHTTP服务器接收请求报文构造包含所请求对象的响应报文将报文写入它的套接字中。(请求对象)HTTP 服务器关闭TCP连接。(关闭连接)HTTP 客户接收包含HTML文件的响应报文显示HTML文件解析文件发现有10个引用的jpeg对象。对于每个jpeg对象重复步骤 1-6要进行十次。
非持久HTTP的响应时间 RTT (Round-Trip Time):一个小分组从客户发送到服务器再返回客户的时间。
相应的时间主要包括
建立TCP连接用时一个RTT。发送HTTP请求至收到响应的前几个字节用时一个RTT。传输文件的时间。 请求一个对象用时2RTT忽略对象传输时间则上面题目中请求一个完整的网页用时22RTT11个对象
非持久HTTP 的问题 获取每个对象需要一次TCP连接每个TCP连接需要消耗操作系统资源浏览器需要打开多个TCP连接来获取一个网页。
2.2.2 持久 HTTP
在一个TCP连接上可以发送多个对象。HTTP/1.1 缺省使用持久连接。服务器在发送响应后保持连接。同一对客户-服务器之间的后续HTTP报文可以在该连接上传输。
持久HTTP又分为
无流水线方式客户仅当收到前一个响应后再发送新的请求串行。流水线方式客户每解析到一个引用对象就可以发送请求可在一个RTT时间内请求所有引用对象。
针对上面的问题
无流水线方式需要花费12个RTT一次TCP连接、显示HTML文件的请求、10个文件的10次请求。流水线方式只需花费3个RTT一次TCP连接、显示HTML文件的请求、10个文件的1次请求。
2.3 HTTP 报文格式
请求报文客户发往服务器响应报文服务器发往客户 HTTP报文由ASCII文本构成。 HTTP请求报文 HTTP请求报文
报头包括 上传表单输入
Post 方法 Web页通常包含表单输入。输入的表单内容放在报文体中上传到服务器。 URL 方法 使用 GET 方法。输入内容放在请求行的URL字段中上传如www.somesite.com/animalsearch?monkeysbanana。
HTTP方法 HTTP 响应报文 HTTP 响应状态代码
2.4 用户与服务器交互: cookie
四个组成部分
HTTP响应报文中的cookie首部行。HTTP请求报文中的cookie 首部行。保存在用户主机的cookie文件由用户的浏览器管理。Web网站的后端数据库。 例子Susan第一次访问某个电子商务网站当HTTP请求报文到达该网站时网站为其创建: 一个ID在后端数据库中为该ID建立一个表项。 Cookies: 保存状态 Cookies交互的两种方式 服务端信息保存在服务端的后端数据库返回ID给客户。客户端信息发回客户端保存在cookie文件中并随请求报文发送给服务器。 2.5 Web缓存代理服务器 代理服务器: 代表原始服务器满足HTTP请求的网络实体保存最近请求过的对象的拷贝。
用户要设置浏览器所有HTTP请求首先发往web缓存。 浏览器将HTTP请求发送给web缓存 对象在web缓存中: web缓存返回对象。对象不在web缓存中web缓存从原始服务器获取对象缓存在本地然后返回给客户。 Qweb缓存如何知道对象的原始服务器 A HTTP请求头中的host首部行指出了原始服务器 Web cache既是服务器又是客户 对于浏览器来说是服务器。对于原始服务器来说是客户。 Web cache通常由ISP提供多级ISP可能形成多级web缓存。 Web caching 的作用 减少客户请求的响应时间。减少机构接入链路上的流量。 Cache Example 原始 链路升级 安装Web Cache
2.6 条件 GET
代理服务器如何发现缓存的对象是不是最新的
2.7 小结
因特网上的每个资源对象都可以通过URL访问HTTP使用TCP连接 非持续HTTP持续HTTP 客户与服务器交互 报文请求/响应 HTTP服务器是无状态的利用cookie技术可以保存用户状态使用web缓存提高请求-响应速度 使用条件get获得最新的对象副本
3. File Transfer and FTP
3.1 文件传输应用画像 应用层资源文件网络应用架构客户-服务器使用传输服务TCP端口号21、20应用层协议FTP 使用命令/响应交互不是像HTTP那样使用报文交互通常情况下用户通过FTP用户代理与文件服务器交互
3.2 FTP用户代理 3.3 使用分离的控制连接和数据连接 控制连接 使用端口21传送客户命令和服务器响应。控制连接在整个会话期间一直保持。 数据连接 使用端口20传输文件。每个数据连接只传输一个文件发送方用关闭连接表示一个文件传输结束。
3.4 建立连接 服务器在端口21等待客户。 客户使用临时端口号建立连接。 客户选择一个临时端口号在该端口上等待服务器的连接请求。 客户在控制连接上用PORT命令将临时端口号发送给服务器。 服务器使用端口20与客户机给出的端口建立连接。
3.5 有关控制连接与数据连接的问题 Q为什么将控制连接与数据连接分开 A不会混淆数据与命令/响应简化协议设计和实现在传输文件的过程中可以继续执行其它的操作便于控制传输过程如客户可以随时终止传输 Q为什么用关闭数据连接的方式结束文件传输 A允许动态创建文件不需预先告知文件的大小 3.6 FTP小结
使用TCP协议服务器端口号21、20采用命令/响应交互方式使用两条TCP连接 控制连接端口21会话期间始终保持数据连接端口20每条连接仅传输一个文件且客户与服务器角色交换