目录
六、第六章——应用层
1、应用层概述
2、(C/S)客户-服务器方式 & (P2P)对等方式
(1)客户-服务器方式【C/S】
(2)对等方式【P2P】
3、DHCP——动态主机配置协议
(1)诞生原因
(2)工作原理
(3)DHCP中继代理
4、DNS——域名系统
(1)域名分类
(2)域名解析
(3)本地的hosts文件 & 加速器原理
(4)DNS修改
(6)总结 & 习题
5、文件传输协议FTP
(1)FTP服务器
(2)FTP服务器——访问方式
(3)FTP服务器——工作原理
(4)习题
6、电子邮件
(1)读取邮件 & 发送邮件 (大致过程)
(2)邮件 & 文本数据
(3) 邮件协议(SMTP发送、POP3读取)
(4)基于万维网的电子邮件
(5)习题
7、万维网
(1)浏览器(软件)
(2)万维网的工作方式
(3)统一资源定位符URL
(4)HTTP——超文本传输协议
(4)HTTP——报文格式
(4)HTTP——响应状态码
(6)万维网缓存 & 代理服务器
(7)B/S应用程序结构
(8)总结 & 习题
六、第六章——应用层
1、应用层概述
终于学到最顶层了,啊哈哈,这是最轻松,最愉悦的了!
因为我们无时无刻都在接触这些应用,感受他们带给我们生活的便利!
2、(C/S)客户-服务器方式 & (P2P)对等方式
(1)客户-服务器方式【C/S】
1、这里是:客户端/服务器(C/S)方式 (他包含了(C/S) & (B/S)架构)
C/S架构和B/S架构都是客户端/服务器模型的不同实现方式,适用于不同的应用场景和需求。
万维网以C/S方式,即客户/服务器的方式工作。其中,浏览器就是在用户主机上的万维网客户程序。万维网文档(web文档)所驻留的主机则运行服务器程序,如IIS 、Apache、Nginx等。所以这个主机也叫作万维网服务器或者Web服务器。
注意:电子邮件(SMTP)、FTP、HTTP等,都是C/S方式
(2)对等方式【P2P】
注意:
这里和数据链路层中的——点对点协议PPP(point to point protocol)不是同一个东西
迅雷下载是使用P2P下载协议的,P2P加速利用P2P技术进行用户之间的加速,该通道产生的上传流量会提升通道的健康度,从而提升通道加速效果。
原理:若其他迅雷用户下载过本文件,则下载时可以由其他用户上传给自己。
这里:用户既可以是服务的请求者,也可以是服务的提供者!
3、DHCP——动态主机配置协议
动态主机配置协议 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 是 RFC 1541(已被 RFC 2131 取代)定义的标准协议,该协议允许服务器向客户端动态分配 IP 地址和配置信息。
DHCP的主要目的是简化网络管理,使网络中的设备能够自动获取所需的网络配置信息,包括IP地址、子网掩码、默认网关、DNS服务器等。
使用DHCP,管理员可以集中管理IP地址资源,并确保网络上的设备都能够获得有效的网络配置,无需手动配置每个设备的网络参数。
(1)诞生原因
手动配置太麻烦!!!(容易出错,效率低)
1、给网络中,添加一个DHCP服务器
2、管理员只需要设置好【网络中其他各主机配置的网络配置信息】
3、网络中的主机,自动获取【配置信息】
(2)工作原理
1、主机没有(上网的相关配置信息),就开始发送广播(请求DHCP服务器给他分配一个)
2、DHCP服务器就根据【客户】的请求,给他分配一个,并把相关的配置信息发给他
3、【客户】表明,使用这个IP,发出请求
4、【DHCP服务器】收到请求后,发出确认请求(让主机放心使用)
注意:【IP是有租期的哟!会过期,主机得不断申请】当然,【管理员】也可以配置为不过期!
完整版!!!(细节很多!)蛋老师之前也讲过DHCP,不过没有这个完整!
(3)DHCP中继代理
为了防止DHCP数量太多(太多了,不就于我们的目的,背道而驰了么?)
我们就是为了管理中心化,所以专门搞了一个DHCP服务器!
所以:给路由器配置好DHCP服务器的IP地址,让其变成DHCP的中继代理
当一个客户端发送DHCP请求时,如果它所处的子网没有DHCP服务器,或者DHCP服务器不在同一个子网上,这时就需要使用DHCP中继代理。
实现过程:
- 客户端发送DHCP请求广播消息,该消息带有特殊的DHCP中继标记字段。
- 当路由器接收到该DHCP请求广播消息时,会检查其中的DHCP中继标记字段,并判断是否需要进行中继操作。
- 如果路由器确定需要进行中继,它会将DHCP请求消息封装在一个新的DHCP请求消息中,并将新消息的目标地址设置为预先配置的DHCP服务器的IP地址。
- 路由器通过本地网络将新的DHCP请求消息转发给预先配置的DHCP服务器。
- DHCP服务器接收到经过中继的DHCP请求消息后,解析其中的内容,并生成相应的DHCP响应消息。
- DHCP服务器将DHCP响应消息发送给路由器。
- 路由器再次将DHCP响应消息进行封装,并使用广播方式发送给客户端。
- 客户端接收到经过中继的DHCP响应消息后,获取到分配的IP地址和其他配置参数,并进行网络配置。
4、DNS——域名系统
DNS是什么?
DNS可理解为:专门记录手机电话的通讯录(在这里就是记录了IP和域名的映射关系)
(1)域名分类
(2)域名解析
1、查询本地域名(递归查询)【负担大!!!】
2、其他查询(迭代查询)
高速缓存(本地域名服务器一般有缓存!!!有时间限制!TTL)
(3)本地的hosts文件 & 加速器原理
DNS解析默认都是运营商的;
我们本地也会记录映射哟!hosts文件!
所在路径:C:\Windows\System32\drivers\etc
这里的steam++,本质上就是修改了我的hosts文件,让我们的电脑知道了这些域名的存在,当我们访问【运营商的DNS服务器】时,他们不会告诉我们那个IP,就会导致我们访问失败,但是当我们自己的主机就知道了映射关系,就不会再去问【DNS服务器】了!
注意:
Hosts文件有大小限制,你不可能存放全世界所有公网ip,去访问他们!(就好像你不可能在手机中存储全世界中所有人的电话号码!)
修改hosts文件只是在本地生效,只有当前计算机能够使用这个映射关系,其他设备或计算机并不受影响。
修改hosts文件可能存在安全风险,因为它可以被恶意软件或攻击者滥用,导致用户被重定向到恶意网站或遭受其他攻击。
因此,在修改hosts文件之前,务必确保你信任所添加的映射关系,并且要小心维护该文件的安全性。
(4)DNS修改
为什么要修改DNS呢?
1、提高访问速度:某些公共DNS服务器可能无法提供快速和稳定的解析服务。
2、绕过网络封锁:在某些地区或网络环境中,特定的网站或服务可能被屏蔽或封锁。
3、过滤广告或恶意网站:一些DNS服务器提供了广告拦截或恶意网站过滤功能。
4、配置专用网络服务:在局域网或企业网络中,可能需要配置专用的内部DNS服务器,以提供特定的网络服务和解析内部域名。
一般我们都是用默认的,就是我们使用网络的供应商提供的DNS
但是,他们并不是把所有ip(全球的电话号码)都收录在里面了的
肯定是有疏漏的!!!
所以…我们可以自行配置DNS,让主机自己去网络上找理想的DNS服务器(手机号码收录比较全的通讯录~),而不是默认用网络供应商的!(下图,是互联网大厂的DNS【他们的通讯录】)
并且DNS服务器离我们的路径距离,也会影响我们的上网体验,毕竟我们访问IP,都要去问一遍DNS!
如何修改?
DNS劫持是指黑客通过恶意手段攻击DNS服务器或用户计算机,篡改DNS解析结果,让用户访问的网站指向错误的IP地址,从而实现攻击目的。常见的DNS劫持方式包括:本地Hosts文件修改、路由器被劫持、DNS服务器被劫持等。
DNS污染(也称为DNS缓存投毒)是指攻击者在DNS系统中注入虚假信息,使得DNS服务器会缓存错误的DNS响应结果,导致所有用户的访问都受到影响。攻击者可以伪造一个DNS响应,将正确网站的域名映射到错误的IP地址,使得用户在浏览器或应用程序中输入正确的网址时,被重定向到错误的网站上。
虽然DNS劫持和DNS污染之间有些不同,但它们都会导致用户访问受阻、信息泄露、网络安全受损等风险,因此用户需要采取必要的防范措施,如使用安全和可信赖的DNS服务器,避免使用不明来源的网络服务和软件,定期检查和更新网络设备和安全软件等。
比如:
访问A网站的地址,打开的却是B网站的页面,跳出恶意广告。
如果黑客利用DNS劫持,让你进入假冒的钓鱼网站,可能造成自己的重要信息泄露。
注意:DNS劫持与HTTP劫持的不同
DNS劫持:在DNS服务器中,将某个域名对应的IP地址进行了篡改,你解析出来的域名对应的IP,在劫持前后不一样,访问的是另外一个网站。
HTTP劫持:你DNS解析的域名的IP地址不变,在和网站交互过程中的劫持了你的请求。
比如当你正常访问一个无广告的页面时,页面上出现广告弹窗,那么可能是运营商劫持了HTTP。
(6)总结 & 习题
注意!!!这里的本地域名服务器有缓存!!!(并且采用的是迭代查询)
- 当用户在浏览器中输入一个域名时,操作系统会向所配置的DNS解析器发送一个DNS查询请求。
- DNS解析器接收到请求后,首先检查自己的缓存,如果命中缓存,则直接返回对应的IP地址。
- 如果缓存中没有找到对应的IP地址,DNS解析器会向根域名服务器发送请求,询问顶级域名(如.com、.org)的权威域名服务器的地址。
- 根域名服务器返回顶级域名服务器的地址。
- DNS解析器接着向顶级域名服务器发送请求,询问该域名的权威域名服务器的地址。
- 顶级域名服务器返回权威域名服务器的地址。
- DNS解析器最后向权威域名服务器发送请求,获取要查询的域名对应的IP地址。
- 权威域名服务器返回IP地址给DNS解析器。
- DNS解析器将获取到的IP地址返回给操作系统和应用程序。
- 操作系统和应用程序使用获取到的IP地址进行网络通信。
5、文件传输协议FTP
FTP(File Transfer Protocol)是一种用于文件传输的标准协议。FTP协议规定了客户端和服务器之间交互的方式,使得用户可以通过网络上传、下载和管理文件。
FTP协议采用客户端-服务器(Client-Server)结构来进行文件传输。
用户在客户端上使用FTP客户端应用程序连接到FTP服务器,并进行文件上传和下载操作。
FTP客户端应用程序通常包含一个图形用户界面(GUI)和文件管理功能,使得用户可以方便地浏览和管理文件。
(1)FTP服务器
如何在电脑上,搭建FTP服务器?
Windows可以选择合适的FTP服务器软件。有很多不同的FTP服务器软件可供选择,例如FileZilla Server、ProFTPD、VSFTPD等。根据你的需求和操作系统选择最适合你的FTP服务器软件。
详情搭建链接:如何在个人电脑上快速搭建FTP服务器? - 知乎
注意:
FTP协议在传输过程中使用明文传输,包括命令和数据内容,因此存在安全风险。
为了增加安全性,可以使用安全的FTP协议(FTPS)或使用虚拟专用网络(VPN)来加密FTP传输过程。
(2)FTP服务器——访问方式
(3)FTP服务器——工作原理
21端口用于连接,20端口用于传输数据。
21端口——连接通道(控制连接)
20端口——数据通道(传输完文件,就关闭!避免性能浪费)
(4)习题
6、电子邮件
(1)读取邮件 & 发送邮件 (大致过程)
读取邮件和发送邮件的过程涉及两个常用的协议:
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)。
发送邮件的过程(使用SMTP协议)如下:
- 连接到SMTP服务器:邮件客户端通过TCP连接到SMTP服务器,默认端口为25。
- 身份验证(可选):如果需要身份验证,客户端发送用户名和密码给SMTP服务器进行身份验证。
- 发送邮件信息:客户端向SMTP服务器发送包含邮件内容的命令,包括发件人、收件人、主题和正文等。
- SMTP服务器处理:SMTP服务器接收到客户端发送的邮件信息后,会根据地址解析和路由规则,将邮件传递给负责接收邮件的服务器。
- 接收服务器处理:接收服务器根据收件人的地址接收邮件,并存储在相应的邮箱中。
读取邮件的过程(使用POP3协议)如下:
- 连接到POP3服务器:邮件客户端通过TCP连接到POP3服务器,默认端口为110。
- 身份验证:客户端发送用户名和密码给POP3服务器进行身份验证。
- 检查邮件列表:客户端发送命令给POP3服务器,请求检查邮件列表。
- 下载邮件:客户端发送命令给POP3服务器,请求下载特定的邮件。服务器将邮件通过数据连接发送给客户端。
- 标记已读/删除邮件:客户端发送命令给POP3服务器,标记已读或删除特定的邮件。在标记删除后,邮件仍然存在于服务器上,只是处于被标记为删除的状态。
注意:
SMTP和POP3协议是明文传输的,因此在传输过程中可能存在安全风险。
为了增加安全性,可以使用加密的SMTP(SMTPS)和POP3(POP3S)协议,或者使用更安全的协议如IMAP(Internet Message Access Protocol)来进行邮件的发送和接收。
(2)邮件 & 文本数据
(3) 邮件协议(SMTP发送、POP3读取)
SMTP是一种用于发送电子邮件的协议。它定义了电子邮件客户端如何将邮件发送到邮件服务器,并通过互联网将邮件传递给收件人的邮件服务器。SMTP负责将电子邮件从发送方传输到接收方的服务器。(25端口)
注意:SMTP协议——只能传输7比特的ASCII码的内容!!!
在SMTP服务器上启用SMTP认证。常见的备选端口是587和465,它们通常被称为“SMTPS”端口,也可以用于加密的SMTP连接。
POP3是一种用于接收电子邮件的协议。它允许电子邮件客户端从邮件服务器上下载邮件,以便用户可以查看和管理自己的邮件。POP3协议通常与用户的电子邮件软件(如Outlook、Thunderbird等)配合使用,它下载邮件并将其存储在用户的本地设备上。
POP3(无加密):默认端口为110。当客户端与POP3服务器进行简单的明文通信时,使用该端口。
POP3S(加密的POP3):默认端口为995。当客户端通过SSL或TLS进行安全通信时,使用该端口。
注意:
SMTP和POP3协议是明文传输的,因此在传输过程中可能存在安全风险。
为了增加安全性,可以使用加密的SMTP(SMTPS)和POP3(POP3S)协议,或者使用更安全的协议如IMAP(Internet Message Access Protocol)来进行邮件的发送和接收。
(4)基于万维网的电子邮件
类似:IMAP(Internet Message Access Protocol)
(5)习题
总结
7、万维网
万维网(World Wide Web)是基于互联网的一种信息服务系统,它由一系列通过超文本链接连接在一起的文档组成。通过使用标准化的协议和语言,如HTTP(Hypertext Transfer Protocol)和HTML(Hypertext Markup Language)。
万维网使用户能够访问和浏览全球范围内的多媒体信息。
万维网 (World Wide Web,WWW)是存储在Internet计算机中、数量巨大的文档的集合。这些文档称为页面,它是一种超文本(Hypertext)信息,可以用于描述超媒体。
文本、图形、视频、音频等多媒体,也称为超媒体。
超媒体与超文本的区别
超文本文档只包含文本的信息,超媒体文档不仅包含文本的信息,还包含其他多媒体对象,如图片、视频、动画、音频等多媒体。
万维网的文件包括:
(1)浏览器(软件)
浏览器内核又可以分成两部分:
渲染引擎(layout engineer或者Rendering Engine)和JS引擎。
它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至 显示器或打印机。
浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。
(编程语法相同,效果不同!)
(2)万维网的工作方式
万维网以C/S方式,即客户/服务器的方式工作。其中,浏览器就是在用户主机上的万维网客户程序。万维网文档(web文档)所驻留的主机则运行服务器程序,如IIS 、Apache、Nginx等。所以这个主机也叫作万维网服务器或者Web服务器。
当浏览器向web服务器发送出对某个Web文档的请求时,Web服务器返回浏览器请求的Web文档,浏览器将该文档在窗口中显示出来。Web文档呈现在浏览器窗口中的就是我们所说的网页和页面。
(3)统一资源定位符URL
统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法。只有对资源定位,系统才可以对资源进行各种操作。如存取、更新、替换和查找其属性等。
例如:http://127.0.0.1:8080/index
(4)HTTP——超文本传输协议
HTTP(Hypertext Transfer Protocol)是一种用于在Web浏览器和Web服务器之间进行通信的协议。
它是一种无状态、可靠的协议,用于传输超文本和其他资源。
HTTP协议使用传输层中的TCP协议来传输信息,并且使用了系统端口号80。
万维网上的服务器进程不断地监听TCP的端口80,以便发现是否有浏览器向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览器某个页面的请求,服务器接着就返回所请求的页面作为响应。通信结束后释放TCP连接。
(4)HTTP——报文格式
响应报文 & 请求报文
(4)HTTP——响应状态码
HTTP协议定义了一系列的状态码,用于表示服务器对客户端请求的响应状态。每个状态码都有特定的含义,以下是常见的HTTP状态码:
1xx:信息类(Informational)
- 100 Continue:服务器已接收到请求的初始部分,客户端可以继续发送剩余部分。
- 101 Switching Protocols:服务器已理解请求,将切换到新的协议。
2xx:成功(Successful)
- 200 OK:请求成功,服务器返回所请求的资源。
- 201 Created:请求成功,并在服务器上创建了新的资源。
- 204 No Content:请求成功,但服务器没有返回任何内容。
3xx:重定向(Redirection)
- 301 Moved Permanently:所请求的资源已永久移动到新的URL。
- 302 Found(或者302 Found):所请求的资源暂时移动到新的URL。
- 304 Not Modified:客户端缓存的资源仍然有效,可以直接使用缓存的版本。
4xx:客户端错误(Client Error)
- 400 Bad Request:服务器无法理解客户端的请求。
- 401 Unauthorized:请求要求身份验证。
- 403 Forbidden:服务器拒绝访问所请求的资源。
- 404 Not Found:所请求的资源不存在。
5xx:服务器错误(Server Error)
- 500 Internal Server Error:服务器遇到了意外的错误,无法完成请求。
- 502 Bad Gateway:作为代理或网关的服务器从上游服务器接收到非法响应。
- 503 Service Unavailable:服务器当前无法处理请求,通常是由于过载或维护导致。
(5)cookie
cookie、session、token这三者的区别:cookie、session、token这三者的区别 - 简书
(6)万维网缓存 & 代理服务器
万维网缓存和代理服务器与CDN(内容分发网络)有一些相似之处,但它们并不完全相同。
万维网缓存(Web Cache)是一种用于存储常见网页资源的服务器。当客户端请求访问一个网页时,如果该网页已经存在于缓存服务器中,缓存服务器会直接将资源返回给客户端,而不必向原始的web服务器重新请求。这可以显著提高页面加载速度,减轻原始服务器的负载压力。万维网缓存通常被部署在网络边缘,例如在ISP(互联网服务提供商)或组织内部。
代理服务器(Proxy Server)是一种充当客户端和原始服务器之间中间人角色的服务器。当客户端发送请求时,请求首先发送到代理服务器,然后代理服务器会转发请求到目标服务器,并将响应返回给客户端。代理服务器可以用于多种目的,包括缓存数据、提供安全性和隐私保护、限制或过滤访问、负载均衡等。代理服务器通常是由组织自己搭建和管理。
CDN(内容分发网络)是一种分布式网络架构,通过将内容复制到位于全球各地的边缘节点上,以便更快地将内容提供给最终用户。CDN的边缘节点通常配备有缓存服务器,可以直接向用户提供所需的内容,从而提高响应速度和用户体验。CDN还可以通过负载均衡、智能路由以及其他优化技术来实现更高效的内容分发。
尽管万维网缓存和代理服务器在某些方面与CDN有相似之处,但CDN通常具有更广泛的网络基础设施,可以提供更全面的内容分发服务,并具备更强大的性能优化和负载均衡能力。
(7)B/S应用程序结构
浏览器/服务器(Browser/Server)方式,一种特殊的C/S方式。
利用动态和活动网页,通过通用的浏览器为用户提供人机交互的界面。
优点是用户不需要安装单独的应用程序,简化了应用的开发、维护和使用。
越来越多的网络应用采用B/S结构,例如购物网站、电子邮件、搜索引擎、博客等等。
(8)总结 & 习题
难点(三次握手时,第三次就会发请求页面!!!注意啦!!!)
到这里,计算机网络已经全部学习完啦!!!
学完计算机网络,大家对计算机之间如何通信,有了一个大致的认识。
学无止境,继续加油,为了自己!!!你的梦想,你的未来!
你不能停在这里!!!
时间:2023年8月30日15:09:29