计算机网络应用层详解
文章目录
- 一、计算机网络应用体系结构
- 二、网络应用通信基本原理
- 三、域名系统(DNS)
- 1. 域名系统的基本概念
- 2. 域名服务器
- 3. 域名解析过程
- 四、万维网应用
- 1. 万维网应用结构
- 2. HTTP
- 3. Cookie
- 五、Internet电子邮件
- 1. 电子邮件系统结构
- 2. SMTP
- 3. 电子邮件格式与MIME
- 4. 邮件读取协议
- 六、FTP
- 七、P2P应用
- 八、Socket编程基础
一、计算机网络应用体系结构
三种类型:
客户/服务器(C/S)结构
最主要的特征是通信只在客户与服务器之间进行,客户与客户之间不进行直接通信。客户端发起请求,服务器端回应请求。
P2P(Peer to Peer)结构
每个对等端都同时具备C/S应用的客户与服务器的特征,是一个服务器与客户的结合体,对等端之间直接通信。
混合结构
既有中心服务器的存在,又有对等端(客户)间的直接通信。
二、网络应用通信基本原理
C/S通信基本原理:服务器端运行的是服务器进程,被动地等待客户请求服务;客户端运行的是客户进程,主动发起通信,请求服务器进程提供服务。应用进程间遵循应用层协议交换应用层报文。
三、域名系统(DNS)
1. 域名系统的基本概念
域名系统:是互联网使用的命名系统。它用来把人们使用的机器名字(域名)转换为 IP 地址。域名系统为为互联网的各种网络应用提供了核心服务。
层次树状结构的命名方法:
国家顶级域名nTLD;
每个域名代表一个国家的主机。
通用顶级域名gTLD;
表示某一类型机构或者组织的所有主机的域名。
基础结构域名。
只有一个域名arpa,用于反向域名解析,又称为反向域名。
域名的划分:
- 一个服务器所负责管辖的(或有权限的)范围叫做区。
- 各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。
- 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
- DNS服务器的管辖范围不是以“域”为单位, 而是以“区”为单位。
2. 域名服务器
域名解析
将域名映射为IP地址的过程。
域名服务器
为了实现域名解析,需要建立分布式数据库,存储网络中域名与IP地址的映射关系数据,这些数据库存储在域名服务器上,域名服务器根据用户的请求提供域名解析服务。
域名服务器的分类:
(1)根域名服务器
- 最高层次,最为重要。所有根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析,就首先求助于根域名服务器。若所有的根域名服务器都瘫痪了,整个互联网中的DNS系统就无法工作了。
- 根域名服务器共有13套装置,构成13组根域名服务器。根域名服务器总共只有13个不同IP地址的域名,但并非仅由13台机器所组成。
- 根域名服务器分布在全世界。为了提供更可靠的服务,在每一个地点的根域名服务器往往由多台机器组成。根域名服务器采用任播技术,当DNS客户向某个根域名服务器发出查询报文时,路由器能找到离这个DNS客户最近的一个根域名服务器。
- 根域名服务器并不直接把域名转换成 IP 地址(根域名服务器也没有存放这种信息),而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。
(2)顶级域名服务器
- 负责管理在该顶级域名服务器注册的所有二级域名。
- 当收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当找的域名服务器的IP地址)。
(3)权限域名服务器
- 负责一个区的域名服务器。
- 当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。
(4)本地域名服务器
- 非常重要。
- 当一个主机发出DNS查询请求时,该查询请求报文就发送给本地域名服务器。
- 每一个互联网服务提供者ISP或一个大学,都可以拥有一个本地域名服务器。
- 当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的IP地址,而不需要再去询问其他的域名服务器。
- 本地域名服务器有时也称为默认域名服务器。
3. 域名解析过程
递归查询
代替查询主机或其他域名服务器,进行进一步的域名查询,并将最终解析结果发送给查询主机或服务器。
迭代查询
只是将下一步要查询的服务器告知查询主机或服务器,本地域名服务器继续后续查询。
举例:
递归查询:这种查询方式,根域名服务器负载过大,所以较少使用。
迭代查询
四、万维网应用
1. 万维网应用结构
Web服务器
所有的网页资源存储在Web服务器上。
浏览器
客户机上运行浏览器程序。
超文本传输协议(HTTP)
客户浏览网页资源通过超文本传输协议实现。
客户浏览网页的过程:
客户机向Web服务器发起TCP连接;
客户机上的浏览器程序根据要访问的页面的网址,发出HTTP请求报文;
HTTP报文中包含URL(统一资源定位器),即我们通常所说的网址,互联网上的所有资源都有一个唯一的URL。网页超链接中包含URL的信息,当我们点击网页上的一个超链接时,HTTP的请求报文会把URL携带在报文当中,发送给服务器。
报文发送到服务器,服务器根据URL找到相应的网页资源,网页资源使用HTML语言编写
网页资源作为HTTP报文的响应信息反回给浏览器
浏览器收到HTML语言的网页资源后,进行解释,以一定的格式显示在浏览器当中,呈现给客户。
2. HTTP
概念:超文本传输协议,定义浏览器如何向Web服务器发送请求,以及Web服务器如何向浏览器进行响应。
版本:HTTP/1.0和HTTP/1.1
HTTP连接:在通信过程中,HTTP采用了两种连接,非持久连接和持久连接。
假设用户在浏览器中输入了URL地址
http://www.abc.edu.cn/cs/index.html
,请求浏览一个引用3个JPEG小图像的web页面。如果基于默认模式的HTTP/1.0,则从用户请求index.html页面开始,到接收到完整的内容为止,请求传输过程如图下所示。如果基于持久连接,请求传输过程如图下所示。注意:持久连接方式会使服务器的压力比较大。
HTTP报文
请求报文 – 从客户向服务器发送请求报文。格式如下:
HTTP典型的请求方法有GET、HEAD、POST、OPTION、PUT等。
- GET:请求读取由URL所标识的信息。
- HEAD:请求读取由URL所标识的信息的首部,无须在响应报文中包含对象。
- POST:给服务器添加信息(例如,注释)。
- OPTION:请求一些选项的信息。
- PUT:在指明的URL下存储一个文档。
响应报文 – 从服务器到客户的回答。
HTTP状态码分类:
3. Cookie
Cookie中文名称为小型文本文件,指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。
Cookie弥补了HTTP协议无状态性(不了解以前用户是一种怎样的访问状态,因而无法提供针对性地服务)的不足,有利于进行用户跟踪并提供针对性的服务,但也带来一些安全问题,例如,隐私安全问题。
Cookie中包含了一个分配给某个用户的特定编号,该编号分别存储在浏览器和服务器上。当用户访问某个网站时,该网站会分配给一个用户编号,当用户再访问该网站时,网站可以通过编号知道该用户之前的访问状态。
Cookie工作原理:
五、Internet电子邮件
1. 电子邮件系统结构
电子邮件系统主要包括邮件服务器、简单邮件传输协议(SMTP)、用户代理和邮件读取协议等。
用户代理
用户与电子邮件系统的接口。又被称为电子邮件客户端软件。
基本功能:撰写、显示、处理、通信。
邮件服务器
又被称为邮件传输代理。
功能:发送和接收邮件,同时还要向发信人报告邮件传送的情况。
按照客户服务器方式工作。
邮件发送和邮件读取协议
邮件发送读取使用不同的协议。
简单邮件发送协议SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件。
邮局协议POP3:用于用户代理从邮件服务器读取邮件。
2. SMTP
- SMTP是Internet电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。
- SMTP使用传输层TCP实现可靠数据传输,端口号25。
- SMTP通过3个阶段的应用层交互完成邮件的传输,分别是握手阶段、邮件传输阶段和关闭阶段。
- SMTP的基本交互方式是SMTP客户端发送命令,命令后面可能携带参数,SMTP服务器对命令进行应答。
SMTP通信的三个阶段:
连接建立(握手阶段)
邮件传送
释放连接
3. 电子邮件格式与MIME
电子邮件包括首部、空白行、主体3部分,To、Subject、Cc、From、Date、Reply-To等关键词。
MIME(多用途互联网邮件扩展)
将非7位ASCII码文本内容转换为7位ASCII码文本内容,然后再利用SMTP进行传输。
在邮件首部增加MIME首部行,说明主体内容原本的数据类型以及采用的编码标准等。
例如,下面是一封传输一张JPEG图片的邮件示例:
对方在收到邮件后,再使用相同的编码方式对邮件进行解析,得到正确的邮件。
4. 邮件读取协议
3种不同的邮件读取协议:
第三版的邮局协议(POP3)
POP3协议使用客户服务器方式,客户发送指令给服务器,告诉服务器自己要读取哪部份邮件,然后服务器把邮件传输给客户端,相当于客户端把邮件下载到本地,然后进行读取操作,对邮件进行增删改查影响的是本地数据。
互联网邮件访问协议(IMAP)
想要查阅邮件,必须先联网。IMAP协议通过指令直接操作邮件服务器,不管是删除邮件还是创建新的邮件的文件夹,实际上是改变了邮件服务器本身的内容。
HTTP(现在较多使用)
不需要依赖于各种邮件客户端,只要有浏览器,通过服务器的网址来访问就可以操作。
六、FTP
文件传送协议(FTP):在互联网的两个主机间实现文件互传的应用层协议。
采用C/S模式,利用传输层的TCP协议进行可靠传输。采用控制连接(21端口)传输控制命令,数据连接(20端口)传输文件内容。
FTP工作原理:
- 如果客户机要访问FTP的服务器,首先客户机需要和服务器的21号端口建立控制连接。
- 客户机将需要FTP执行的操作指令通过控制连接,发送给FTP服务器,服务器执行相对应的操作。
- 当需要下载或上传某个文件时,不再使用控制连接,而是需要利用服务器的20号端口动态创建数据连接,通过数据连接进行文件传输。
七、P2P应用
P2P工作方式:在P2P工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输。
P2P应用的优势:充分聚集利用了端系统(对等方主机)的计算能力以及网络传输带宽,对服务器的依赖很小。
P2P的工作原理:
假如有一个服务器提供文件的下载和服务,在不使用P2P工作方式时,有一个用户请求下载文件,服务器就需要上传一次文件副本到互联网上供用户下载,有100万个用户请求下载文件,服务器就需要上传100万次文件副本到互联网上供用户下载。在这一过程中的传输速度依赖于服务器的上行链路和客户端的下行链路速度。在这一过程中,当用户量庞大时,服务器的负载就会很大,用户的等待时间也会变长。
在使用P2P工作方式时,在某一时刻,第一个用户已经获得了文件副本的一部分,当第二个用户请求下载文件,第二个用户可以选择从第一个用户获取文件的部分数据,同时请求服务器传输其他部分的数据。当第三个用户请求下载文件时,第三个用户可以选择从第一个用户、第二个用户、服务器上同时获取文件数据,以此类推。使用P2P方式可以充分利用各个端系统的计算能力和网络传输带宽,减少了服务器的压力,同时也使得用户获取数据的速度加快。
P2P方式特别适合大数据量的数据服务。
八、Socket编程基础
Socket接口模型:网络应用进程通信时需要通过API接口请求底层协议的网络服务。可以创建数据报类型套接字SOCK_DGRAM(对应调用UDP协议)、流式套接字SOCK_STREAM(对应调用TCP协议)和原始套接字SOCK_RAW(对应直接调用网络层协议)。
基于TCP的Socket编程
基于UDP的Socket编程
参考视频:https://www.bilibili.com/video/BV1xJ41137Q3?p=8
计算机网络应用层详解相关推荐
- 第二章 计算机网络应用层详解
文章目录 一.应用层协议原理 网络应用程序体系结构 进程通信 客户和服务器进程 进程与计算机网络之间的接口 进程寻址 可供应用程序的运输服务 可靠数据传输 吞吐量 定时 安全性 因特网的运输服务 TC ...
- 计算机网络体系结构详解(7层、5层、4层的区别)
计算机网络体系结构详解(7层.5层.4层的区别) 前言: 在学习计算机网络体系结构模型的时候,相信大家经常会有这样的疑惑?计算机网络体系结构到底是多少层模型?其实,无论是说7层.5层还是4层都是可以的 ...
- 计算机网络--七层结构(三)会话、表示、应用层详解
一.应用层概述 OSI模型后三层一般统称为应用层位于计算机网络体系结构的最上层,前面四层做的所有事情就是为了它服务,他也是设计和建立计算机网络的最终目的,通俗的讲,就是我们开发的应用软件,就处于这一层 ...
- 面试:计算机网络基础详解(一)
计算机网络是计算机.软工类面试的基础,不管是软件/硬件开发.技术支持还是测试职位,都会涉及到计算机网络的基础知识,本文基于笔者之前的面试准备所做的相关知识整理.本文的主要内容: OSI 与 TCP/I ...
- 计算机网络知识详解之:TCP连接原理详解
网络知识详解之:TCP连接原理详解 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名 ...
- 计算机网络知识点详解及面试深入
计算机网络主要知识点和面试题 1.TCP报头格式 端口号:用来标识同一台计算机的不同的应用进程.计算机网络通过端口号实现复用/分用 1)源端口:源端口和IP地址的作用是标识报文的返回地址. 2)目的端 ...
- 计算机网络:详解HTTP协议
1. 概述 HTTP(超文本传输协议)是建立在TCP传输协议之上的应用层协议.HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等).HTTP是一个属于应用层的面 ...
- 计算机网络体系结构详解(图文)
计算机网络各层及其协议的集合,统称为网络体系结构. 为进行网络中的数据交换而建立的规则.标准或约定,统称为网络协议. 网络协议三要素: 1.语法,即数据与控制信息的结构或格式. 2.语义,即需要发出何 ...
- 面视必备,史上最通俗计算机网络分层详解
1.引言 整个暑假去面试,面试了很多家公司(无论是小厂还是大厂)问到的深度不同,网络原理是面试最容易问到的问题,虽然我们在项目中很少去实践它,但是了解其原理,会让我们背后网络通信是如果工作的,既能在面 ...
最新文章
- 7月份没啥写的。。。
- html,css,js,反弹的js效果
- 【学习笔记】Vue的动态循环插入v-for
- PLM Integration
- 结构为键值的map_在Java中增加Map值的最有效方法-只需搜索键一次
- 【C++grammar】文件系统以及path类使用
- mysql添加timestamp有什么用_mysql中timestamp的使用
- vs2010 c# 配置项问题
- springboot幂等性_Spring Boot + Redis + 注解 + 拦截器来实现接口幂等性校验
- IDA7.0安装keypatch和findcrypt-yara插件
- CSS选择器优先级计算
- vs 下 opengl 配置问题
- SOA的关键是什么?
- (原創) 這學期C++完美的Ending (C/C++) (日記)
- 自定义Popwindow
- 个性字体头像在线图片生成下载网址
- 解读《美国国家BIM标准》 – BIM能力成熟度模型(四)
- 单侧上行速度测试软件,20210708-确认 低开单边上行,箱体理论几乎是贯穿a股运行周期的,如果平时容易过分看好行情,或者过分看弱行情,不妨就以最中庸的箱体去验证。... - 雪球...
- 在虚拟机上部署discuz论坛系统
- 按教师名单分配学生抽签程序
热门文章
- 【ES6】阮一峰ES6学习之Generator 函数(一)
- 34年的见证:从“用脚丈量”到“云端管理”
- 【如何使用Excel实现包含关系】
- JavaScript(红宝书)(一)
- react native ffmpeg 视频处理
- matlab三角函数降次,Matlab实验-传递函数表示方法.ppt
- 念白白 php,戏曲课堂︱【第五二讲】戏曲的念白(散白与诗白)
- Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)
- 自动驾驶系统入门(四) - 车载摄像头
- 【java调用webservice接口方法】