常见的应用层协议有哪些? 

HTTP(HyperText Transfer  Protocol):超文本传输协议
FTP(File Transfer Protocol):文件传输协议
SMTP(Simple Mail Transfer Protocol):简单邮件传输协议
Telnet:远程终端访问
应用层协议定义了什么?
 
1、交换的报文类型,例如请求报文和响应报文
2、各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
3、字段的语义,即这些字段中包含的信息的含义
4、一个进程何时以及如何发送报文,对报文进行响应的规则
有哪些可供选择的运输层协议?
TCP(Transmission Control Protocol):传输控制协议
    可靠数据传输、面向连接、拥塞控制
UDP(User Datagram Protocol):用户数据报协议
    无连接、无拥塞控制、不可靠传输(最简传输服务)
 
TCP 不安全,怎么办?
SSL(Secure Sockets Layer):安全套接字层
SSL 是对 TCP 的加强,在 TCP 的基础上,提供了额外的安全性服务,包括加密、数据完整性和端点鉴别
选择运输层协议时,有哪些参数需要关注?
可靠数据传输:确保数据完整、按一定顺序到达目的地
吞吐量:不管吞吐量波动的多么厉害,都确保随时能提供不少于所需要的吞吐量
定时:确保数据从发送端发出开始,到到达接收端为止,总时长不超过一定时间
安全性:要求数据以密文形式在因特网上传输
注:不是所有应用都要求在每一点上都达到要求,根据应用场景的不同,各个应用都有自己的侧重点
常见应用程序的服务要求如下图(来自《计算机网络 自顶向下方法》):

应用程序、网络应用、应用层协议、进程、套接字(socket)之间的关系是怎样的?
 
应用程序和进程的关系:
    应用程序 由存在于客户端和服务端的 进程对 组成
    附加:进程对之间通过进程间通信协议进行通信
进程和套接字的关系:
    进程通过一个套接字(socket)软件接口向网络发送报文和接收报文
网络应用和应用层协议的关系:
    应用层协议是网络应用的一部分
    网络应用一般由四个部分组成,客户端、服务端、定义报文结构的标准、应用层协议
    例如:
    Web 应用由 Web 浏览器、Web 服务器、文档格式标准(HTML)、应用层协议(HTTP)
    因特网电子邮件应用由 允许用户读取和生成邮件的客户程序、能容纳用户邮箱的邮件服务器、定义电子邮件报文结构的标准、定义报文如何在服务器之间以及如何在服务器和邮件客户程序之间传递的应用层协议 
应用程序和网络应用的关系?
    搞不清楚(可以认为网络应用是应用程序一种吗?)
HTTP 跟 HTML 分别管哪些部分?
 
HTTP 确保两个主体之间能顺利地传送数据,HTML 确保两个主体之间传递的数据使用的是同一套规则
举两个例子
1、两个好朋友约好第二天 8 点碰面互相聊聊最近的生活感悟,结果一个早上 8 点到了,一直也没等到人,后来沟通才知道,那个人以为说的是晚上8点。
这相当于 HTTP 这一步没做好
2、网友约见面,约好了时间、地点,都见到对方了,结果发现语言不通,其中一个不会说普通话,操着一口方言,另一个全程懵逼。
这相当于 HTML 这一步没做好
cookie?
 
HTTP 本身是无状态的协议,即服务端不会去关心某个请求是哪个客户发送过来的,它只负责接收、处理并响应请求
然而,由于一个站点通常是希望能够识别用户的,可能的原因有:
1、希望限制用户的访问
2、希望把内容与用户关联起来
cookie 技术有 4 个组件:
1、在 HTTP 响应报文中的一个 cookie 首部行(Set-cookie: )
2、在 HTTP 请求报文中的一个 cookie 首部行(cookie: )
3、在用户端系统中保留有一个 cookie 文件,并由用户的浏览器进行管理
4、位于 Web 站点后的一个后端数据库
 
 
为什么需要代理服务器?
 
