应用层协议原理

  • 一、网络应用程序体系结构
    • 客户机/服务器 体系结构
    • 纯P2P 体系结构
    • 客户机/服务器与P2P的混合
  • 二、进程通信
    • 客户机和服务器进程
    • 套接字(socket)
      • 进程与套接字关系
    • 进程寻址
      • 进程识别信息(两部分)
    • 用户代理(user agent)
  • 三、应用层协议
  • 四、应用程序所需要的服务
    • 应用程序需要什么样的运输服务?
  • 因特网运输协议提供的服务
    • TCP服务
      • 面向连接的服务
      • 可靠的传输服务
      • 拥塞控制
      • 未提供的服务
    • UDP服务

主要内容:

  • 应用层概念:应用层协议、客户机与服务器、进程、套接字和运输层接口。
  • 应用程序:Web、电子邮件、域名系统DNS及P2P对等文件共享。
  • 开发网络应用程序的方法:套接字API编程

一、网络应用程序体系结构

应用程序体系结构:规定如何在各种端系统上组织引用,由研发者设计。
三种类型:

  • 客户机/服务器
  • 对等(P2P)
  • 客户机/服务器与P2P的混合

客户机/服务器 体系结构

服务器:

  • 总是打开
  • 为多个客户机提供请求提供服务
  • 永久的IP地址
  • 可扩展为服务器场(主机群集)

客户机:

  • 总是打开或间歇打开
  • 向服务器发出请求
  • 具有动态的IP地址
  • 彼此之间不直接通信

如Web应用程序:总是打开的Web服务器为运行在客户机主机上的浏览器的请求提供服务(接收客户机请求,并发送响应结果)。

纯P2P 体系结构

  • 无(最少)打开的服务器
  • 任意端系统(对等方)可以直接通信
  • 对等方间歇地连接,IP地址不固定

例:文件分发、因特网电话等
其特点为:可扩展度高、难以管理

未来P2P应用面临的三个主要挑战:

  • ISP友好:受制于“非对称”宽带应用
  • 安全性
  • 激励

客户机/服务器与P2P的混合

Napster:MP3文件共享应用程序。

  • P2P:对等方直接交换MP3文件
  • 服务器注册/定位:
    • 对等方在中心服务器上注册内容
    • 对等方查询相同的中心服务器以定位内容

即时讯息:

  • P2P:两个用户直接聊天
  • 服务器检测/定位:
    • 用户在线时,向中心服务器注册其IP地址
    • 用户联系中心服务器以找到聊天伙伴的IP地址

二、进程通信

进程(process):在主机上运行的程序。
进程通信:

  • 同一主机中两个进程间的通信:由操作系统控制;
  • 不同主机中进程间的通信:通过网络交换报文进行。
    • 发送进程:产生报文并向网络发送;
    • 接收进程:接收报文,并回送报文。

客户机和服务器进程

网络应用程序由成对的进程组成,并通过网络相互发送报文
根据功能分别标示为客户机和服务器

  • 客户机进程:发起通信的进程。
  • 服务器进程:等待其他进程联系的进程。

例如:Web应用程序中,一个客户机浏览进程向某个Web服务器进程发起联系,交换报文。
又如:一个P2P文件共享系统中,文件从一个对等方的进程传输到另一个对等方中的进程。

P2P结构的应用程序也可分别看成是客户机进程或服务器进程。
对等方A(客户机)请求对等方B(服务器)发送某个文件。

套接字(socket)

套接字:同一台主机内应用层与运输层之间的接口。
也叫应用程序和网络之间的应用程序接口API,是在网络上建立网络应用程序的可编程接口。

进程与套接字关系

进程类似房子,套接字是进程的门。
进程通过套接字在网络上发送和接收报文。

  • 发送进程:把报文推出门(套接字)
  • 传送报文:通过下面网络把报文传送到目的进程门口。
  • 接收进程:通过其门(套接字)接收报文。

应用程序开发者可以控制套接字应用层端的全部
对套接字的运输层端几乎不能控制(只能选择运输层协议、设定几个运输层参数等)。
应用程序开发者选择了一个运输层协议,则应用程序就建立在由该协议提供的运输层服务之上。如TCP协议。

进程寻址

