美文网首页
2、应用层

2、应用层

作者: Kylin824 | 来源:发表于2018-01-22 00:56 被阅读0次

应用层

1.网络应用体系结构

  • CS(客户机/服务器结构)
  • P2P(点对点结构)
  • Hybird(混合结构)

网络应用之Web应用 World Wide Web

网页(Web Page)

  • 网页对象:HTML文件、JPEG图片、视频文件、动态脚本等
  • 基本HTML文件:包含对其他对象引用的链接
  • 网页寻址:URL(Uniform Resoure Location):统一资源定位器
  • URL的基本格式:Scheme://host:port/path(协议://主机:端口/路径)

HTTP协议(HyperText Transfer Protocol超文本传输协议)

C/S结构

  • 客户(Browser):请求、接收、展示Web对象
  • 服务器(Web Server):响应客户请求,发送对象 Apache最常用

Http版本

  • 1.0:RFC1945
  • 1.1:RFC2068

HTTP为应用层协议,传输层协议使用TCP

过程如下:

  • 服务器在80端口等待客户请求;
  • 浏览器发起到服务器的TCP连接(创建套接字SOCKET)
  • 服务器接收来自浏览器的TCP连接
  • 浏览器与服务器交换消息
  • 关闭TCP连接

HTTP连接的两种类型:非持久性(1.0版本)与持久性(1.1版本)

  • 非持久性:一个TCP连接只允许传输一个对象,传输完要重新连接
  • 持久性:每次连接允许传输多个对象,传输时间短

HTTP协议格式:请求与响应

请求消息(Request)与响应消息(Response)

Cookies技术

需要cookies的原因:HTTP协议无状态,但网页需要记住用户某些状态如记住密码、购物车信息之类

Web缓存/代理服务器技术

  • 功能:实现在不访问服务器前提下满足客户端的HTTP请求
  • 优点:

缩短客户请求的相应时间
减少机构/组织的流量
在大范围内实现有效的内容分发

因此缓存服务器要与广域网上的真正服务器实时更新
Last Modified即最近更新的日期

2.4 Email应用

SMTP邮件传输协议

2.5 DNS应用(Domain Name System)

-作用:解决Internet上主机/路由器的识别问题

  • 功能:ip地址与域名的映射

DNS:域名解析系统

  • 多层命名服务器构成的分布式数据库
  • 应用层协议:完成名字的解析

DNS服务

  • 域名向IP地址的翻译
  • 主机别名
  • 邮件服务器别名
  • 负载均衡:如Web服务器 一个域名映射多个服务器IP地址

分布式层次式数据库

2.1.png

域名查询方式

  • 迭代查询
2.2.png
  • 递归查询
2.3.png

DNS协议格式:

查询(query)和回复(reply)

2.6 P2P传输:BT(BitTorrent协议)

  • 下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别对方告知自己已经有的块,然后交换对方没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。

P2P系统的索引的作用:

文件共享:

  1. 利用索引动态跟踪结点所共享文件的位置
  2. 结点告诉索引它拥有哪些文件
  3. 结点搜索索引获知能够得到哪些文件

即时消息:

  1. 索引将用户名映射到位置
  2. 当用户开启IM应用时,通知索引它的位置
  3. 结点检索索引,确定用户的IP地址

P2P系统索引结构

  1. 集中式索引:结点都向中央服务器查找
  2. 洪泛式索引:结点向与它有TCP连接的其他结点查询,其他结点向其他的继续转发查询,找到后用反向路径定位
  3. 层次式覆盖网络:集中式和洪泛式的结合,一群结点与超级结点连接,超级结点互相连接

2.7 Socket套接字编程

基本流程

2.4.png

客户端软件设计

1.解析服务器的地址

由于客户使用域名(www.baidu.com)或点分式十进制IP地址(123.58.180.121)访问服务器,而IP协议需要的是32位二进制的IP地址,所以需要将域名或十进制IP地址转换为32位二进制IP地址

  • 函数inet_addr()实现点分十进制到32位二进制IP转换
  • 函数gethostbyname()实现域名到32位二进制IP转换

2.解析服务器端口号

客户端使用服务名(如HTTP)标识服务器端口,因此将服务名转换为熟知端口号

  • 函数getservbyname()实现服务器到端口号的转换

3.解析协议号

客户端使用协议名指定协议,因此需要将协议名转换为协议号

  • 函数getprotobyname()实现协议名到协议号的转换

服务器软件设计

四种类型

  1. 循环无连接 (单线程UDP)
  2. 循环面向连接 (单线程TCP)
  3. 并发无连接 (多线程UDP)
  4. 并发面向连接 (多线程TCP)

相关文章

  • 2应用层

    2.1应用层协议原理 2.1.1网络应用的体系结构 客户机/服务器结构 ■服务器 §7*24小时提供服务 § 永久...

  • 2、应用层

    应用层 1.网络应用体系结构 CS(客户机/服务器结构) P2P(点对点结构) Hybird(混合结构) 网络应用...

  • 应用层2

    DNS HTTPNDS CDN

  • 2.应用层

    网络应用是计算机网络 存在的理由,没有应用也就没必要设计支持它们的网络协议了。 这章主要介绍了传输层协议TCP、U...

  • 《计》 应用层(2)

    1、SMTP (1)整体结构 因特网电子邮件系统包括用户代理、邮件服务器及简单邮件传输协议(Simple mail...

  • 武汉理工大学 计算机网络 复习 1-11

    1.TCP/IP 体系层次?每层对应的协议? 1.应用层(各种应用层协议,如DNS, HTTP, SMTP 等)2...

  • I2C总线架构 之 设备驱动

    引言 I2C设备驱动是I2C框架中最接近应用层的,其上接应用层,下接I2C核心。也是驱动开发人员需要实现的代码,在...

  • Linux 网络管理

    ↓发送接口 ↕ 应用层 ← 应用层协议 → 应用层 APDU接口 ↕ ...

  • 计网2:应用层

    2.应用层 C/S,P2P 1. C/S 客户是服务的请求方,服务器是服务的提供方。Client/Server的好...

  • chapter2-应用层

    本周进入到第二章应用层的学习,不得不说自顶向下学习果然能激发兴趣,因为平时开发工作经常也就是和应用层打交道,但是对...

网友评论

      本文标题:2、应用层

      本文链接:https://www.haomeiwen.com/subject/nbscaxtx.html