计算机网络之应用层

(一)网络应用的体系结构

1. 网络应用体系结构种类

  • 客户机/服务器结构(C/S结构)
  • 点对点结构(P2P结构)
  • 混合结构

2. 客户机/服务器结构

客户机

  • 与服务器通信,使用服务器提供的服务
  • 间歇性接入网络
  • 可能使用动态IP地址
  • 不会与其他客户机进行通信

服务器:

  • 7*24小时提供服务
  • 永久性访问地址/域名
  • 利用大量服务器可实现可扩展性

3. P2P结构

特点:

  • 没有永远在线的服务器
  • 任意端系统之间可以直接通讯
  • 节点间歇性接入网络
  • 节点可能改变IP地址

优点:高度可伸缩

缺点:难于管理

(二)网络应用进程通信

进程:主机上运行的程序

同一主机上进程间通信:操作系统提供了一套进程间的通信机制

不同主机上进程间通信:消息交换/报文交换

客户机进程:发起通信的进程

服务器进程:等待通信请求的进程

套接字:进程间通信利用套接字socket实现发送/接收信息

1. 寻址进程

标识符:不同主机上的进程间通信,那么每个进程必须拥有标识符

主机寻址:利用IP地址

进程寻址:利用端口号(Port number)

进程的标识符:IP地址 + 端口号

(三)应用层协议

公开协议:由RFC定义,允许互操作,例如HTTP,SMTP,……

私有协议:多数P2P文件共享应用

1. 应用层协议内容

应用层协议内容:

  • 消息的类型
    • 请求消息
    • 相应消息
  • 消息的语法/格式
    • 消息中包含的字段
    • 字段的描述
  • 字段的语义
    • 字段中消息的含义
  • 规则
    • 进程如何以及何时发送/响应消息

(四)网络应用的需求与传输层服务

1. 网络应用需求

网络应用需求种类:

  • 数据丢失/可靠性
  • 时间/延迟
  • 带宽
  • 安全性

2. 传输层服务

2.1 TCP服务
  • 面向连接:客户机和服务器进程之间需要建立连接
  • 一种可靠的数据传输
  • 流量控制:发送方不会发送速度过快,从而超过接收方的处理能力
  • 拥塞控制:当网络负载过重时限制发送方的发送速度
  • 不提供时间/延迟保障
  • 不提供最小带宽保障
2.2 UDP服务
  • 无连接
  • 是一种不可靠的数据传输
  • 啥基本上都不提供

(五)Web应用

Web组成:网页及网页间的互相链接

网页组成:

  • 对象:HTML文件,JPEG图片
  • 基本HTML文件:包含对其他对象引用的连接

对象的寻址:

  • URL:统一资源定位器
    • 格式:Scheme://host:port/path
    • 格式:协议://主机地址:端口号/资源路径
  • 浏览器中显示的双斜杠后面的是域名,之后电脑会将域名解析为主机的IP地址

应用层遵循协议:HTTP协议(超文本传输协议)

Web应用网络架构:C/S架构

  • 客户(Brower):请求、接收、展示Web对象
  • 服务器(Web Server):响应客户的请求、发送对象

传输层遵循协议:TCP协议

HTTP连接类型:

  • 非持久性连接
  • 持久性连接

一、HTTP连接

(一)非持久性连接
1.具体过程
  • 首先是用户在浏览器中输入URL:www.zhihu.com/question/511451839
  • HTTP客户端向地址为www.zhihu.com的HTTP服务器进程(端口为80)发送TCP连接请求
  • HTTP服务器在端口80等待TCP连接请求,接收连接并通知客户端
  • HTTP客户端将HTTP请求消息(包含URL地址)通过TCP连接的套接字发送给HTTP服务器,消息中包含的URL表明客户端需要对象question/511451839
  • HTTP服务器收到请求消息,解析,产生包含所需要对象的响应消息,并通过套接字发送给客户端
  • 在消息发出后,HTTP服务器关闭TCP连接
  • HTTP客户端收到响应消息,解析html文件,发现有多个指向jepg对象的超链接
  • 为每一个jepg对象重复步骤1-5
(二)持久性连接
1.无流水的持久性连接

概念:客户端只有在收到前一个响应之后才会发送新的请求,因此,每个被引用的对象消耗一个RTT

2.带有流水机制的持久性连接

概念:客户端只要遇到一个引用对象就尽快发出请求

(三)HTTP消息格式
1. HTTP消息类型
  • 请求消息
  • 响应消息
2. 请求消息
  • 采用ASCII码的形式编写,人直接可读

  • 在这里插入图片描述

    • 第一行:请求行;GET为请求命令;后面是URL以及HTTP的版本
    • 第二~五行:头部行;分别是:主机域名、浏览器类型及版本、连接状态以及语言
3. 上传输入

上传输入使用场合:浏览器输入中包含了类似用户名与密码等需要向服务器输入的信息

上传输入方法:

  • POST方法
    • 使用场景:网页中需要用户填写表格
    • 在请求消息的消息体中上传客户端的输入
  • URL方法
    • 使用GET方法
    • 在请求消息的请求行中的URL字段中上传
4. 响应消息

在这里插入图片描述

  • 第一行:状态行;包括HTTP版本、状态代码及解释
  • 第二~七行:头部行
(四)Cookie技术

cookie技术:某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密)

cookie组件:

  • HTTP请求消息的cookie头部行
  • HTTP响应消息的cookie头部行
  • 保存在客户端主机上的cookie文件,由浏览器管理
  • 服务器端的后台数据库

(六)DNS应用

1. DNS记录与消息格式

1.1 DNS记录

DNS记录(又称为资源记录):RR

RR的格式:RR format:(name, value, type, ttl)

  • Type A
    • name:主机域名
    • value:IP地址
  • Type NS
    • name:域(edu.cn)
    • value:该域权威域名解析服务器的主机域名
  • Type CNAME
    • name:某真实域名的别名
    • value:真实域名
  • Type MX
    • value是与name对应的邮件服务器
1.2 DNS协议与消息

DNS协议主要用于查询和回复消息,其消息格式是相同的

DNS消息格式

在这里插入图片描述

  • 消息头部
    • identifiction:16位查询编号,回复使用相同的编号

(七)P2P应用

1. 索引技术

P2P系统的索引:信息到节点信息(IP地址+端口号)的映射

索引种类:

  • 集中索引:节点加入时,通知中央服务器其IP地址及内容
    • 首先是请求方通过中央服务器确定响应者位置,之后再与响应者建立连接
  • 洪泛式查询:完全分布式架构,每个节点对它且只对它共享的文件进行索引
    • 查询信息通过已有的TCP连接发送
    • 节点转发查询消息
    • 如果查询命中,则利用反向路径发回查询节点
  • 层次式覆盖网络:整个网络由节点与超级节点组成,节点与超级节点之间维持TCP连接,超级节点之间维持TCP连接,超级节点负责跟踪子节点内容
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值