计算机网络-ARP、DNS、SMTP常见协议-005

协议原理以及流程

1、ARP

​ 以太网设备比如网卡都有自己唯一的MAC地址,它们是以MAC地址传输以太网数据包的,但是它们却识别不了IP包中的IP地址,所以我们在以太网中进行IP通信的时候就需要一个协议来建立IP地址与MAC地址的对应关系,以使数据包能发到一个确定的地方去,这就是ARP(地址解析协议)所以它的作用为:

  • ARP协议建立了主机 IP地址 和 MAC地址 的映射关系。
    在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址

  • 主机会发送广播请求ff-ff-ff-ff,其他主机不会响应,目的主机收到后会携带自己的mac地址单播回复,收到后保存在ARP缓存中

2、DNS

DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。

DNS系统

  • 一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系,如果新计算机接入网络,将这个信息注册到数据库中,用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址。

DNS理论知识
一、DNS域名结构
1、域名的层次结构
域名系统必须要保持唯一性。为了达到唯一性的目的,因特网在命名的时候采用了层次结构的命名方法:

  1. 每一个域名(本文只讨论英文域名)都是一个标号序列(labels),用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成
  2. 标号序列总长度不能超过255个字符,它由点号分割成一个个的标号(label)
  3. 每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。
  4. 级别最低的域名写在左边,级别最高的域名写在右边。
    域名服务主要是基于UDP实现的,服务器的端口号为53

请添加图片描述

我们熟悉的,www.baidu.com

  1. com: 一级域名. 表示这是一个企业域名。同级的还有 “net”(网络提供商), “org”(⾮非盈利组织) 等。
  2. baidu: 二级域名,指公司名。
  3. www: 只是一种习惯用法。

在这里插入图片描述

域名解析过程

域名解析总体可分为以下过程:

  1. 主机先向本地域名服务器进行递归查询
  2. 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
  3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
  4. 本地域名服务器向顶级域名服务器进行查询
  5. 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
  6. 本地域名服务器向权限服务器进行查询
  7. 权限服务器告诉本地域名服务器所查询的主机的IP地址
  8. 本地域名服务器最后把查询结果告诉主机
    请添加图片描述

上文我们提出了两个概念:递归查询和迭代查询

(1)递归查询:

  • 本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机

(2)迭代查询:

  • 本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。

通俗地说,递归就是把一件事情交给别人,如果事情没有办完,哪怕已经办了很多,都不要把结果告诉我,我要的是你的最终结果,而不是中间结果;如果你没办完,请你找别人办完。
迭代则是我交给你一件事,你能办多少就告诉我你办了多少,然后剩下的事情就由我来办。

3、SMTP和POP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rvaiStmw-1652059885591)(/Users/hello/Desktop/面试/image/截屏2022-03-14 16.05.01.png)]

4、ICMP

ICMP协议是一个网络层协议。一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。所以我们就需要一种协议来完成这样的功能–ICMP协议。

ICMP协议的功能主要有:

  • 确认IP包是否成功到达目标地址
  • 通知在发送过程中IP包被丢弃的原因

常见的ICMP报文

相应请求

我们用的ping操作中就包括了相应请求(类型字段值为8)和应答(类型字段值为0)ICMP报文。
过程:
一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。

目标不可达,源抑制和超时报文

这三种报文的格式是一样的。

  • (1)目标不可到达报文(类型值为3)在路由器或者主机不能传递数据时使用。
    例如:我们要连接对方一个不存在的系统端口(端口号小于1024)时,将返回类型字段值3、代码字段值为3的ICMP报文。
    常见的不可到达类型还有网络不可到达(代码字段值为0)、主机不可达到(代码字段值为1)、协议不可到达(代码字段值为2)等等。
  • (2)源点抑制报文(类型字段值为4,代码字段值为0)则充当一个控制流量的角色,通知主机减少数据报流量。由于ICMP没有回复传输的报文,所以只要停止该报文,主机就会逐渐恢复传输速率。
  • (3)无连接方式网络的问题就是数据报会丢失,或者长时间在网络游荡而找不到目标,或者拥塞导致主机在规定的时间内无法重组数据报分段,这时就要触发ICMP超时报文的产生。
    超时报文(类型字段值为11)的代码域有两种取值:代码字段值为0表示传输超时,代码字段值为1表示分段重组超时。

