2 应用层 - 应用层协议原理

研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序

1应用层协议原理

1.1 网络应用程序体系结构

  • 客户-服务器体系结构:client-server architecture,有一个总是打开的服务器,它服务于来自许多其他称作客户的主机请求。客户之间不直接通信,服务器具有固定的、周知的地址(IP地址)。由于常常出现一台单独的服务器主机跟不上它所有客户请求的情况,需要配置大量主机的数据中心。
  • P2P结构体系:P2P architecture,应用程序在间断连接的主机对之间使用直接通信,主机对称作对等方。也有很多应用程序具有混合的体系结构,服务器用于跟踪用户的IP地址,但用户到用户的报文在用户主机之间直接发送。P2P体系结构具有自扩展性,例如BitTorrent。

1.2 进程通信

本文关注的是,运行于不同端系统上的进程间通信。对每对通信进程,一个标识为客户,一个为服务器。进程通过套接字socket的软件接口,向网络发送报文和接收报文,套接字是进程主机上应用层和运输层之间的接口

标识目的地接收进程,需要定义两种信息:1主机的IP地址(IP address);2目的主机中指定接收进程的标识符(port number)。

1.3 运输层协议选择

根据以下四种应用程序的要求对运输层协议进行分类:

  1. 可靠数据传输:必须有一些工作以确保有应用程序一端发送的数据正确、完整地被交付给该应用程序的另一端。reliable data transfer。有一些应用是可以容忍丢失的
  2. 吞吐量:可用吞吐量就是发送进程能够向接收进程交付比特的速率,具有吞吐量要求的应用程序被称为带宽敏感应用(bandwidth-sensitive application),目前大多数的多媒体应用是带宽敏感应用。
  3. 定时:运输层协议也可以提供定时保证,体现在应用程序中是使用应用程序时的延时问题,譬如王者荣耀游戏的延时要求是100ms以内,才可以保证游戏的流畅度等。
  4. 安全性
    • 这种服务将在发送和接收进程之间提供机密性,以防该数据以某种方式在这两个进程之间被观察到。
    • 数据完整性
    • 端点鉴别等

1.4 因特网提供的运输服务

因特网(TCP/IP网络)为应用程序提供了两个运输层协议:TCP协议和UDP协议

1.4.1 TCP服务

TCP服务模型包括面向连接服务和可靠数据传输服务,后续会详细反映。

在握手阶段后,一个TCP连接就在两个进程的套接字之间建立了,这条连接是全双工的,即连接双方的进程都可以再次链接上同时进行收发

TCP和UDP都没有提供任何加密机制,在应用层实现了SSL(secure sockets layer),对TCP进行加强。

1.4.2 UDP

  • 不提供不必要服务的轻量级运输协议
  • 无连接的,不可靠数据传送服务
  • 没有拥塞控制机制

1.5 应用层协议 application-layer protocol

应用层协议定义了:

  • 交换的报文类型,例如是请求报文还是响应报文;
  • 各种报文类型的语法,eg,报文中各个字段,以及字段如何描述
  • 字段中的信息的含义(定义)
  • 确定一个进程何时以及如何发送报文,对报文进行响应的规则

3 电子邮件

主要组成部分

  • 用户代理user agent
  • 邮件服务器mail server
  • 简单邮件传输协议simple mail transfer protocol SMTP

3.1 telnet

telnet是一种远程管理协议,远程管理是指远程管理放置在机房中的服务器(用户无法直接接触到服务器硬件),计算机(服务器)之间通过网络进行数据传输/信息交换的过程。

telnet:命令行界面远程管理协议,几乎所有的操作系统都默认支持,明文传输数据,不加密。

SSH:命令行界面远程管理协议,几乎所有操作系统都默认支持,在数据传输时会对数据进行加密并且压缩,所用SSH协议传输数据既安全速度又快。

3.2 SMTP

SMTP用于发送方的邮件服务器发送报文到接收方的服务器
特点

  • 限制所有邮件报文的体部分(包括首部)只能是简单的7比特ASCII表示,导致在传输之前需要先将二进制多媒体数据编码为ASCII码,传输后要求将相应ASCII码邮件解码还原为多媒体数据。
  • SMTP一般不使用中间服务器
  • SMTP使用的是持续连接
    过程
A用户代理--->A的邮件服务器,放在报文队列中---SMTP--->B的邮件服务器--->B用户代理

3.3 邮件报文格式

  • From: alice@qq.com 首部行
  • To: bob@163.com 首部行
  • Subject: 主题(可选的首部行)
  • 其余可选的首部行
    首部行之后,空一行
    是以ASCII格式表示的报文体

3.4 邮件访问协议

现如今,邮件访问使用一种客户-服务器的体系结构

Alice用户代理---SMTP--->Alice邮件服务器---SMTP--->Bob邮件服务器---(POP3、IMAP、HTTP)--->Bob用户代理

SMTP是一种推协议,而Bob的用户代理目前是一种拉操作。

4 因特网的目录服务: DNS

4.1 DNS提供的服务

因特网上的主机主要有两种标识方式:

  1. 主机名:www.xxx.com,便于记忆的主机名标识方式
  2. IP地址:定长度,有着层次关系,便于路由器使用

域名系统Domain Name System DNS负责进行主机名到IP地址之间转换的目录服务,是:

  • 一个由分层的DNS服务器实现的分布式数据库
  • 一个使得主机能够查询分布式数据库的应用层协议

。。。

4.2 DNS工作原理

4.3 DNS记录与报文

DNS服务器存储了资源记录(Resource Record, RR),RR提供了主机名到IP地址的映射。资源记录是一个包含下列字段的4元组

name, value, type, ttl
ttl = 资源记录应当从缓存中删除的时间
type = A, name = 标准主机名(relay1.bar.foo.com),value = IP地址
type = NS, name = 域(foo.com), value = 权威DNS服务器的主机名(dns.foo.com)
type = CNAME, name = 主机别名(foo.com), value = 标准主机名(relay1.bar.foo.com)
type = MX, name = 邮件服务器别名(foo.com), value = 标准邮件服务器主机名(mail.bar.foo.com)
  • DNS服务器是用于某特定主机名的权威DNS服务器,包含一条该主机的A记录;
  • DNS服务器不是用于某特定主机名的权威DNS服务器,包含一条记录包含主机名的域NS记录,也包含一条记录NS的value的DNS服务器的IP地址;

4.3.1 DNS报文

DNS只有两种报文:查询报文和回答报文。DNS报文格式如下:
在这里插入图片描述

Header: 12字节的头部区域 
= 16bits(2 bytes) 的标识符 
+ 1bit报文类型(0查询 or 1回答) 
+ 。。。
Question: 包含正在查询的内容
= 正在被查询的主机名字
+ 有关该名字的正被询问的问题类型
Anser: 包含了对最初请求的名字的资源记录。 

4.3.2 在DNS数据库中插入记录

case 注册一个域名,需要提供基本和辅助权威DNS服务器的名字和IP地址;
域名机构就会将下面两条资源记录插入该DNS系统中:

域名,权威DNS服务器的主机名,NS
权威DNS服务器的主机名,权威DNS服务器Ip地址,A

还要自己将域名对应IP地址的A资源记录输入权威DNS服务器中。

5 P2P文件分发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值