计算机网络之应用层_part -1
应用层协议原理
一、网络应用程序体系结构
网络应用程序体系结构是由程序研发者设计的,规定了如何在各种端系统中组织该应用程序,主要流行的有两种:
1.客户--服务器体系结构:
有一个总是打开的主机(称为服务器),他服务于来自许多的其他的称为客户的主机的请求,客户--服务器体系结构德 一个典型的例子是:Web应用程序,其中总是打开的Web服务器接收到来自其他客户的对某对象的请求时,它会向该客户发送所请求的对象作为响应。值得注意的是客户--服务器体系结构有两个重要特征:
a.客户之间不直接通信
b.服务器具有固定的、周知的地址(IP地址)
当然现实中 ,在一个客户--服务器体系结构中,常常会出现一台单独的服务器跟不上他的客户请求的情况。为此,配备大量主机的数据中心常常被用于创建强大的虚拟服务器 。如谷歌就有分布在全世界的30-50个数据中心,这些数据中心共同处理搜索、Gmail和其他服务。
2.对等(P2P)体系结构:
在一个P2P体系结构中,对于数据中心的专用服务器有最小的(或没有)依赖,相反,应用程序在间断连接的主机之间使用直接通信,这些主机对称为对等方。许多目前流行的、流量密集型的应用都是P2P体系结构,如这些应用包括文件共享(BitTorrent)、对等方协助下载器(迅雷)、因特网电话(Skype)和IPTV(迅雷看看)。
需要提及的是某些应用具有混合的体系结构,结合了客户--服务器和P2P的元素。
二、进程通信
在操作系统的主术语中,进行通信的实际上是进程而不是程序,进程间的通信可以分为两种,一种为运行在同一端系统上的,一种是运行在不同端系统上的。在这里我们只关注后者。
1.客户与服务器进程
我们定义客户与服务器进程如下:
在给定的一对进程之间的通信会话场景中,发起通信的(即在该会话开始时发起与其他进程的联系)的进程被标识为客户,在会话开始时等待联系的进程被标识为服务器。
2.进程与计算机网络之间的接口
多数应用程序是由通信进程对组成的,每对中的两个进程相互发送报文。从一个进程向另一个进程发送报文必须通过下面的网络。进程通过一个称为套接字(Socket)的软件接口向网络中发送报文或从网络中接收报文。我们用一个类比来理解进程与套接字。进程可以类比于一座房子,而他的套接字可以类比于它的门。当一个进程想向位于另外一台主机上的另外一个进程发送报文时,它把报文推出该门(套接字)。该发送进程假定该门到另外一侧之间有运输的基础设施,该设施将把报文传送到目的进程的门,一旦该报文抵达目的主机,它通过接受进程的门(套接字)传送,然后接收进程对该报文进行处理。
由于该套接字是建立网络应用程序的可编程接口,所以套接字也称为应用程序与网络之间的应用程序编程接口(API)。应用程序开发者可以控制套接字在网络层端的一切,而对套接字在运输层端几乎没有控制权。
3.进程寻址
为了向特定目的地发送邮政邮件,目的地需要有一个地址。类似地,在一台主机上运行的进程为了向另外一台主机上的运行的进程发送分组,接受进程需要有一个地址。为了表示该接受进程,需要定义两种信息:a.主机地址 (IP地址)b.定义在目的主机中的接受进程的标识符(端口号)。
三、可供应用程序使用的运输服务
1.可靠数据传输
2.吞吐量
3.定时
4.安全性
四、因特网提供的运输服务
1.TCP服务
当某个应用程序选择TCP作为其运输层协议是,该应用程序就能获得来自于TCP的这两种服务:
(1)面向连接的服务:在应用层数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息,也就是握手过程。在握手过程后,一个TCP连接就在两个进程的套接字之间建立了。
(2)可靠的数据传输服务:通信进程能依靠TCP,无差错、按适当顺序交付所有发送的数据报文,并且没有字节的丢失和冗余。
TCP协议还基友拥塞控制机制,当发送方和接收方之间的网络出现拥塞是,TCP的拥塞控制机制会抑制发送进程发送数据。
2.UDP服务
UDP是一种不提供不必要的服务的轻量级运输协议,仅提供最小服务。UDP是无连接的,即在两个进程通信之前没有握手过程。UDP协议也只是提供一种不可靠的数据传输服务,也就是说,当进程发送一个报文进UDP套接字时,UDP协议不保证这个报文一定能到达接收进城。不仅如此,到达接受进程的报文也可能是乱序到达的。
3.因特网运输协议所不提供的服务
运输协议服务主要有四个方面:可靠地数据传输,吞吐量,定时,安全性。
我们可以注意到TCP提供了端到端的可靠地数据传输服务,并且我们可以在应用层用SSL来加强以提供安全性服务。显然,TCP和UDP缺少了定时和吞吐量的服务,这也是因特网运输服务协议并没有提供的。
计算机网络之应用层_part -1的更多相关文章
- 计算机网络Web应用层与运输层(HTTP/TCP)
应用层协议原理 Web和HTTP DNS:英特网的目录服务 运输层 面向连接的运输:TCP及拥塞原理 一.应用层协议原理 DNS域名解析: (用例:www.baidu.com)域名解析是网络请求的第一 ...
- 计算机网络之应用层概述(C/S模型与p2p模型)
文章转自:https://blog.csdn.net/weixin_43914604/article/details/105582318 学习课程:<2019王道考研计算机网络> 学习目的 ...
- 【计算机网络】应用层(一) HTTP
HTTP报文 HTTP报文是HTTP应用程序间发送的数据块,它由三部分组成:起始行(start line),首部(header)和主体(body),如下图所示: 从分类上,报文又可以分为请求报 ...
- [Note] 计算机网络的应用层
应用层 原理 结构和模型 客户-服务器体系结构(client-server architecture ) 通信不是直接的,需要通过服务器转发 经常会在服务器积压大量的负载 服务器(server) 服务 ...
- 计算机基础:计算机网络-chapter6应用层
应用层为协议最顶部,为用户服务. 常见的服务:邮件,万维网,DNS等 DNS:使用UDP承载,部分使用TCP协议 作用 将域名映射为IP 域名格式:自己到上级域名的访问 DNS服务器提供域名的资源记录 ...
- <计算机网络>计算机网络和应用层
1.端系统通过通信链路和分组交换机连接在一起,构成网络.网络和网络之间通过路由器相连,组成了因特网. 2.ISP(Internet Service Provider)因特网服务提供商.端系统通过ISP ...
- Python模块探秘之smtplib,实现纯文本邮件的发送
今天学到了如何使用Python的smtplib库发送邮件,中间也是遇到了各种各样的错误和困难,还好都一一的解决了.下面来谈一谈我的这段经历. 配置你的邮箱 为什么要配置邮箱呢?具体要配置什么呢? 因为 ...
- page 页 分页 分段
小结: 1. 页:磁盘和内存间传输数据的最小单位: MySQL: What is a page? https://stackoverflow.com/questions/4401910/mysql-w ...
- 【原理、命令】Git基本原理、与Svn的区别、命令
一.Git是什么? Git是目前世界上最先进的分布式版本控制系统.工作原理 / 流程:Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote ...
随机推荐
- 第二章完结,包含exam练习
正则方程(Normal Equation) 梯度下降是最小化代价函数\(J(\theta)\)的一种方式,这里提出了另一种方式即正则方式不使用迭代方式:\(\theta = (X^TX)^{-1}X^ ...
- python网络爬虫之beautfiulSoup
BeautifulSoup将html文档转换成一个属性结构,每个节点都是python对象.这样我们就能针对每个结点进行操作.参考如下代码 def parse_url(): try: ...
- Scrapy中使用cookie免于验证登录和模拟登录
Scrapy中使用cookie免于验证登录和模拟登录 引言 python爬虫我认为最困难的问题一个是ip代理,另外一个就是模拟登录了,更操蛋的就是模拟登录了之后还有验证码,真的是不让人省心,不过既然有 ...
- MongoDB--初始
指定启动目录,以服务形式启动 Mongod --dbpath=XXXXXX --logpath=XXXXXXXX --logappend --serviceName "XXXXX" ...
- 由SpringMVC中RequetContextListener说起
零.引言 RequetContextListener从名字结尾Listener来看就知道属于监听器. 所谓监听器就是监听某种动作,在其开始(初始化)和结束(销毁)的时候进行某些操作. 由此可以猜测:该 ...
- java 线程的死锁问题
以下的情况可能出现死锁 1.一个对象的同步方法去调用另一个对象的同步方法,同时另一个对象的同步方法也在调用这个对象的同步方法,导致一定几率的死锁,不一定每次都会出现死锁,模拟的代码如下 package ...
- Linux文件管理浅析(一) _磁盘管理基础
本文主要讨论一些磁盘管理相关的基本概念,同时也是这一系列文章的第一篇,就是下图中的最下一层的一部分. 在Linux中,SATA/USB/SCSI接口都是使用SCSI模块实现的,所以使用这些接口的硬盘在 ...
- crontab中引入环境变量(比如需要执行tomcat的关闭启动)
起因 crontab中的定时任务,执行到关闭tomcat时,报环境变量找不到 解决方案 1.使用 . /etc/profile 引入环境变量 ###推荐, 实测ubuntu12 成功 2.使用 sou ...
- http请求的完整过程
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接 在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该 ...
- [LeetCode] Friend Circles 朋友圈
There are N students in a class. Some of them are friends, while some are not. Their friendship is t ...