基本概念

  • 进程:主机上运行的程序,一个主机同时可以有多个进程

    • 通过网络报文交换通信
    • 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 码
  • 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内容的站点服务器
    • ⑥用户和专属内容分发服务器发送下载请求

计算机网络基础——应用层(上云必看)相关推荐

  1. 【PMP考试扫盲】超详细的PMP项目管理入门基础知识,考证必看

    我今年 6 月刚考过 PMP,发现很多小伙伴都对 PMP 还不了解,这篇文章就是对 PMP 基础知识的一个全面解答,文章有点长,先给大家上个目录,方便大家直接查看对应内容~ 目录 [PMP考试扫盲]超 ...

  2. 创新驱动看广东,上云本领看云宏!全国30多家网媒齐聚云宏参访!

    11月22日,"创新驱动看广东,全国网媒广东行"活动走到云宏站.来自中央和各省30多家重点新闻网站记者齐聚云宏广州总部实地参观采访,感受国内领先的云计算关键技术及服务提供商的创新氛 ...

  3. 计算机网络基础——应用层

    文章目录 应用层协议原理 进程通信 应用层协议之HTTP 持久连接与非持久连接 HTTP报文格式 HTTP缓存 应用层协议之FTP 应用层协议之SMTP 应用层协议之DNS 应用层协议原理 进程通信 ...

  4. 华为云数据库公网ip_企业数据上云必有一战,华为云12.12云数据库2折起

    每年的Gartner全球数据库魔力象限都会对未来三年的市场进行预测,而2020年的预测相比于2019年的预测出现一个显著的变化,那就是全球75%数据库将被部署或迁移到云平台的时间表提前了一年--从20 ...

  5. 大数据基础--学好大数据必看的文章

    大数据的项目流程 数据生产 数据采集 数据存储 需求分析 数据预处理 数据计算 数据存储 8.结果展现 大数据基础知识 目录 什么是服务器? 什么是RAID? 什么是集群? 什么是网络? 什么是交换机 ...

  6. sybase基础知识(新手必看)

    第一讲  Sybase基础知识 一.客户/服务器体系结构 Sybase是一种建立在客户/服务器体系结构上的数据库管理系统. ●什么是客户/服务器体系结构? 从硬件角度看,客户/服务器体系结构是指将某项 ...

  7. 零基础初级会计小白必看!两个月快速学习初级会计方法!

    一般情况下初级会计的备考时间大概在2-3个月,如果是4-5个月的话这备考战线拖的太长了,会使整个备考学习的状态变得疲惫,不利于考试:如果是1个月以及以内,则知识点复习的不够完善,考试就提高不了分数.所 ...

  8. AI基础:入门人工智能必看的论文【附下载链接】

    0.导语 AI领域的发展会是IT中最快的.我们所看到的那些黑科技,其后面无不堆积了大量的论文.而且都是最新.最前沿的论文. 从某种调度来讲,他们所用的技术跟书籍里的内容确实不是一个时代.要想与时俱进, ...

  9. 零基础python必背代码-零基础小白Python入门必看:通俗易懂,搞定深浅拷贝

    Python中的深浅拷贝 在讲深浅拷贝之前,想先讲一下 is 和==的区别. 在进行对象是否相等比较的时候我们可以用is 和 == is:比较两个对象的引用是否相同,即它们的id 是否一样 == : ...

最新文章

  1. 算法鼻祖高德纳,82 岁仍在写《计算机程序设计的艺术》
  2. RNA-seq技术之转录组从头组装介绍
  3. python 跳一跳辅助_微信跳一跳辅助自动跳Python
  4. python实现中撤销上一步的代码mac_一个“MacBook”新手的Python“笨办法”自学之旅 #第六章:常用的简易Python命令、符号、代码、格式化字符串...
  5. iOS CoreImage之滤镜简单使用
  6. ko文件卸载 linux_调试lcd时候给linux单板移植tslib
  7. 分治法求最大和最小值
  8. winForm获取内嵌浏览器网页源代码
  9. 拆解ONES,从ONES深挖项目研发管理机制
  10. Android强大的控件——RecyclerView
  11. java 给word加水印_java实现word文档转pdf,并添加水印
  12. vuepress-theme-reco主题相关配置 + gitee pages 部署
  13. R语言用WinBUGS 软件对学术能力测验(SAT)建立层次(分层)贝叶斯模型
  14. C#选择文件、选择文件夹、打开文件(或者文件夹)
  15. VCS自带的UPF低功耗仿真demo介绍
  16. 2022年全国大学生数学建模竞赛E题目-小批量物料生产安排详解+思路+Python代码时序预测模型(三)
  17. 树莓派+4G模块接收短信实时转发到邮箱
  18. 【python学习】数据预处理-如何归一化?
  19. 网络安全领域中CISP证书八大类都有什么
  20. 【EI会议 | 即将截稿】第二届机器人、自动化与智能控制国际会议征稿中

热门文章

  1. 教程:如何利用Google AIY做一个自动撵猫神器?
  2. 如何用语音模块SYN6288播报DHT11温湿度传感器传回来的数值
  3. Linux4.1初始化流程详细注释——第一阶段head.S与head-common.S
  4. [excel]删除excel中隐藏的双引号(用的WPS)
  5. Linux终端设备文件介绍
  6. 8051单片机(STC89C52)倒计时器
  7. R语言data.frame label的设置
  8. C++中静态成员函数和非静态成员函数的区别
  9. ☀️光天化日学C语言☀️(07)- ASCII码 | 来,跟我念:阿斯克二马
  10. 《社交媒体大数据分析——理解并影响消费者行为》一第1章 市场营销