这里需要回顾一下本书第 1 章的一个概念,流量强度(1.4.2 排队时延和丢包):
La/R
L 表示每个分组的比特数;a 表示分组到达队列的平均速率(a 的单位是分组/秒,即 pkt/s);R 是传输速率,即从队列中退出比特的速率(单位是 bps,即 b/s)
即,流量强度指的是队列的输入输出速率比
要解释代理服务器的作用,必须从需求开始说起
需求:在不是特别影响用户体验的情况下,最大可能节约成本
两点,一是用户体验,二是节约成本
用户体验主要在于时延的长短,影响成本的因素有流量总量和带宽大小
回到流量强度的代表式 La/R,R 即带宽,La 与流量总量有关
所以需求的节约成本方面,可以翻译成,在减少 R 或者至少是保持 R 不变的情况下,让 La/R 的值变小,L 不好控制,只能把重点放在减小 a 的值上面
先讨论流量强度(La/R)对时延影响,定性关系如下图:
可以看到,他们的关于可以用类似于指数函数或二次函数的函数来表示
即,对 La/R 微小的改动,可以对时延产生非常大的影响,而且 La/R 约接近 1,这个影响越明显
现在讨论代理服务器如何有效地减小 a 的值
每个请求在传入因特网之前,都需要过一下局域网中的代理服务器,如果所请求的资源能在代理服务器中找到且未过期,则直接从代理服务器返回,如果没有,则向因特网中发起请求
定量的描述在书中 “2.2.5 Web缓存” 这一节有详细的描述
综上,使用代理服务器的好处就很明显(如下),可以完全满足需求
流量小很多,不用过多的扩展带宽,能有效节省成本
流量强度小很多(排队时延小),且部分请求可以直接从代理服务器返回,所以用户体验也不会太差

CDN?

CDN(Content Distribution Network)即内容分发网络

摘抄百度百科的一段话:

CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

了解了代理服务器的作用,即可知道 CDN 的作用

持续连接和非持续连接?
持续连接:所有的请求/响应对都经相同的 TCP 连接发送
非持续连接:每个请求/响应对都经独立的 TCP 连接发送
 
FTP 最特殊的地方?
相对于 HTTP,FTP 最特殊的地方在于它使用两个并行的 TCP 连接来传输数据
一条是控制连接(control connection):传输控制信息,如用户名、密码、存数据、取数据
另一条是数据连接(data connection):传输数据信息,实际发送数据
 
SMTP 与 HTTP 之间的区别?
HTTP 是拉协议,即 TCP 连接由想接收文件的机器发起,客户发请求给服务器请求文件
SMTP 是推协议,即 TCP 连接由发送文件的机器发起,用户代理发文件给邮件服务器的客户端,邮件服务器的客户端发文件给邮件服务器的服务端
SMTP 无法做到的?使用 POP3 和 IMAP 等邮件访问协议
由于个人 PC 不可能保证时时开启,故邮件服务器的服务端不可能装在个人 PC 上,它只能独立于接收方的用户代理
由于个人 PC 不是服务器,故邮件服务器的服务端不可能使用 SMTP 协议将邮件传送给接收方的用户代理
由于 SMTP 是推协议,故邮件接收方的用户代理不可能通过 SMTP 协议去邮件服务器的服务端拉取邮件
 
 
传统电子邮件协议链 SMTP、SMTP、POP3 或 IMAP  与  基于 Web 的电子邮件协议链 HTTP、SMTP、HTTP 的区别?
 
传统电子邮件 SMTP、SMTP、POP3 或 IMAP :
基于 Web 的电子邮件协议链 HTTP、SMTP、HTTP :
发送方浏览器 → --- HTTP --- → 邮件服务器的客户端 → --- SMTP --- →  邮件服务器的服务端 → --- HTTP --- → 接收方浏览器

