计算机网络基础——应用层(上云必看)
基本概念
- 进程:主机上运行的程序,一个主机同时可以有多个进程
- 通过网络报文交换通信
- P2P之中一个进程即可以是客户也可以是服务器
- 一对进程之中,发起进程的是客户;等待联系的是服务器
- Socket:连接应用进程和传输层的接口(API)
- 开发者可以控制API在应用层的一切
- 对传输层只有极少选择、控制权
- 进程寻址
- 主机识别标志:IP地址
- 不同进程的标识符:端口号
- HTTP:80
- HTTPs:443
- Mail(SMTP):25
- POP3:110
- 不同主机之间进程通信依据:IP+端口号
- 应用层协议:公有协议(HTTP)+私有(P2P)
网络对传输服务的需求
- 需要100%可靠数据传输:文件传输、telnet
- 允许一定数据丢失:网络电话
- 弹性带宽应用:Email
- 有最低带宽要求应用:直播
互联网传输层服务
TCP服务
- Cilent/Server进程间的连接
- 可靠传输——但无延时保障、带宽保障
UDP服务
- 无连接,尽力而为、无保障
- 无握手,容易被防火经配置阻挡
网络应用的结构
- C/S(client/server)架构:服务器随时在线,客户机只能通过服务器通信
- P2P架构:结点IP可变、间歇性入网、节点间可以直接通信
- P2P结构中结点可以同时是客户进程和服务进程
- C/S+P2P混合结构:文件检索-C/S、文件传输P2P
HTTP
基本概念
- HTTP(HyperText Transfer Protocol):超文本传输协议,应用层协议
- 一个Web页面=一个HTML文件+多个对象(图片、文字、音乐等)
- 基于TCP连接
- 无状态协议——服务器不维护任何有关客户端过去所发请求的信息
- URL(Uniform Resoure Locator) : 统一资源定位器
- URL格式:Scheme://host:port/path,协议;//主机名:端口/文件路径
HTTP连接
- RTT(Round Trip Time)——C/S之间发送一个无穷小数据包的往返时间
- 请求一个网页文件所需时间——2RTT+文件传输时间
- 第一个RTT为握手阶段的前两步骤
- 第二个RTT为握手阶段的第三步骤+请求+响应
- 非持久连接:
- 建立TCP连接——请求1——响应1——关闭TCP连接——建立TCP连接——请求2——响应2——关闭TCP连接
- 持久性连接:
- 建立TCP连接——请求1——响应1——请求2——响应2——关闭TCP连接
HTTP报文
HTTP请求报文
- 组成:请求行+头部+消息体
- HTTP1.0请求的方法
- POST方法:信息存储在Body里面
- GET方法:信息存储在URL字段
- HEAD:Serve的响应消息只返回头部
- HTTP1.1新增方法:
- PUT:将消息体中的文件上传到URL指定路径
- DELETE:删除URL字段指定的文件
HTTP响应报文
- 组成:状态行+头部+消息体
- 状态码:表示请求处理的状态
- 200 0K:请求成功,信息在返回的响应报文中
- 301 Moved Permanently:请求的对象已经被永久转移
- 400 Bad Request:该请求不能被服务器理解
- 404 Not Found:被请求的文档不在服务器上。
Cookies技术
- 核心功能:解决HTTP无状态特性
- 存储:
- 浏览器有一个cookies文件(本地保存用)
- 资源服务器的数据库有一个cookies文件(验证cookies用)
- HTTP请求报文的头部有cookies字段(请求时带上)
- HTTP响应报文的头部有cookies字(响应时带上)
- 特点:保存在本地,请求响应时存在于头部字段
- cookies类似技术,session、token机制
Web缓存/代理服务器技术
基本概念
- 核心功能:建立Web缓存器,让客户在不访问资源服务器的情况下快速获取资源(前提是代理中有相应资源)
- 缓存命中时——代理服务器 = 服务器 + 客户
- 缩短响应时间、减轻服务器压力、减少流量传输、提高效率
条件GET方法
- 功能:保证缓存服务器中资源的时效性
- 实现:当缓存命中时,代理服务器向资源服务器发送GET请求,头部包含If-Modified-Since字段
- 资源是最新时:资源服务器只返回响应首部
- 资源不是最新时:资源服务器返回响应首部+响应体
Email应用
邮件传输协议——SMTP
- SMTP(Simple Mail Transfer Protocol),基于TCP,25号端口
- 特点:
- 邮件服务器之间的通信
- 基于TCP+长连接
- 服务器 = 客户端+服务端
- Email消息必须由7位ASCII码构成
- 不使用中继服务器,即使两个服务器跨越太平洋也是这两个服务器直接传输
- 其他
- 传输三阶段:握手、传输、关闭
- 命令:ASCII文本
- 响应:状态码+语句
- 报文以CRLF.CRLF结尾(CR=回车,LF=换行)
- SMTP与HTTP:
- HTTP: 拉协议(pull),每个对象封装在独立的响应消息中。
- 响应一个文本+图形的文件,封装在两次响应里
- SMTP: 推协议(push),多个对象放进同一个报文
- 响应一个文本+图形的文件,封装在一个报文里
- SMTP报文强制使用7bits的ASCII编码,HTTP无限制
- 都使用命令/响应交互模式,命令和状态代码都是ASCII 码
- HTTP: 拉协议(pull),每个对象封装在独立的响应消息中。
- SMTP报文首部格式:From+To+Subject(可选)
邮件访问协议
- 用户代理访问服务器端邮件的协议(区分SMTP传输协议)
POP3
- POP3(Post Office Protocol——Version 3):第三版邮局协议,基于TCP,端口110
- 工作阶段:授权、事务处理、更新
- 授权:用户代理(浏览器)以明文形式发送给服务器用户名+口令
- 事务处理:下载邮件到本地
- 更新:更新服务器的邮件状态,例如下载后自动删除服务器中的已读邮件
- 弊端:不维护会话信息,多设备使用不方便
IMAP
- IMAP(Internet Mail Access Protocol):因特网邮件访问协议
- 维护会话信息:解决多设备问题
HTTP
- 使用HTTP通过浏览器和邮件服务器交互获取邮件,但是传输邮件还是使用SMTP!
DNS
基本概念
- DNS(Domain Name System):域名服务系统,基于UDP,53号端口
- 作用:代替IP地址,方便记忆(类比手机通讯录服务)
- HTTP、SMTP、FTP均基于DNS服务
工作机制
- 基本原理:从下往上,一层一层查询,可设立缓存机制(不访问高级DNS服务器)
- 层次、分布式
DNS报文
- 报文结构
P2P文件分发
- P2P(peer-to-peer):点对点传输
- Web/Mail/DNS均采取Cilent/Server结构,P2P实现平等协议传输
- 架构图:u表示上传速度,d表示下载速度,F表示文件大小
C/S架构 VS P2P架构文件传输
- 文件大小为F,Us为服务器上传速度,dmin为最小下载速度,N个客户机
- C/S架构:
- NF/Us表示服务器需要向N个客户机总共上传NF大小的数据需要的时间
- F/dmin表示最慢客户机的下载时间
- 取两者最大值
- P2P架构:
- F/Us表示服务器至少需要上传一个完整的副本(可能分散在各个客户机)
- F/dmin表示最慢客户机的下载时间
- 最后一项表示文件总流量为NF/总上行速度
- 伴随着用户数量的增加(一定条件下),P2P架构的优势愈发明显
BitTorrent——P2P协议
- 请求——最稀缺原则——请求邻居最少的部分
- 响应——激励算法——上传快下载快
HTTP流和CDN
HTTP流
- 流式视频——应用接收到视频就进行播放,同时缓存该视频后面部分的帧
- DASH(Dynamic Adaptive Streaming over HTTP):HTTP动态适应流
- DASH中,视频编码为不同的比特率的不同版本。客户根据带宽情况动态播放合适码率的视频。
- 服务器发送告示文件说明有不同的版本
CDN
- CDN(Content Distribution Network):内容分发网
- 核心:利用DNS进行重定向
- 运作机制
- ①用户访问网页www.NetCinema.com
- ②用户向本地DNS发送DNS查询请求
- ③本地DNS向权威服务器查询,权威服务器检测到在CDN范围之内,不返回自己的IP,返回CDN范围内专属查询的DNS权威服务器
- ④本地DNS向新得到的DNS服务器发送请求
- ⑤本地DNS返回已得到CDN内容的站点服务器
- ⑥用户和专属内容分发服务器发送下载请求
计算机网络基础——应用层(上云必看)相关推荐
- 【PMP考试扫盲】超详细的PMP项目管理入门基础知识,考证必看
我今年 6 月刚考过 PMP,发现很多小伙伴都对 PMP 还不了解,这篇文章就是对 PMP 基础知识的一个全面解答,文章有点长,先给大家上个目录,方便大家直接查看对应内容~ 目录 [PMP考试扫盲]超 ...
- 创新驱动看广东,上云本领看云宏!全国30多家网媒齐聚云宏参访!
11月22日,"创新驱动看广东,全国网媒广东行"活动走到云宏站.来自中央和各省30多家重点新闻网站记者齐聚云宏广州总部实地参观采访,感受国内领先的云计算关键技术及服务提供商的创新氛 ...
- 计算机网络基础——应用层
文章目录 应用层协议原理 进程通信 应用层协议之HTTP 持久连接与非持久连接 HTTP报文格式 HTTP缓存 应用层协议之FTP 应用层协议之SMTP 应用层协议之DNS 应用层协议原理 进程通信 ...
- 华为云数据库公网ip_企业数据上云必有一战,华为云12.12云数据库2折起
每年的Gartner全球数据库魔力象限都会对未来三年的市场进行预测,而2020年的预测相比于2019年的预测出现一个显著的变化,那就是全球75%数据库将被部署或迁移到云平台的时间表提前了一年--从20 ...
- 大数据基础--学好大数据必看的文章
大数据的项目流程 数据生产 数据采集 数据存储 需求分析 数据预处理 数据计算 数据存储 8.结果展现 大数据基础知识 目录 什么是服务器? 什么是RAID? 什么是集群? 什么是网络? 什么是交换机 ...
- sybase基础知识(新手必看)
第一讲 Sybase基础知识 一.客户/服务器体系结构 Sybase是一种建立在客户/服务器体系结构上的数据库管理系统. ●什么是客户/服务器体系结构? 从硬件角度看,客户/服务器体系结构是指将某项 ...
- 零基础初级会计小白必看!两个月快速学习初级会计方法!
一般情况下初级会计的备考时间大概在2-3个月,如果是4-5个月的话这备考战线拖的太长了,会使整个备考学习的状态变得疲惫,不利于考试:如果是1个月以及以内,则知识点复习的不够完善,考试就提高不了分数.所 ...
- AI基础:入门人工智能必看的论文【附下载链接】
0.导语 AI领域的发展会是IT中最快的.我们所看到的那些黑科技,其后面无不堆积了大量的论文.而且都是最新.最前沿的论文. 从某种调度来讲,他们所用的技术跟书籍里的内容确实不是一个时代.要想与时俱进, ...
- 零基础python必背代码-零基础小白Python入门必看:通俗易懂,搞定深浅拷贝
Python中的深浅拷贝 在讲深浅拷贝之前,想先讲一下 is 和==的区别. 在进行对象是否相等比较的时候我们可以用is 和 == is:比较两个对象的引用是否相同,即它们的id 是否一样 == : ...
最新文章
- 算法鼻祖高德纳,82 岁仍在写《计算机程序设计的艺术》
- RNA-seq技术之转录组从头组装介绍
- python 跳一跳辅助_微信跳一跳辅助自动跳Python
- python实现中撤销上一步的代码mac_一个“MacBook”新手的Python“笨办法”自学之旅 #第六章:常用的简易Python命令、符号、代码、格式化字符串...
- iOS CoreImage之滤镜简单使用
- ko文件卸载 linux_调试lcd时候给linux单板移植tslib
- 分治法求最大和最小值
- winForm获取内嵌浏览器网页源代码
- 拆解ONES,从ONES深挖项目研发管理机制
- Android强大的控件——RecyclerView
- java 给word加水印_java实现word文档转pdf,并添加水印
- vuepress-theme-reco主题相关配置 + gitee pages 部署
- R语言用WinBUGS 软件对学术能力测验(SAT)建立层次(分层)贝叶斯模型
- C#选择文件、选择文件夹、打开文件(或者文件夹)
- VCS自带的UPF低功耗仿真demo介绍
- 2022年全国大学生数学建模竞赛E题目-小批量物料生产安排详解+思路+Python代码时序预测模型(三)
- 树莓派+4G模块接收短信实时转发到邮箱
- 【python学习】数据预处理-如何归一化?
- 网络安全领域中CISP证书八大类都有什么
- 【EI会议 | 即将截稿】第二届机器人、自动化与智能控制国际会议征稿中
热门文章
- 教程:如何利用Google AIY做一个自动撵猫神器?
- 如何用语音模块SYN6288播报DHT11温湿度传感器传回来的数值
- Linux4.1初始化流程详细注释——第一阶段head.S与head-common.S
- [excel]删除excel中隐藏的双引号(用的WPS)
- Linux终端设备文件介绍
- 8051单片机(STC89C52)倒计时器
- R语言data.frame label的设置
- C++中静态成员函数和非静态成员函数的区别
- ☀️光天化日学C语言☀️(07)- ASCII码 | 来,跟我念:阿斯克二马
- 《社交媒体大数据分析——理解并影响消费者行为》一第1章 市场营销