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

基本概念

  • 进程:主机上运行的程序,一个主机同时可以有多个进程
    • 通过网络报文交换通信
    • 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内容的站点服务器
    • ⑥用户和专属内容分发服务器发送下载请求

猜你喜欢

转载自blog.csdn.net/Yushiba972/article/details/125135703
今日推荐