计算机网络-应用层概述

1. 网络应用程序体系结构

  • 客户-服务器体系结构(CS)

服务器(中心):

  • 一直运行
  • 固定的 IP 地址和周知的端口号(如 Http 服务器的默认端口号是 80)
  • 扩展性:服务器场也即服务器集群(扩展内存或硬盘或更换更高档的服务器)
    • 数据中心进行扩展
    • 扩展性差(用户达到一定程度,服务器的性能会断崖式的下降)
  • 例如:万维网WWW、电子邮件、文件传输 FTP

客户端:

  • 主动与服务器通信
  • 与互联网有间歇性的连接
  • 可能是动态 IP 地址(DHCP 协议)
  • 不直接与其他客户端通信

在这里插入图片描述

  • 对等模式(P2P)
    • (几乎)没有一直运行的服务器
    • 任何端系统之间可以进行通信
    • 每一个节点既是客户端,又是服务器
      • 可扩展性:新的 peer 节点带来新的服务能力,也带来了新的服务请求,系统性能不会规模的增大而降低。
    • 参与的主机间歇性连接可以改变 IP 地址
      • 难以管理
    • 例如:迅雷

在这里插入图片描述

  • 混合体:客户-服务器和对等体系结构

2. 进程通信

进程:在主机上运行的应用程序。

  • 在同一个主机内,使用进程间通信机制通信(操作系统定义)
  • 不同主机通过交换报文(Message)来通信
    • 使用OS提供的通信服务
    • 按照应用协议交换报文
      • 借助传输层提供的服务
  • 客户端进程:发起通信的进程
  • 服务器进程:等待连接的进程
  • 注意:P2P 架构的应用也有客户端和服务器进程之分

3. 分布式进程需要解决的问题

  • 标识和寻址
    • 标识:ip 地址 + tcp/udp port(端口号)
    • 任何一个应用进程都可以采用一个端点(end pooint)来标识;任何一对应用进程间的通信都可以用两个端点来标识
  • 传输层提供的服务-需要穿过层间的信息
    • 应用层与传输层层间接口必须要携带的信息
      • 要传输的报文:(对于本层来说:SDU)
      • 谁传的:对方的应用进程的标识:IP+TCP(UDP)端口号
      • 传给谁:对方的应用进程的标识:对方的IP+TCP(UDP)端口号
    • 传输层实体(TCP/UDP 实体):根据这些信息进行 TCP 报文段或者 UDP 数据报的封装
      • 源端口号,目标端口号,数据等
      • 将 IP 地址往下交给 IP 实体,用于封装 IP 数据报,源 IP,目标 IP
  • 传输层提供的服务-层间信息的代表
    • TCP socket:
      • socket 并不是指端口号,套接字是4元组的一个具有本地意义的标识。
      • 用于指明应用进程会话的本地标识
      • 4元组:源 IP,源 port,目标 IP,目标 port
      • 应用层可以和传输层通过 Socket 接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
      • socket 则是对TCP/IP协议的封装, Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。
    • UDP socket
      • 对于无连接服务(UDP)的应用而言,套接字是2元组的一个具有本地意义的标识。
      • 用于指明应用进程所在端节点的本地标识
      • 2元组:IP,port(源端指定)
      • UDP 套接字指定了应用所在的一个端节点 (end point)
      • 在发送数据报时,采用创建好的本地套接字 (标识Id),就不必再发送的每个报文中知名自己所采用的 ip 和 port
      • 但是在发送报文时,必须要指定对方的 ip 和 udp port
        在这里插入图片描述

4. 套接字(Socket)

  • 进程向套接字发送报文或从套接字接受报文
  • 套接字<–>门户
    • 发送报文将报文推出门户,发送进程依赖于传输层设施在另外一层的门将报文交付给接收进程
    • 接收进程从另外一端的门户收到报文(依赖于传输层设施)

5. Internet 传输层提供的服务

  • TCP 服务:
    • 可靠的传输服务
    • 流量控制:发送方不会淹没接收方
    • 拥塞控制:当网络出现拥塞时,能抑制发送方
    • 不能提供的服务:时间保证、最小吞吐保证和安全
    • 面向连接:要求在客户端进程和服务器进程之间建立连接
  • UDP 服务:
    • 不可靠数据传输

6. 应用层协议

定义:运行在不同端系统上的应用进程如何相互交换报文
协议:通信操作的规则定义称为协议(protocol)。

  • 交换的报文类型:请求报文和应答报文
  • 各种和报文类型的语法:报文中的各个字段及其描述
  • 字段的语义:进程何时、如何发送报文以及队报文进行相应的规则

应用协议仅仅是应用的一个组成部分:
Web应用:

  - Http 协议,web 客户端,web 服务器,HTML超文本标记语言

公开协议:

  - 由RFC文档定义
  - 允许互操作
  - 如HTTP,SMTP(邮件协议)

