1.应用层概述

应用层:计算机网络体系结构的最顶层,设计和建立计算机网络的最终目的
1. 早期基于文本的应用:电子邮件,远程登录,文件传输,新闻组
2. 20世纪90年代出现的万维网WWW
3. 即时通信,P2P文件共享及音视频应用

2.客户-服务器方式(C/S方式)和对等方式(P2P方式)

开发一种新的网络应用首先应考虑的是网络应用程序在各种端系统上的组织方式和它们之间的关系

2.1 客户-服务器方式

客户和服务器是指通信中涉及的两个应用进程,而C/S方式描述的是进程之间服务和被服务的关系
客户是服务的请求方,服务器是服务的提供方。
服务器总是处于运行状态,并等待客户的服务请求。
基于C/S方式的应用服务通常是服务集中型
而通常会出现一台服务器无法给多台客户机提供服务的情况,为此,常用计算机群集构建一个强大的虚拟服务器

2.2对等方式

没有固定的服务请求者和服务提供者
常见的P2P应用:P2P文件共享,即时通信等
基于P2P的应用通常是服务分散型,其可扩展性非常高,系统性能不会因为规模增大而降低

3.动态主机配置协议DHCP

DHCP提供了一种即插即用联网机制,允许一台计算机加入新网络时可以自动获取IP地址等网络信息而不用手工参与

DHCP发送的报文类型:

  1. DHCP DISCOVER:DHCP发现报文
  2. DHCP REQUEST:DHCP请求报文
  3. DHCP NACK:DHCP否认报文
  4. DHCP OFFER:DHCP提供报文
  5. DHCP ACK:DHCP确认报文
  6. DHCP RELEASE:DHCP释放报文
    image.png

DHCP在运输层使用UDP协议封装

  1. DHCP客户的UDP端口号为68
  2. DHCP服务器的UDP端口号为67

DHCP客户未获取IP地址前的地址为0.0.0.0

DHCP中继代理:给路由器配置DHCP服务器的IP地址,由路由器代替主机请求获取IP地址,以减少网络中的DHCP服务器数量

4.域名系统DNS

定义:Internet使用的命名系统,将便于人们记忆,具有特定含义的网址转换为便于机器处理的IP地址

Internet采用层次树状结构的域名结构
···.三级域名.二级域名.顶级域名
顶级域名TLD的分类:

  1. 国家顶级域名nTLD
    1. 如:cn表示中国,us表示美国,uk表示英国
    2. 国家顶级域名下注册的二级域名由该国家自行确定
      • 我国二级域名分类:
        • 类别域名:
          • ac(科研机构)
          • com(工商、金融等企业)
          • edu(教育机构)
          • gov(政府部门)
          • net(提供网络服务的机构)
          • mil(军事机构)
          • org(非营利性组织)
        • 行政区域名:共34个
  2. 通用顶级域名gTLD
    1. com:公司企业
    2. net:网络服务机构
    3. int:国际组织
    4. org:非营利性组织
    5. edu:美国教育机构
    6. gov:美国政府部门
    7. mil:美国军事部门
  3. 反向域arpa
    用于反向域名解析,IP地址->域名

DNS(分布式系统)使用分布在各地的域名服务器实现域名到IP地址的转换
域名服务器的类型:
1. 根域名服务器
根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址
2. 顶级域名服务器
管理在该顶级域名服务器注册的所有二级域名
3. 权限域名服务器
管理某个区域的域名
4. 本地域名服务器/默认域名服务器
作为代理,将主机发送的报文转发到上述域名服务器

域名解析的两种查询方式

  1. 递归查询
    从主机开始逐级向权限域名服务器发送查询
    image.png
  2. 迭代查询
    由主机向本地域名服务器发送递归查询,而本地域名服务器逐个向上级域名服务器发送查询请求
    image.png

为提高查询效率,域名服务器和主机都采用了高速缓存。
如果在本人使用的客户机发送网址请求已有人发送过同样的请求,域名服务器会暂时记录在高速缓存中,而当有相同请求发送到域名服务器后,本地域名服务器不用再次查询,而是直接将对应的IP地址发送到客户机

DNS使用UDP协议,端口号为53

5.文件传送协议FTP

文件传送协议FTP是Internet使用最广泛的文件传送协议,采用C/S方式

  • 提供交互式访问,允许客户指明文件类型和格式,且允许文件具有存取权限
  • 屏蔽各计算机系统的细节,适用于异构网络中任意计算机传送文件

基本工作原理:FTP客户和服务器之间建立两个并行的TCP连接

  1. 控制连接,整个会话期间一直打开,传送FTP相关控制命令
  2. 数据连接,用于文件传输,传输文件时打开,结束则关闭
  3. 默认情况下,FTP服务器使用TCP 21端口进行控制连接,TCP 20端口进行数据连接。但是否使用TCP 20端口取决于FTP是否是主动方式,若是被动方式,则由服务器和和客户自行协商
    image.png

6.电子邮件

电子邮件(E-mail),Internet早期的应用,采用C/S方式
主要组成构件:

  1. 用户代理
    用户与电子邮件系统的接口,又称电子邮件客户端软件
  2. 邮件服务器
    电子邮件系统的基础设施,用于发送和接收邮件
  3. 电子邮件所需协议
    1. 发送协议SMTP
      1. 基于TCP连接,端口为25
      2. 只能传送ASCII码文本
      3. 用于用户代理到邮件服务器以及邮件服务器之间的邮件发送
        image.png
      4. 为了解决非ASCII码文本传输的问题,采用多用途因特网邮件扩展MIME进行转换
    2. 读取协议:
      1. 邮局协议POP3
        简单,功能有限,只能以下载并删除(or保存)从服务器下载到用户计算机,不允许用户在服务器上管理邮件
      2. 因特网邮件访问协议IMAP
        用户可以在自己计算机管理服务器中的邮件

基于万维网WWW的电子邮件:

  • 通过浏览器登录服务器万维网网站即可管理,收发和阅读电子邮件
  • 这种方式在用户和服务器之间使用HTTP超文本传送协议,服务器和服务器之间还是SMTP协议

7.万维网WWW

WWW:一个大规模的、联机式的信息储藏所,运行在Internet上的分布式应用

浏览器的重要部分:渲染引擎(浏览器内核)

统一资源定位符URL:Internet上任何种类“资源”的位置
格式:<协议>://<主机>:<端口>/<路径>

万维网文档(前端):

  1. HTML:超文本标记语言
  2. css:层叠样式表
  3. JavaScript:脚本语言

超文本传输协议HTTP:

  1. HTTP的版本
    1. HTTP/1.0:
      1. 非持续连接,每请求一次都要建立连接,收到响应就关闭
    2. HTTP/1.1:
      1. 持续连接,响应之后仍然保持连接;
      2. 流水线,收到HTTP响应报文前可持续发送请求报文
  2. HTTP报文:
    1. 请求报文
      image.png
    2. 响应报文
      image.png
      状态码(5大类33种):
      1. 1xx表示通知信息,如请求收到or正在处理
      2. 2xx表示成功
      3. 3xx表示重定向,即完成请求还必须采取进一步行动
      4. 4xx表示客户差错
      5. 5xx表示服务器差错

Cookie:对无状态的HTTP进行状态化的技术。
可以让万维网服务器记住用户,无需用户主动提供用户标识信息。下次访问时可以不用重复识别

Web缓存:可位于客户机or中间系统,位于中间系统上的又称代理服务器。
当新请求到达时,若发现这个请求与暂时存放的请求相同,就发送暂存的响应,而无需按照URL再次访问