应用层

本文深入解析了应用层协议的工作原理,涵盖了客户机/服务器体系结构、P2P体系结构、进程间通信等内容,并详细介绍了HTTP协议、FTP协议及电子邮件系统的运作方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用层协议原理


1. 概念解释

进程: 运行在端系统中的程序。
客户机和服务器: 在给定的一对进程之间的通信会话中,发起通信(即在该会话开始时与其他进程联系)的进程被标示为客户机,在会话开始时等待联系的进程是服务器。

2. 实例分析

1. 客户机/服务器体系结构



1) 客户机相互之间不直接通信。
2) 服务器具有固定的,周知的地址,称为IP地址。
2. P2P体系结构

1) P2P体系结构具有自扩展性(即作为客户机产生负载,但是作为服务器又增加了服务能力)
2) 成本有效。
3. 进程间通信

备注:有本大名鼎鼎的书叫做:UNIX网络编程卷2:进程间通信
4. 可供应用程序使用的运输服务
1) 可靠数据传输
2) 吞吐量
3) 定时
4) 安全性
5. TCP服务
1) 面向连接服务:通过握手标志客户机和服务器做好传输分组的准备,是全双工的。当应用程序结束报文发送时,必须拆除该连接。
2) 可靠数据传输服务: 进行通信的进程依靠TCP协议,无差错,按适当顺序交付发送的数据。当应用程序的一端通过套接字传送一个字节流时,它能够依靠TCP协议将相同的字节流交付给接收方的套接字,而没有字节的丢失和冗余。
6. UDP服务
UDP是一种不提供不必要服务的轻量级运输层协议,它仅提供最小服务。UDP是无连接的,因此在两个进程通信前没有握手过程。UDP协议提供的是不可靠数据传输服务,并且可能是乱序到达的。
7. 进程寻址
一个进程要与另一个进程进行通信,则需要以下信息:1) 该主机的名称或地址。2) 用来指定目的主机上接收进程的标识。(即IP和端口)
8. 应用层协议
应用层协议定义了:
1) 交换的报文类型,如请求报文和响应报文。
2) 各种报文类型的语法,如报文中的各个字段及其详细描述。
3) 字段的语义,即包含在字段中的信息的含义。
4) 进程何时,如何发送报文及对报文进行相应的规则。


WEB应用和HTTP协议


1. 概念解释

非持久连接: 当客户机/服务器交互时,每个请求/响应对是经一个单独的TCP连接发送。
持久连接: 当客户机/服务器交互时,所有的请求及相应的响应经相同的TCP连接发送。
往返时间RTT: 一个小分组从客户机到服务器再回到客户机所花费的时间。
静态文本: 页面显示的是相同的一个文档
动态页面: 页面本身包含一个程序,显示的是程序按需产生的内容。

2. 实例分析


1. HTTP概况
HTTP协议由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统中,通过交换HTTP报文进行会话。服务器向客户机发送被请求的文件时,并不存储任何关于该客户机的状态信息。

2. 三次握手
客户机发送请求(1次握手),服务器返回确认(2次握手),客户机返回确认(3次握手),然后打开一个TCP连接,保证文件的传输。


3. HTTP报文格式
请求报文:
Get(方法) /somedir/page.html(URL) HTTP/1.1(协议)
Host:www.someschool.edu(主机)
Connection:close(非持续连接)
User-agent:Mozilla/4.0(浏览器)
Accept-language:fr(语言,这里为法语)
响应报文:
HTTP/1.1(协议) 200(状态码) OK
Connection:close(非持续连接)
Date: Thu,03 jul 2003 12:00:15 GMT(文件从服务器发出时间)
Server: Apache/1.3.0( Unix)
Last-Modified: Sun,6 May 2007 09:23:24 GMT
Content-Length: 6821(数据长度)
Content-Type: text/html(数据格式)
(data data data data data...)

4. web缓存
通过web缓存器,可以在不增加带宽的情况下,降低响应时间。


5. 条件GET方法
作用:保证web缓存器上面的内容是最新的。

6. 万维网体系结构

客户端:
由统一资源定位符(URL)来实现,包括三个部分:协议,页面所在及其的DNS名字,以及唯一指向特定页面的路径。

