【计算机网络】2.1 应用层协议原理
第二章第一节 应用层协议原理
网络应用是计算机网络存在的理由,在本章中,我们学习有关网络应用的原理和实现方面的知识。我们学习包括应用沉香谷所需要的网络服务、客户和服务器、进程和运输层接口。
我们详细考察几种网络应用程序,包括Web、电子邮件、DNS 和 P2P文件分发。
Outline
- 网络应用程序体系结构
- 进程通信
- 因特网提供的运输服务
- TCP
- UDP
- 应用层协议
Notes
## 应用程序体系结构
应用程序体系结构由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序。
三种程序结构为:客户 - 服务器体系结构、对等(P2P)体系结构和混合结构
【客户-服务器体系结构】
- 定义:有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求
- 服务器
- 对外提供不间断服务
- 服务器具有固定的、周知的地址(IP地址)
- 利用大量服务器实现可扩展性(数据中心)
- 客户端
- 客户端使用服务,间歇性接入网络
- 可能使用动态的IP地址
- 客户端之间不相互通信
- 栗子:Web服务器、FTP、电子邮件
【P2P体系结构】
- 特点:
- 对于位于数据中心的专用服务器有最小(或没有)的依赖
- 任意端系统/节点可以直接通信,这些主机被称为对等方
- 端系统间歇性接入网络,可能改变IP地址
- 栗子(流量密集型应用):文件共享、对等方协助下载加速器(迅雷)、因特网电话等
- 优点:自扩展性(成本可控、通过与其他对等方分发文件以增加服务能力)
- 缺点:难以管理
- 三大挑战:
- ISP友好:大多数住宅ISP的下载要比上载多得多,ISP已经受制于非对称的带宽应用
- 安全性:因为高度分布和开放特性,P2P给安全带来挑战
- 激励:要税负用户资源提供带宽、存储和计算资源
【混合结构】
P2P难于管理,那我们就混入C/S的集中管理。C/S中服务器压力过大,我们就混入P2P中的P们来为它减轻负担。Napster就是这样做的。
Napster:文件传输使用P2P结构,文件搜索使用C/S结构
## 进程通信
- 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位
- 如果同一主机上运行的进程想互相通信,它们可以通过进程间通信机制来完成,这种机制是由操作系统提供的
- 在两个不同端系统上的进程,通过跨越计算机网络交换报文(message)而相互通信
- 端系统的进程通过套接字进行接受报文或发送报文
- 网络应用程序是由成对的进程组成,这些进程通过网络相互发送报文。对每对通信进程,我们将其中的一个标记为客户(client,一般为发起通信的一方),另一个标记为服务器(server,等待联系的一方)。
【套接字(Socket)】
- 套接字是同一台主机内应用层与运输层之间的接口
- 套接字相当于一个公用的中间语言,让不同的主机可以顺利通话。
- 套接字是建立网络应用程序的可编程接口,因此套接字也称为应用程序和网络之间的应用程序编程接口(Application Programming Interface,API)
- 应用程序开发者可以控制应用层端的一切,但对于套接字运输端的控制仅限于:
- 选择运输层协议;
- 也许能设定几个运输层参数,如最大缓存和最大报文段长度等(将在第3章中涉及)。
【进程寻址】
- 如果想实现不同主机上的进程间通信,每个主机必须拥有标识符——IP地址,每个进程需要拥有标识符——端口号。
- 进程的标识符 = IP地址+端口号
- IP地址是一个32比特的量且唯一的标识主机,更多的内容请参考第4章
- 端口号如:HTTP Sever:80
## 因特网提供的运输服务
【网络应用的需求和传输层服务】
- 运输层协议提供的运输服务包括:
- 可靠数据传输(容忍丢失)
- 吞吐量(带宽敏感)
- 时序/延迟
- 安全性
- 常见的应用所需的运输服务
【Internet提供的两类传输服务——TCP服务】
- TCP服务模型包括面向连接服务和可靠数据传输服务,TCP还提供拥塞控制机制
- 服务的具体描述:
- 面向连接:客户机/服务器进程间需建立连接。握手过程提示客户和服务器,使它们为大量分组的到来做好准备。在握手阶段后,一个TCP连接(TCP connection)就在两个进程的套接字之间建立了。
- 可靠的传输:通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。
- 流量控制:发送方不会发送过快,超过接收方的处理能力。
- 拥塞控制:当网络负载过重时能够限制发送方的发送速度。
- 不提供时间/延迟保障。
- 不提供最小带宽保障。
【Internet提供的两类传输服务——UDP服务】
- UDP是一种不提供不需要服务的轻量级运输协议。
- 无连接:它不需在两主机间建立连接。
- 提供不可靠的数据传输
- 不提供拥堵控制UDP的发送端可以用它选定的任何速率向其下层(网络层)注入数据(值得注意的是实际端到端吞吐量可能小于这种速率,这可能是因为中间链路的带宽受限或因为拥塞而造成的)
- 也不提供:可靠性保障、流量控制、延迟保障、带宽保障。
【常见应用选择的运输协议】
## 应用层协议
- 运输服务遵循应用层协议
- 公开协议:由RFC定义,标准化的HTTP、SMTP等
- 私有协议:多数P2P文件共享应用
- 应用层协议的主要内容
- 消息的类型(type):请求消息,响应消息。
- 消息的语法(syntax)/格式:消息中有哪些字段,每个字段如何描述。
- 字段的语义(semantics):字段中信息的含义。
- 规则(rules):进程何时发送/响应消息等。
- 以HTTP为例;
转载于:https://www.cnblogs.com/hithongming/p/9329180.html
【计算机网络】2.1 应用层协议原理相关推荐
- 计算机网络--应用层-应用层协议原理
应用层-应用层协议原理 应用层协议原理 网络应用程序体系结构 客户-服务器体系结构 P2P体系结构 进程通信 客户和服务器进程 进程与计算机网络之间的接口 进程寻址 可供应用程序使用的运输服务 可靠数 ...
- 计算机网络(七):应用层协议原理
零.基础理论 网络应用是计算机网络存在的理由,如万维网(包含了web冲浪.搜索和电子商务),以及具有好友列表的即时讯息和对等(P2P)文件共享. 网络应用都是在端系统上的. 网络应用的基本概念.原理: ...
- 应用层———应用层协议原理(1)
应用层协议原理 一.网络应用程序体系结构 1.客户-服务器体系结构(client-server architecture) 2.P2P 体系结构(P2P architecture) 二.进程通信 1. ...
- 2 应用层 - 应用层协议原理
应用层协议原理 一.网络应用程序体系结构 客户机/服务器 体系结构 纯P2P 体系结构 客户机/服务器与P2P的混合 二.进程通信 客户机和服务器进程 套接字(socket) 进程与套接字关系 进程寻 ...
- 计算机网络应用层协议实验,计算机网络实验报告--应用层协议.doc
计算机网络实验报告--应用层协议 附件1 中北大学经济与管理学院 实验报告 课程名称 计算机网络 学号 1409044119 学生姓名 辅导教师 段庆峰 系别信息管理与信息系统实验室名称实验时间1.实 ...
- 计算机网络基础知识--应用层协议HTTP、FTP、SMTP
目录 1. HTTP 协议 HTTP 特点 HTTP 与HTTPS 的区别 HTTP 请求报文 HTTP 响应报文 2. FTP 协议 与TFTP 协议 FTP 协议 TFTP 协议 3. SMTP ...
- 计算机网络应用层协议分析总结
1.应用层协议原理 1.1.网络应用程序体系结构 C/S结构,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求.客户机主机既可能有时打开,也可能总是打开.C/S结构之下,客户机 ...
- [计算机网络]应用层协议,HTTP,SMTP,DNS
应用层 应用层协议原理 网络应用程序体系结构 规定如何在各种端系统上组织应用程序,由研发者设计 客户机/服务器 服务器:对外提供服务的一系列硬件和软件 客户机:使用服务器提供的服务 服务器 7*24小 ...
- [计算机网络]第二章——应用层
文章目录 [计算机网络]第二章--应用层 概述 一.应用层协议原理 1.网络应用程序体系结构 客户-服务器体系结构C/S P2P(对等)体系结构 混合C/S加P2P的体系结构 2.进程通信 客户和服务 ...
最新文章
- 使用Navicat定时备份mysql数据库和创建报表并邮件自动发送
- python语言基础-Python语言基础01-初识Python
- 【Flask】ORM高级操作之分组、过滤和子查询
- 文本转换成htmldocument
- uva 10562 - Undraw the Trees
- Telnet和FTP
- oracle 序列赋值变量,Oracle变量的定义、赋值及使用
- Delphi 常用API 函数
- 【渝粤教育】国家开放大学2018年秋季 0053-21T移动通信技术与移动通信设备 参考试题
- Java编程框架——Spring Cloud微服务架构实践经验总结
- 拓端tecdat|R语言提取时间序列的周期性成分应用EMD,小波滤波器,Baxter过滤器等
- Linux vip地址通信原理,IPv6的组播地址(掌握IPv6通信原理的关键知识点)
- 一个数根号3怎样用计算机计算,手机计算器怎样打出根号3
- 4 基于pyecharts的python数据可视化——散点图和折线图的绘制
- Java最常见208道面试题:Java大土豆答案
- Ruby语言的优点和缺点
- 阿里巴巴新开店铺权重提升的方法
- DOS命令窗口(黑窗口)
- 吊炸天,Spring Security还有这种用法
- labelme 批量转换json文件 详细步骤
热门文章
- 关于数学中“函数(function)”的含义
- DELL台式机安装Centos7无法正常展示图形化安装界面
- FPGA通过PCIe读写DDR4仿真IP核
- Android 动态修改app名称(市场和手机中显示两个不同的名称)
- Dojo.Book中文版
- java计算机毕业设计科院垃圾分类系统源码+数据库+系统+lw文档+mybatis+运行部署
- K8s 多节点部署流程
- Element UI, Ant Design Vue
- 小伙伴面试之成都创宇知道
- 记录:阿里云滑动验证