《计算机网络 自顶向下方法》 第2章 应用层 Part1的更多相关文章

  1. 计算机网络自顶向下方法第2章-应用层(application-layer).1

    2.1 应用层协议原理 2.1.1网络应用程序体系结构 1)在客户-服务器体系结构 (client-server architecture)中,有一个总是打开的主机称为服务器,它服务于来自许多其他称为 ...

  2. 计算机网络自顶向下方法第2章-应用层(application-layer).2

    2.4 DNS:因特网的目录服务 2.4.1 DNS提供的服务 DNS的定义 实体层面看,DNS是一个由分层的DNS服务器实现的分布式数据库 协议层面看,DNS是一个使得主机能够查询分布式数据库的应用 ...

  3. 计算机网络自顶向下方法第3章-传输层 (Transport Layer).1

    3.1 概述和运输层服务 运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信(logic communication)功能. 3.1.1 运输层和网络层的关系 网络层提供了主机之间的逻辑通信,而 ...

  4. 计算机网络自顶向下方法第4章 网络层:数据平面 (Network layer)

    4.1 网络层概述  网络层主要功能为转发(将数据从路由器输入接口转移到合适的输出接口)和路由选择(端到端的路径选择),每台路由器都有一张转发表,用最长前缀匹配规则来转发. 4.1.1 转发和路由选择 ...

  5. 计算机网络自顶向下方法第3章-传输层 (Transport Layer).2

    3.5 面向连接的运输: TCP 3.5.1 TCP连接 TCP是因特网运输层的面向连接的可靠的运输协议. TCP连接提供全双工服务(full-duplex service). TCP连接是点对点的连 ...

  6. 《计算机网络 自顶向下方法》 第3章 运输层 Part1

    由于个人精力和智商有限,又喜欢想太多.钻牛角尖,导致学习系统性知识很痛苦,尝试改变学习方式,慢慢摸索 现在看到 rdt2.0,又有点看不下去 现在的想法: 要有个目标,且有截止时间(作业模式.考试模式 ...

  7. 《计算机网络 自顶向下方法》 第2章 应用层 Part2

    域名.主机名?   从范围上看: 域名的范围比主机名大 一个域名下通常有多个主机名 从组成上看: 主机名 = 服务器名(或计算机名) + 域名 举例说明: baidu.com 是百度的域名 www.b ...

  8. 《计算机网络 自顶向下方法》 第8章 计算机网络中的安全 Part2

    SSL(使 TCP 连接安全) SSL(Secure Socket Layer),即安全套接字层,是对 TCP 的强化 HTTPS 使用 SSL,而 HTTP 不使用 SSL 通过采用机密性.数据完整 ...

  9. 《计算机网络 自顶向下方法》 第3章 运输层 Part2

    待补充完善 TCP 相关基本点 1.面向连接 两个不同主机上的进程在通过 TCP 进行通信之前,必须先通过三次握手来建立 TCP 连接 2.全双工服务 即,如果一台主机上的进程 A 与另一台主机上的进 ...

随机推荐

  1. Python制作有道翻译小工具

    该工具主要是利用了爬虫,爬取web有道翻译的内容. 然后利用简易GUI来可视化结果. 首先我们进入有道词典的首页,并点击翻译结果的审查元素 之后request响应网页,并分析网页,定位到翻译结果. 使 ...

  2. idea 添加 注释 配置

    为类添加自动注释模版 File-->Settings-->Editor-->File and Code Templates 启用该模板才有效一定要勾上 /** * @author : ...

  3. 爬虫破解知乎登入(不使用Selenium模块)

    一.分析 知乎完成登入的步骤 首先获得cookies(如果不获得后面验证码无法获得) 获得验证码 提交登入相关内容 前两步简单稍微细心寻找规律即可 其中最难的是第三步应该他前端进行了js加密 这里没什 ...

  4. jQuery v1.10.2如何判断checkbox(复选框)是否被选中

    做项目时,我们经常会用到jquery来做一些判断,今天自己遇上判断复选框是否选中,然后搜索查看,发现现在网上的都是错误的,下面罗列错误的: 1.$("#id").attr(&quo ...

  5. 华为路由vlan划分透传和回城路由配置

    整整一个星期才整明白,刚开始是路由器ip地址配置在 interface Ethernet0/0/0这个接口能配置但不能用,死在了回城路由上,pc1 ping pc2就是不同,很疑惑,请教了大神,原来没 ...

  6. python-Flask模版注入攻击SSTI(python沙盒逃逸)

    一篇以python Flask 模版渲染为例子的SSTI注入教学~ 0x01 Flask使用和渲染 这里简化了flask使用和渲染的教程 只把在安全中我们需要关注的部分写出来 来一段最简单的FLASK ...

  7. 项目代码管理工具Git的总结

    在项目的开发中,代码的同步管理很重要,团队的几个人可以通过免费的github管理自己的开源项目代码,高效方便.下面说说,开发中经常用到的git指令操作,基于github平台. 0.配置提交者的账户和邮 ...

  8. 《Java并发编程实战》读书笔记-第4章 对象的组合

    设计线程安全的类 三个基本要素: 找出构成对象状态的所有变量 找出约束状态变量的不变性条件 建立对象状态的并发访问管理策略 实例封闭 将数据封装在对象内部,可以将数据的访问限制在对象的方法上,从而更容 ...

  9. Linux面试题-8

    1.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于磁盘这种外部设备文件,一般应将其放在(C)目录中. A./bin B./etc C./dev D./lib 2.当使用mount进 ...

  10. C语言1博客作业03

    这个作业属于哪个课程 C语言程序设计1 这个作业要求在哪里 (https://edu.cnblogs.com) 我在这个课程的目标是 掌握函数运算 我在这个作业哪个具体方面帮助实现目标 编译一些基本生 ...