应用层-应用层协议原理

  • 应用层协议原理
    • 网络应用程序体系结构
      • 客户-服务器体系结构
      • P2P体系结构
    • 进程通信
      • 客户和服务器进程
      • 进程与计算机网络之间的接口
      • 进程寻址
    • 可供应用程序使用的运输服务
      • 可靠数据传输
      • 吞吐量
      • 定时
      • 安全性
    • 因特网提供的运输服务
      • TCP服务
      • UDP服务
      • 因特网传输协议所不提供的服务
    • 应用层协议

应用层协议原理

研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序。
在Web应用程序中,有两种互相通信的不同的程序:一个是运行在用户主机的浏览器程序,一个是运行在Web的服务器主机上的Web服务器程序。
在P2P文件共享中,每个参与的主机都有一个程序。

网络应用程序体系结构

客户-服务器体系结构

有一个总是打开的主机称为服务器,服务于来自许多其他成为客户的主机的请求。
客户通过服务器的固定的、周知的地址(IP地址)向服务器发送请求,Web服务器接收来自客户的请求,向该客户发送所请求的对象作为响应,客户之间不直接通信。
缺点:对服务器(数据中心)的要求较高,需要大量服务器处理大量请求,并产生互联和宽带费用

P2P体系结构

对位于数据中心的专用服务器有最小的(或没有)依赖,应用程序在主机队之间使用直接通信,这些主机被称为对等方。(个人理解是将服务器的压力分摊到各个用户的主机上)
优点:
成本较低,不需要较高要求的服务器和带宽。
挑战:
1、ISP友好(原来的ISP设计符合下载比上载多,P2P对上载要求同样较高)
2、安全性(P2P更加开放)
3、激励(需要使用用户的主机来完成任务)

进程通信

一个进程可以被认为是运行在端系统中的一个程序。在两个不同端系统上的进程,通过跨越计算机网络交换报文而相互通信。

客户和服务器进程

网络应用程序有成对的进程组成,这些进程通过网络相互发送报文。对于每对进程,进程之一标识为客户,另一个进程标识为服务器。(发起通信的进程被标识为客户,在会话开始时等待联系的进程是服务器)

进程与计算机网络之间的接口

多数应用程序是由通信进程对组成,每对中的两个进程互相发送报文。从一个进程向另一个进程发送报文和从网络接收报文必须通过下面的网络。进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。
套接字是同一台主机内应用层和运输层之间的接口,是建立网络应用程序的可编程接口,也称为应用层程序和网络之间的应用程序编程接口。应用程序开发者可以控制套接字在应用层端的一切,但是对该套接字的运输层端几乎没有控制权。(1、选择运输层协议 2、也许能设定几个运输层参数,如最大缓存和最大报文段长度)

进程寻址

在一台主机上运行的进程为了向在另一台主机上运行的进程发送分组,接收进程需要有一个地址。为了表示该接收进程,需要定义:
1、主机的地址
2、定义在目的主机中的接受进程的标识符(接受套接字)
在因特网中,主机由其IP地址标识。IP地址是一个32比特的量且它能够唯一的标识该主机。接收进程的标识符是目的地端口号

可供应用程序使用的运输服务

套接字是应用程序进程和运输层协议之间的接口。在发送端的应用程序将报文推进该套接字,在套接字的另一侧,运输层协议负责使该报文进入接收进程的套接字。需要选用不同的运输层协议,从四方面对应用程序服务要求分类:可靠数据传输、吞吐量、定时和安全性。

可靠数据传输

一个协议能够是应用程序的一端发送的数据正确、完全地交付给该应用程序的另一端,就认为提供了可靠数据传输。有些应用能够容忍数据丢失,如多媒体应用。

吞吐量

可用吞吐量就是发送进程能够向接受进程交付比特的速率。因为网络路径的带宽共享,吞吐量将随时间波动,运输层协议能够以特定的速率提供确保的可用吞吐量。具有吞吐量要求的应用程序被称为带宽敏感的应用。

定时

运输协议保证从发送到接收低时延

安全性

运输协议对数据加密发送,解密交付

因特网提供的运输服务

因特网为应用程序提供两个运输层协议,即UDP和TCP

TCP服务

包括面向连接服务和可靠数据传输服务。
面向连接服务:在应用层数据报文开始流动之前,TCP让客户和服务器相互交换运输层控制信息。在握手阶段后,一个TCP连接在两个进程的套接字之间建立了。连接双方的进程可以在此连接上同时进行报文收发。在应用程序结束报文发送时,必须拆除该连接。
可靠的数据传输服务:无差错、按适当顺序交付所有发送的数据,没有字节的丢失和冗余。
当发送方和接收方之间的网络出现用拥塞时,TCP的拥塞机制会抑制发送进程(客户或服务器)