专有协议:

  - 协议不公开
  - 如:Skype

应用需要传输层提供什么样的服务?
常见应用对传输服务的要求
在这里插入图片描述

7. HTTP协议(简要介绍)

  • web 的应用层协议
  • 客户端/服务器模式
    • 客户端:请求、接收和显示 web 对象的浏览器
    • 服务器:对请求进行响应,发送对象的 web 服务器
  • 使用 TCP:
    • 客户端发起一个与服务器的 TCP 连接(建立套接字),端口号为80
    • 服务器接收客户端的 TCP 连接
  • TCP 关闭连接
  • HTTP 的基本思路如下图:
    • URI:Uniform Resource Identifier,统一资源标识符。

在这里插入图片描述

  • HTTP URL 的各种格式
    • URL:Uniform Resource Locator,统一资源定位符。

在这里插入图片描述

  • Http 消息(报文)的格式

在这里插入图片描述

  • HTTP 消息的状态码
    • 状态码的第一位数字表示状态类型,第二三位数字表示具体的情况。下面例举了第一位数字的含义。

在这里插入图片描述

HTTP 连接:

  - 非持久Http(Http1.0)
     - 最多只有一个对象在 TCP 连接上发送
     - 每次浏览器要请求一个文件都要与浏览器建立 TCP 连接,当收到响应后就立即关闭连接。
     - 每次请求一个文档就要有 2倍的 RTT 时间。
     - 为了减小时延,浏览器通常会建立多个并行的 TCP 连接请求多个对象。但是这会大量占用服务器的资源。

在这里插入图片描述

  - 持久Http (Http1.1)
     - 多个对象可以在一个 TCP 连接上传输
     - 为了进一步提高效率,Http1.1 的请求连接可以使用流水线的方式工作,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。这样的一个接一个的请求报文到达服务器后,服务器就发挥一个一个的响应报文。这样就节省了很多个 RTT 时间,使 TCP 连接中的空闲时间减少,提高文档的下载效率。 

8. 动态主机配置协议DHCP

  • DHCP的工作过程:

在这里插入图片描述

  • DHCP中继代理

在这里插入图片描述

在这里插入图片描述

9. 域名系统DNS

  • 因特网采用层次树状结构的域名结构
  • 域名的结构是由若干个分量组成,各分量之间用"点"隔开,分别代表不同级别的域名。
例如:xxx.三级域名.二级域名.顶级域名
  • 每一级的域名都由英文字母和数字组成,不超过63个字符,不区分大小写字母。
  • 级别最低的域名写在最左边,级别最高的域名写在最右边。
  • 完整的域名不超255个字符。
  • 域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。
  • 各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构 ICANN 进行管理。
  • 域名解析的过程:

在这里插入图片描述

  • 高速缓存:
    • 通过缓存加快DNS服务器的响应

在这里插入图片描述

  • 注意:

信息被缓存后,原本的注册信 息可能会发生改变,这时缓存中的信息就有可能是不正确的。因此,DNS 服务器中保存的信息都设置有一个有效期,当缓存中的信息超过有效期后,数据就会从缓存中删除。而且,在对查询进行响应时,DNS 服务器也会告知客户端这一响应的结果是来自缓存中还是来自负责管理该域名的 DNS 服务器。

10. 文件传输协议 FTP

  • 文件传输协议(File Transfer Protocol)是因特网上使用得最广泛的文件传输协议
    • FTP 提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用 ASCII 码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)
    • FTP 屏蔽了计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
  • FTP 的常见用途:
    • 在计算机之间传输文件,尤其是用于批量传输文件。
    • 让网站设计者将构成网站内容的大量文件批量上传到他们的 Web 服务器。
  • FTP 的基本工作原理

在这里插入图片描述

  • FTP 客户和服务器之间要建立立下两个并行的 TCP 连接:
    • 一个是控制连接,在整个会话期间一直保持打开,用于传送 FTP相关的控制命令。
    • 一个是数据连接,用于文件传输,在每次文件传输时才建立,传输结束就关闭。
  • 默认情况下,FTP 采用20端口建立数据连接,采用21端口进行控制连接。
  • 但是,是否使用TCP 20 端口建立数据连接与 传输模式 有关,主动方式采用 TCP 20 端口,被动方式由服务器和客户端自行协商决定。

11. 电子邮件

  • 电子邮件采用客户/服务器方式。
  • 电子邮件系统的三个主要组成构件:用户代理,邮件服务器,以及电子邮件所需的协议。
    • 用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件。
    • 邮件服务器是电子邮件系统的基础设施。因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱。
    • 协议包括邮件发送协议(例如SMTP)和读取协议(例如POP3,IMAP)。

在这里插入图片描述

在这里插入图片描述

  • 小结:

在这里插入图片描述

注:本文部分图片来源于b站计算机网络微课堂。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值