主机上的进程可以有多个。
网络中有多个主机,每个主机上有多个进程

  • 进程识别信息:表示哪台主机上的哪一个进程
    源主机上的进程向目的主机上的进程发送报文时,应带有接收进程的识别信息(标识)。
  • 进程寻址:根据进程识别信息找到相应进程。

进程识别信息(两部分)

  • 主机名称或地址:网络中的哪一个主机
    因特网中,用IP地址标识(32位/64位,全球唯一)
  • 进程的标识:主机中的哪一个进程
    因特网中,采用端口号标识(port number)

常用的应用程序被指派固定的端口号
Web服务进程(HTTP协议):80
邮件服务进程(SMTP协议):25
创建一个新的网络应用程序时,必须分配一个新的端口号,不能重复

用户代理(user agent)

是用户与网络应用程序之间的接口。
如:

  • Web应用的用户代理:是一些浏览器软件
    一个通过套接字收发报文,并提供用户接口的进程
  • 电子邮件应用程序用户代理:是“邮件阅读器”。
    允许用户进行邮件的撰写和阅读

三、应用层协议

定义了运行在不同端系统上的应用程序进程间传递报文的格式和方法
具体内容:

  • 各种报文类型及其语法:报文类型如请求报文和响应报文;报文中的各个字段及描述
  • 字段的语义:字段包含信息的含义
  • 时序:进程何时、如何发送报文及对报文进行响应的规则。

四、应用程序所需要的服务

应用程序间通信:由运输协议跨越网络将发送进程的报文传输到接收进程的门户
需要使用运输协议所提供的服务
运输协议有多种,提供的服务不同。

应用程序需要什么样的运输服务?

  • 可靠的数据传输(无数据丢失)

    • 数据不能丢失的应用:如文件传输、金融事务等。
    • 能容忍数据丢失的应用:如多媒体应用。
  • 带宽(数据传输率)
    • 带宽敏感的应用:需要特定的带宽才能正常工作。
    • 弹性应用:使用的带宽多或少影响不大。
  • 定时(数据传输的时间限制)
    • 交互式实时应用:对时间敏感,要求时延小,如,因特网电话、视频会议及多方游戏等。
    • 非实时应用:时延无限制,时延低更好
  • 安全性

因特网运输协议提供的服务

两个运输层协议:

  • 用户数据报协议UDP
  • 传输控制协议TCP
    每个协议为调用它们的应用程序提供不同的服务模型。
    在创建一个新的因特网应用时,要选择其中一个。

TCP服务

两个方面:
面向连接的服务
可靠的传输服务

面向连接的服务

三阶段

  • 建立连接(握手过程):
    客户机程序和服务器程序之间互相交换控制信息,在两个进程的套接字之间建立一个TCP连接
  • 传输报文:
    连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。
  • 拆除连接:
    应用程序报文发送结束。

可靠的传输服务

通信进程可以无差错、按适当顺序交付发送的数据
没有数据丢失和重复

拥塞控制

当发送方和接收方之间的网络出现拥塞事,会抑制发送进程速率。
对整个网络有益
拥塞控制还会试图限制每个TCP链接,达到公平共享网络带宽的目的

未提供的服务

TCP和UPD都没有提供任何加密机制
安全套接字层(Secure Socket Layer, SSL)

  • 属于应用层协议,位于应用层协议与TCP之间;
  • 提供了加密、数据完整性、端点鉴别等功能,实现进程间安全通信

不确保最小传输速率:发送进程受拥塞控制机制制约;
不提供时延保证:数据传输等时间不确定。
TCP协议能保证交付所有的数据,但并不保证这些数据传输的速率以及期待的传输时延

UDP服务

提供最小服务模式运行

  • 无连接:两个进程通信前没有握手
  • 不可靠数据传输:不保证报文能够被接收,或收到的报文是乱序到达
  • 没有拥塞控制机制:发送进程可以任何速率发送数据
  • 不提供时延保证