UDP服务

是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务。无握手过程,提供不可靠数据传输服务,没有拥塞控制机制。

因特网传输协议所不提供的服务

目前的因特网运输协议不提供吞吐量或定时保证服务。电子邮件、远程终端访问、Web、文件传输都使用TCP。因特网电话应用通常设计成如果UDP通信失败就使用TCP作为备份

应用层协议

应用层协议定义了:
•交换的报文类型,例如请求报文和响应报文。
•各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的。
•字段的语义,即这些字段中包含的信息的含义。
• 一个进程何时以及如何发送报文,对报文进行响应的规则。

计算机网络--应用层-应用层协议原理相关推荐

  1. 计算机网络——ICMP/IGMP协议原理

    摘要 ICMP全称是Internet Control Message Protocol,也就是互联网控制报文协议.网络包在复杂的网络传输环境里,常常会遇到各种问题.当遇到问题的时候,总不能死个不明不白 ...

  2. 计算机网络——HTTP协议原理

    摘要 在日常的开发中,很多开发的同学可能很少了解的HTTP协议的底层原理.HTTP协议的底层涉及到请求响应模型,HTTP的工作流程.cookie和session的原理等.本博文主要介绍计算机网络中HT ...

  3. 计算机网络——DNS域名解析服务器原理

    摘要 本博文主要介绍DNS协议和DNS服务器域名解析相关知识和原理,帮助大家在理解计算机网络中的域名解析服务原理. 计算机网络知识脑图 计算机网络--计算机网络知识脑图_庄小焱的博客-CSDN博客_计 ...

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

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

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

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

  6. 【计算机网络】应用层 : 总结 ( 网络应用模型 C/S P2P | 域名解析 DNS | 文件传输协议 FTP | 电子邮件 | 万维网 与 HTTP ) ★★★

    文章目录 一.网络应用模型 ★ 二.域名解析过程 ★ 三.FTP 文件传输协议 四.电子邮件★ 五.万维网 和 HTTP 协议★ 一.网络应用模型 ★ 网络应用模型 : ① 客户 / 服务器 模型 ( ...

  7. 计算机网络之应用层(文件传送协议、万维网)

    文件传送协议 FTP 文件传送协议 FTP 的概述 文件传送协议 FTP(file transfer protocol)是互联网上使用得最广泛的文件传送协议(应用层协议),基于可靠的 TCP 协议.F ...

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

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

  9. 2 应用层 - 应用层协议原理

    应用层协议原理 一.网络应用程序体系结构 客户机/服务器 体系结构 纯P2P 体系结构 客户机/服务器与P2P的混合 二.进程通信 客户机和服务器进程 套接字(socket) 进程与套接字关系 进程寻 ...

最新文章

  1. BeanShell中this类型引用的特殊成员
  2. PowerShell-2.解决禁止本地执行脚本
  3. Capturing 'self' strongly in this block is likely to lead to a retain cycle
  4. Dom4j使用Xpath语法读取xml节点
  5. iOS 多线程技术总结
  6. 新基建来了!5G边缘计算如何展现勃勃生机?
  7. 高效记忆/形象记忆(07)110数字编码表 11-20
  8. json接口(使用,以及自定义)
  9. JavaScript之多小球非对心弹性碰撞
  10. 思科模拟器配置默认路由(下一跳使用端口)
  11. 大数据技术之Hive 第8章 函数 系统内置函数
  12. 西游记中天庭与西天的关系
  13. 2021年三亚旅游行业发展现状分析:旅游总收入达747.03亿元,占GDP的89.43%[图]
  14. [ECCV2018]Generating 3D faces using Convolutional Mesh Autoencoders
  15. 写java时候,可能会经常遇到异常,如果对异常有个清晰的认识,异常并不可怕
  16. IOCP之accept、AcceptEx、WSAAccept的区别 .
  17. 密码学数学基础——群、环、域
  18. 基础实验——三轴传感器
  19. 搜索网络中的计算机名,怎样搜索一个局域网里全部机器的名字和IP地址
  20. RISC-V SiFive U54内核——中断和异常详解

热门文章

  1. 大学生利用漏洞“骗走”京东110万, 中心化白条的漏洞, 区块链能否补得上?
  2. Silverlight 2.0中文學習資源集萃
  3. 最最亲爱滴曼曼小盆友,生日快乐!
  4. Ubuntu22.04添加中文输入法
  5. 《贝叶斯思维:统计建模的Python学习法》一1.3 曲奇饼问题
  6. 金融工程专业学c语言吗,美国留学金融工程专业怎么样
  7. API精准定位IP地址
  8. objective-c 内存管理资料
  9. React Hooks详解
  10. 基于多项式插值的亚像素边缘定位算法