时间戳请求

时间戳请求报文(类型值字段13)和时间戳应答报文(类型值字段14)用于测试两台主机之间数据报来回一次的传输时间。传输时,主机填充原始时间戳,接受方收到请求后填充接受时间戳后以类型值字段14的报文格式返回,发送方计算这个时间差。

ping命令的功能

  • (1)能验证网络的连通性
  • (2)会统计响应时间和TTL(IP包中的Time To Live,生存周期)

那么如何验证的呢?

  • (1)ping命令会先发送一个 ICMP Echo Request给对端
  • (2)对端接收到之后, 会返回一个ICMP Echo Reply
  • (3)若没有返回,就是超时了,会认为指定的网络地址不存在。

问题:
telnet是23端口,ssh是22端口,那么ping是什么端口?
答:ping命令是基于ICMP,是在网络层。
而端口号,是传输层的内容。所以在ICMP中根本就不关注端口号这样的信息。

traceroute

  • traceroute也是基于ICMP协议实现的。
    功能:
    打印出可执行程序主机,一直到目标主机之前经历多少路由器。
    举例如下:

5、IGP(内部网关协议)

  • IGP(内部网关协议)是在一个自治网络内网关(主机和路由器)间交换路由信息的协议。路由信息能用于网间协议(IP)或者其它网络协议来说明路由传送是如何进行的。IGP协议包括RIP、OSPF。

域(自治系统)

Internet网被分成多个域或多个自治系统。一个域(domain)是一组主机和使用相同路由选择协议的路由器集合,并由单一机构管理。换言之,一个域可能是由一所大学或其它机构管理的互联网。

内部网关协议

​ 内部网关协议(IGP)在一个域中选择路由。

外部网关协议

​ 外部网关协议(EGP)为两个相邻的位于各自域边界上的路由器提供一种交换消息和信息的方法。BGP是常用的外部网关协议,是不同 自治系统的路由器之间交换路由信息的协议。

内部网关协议分类

1、距离矢量路由协议RIP

​ RIP (Routing Information Protocol),为最早出现的距离向量路由协议。属于网络层,其主要应用规模较小,可靠性要求较低的网络,可以通过不断的交换信息让路由器动态的适应网络连接的变化,这些信息包括每个路由器可以到达那些网络,这些网络有多远等。RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录,如:

​ 通常为“跳数”,即从源端口到目的的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1.RIP允许一条路由最多智能包含15个路由器,因此距离为16表示网络不可到达。

RIP如何交换信息?
仅仅只和相邻路由器交换信息RIP协议好消息传得快,坏消息传的慢
当网络出现故障时,要经过较长的时间才能将此信息传送到所有的路由器,“慢收敛”。当出现坏消息时,比如网1出现了故障:这个时候R1是知道是无法到达的,则其到网1的距离为16,并且为直接交付。但是R2在收到R1报文之前,即在R2并不知道R1出故障时,发送了原来的报文。于是,R1收到R2跟新报文后,误以为可以经过R2到网1,于是更新自己的路由表,并且将次更新信息发送给R2.

2、链路状态路由协议

配置了链路状态路由协议的路由器可以获取所有其它路由器的信息来创建网络的“完整视图”(即拓扑结构)。并在拓扑结构中选择到达所有目的网络的最佳路径(链路状态路由协议是触发更新,就是说有变化时就更新)。
链路状态协议适用于以下情形:
(1)网络进行了分层设计,大型网络通常如此。
(2)管理员对于网络中采用的链路状态路由协议非常熟悉。
(3)网络对收敛速度的要求极高。

OSPF(开放最短路径优先协议)
最短路径优先:指OSPF使用Dijkstra最短路径算法,是IGP协议。OSPF用于单一系统内决策路由。与RIP相比,OSPF是链路状态路由协议,而RIP是距离向量路由协议。链路是路由器接口的另一个说法,即OSPF也称为接口状态路由协议。

OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由。

与大多数路由协议不同(参考BGP和RIP的工作过程),本协议不依赖于传输层协议(如TCP、UDP)提供数据传输、错误检测与恢复服务,数据包直接封装在网际协议(协议号89)内传输。

猜你喜欢

转载自blog.csdn.net/weixin_43673156/article/details/124659474