计算机网络--应用层

网络应用的体系结构

  1. 客户机/服务器(C/S) web服务器软件apach
  2. 点对点结构 (p2p)段对端    高度可扩展,但是难于管理
  3. 混合结构  利用两者的优点同时规避两者的缺点  napster  文件传输用p2p,文件搜索用C/S服务

利用大量服务器实现可扩展性,分布式,服务器农场。

 

网络应用进程通信

  1. 不同主机运行的进程间如何通信?   消息交换,也称报文交换  进程间通信利用套接字发送、接收消息实现
  2. 如何寻址进程?--IP地址,可以定位主机,那如何定位进程呢? 端口号,为主机上每一个需要通信的进程分配一个端口号 HTTP:80  MAIL:25
  3. 进程的标识符   IP地址+端口号

 

网络应用的服务需求

  1. 可靠性(丢包)  汇款100W,少了两个0,变成了1W
  2. 带宽
  3. 时延

internet传输层服务模型

  1. TCP    面向连接,可靠的传输(不丢包,不乱序),流量控制,拥塞控制,不提供时间延迟保障
  2. UDP   无连接,不可靠的数据传输。 不提供,可靠性保障,流量控制,拥塞控制,延迟保障,带宽保障。  提供了自由

 

web(world wide web) 应用  万维网:Tim Berners-Lee

网页,网页互相链接

对象的寻址:URL(统一资源定位器)

web 网站,apache 事实上的服务器

服务器在80端口等待客户的请求。传输层是TCP协议(套接字)

HTTP 是无状态协议,服务器不维护任何有关客户端过去行为的信息。

有状态的协议更复杂,

非持久性链接:每个TCP链接最多传输1个对象,HTTP 1.0

持久性连接:每个TCP链接最多传输多个对象。

  1. 发起TCP链接请求。  1个RTT
  2. 发送Socket  1个RTT    接收消息,解析,返回响应信息(socket)并关闭TCP链接(非持久)
  3. 收到10个指向jpeg对象的超链接。 为每个jpeg对象 重复上面的几个操作。  一共22个RTT

响应时间的分析与建模:获得一个需要 2个RTT+文件传送 的时间。

 

持久性链接:无流水的之久链接  每个对象耗时1个RTT    一共11个RTT

带有流水机制的持久性链接:客户端只要遇到一个引用对象就尽快发送请求,收到所有的引用导向只需要1个RTT   一共 3个RTT

HTTP消息格式:

请求消息:ASCII 人可以直接读。已经建立起链接了。HOST 是有用的,缓存和代理服务器会用到。get post head(不要把请求的对象放入响应消息中,往往做测试用的)   put()  delete

响应消息:状态行200,响应头,响应  架设一个web服务。买域名,自己的网站。

200OK   404 not found  RFC看详细的  telnet

cookie技术 无状态  身份认证 推荐  购物车的实现  为了辨别用户身份,进行session跟踪存储在用户本地终端上的数据    不足:安全问题  cookie 研究替代技术

web缓存/代理服务器技术。 :满足不访问服务器的前提下满足客户端的HTTP 请求。不足:新浪新闻,一访问 昨天的,与远端服务器上是一致的。 304 NOT modified 没改变。

性能优化的技术,缩短客户请求的响应时间。减少机构、组织的流量,在大范围内实现有效的内容分发(CDN内容分发网络)。

如果缓存服务器里面缓存了这个网页,那就返回就对了。   解决办法1、升级带宽。

ISP  比如:中国移动,中国电信      缓存服务器的命中率在  0.2-0.7之间  CPU也有缓存。

缓存服务器发送If-modified-since:<date> get 请求 ,服务器返回200表示改了,返回304表示改了。再获取新版本。

 请求,响应

 

Email应用的构成

邮件客户端

邮件服务器   SMTP协议

命令 响应

 

互联网上的核心服务:DNS(domain name sysytem 域名系统)应用

互联网上主机/路由器的识别问题

IP地址本身是一组数字,并不便于使用。

IP地址和域名之间如何映射?    域名解析系统就是DNS 。把域名翻译为IP地址。

多层命名服务器 构成的 分布式数据库  为什么不是集中式的?  单点失败问题(),流量问题,距离问题,维护性问题。

IPV4 64位    IPV6  128位

DNS服务

  1. 域名向IP地址的翻译
  2. 主机别名
  3. 负载均衡:多个IP地址的服务器

分布式层次式的数据库。集中式的不可行,分布式的有代价,进行了3次查询。

ROOT DNS  根域名服务器 ,本地域名服务器无法解析域名时,访问根域名服务器(13个),如果根域名不知道,访问权威域名服务器。

COM   DNS 顶级域名服务器 com,org,net uk ,cn ,fr ,edu  Network solutions 维护com, educause 维护edu顶级域名服务器,

AMAZON.COM  DNS  

本地域名服务器 不属于层级体系,每个ISP有一个本地域名服务器。主机进行DNS查询时,都要发送给本地域名服务器,作为代理然后发给层级域名解析服务器系统。我不认识这个域名的IP,但是你可以问我。

迭代查询   根域名返回给本地域名服务器顶级域名服务器的域名

递归查询   根域名继续帮本地域名服务器查询

DNS缓存和更新。

只要活得域名解析服务器活得域名---IP映射。即缓存这一映射

本地域名服务器一般会缓存顶级域名服务器的映射。

我国没有根域名服务器,是否会影响国家网络安全问题。

 

DNS消息格式和记录:分布式层次式的数据库。

数据库里面存放数据的格式。四元组  RR format:(name,value,type,ttl)   有类型,不同的类型对应的name 和 value 意义不同

  • type = A   name:主机域名  value:IP地址
  • type = NS name:域(edu.cn)  value:该域权威域名解析服务器的主机域名。
  • type = cname name:某一真是域名的别名  
  • type = MX  value是与name相对应的邮件服务器

DNS协议:查询(query) 回复(reply)

如何注册一个域名:

  1. 域名管理机构(Network Solution   负责com顶级域) 注册域名
  2. 向域名管理机构提供你的权威域名解析服务器的名字和IP地址,他们就插入了两条记录

备案?

 

 socket编程

  1. TCP
  2. UDP

 

你可能感兴趣的:(计算机网络--应用层)