服务端:
被设计成多线程模式:

这里为一个前端和多个处理模块(多线程模式),公用缓存。如果请求的页面不在缓存中,则从磁盘中进行读取并更新缓存。
cookie:
如图,cookie有4个组成部分:1) 在HTTP响应报文中有一个cookie首部行;2) 在HTTP请求报文中有一个cookie首部行;3)在用户段系统中保留有一个cookie文件,由用户的浏览器管理;4)在web站点有一个后端数据库。

而我在浏览器上只能找到如下的信息:

文件传输协议:FTP


1. 概念解释

2. 实例分析

1. FTP概述
FTP使用两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接。控制连接用于在两个主机之间传输控制信息,如用户标识,口令,改变远程目录的命令以及"put"和"get"文件的命令。数据连接用于实际传输一个文件。

FTP命令和问答:
1) USER username
2) PASS password
3) LIST:用于请求服务器返回远程主机当前目录的所有文件列表。
4) RETR filename:用于从远处主机的当前目录检索(即get)文件。
5) STOR filename: 用于向远程主机的当前目录存放(即put)文件。



因特网中的电子邮件


1. 概念解释

2. 实例分析

1. 概述
邮件发送接收的基本流程:


2. 邮件格式
RFC 5322-----internet邮件格式

MIME-----多用途internet邮件扩展
MIME可处理RFC822不支持的特性:如中文,带有重音符的语言等非ASCII能解决的难题。MIME添加的邮件头如下:

而MIME内容类型和子类型实例如下:

以下是邮件的一个例子:用户发送一个邮件,包含生日歌词和生日歌曲,并且同步播放:


3.邮件传送
可通过IMAP协议来完成。
telnet imap.qq.com 143
但是我本机上并不支持LOGIN命令的使用,导致无法进行发送和接收邮件。


DNS:因特网的目录服务


1. 概念解释

DNS: 1) 一个由分层的DNS服务器实现的分布式数据库。2) 一个允许主机查询分布式数据库的应用层协议。

2. 实例分析

1. DNS使用方法
2. 域名资源记录
一条资源记录是一个五元组。格式如下:
Domain_name Time_to_live ClassTypeValue
Domain_name: 用于指出这条记录适用于哪个域。
Time_to_live: 该条记录的稳定程度(单位为秒,极稳定为一天86400,非常不稳定就一分钟60)
Class: 类别(对于internet信息,总是为IN)
Type: 记录的类型
Value: 类型相对于的值
以下表是一些重要类型:
类型含义
SOA授权开始本区域的参数
A主机的IPv4地址32位整数
AAAA主机的IPv6地址128位整数
MX邮件交换优先级,愿意接受邮件的域
NS域名服务器本域的服务器名字
CNAME规范名域名
PTR指针IP地址的别名
SPF发送者的政策框架邮件发送政策的文本编码
SRV服务提供服务的主机
TXT文本说明的ASCII文本
以下例子解释了DNS记录:

假设我们发送邮件到flits.cs.vu.nl,如果失效,则zephyr和top是第二个和第三个选择。它们对应的IP地址(130.37.20.10,130.37.20.11)为邮件存放地点(注意查看flits的信息)。而rowboat则提供IP地址(130.37.56.201),主要邮件存放处(rowboat),次要邮件存放处(zephyr

3. DNS工作机理概述
最简单的DNS设计是因特网上只使用一个DNS服务器。这样会造成以下问题:
1) 单点故障:如果该DNS服务器崩溃,整个因特网将随之瘫痪。
2) 通信容量:单个DNS服务器不得不处理所有的DNS查询。
3) 远距离的集中式数据库:如果DNS服务器在纽约,澳大利亚的人民就惨了。
4) 维护: 单个DNS服务器不仅处理大量的数据,而且得时时更新,维护难度非常大。
所以,DNS服务器被设计成分布式数据库形式:

而DNS的查询也利用了递归查询和迭代查询:

递归查询: 服务器返回完整答案(如上图中的第一步,向本地服务器发送查询时候得到的答案)
迭代查询: 服务器返回部分答案(向根域名服务器查询等)
我们来运行一个实例,在fedora下运行dig,通过域名(我的事192。168.0.1,来查询华科网址):



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值