应用层
计算机网络
1. 常用的网络协议?
1) DHCP
动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:内部网络或网络服务供应商自动分配IP地址给用户;给内部网络管理员作为对所有计算机作中央管理的手段
2) ARP
将32位的IP地址转换为48位的物理地址。当路由器或主机选择了某条路由时,首先会查找ARP缓存,若缓存中有对应IP地址的物理地址,则以此封装以太帧,否则会广播(为二层广播)ARP报文,每个主机接收到ARP请求报文后,会缓存发送源的IP——MAC对到ARP缓存中,目的主机会发送ARP回应(此时为单播),当发送源接收到回应时,会将目的方的IP——MAC对存放在ARP缓存中。在点到点的物理连接中,是不会用到ARP报文的,在启动时双方都会通告对方自己的IP地址,此时物理层的封装不需要MAC地址。windows上可以使用arp -a查看本机的ARP缓存。ARP缓存中的每个条目的最大存活时间为20分钟
3) ICMP
ICMP(Internet Control Message Protocol)因特网控制报文协议。它是IPv4协议族中的一个子协议,用于IP主机、路由器之间传递控制消息。控制消息是在网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP协议与ARP协议不同,ICMP靠IP协议来完成任务,所以ICMP报文中要封装IP头部。它与传输层协议(如TCP和UDP)的目的不同,一般不用来在端系统之间传送数据,不被用户网络程序直接使用,除了想Ping和Tracert这样的诊断程序。
2.讲讲浏览器输入地址后发生的全过程,以及对应的各个层次的过程
1、域名解析:浏览器获得URL地址,向操作系统请求该URL对应的IP地址,操作系统查询DNS(首先查询本地HOST文件,没有则查询网络)获得对应的IP地址
解释:
把URL分割成几个部分:协议、网络地址、资源路径
协议:指从该计算机获取资源的方式,常见的是HTTP、FTP
网络地址:可以是域名或者是IP地址,也可以包括端口号,如果不注明端口号,默认是80端口
如果地址不是一个IP地址,则需要通过DNS(域名系统)将该地址解析成IP地址,IP地址对应着网络上的一台计算机,DNS服务器本身也有IP,你的网络设置包含DNS服务器的IP,例如,www.abc.com不是一个IP,则需要向DNS询问请求www.abc.com对应的IP,获得IP,在这个过程中,你的电脑直接询问DNS服务器可能没有发现www.abc.com对应的IP,就会向它的上级服务器询问,这样依次一层层向上级找,最高可达根节点,直到找到或者全部找不到为止
端口号就相当于银行的窗口,不同的窗口负责不同的服务,如果输入www.abc.com:8080/,则表示不使用默认的80端口,而使用指定的8080端口
2、确认好了IP和端口号,则可以向该IP地址对应的服务器的该端口号发起TCP连接请求
3、服务器接收到TCP连接请求后,回复可以连接请求,
4、浏览器收到回传的数据后,还会向服务器发送数据包,表示三次握手结束
5、三次握手成功后,开始通讯,根据HTTP协议的要求,组织一个请求的数据包,里面包含请求的资源路径、你的身份信息等,例如,www.abc.com/images/1/表示的资源路径是images/1/,发送后,服务器响应请求,将数据返回给浏览器,数据可以是根据HTML协议组织的网页,里面包含页面的布局、文字等等,也可以是图片或者脚本程序等,如果资源路径指定的资源不存在,服务器就会返回404错误,如果返回的是一个页面,则根据页面里的一些外链URL地址,重复上述步骤,再次获取
6、渲染页面,并开始响应用户的操作
7、窗口关闭时,浏览器终止与服务器的连接
3.http协议,http和https的区别
HTTP和HTTPS的基本概念
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTPS和HTTP的区别主要如下:
a) https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
b) http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
c) http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
d) http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
e) 在OSI模型中,HTTP工作于应用层,而HTTPS工作于传输层;
*4.http与https工作方式 *
http包含如下动作:
① 浏览器打开一个TCP连接;
② 浏览器发送HTTP请求到服务器;
③ 服务器发送HTTP回应信息到服务器;
④ TCP连接关闭;
SSL包含如下动作:
① 验证服务器端;
② 允许客户端和服务器端选择加密算法和密码,确保双方都支持;
③ 验证客户端;
④ 使用公钥加密技术来生成共享加密数据;
⑤ 创建一个加密的SSL连接;
⑥ 基于该SSL连接传递HTTP请求;
5.DNS是干什么的??
1) 主机解析域名的顺序
找缓存、找本机的hosts文件、找DNS服务器
2) DNS协议运行在UDP协议之上,使用端口号53
3) 根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)
十个过程:
① 浏览器先检查自身缓存中有没有被解析过这个域名对应的ip地址;
② 如果浏览器缓存没有命中,浏览器会检查操作系统缓存中有没有对应的已解析过的结果。在windows中可通过c盘里hosts文件来设置;
③ 还没命中,请求本地域名服务器来解析这个域名,一般都会在本地域名服务器找到;
④ 本地域名服务器没有命中,则去根域名服务器请求解析;
⑤ 根域名服务器返回给本地域名服务器一个所查询域的主域名服务器;
⑥ 本地域名服务器向主域名服务器发送请求;
⑦ 接受请求的主域名服务器查找并返回这个域名对应的域名服务器的地址;
⑧ 域名服务器根据映射关系找到ip地址,返回给本地域名服务器;
⑨ 本地域名服务器缓存这个结果;
⑩ 本地域名服务器将该结果返回给用户;