2 应用层 - 应用层协议原理相关推荐

  1. 【计算机网络】2.1 应用层协议原理

    第二章第一节 应用层协议原理 网络应用是计算机网络存在的理由,在本章中,我们学习有关网络应用的原理和实现方面的知识.我们学习包括应用沉香谷所需要的网络服务.客户和服务器.进程和运输层接口. 我们详细考 ...

  2. 应用层———应用层协议原理(1)

    应用层协议原理 一.网络应用程序体系结构 1.客户-服务器体系结构(client-server architecture) 2.P2P 体系结构(P2P architecture) 二.进程通信 1. ...

  3. 计算机网络--应用层-应用层协议原理

    应用层-应用层协议原理 应用层协议原理 网络应用程序体系结构 客户-服务器体系结构 P2P体系结构 进程通信 客户和服务器进程 进程与计算机网络之间的接口 进程寻址 可供应用程序使用的运输服务 可靠数 ...

  4. 计算机网络(七):应用层协议原理

    零.基础理论 网络应用是计算机网络存在的理由,如万维网(包含了web冲浪.搜索和电子商务),以及具有好友列表的即时讯息和对等(P2P)文件共享. 网络应用都是在端系统上的. 网络应用的基本概念.原理: ...

  5. Delphi开发环境中应用层网络协议的实现

    已经进入Internet网络时代了,许多新出的软件都拥有网络功能.其实,在这些软件背后所依靠的技术基础就是一系列的Inernet网络协议标准,亦即TCP/IP系列协议. 下面本人简要介绍一下在Delp ...

  6. 应用层——HTTP协议

    文章目录 一.应用层 1.1 应用层概念 1.2 再谈协议 二.网络版本的计算器 网络计算器编码部分 版本1:原生版本 版本2:引入序列化和反序列化 三.HTTP协议 3.1 URL 3.2 urle ...

  7. 网络安全——应用层安全协议

    作者简介:一名云计算网络运维人员.每天分享网络与运维的技术与干货.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.应用层安全协议 1.应用层安全威胁 2.电子邮件 ...

  8. 应用层常见协议——知识点

    这里总结了三种常见的应用层协议:HTTP.FTP.SMTP.供自己复习使用,也供大家参考! 一.HTTP协议 1.HTTP简介 -超文本传输协议(Hypertext transfer protocol ...

  9. 应用层安全协议Kerberos

    应用层安全协议Kerberos 应用层安全协议Kerberos:Kerberos并非为,每一个服务器构造一个身份认证协议,而是提供一个中心认证服务器,提供用户到服务器以及服务器到用户的认证服务.Ker ...

最新文章

  1. MySQL之简单示例
  2. 玩转百度即用API(2)——身份证查询
  3. 浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应
  4. Elasticsearch-单机部署避坑指南
  5. 【PC工具】chrome插件:n多好用实用chrome插件
  6. vsftpd的基于pam_mysql的虚拟用户机制
  7. 温州大学《机器学习》课程代码(二)(回归)
  8. aop执行跳过某个方法_简谈前端开发中的AOP(一) -- 前端AOP的实现思路
  9. [vue] 什么是双向绑定?原理是什么?
  10. php正则表达式替换ubb,自定义ubb代码,preg_replace()函数的一些代码
  11. php 豆瓣api_豆瓣网api使用方式
  12. GfK十大洞见揭示物联网时代正全面开启
  13. 工作流(Workflow)基本介绍
  14. ie浏览器点击打印没反应_ie浏览器无响应怎么回事?ie浏览器点击没有反应解决方法分享...
  15. 06)JDK1.8 新特性学习 重复注解
  16. Drozer的安装与使用 | Android逆向工具
  17. Windows命令之ftp命令
  18. 分享推荐国产串口PSRAM外扩芯片EMI7064LSME
  19. 科学计算自由软件SCILAB
  20. html+css学习第六天(背景图片、精灵图片、元素内容溢出、长度单位)

热门文章

  1. linux获取网卡广播ip,获得本机所有网卡的IP,MASK,广播地址
  2. IBM安全产品--QRadar
  3. macbook pro 盒盖后不休眠的问题
  4. 中国图像图形学报参考文献格式书写规范2020
  5. 【论坛转贴】IP spoof欺骗关于修改ip源向网页post的方法,伪造虚假IP来源!可用于群发发贴机拱贴机邮件EMail群发!!!!!!
  6. Linux Qt cannot find -lGL 解决方案
  7. 郭大侠与线上游戏(set)
  8. sas模拟试验构建线性模型_在sas上构建一个有角度的Web应用程序
  9. cdoj 1342 郭大侠与甲铁城 树状数组+离线
  10. linux 薄膜键盘驱动,有限状态机的嵌入式Linux按键驱动设计