【小菜鸟之--计算机网络基础知识面试题、网络分层以及常见协议简介】

1.【OSI七层模型?各自的功能?】

  • ​ 应⽤层,负责给应⽤程序提供统⼀的接⼝;
  • ​ 表示层,负责处理数据的表示和编码,把数据转换成兼容另⼀个系统能识别的格式;
  • ​ 会话层,负责建立、管理和终止会话,提供会话控制和同步;
  • ​ 传输层,负责提供端到端的可靠数据传输,确保数据的完整性和顺序;
  • ​ ⽹络层,负责数据的路由、转发、分片、寻址和选择最佳路径;
  • ​ 数据链路层,负责数据的封帧和差错检测,管理物理地址(MAC);
  • ​ 物理层,负责在物理⽹络中传输数据帧;

2.【计算机协议五层模型?】

  • ​ 应用层:为用户的应用进程提供网络通信服务,协议——DNS协议、HTTP协议、HTTPS协议;

  • ​ 传输层:负责两台主机之间的数据传输,将数据从发送端传输到接收端。协议——TCP协议、UDP协议;

  • ​ 网络层:负责传输的地址管理和路由选择,在众多复杂的网络环境中确定一条合适的路径。 协议——IP协议;

  • ​ 数据链路层:负责设备之间数据帧的传送和识别,将网络层传递的数据报封装成帧,在处于同一个数据数据链路节点的两个设备之间传输。协议——ARP协议、MTU协议;

  • ​ 物理层:负责光电信号的传递方式,实现相邻计算机节点之间比特流的透明传输;

    发送数据报

    	应用层按照HTTP协议的规定构建一个HTTP请求报文(请求要干什么)。应用层将HTTP请求的报文交给运输层处理;
    	运输层给HTTP请求报文添加一个TCP首部(区分应用进程),使之成为TCP报文段。运输层将TCP报文段交给网络层处理;
    	网络层给TCP报文段添加一个IP首部(使之可以在互联网上传输),使之成为IP数据报。网络层将IP数据报交付给数据链路层处理;
    	数据链路层给IP数据报添加一个首部(让其能在一段链路上传输,能被相应主机接收)和一个尾部(让目的主机检查所接收到的帧是否有误码),使之成为帧,数据链路层将帧交给物理层;
    	物理层将帧看作比特流,如果网络是以太网,它还会在帧上加前导码(让目的主机做好接收帧的准备)。接着将比特流变成相应信号发送到传输媒体;
    
    

    路由转发

    	物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层**(交付的实际是帧);
    	数据链路层将帧去掉首部和尾部后,将其交付给网络层**(交付的实际是IP数据报);
    	网络层解析IP数据报首部,从中提取目的网络地址,然后查找自身路由表,确定转发端口。接着数据链路层封装,物理层再封装,将比特流变成信号发送出去。
    

    服务器接收

    	物理层收到信号将其变为比特流,去掉前导码后,将其交付给数据链路层**(交付的实际是帧);
    	数据链路层收到帧后,去除首部和尾部,将其交付给网络层**(交付的实际是IP数据报);
    	网络层收到IP数据报后,去除IP首部,将其交付给运输层**(交付的实际是TCP报文);
    	运输层收到TCP报文后,从中得知是与哪个端口上的进程通信,去除TCP头部后,交付给应用层**(交付的实际是HTTP请求报文);
    	应用层收到HTTP请求报文后,将其解析给对应进程,并执行相关操作,返回HTTP响应报文;
    

3.【应用层:DNS协议?HTTP/HTTPS协议?】

一、DNS协议

​ 域名系统 (DNS) 的作用是将人类可读的域名 (如,www.baidu.com) 转换为机器可读的 IP 地址 (如,192.0.2.44),
​ 本质是DNS域名和IP地址的对应关系转换。

​ 步骤:

  1. 当用户在浏览器中输入一个域名时,操作系统会向本地DNS服务器发送DNS查询请求。
  2. 本地DNS服务器首先查询自己的缓存中是否有对应的IP地址,如果有,则直接返回给用户设备;如果没有,则向根域名服务器发送查询请求。
  3. 根域名服务器返回顶级域名服务器的IP地址,依次向下查询,直到找到负责解析该域名的域名服务器,并获取到本地DNS服务器,再向顶级域名服务器查询下一级域名服务器的IP地址。
  4. 本地DNS服务器将获取到的IP地址返回给用户的设备,用户设备通过该IP地址与目标服务器建立连接。

二、HTTP协议

​ HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在Web浏览器和Web服务器之间传输数据的协议。
​ HTTP是一种无状态的协议,即每个请求与响应之间是相互独立的,服务器不会保留关于客户端的状态信息。

​ HTTP协议的工作原理如下:

  1. 客户端(通常是Web浏览器)向服务器发送HTTP请求,请求访问特定的资源(如网页、图片、视频等)。
  2. 服务器接收到请求后,根据请求的内容和类型做出相应的处理,然后返回HTTP响应给客户端。
  3. HTTP响应包含了请求的资源以及相关的状态码(如200表示成功,404表示未找到资源等)和其他信息。
  4. 客户端接收到HTTP响应后,根据响应的内容和状态码进行相应的处理,如展示网页内容、下载文件等操作。

​ HTTP协议基于客户端-服务器模型,通过TCP(Transmission Control Protocol)进行数据传输,通常在80端口上进行通信。

​ HTTP协议支持多种请求方法,包括GET(获取数据)、POST(提交数据)、PUT(更新数据)、DELETE(删除数据)等,用于实现不同的操作。

​ 除了基本的HTTP协议外,还有HTTPS(HTTP Secure)协议,它在HTTP的基础上增加了加密机制,通过SSL/TLS协议对数据进行加密传输,提高了通信的安全性。

​ HTTP协议是Web通信的基础,它使得客户端和服务器能够进行有效的数据交换和资源访问,为互联网上的各种服务和应用提供了基础支持。

4.【HTTP 和 HTTPS 的区别?】

  1. 开销:HTTPS 协议需要到 CA 申请证书,一般免费证书很少,需要交费。
  2. 资源消耗:HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 ssl 加密传输协议,需要消耗更多的 CPU 和内存资源。
  3. 端口不同:HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。
  4. 安全性:HTTP 的连接很简单,是无状态的;HTTPS 协议是由 TLS+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。

5.【传输层协议TCP与UDP?有哪些区别?各自应用场景?】

一、TCP协议(传输控制协议)

​ 主要特点: 【提供稳定的、安全的、面向链接的字节流服务】

  1. TCP是面向连接的运输层协议;所谓面向连接就是双方传输数据之前,必须先建立一条通道;

    例如三次握手就是建议通道的一个过程,而四次挥手则是结束销毁通道的一个其中过程;

  2. 每一条TCP连接只能有两个端点(即两个套接字),只能是点对点的;

  3. TCP提供可靠的传输服务。传送的数据无差错、不丢失、不重复、按序到达;

  4. TCP提供全双工通信。允许通信双方的应用进程在任何时候都可以发送数据,因为两端都设有发送缓存和接受缓存;

  5. 面向字节流。TCP传输数据是基于字节传输的,易于对数据的拆分与合并发送;

二、TCP可靠传输有如下两个特点:

	a.传输信道无差错,保证传输数据正确。

​	b.不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据;
   	 	(1)首先,采用三次握手来建立TCP连接,四次挥手来释放TCP连接,从而保证建立的传输信道是可靠的。
​    	(2)其次,TCP采用了连续ARQ协议(超时自动重传)来保证数据传输的正确性,使用滑动窗口协议来保证接方能够及时  		处理所接收到的数据,进行流量控制。
​    	(3)最后,TCP使用慢开始、拥塞避免、快重传和快恢复来进行拥塞控制,避免网络拥塞。

三、UDP协议特点

  1. UDP是无连接的传输层协议;

  2. UDP使用尽最大努力交付,不保证可靠交付;

  3. UDP是面向数据报发送,对应用层交下来的报文,不合并,不拆分,保留原报文的边界;

  4. UDP没有拥塞控制,因此即使网络出现拥塞也不会降低发送速率;

  5. UDP支持一对一,一对多,多对多的交互通信;

  6. UDP的首部开销小,只有8字节。UDP一次传输的数据大小有限,最大64k

四、TCP和UDP的区别

  • (1)TCP是可靠传输,UDP是不可靠传输;
  • (2)TCP面向连接,UDP无连接;
  • (3)TCP传输数据有序,UDP不保证数据的有序性;
  • (4)TCP不保存数据边界,UDP保留数据边界;
  • (5)TCP传输速度相对UDP较慢;
  • (6)TCP有流量控制和拥塞控制,UDP没有;
  • (7)TCP是重量级协议,UDP是轻量级协议;
  • (8)TCP首部较长20字节,UDP首部较短8字节;

6.【网络层:IP协议?ICMP协议?】

一、IP协议

​ IP(Internet Protocol,互联网协议)互联网中用于在网络设备(主机)之间传输数据的一种协议。
​ IP协议定义了数据包在网络中的传输格式路由规则,是互联网通信的基础。

​ 主要作用:

  1. 网络间通信:IP协议是互联网中不同网络之间进行通信的基础。它通过定义数据包的格式和传输规则,实现了不同网络之间的互联互通。
  2. 提供唯一的标识:IP地址是用来唯一标识网络中的设备的,类似于设备的门牌号码。通过IP地址,数据包可以准确地传送到目标设备。
  3. *寻址:根据子网划分和IP地址,发现正确的主机地址
  4. 路由选择:路由器根据目标IP地址来决定数据包的传输路径。
  5. 数据报文的分段:当传送的数据大于MTU时,将数据进行分段发送和接受,然后在目标设备处重新组装成完整的数据包。

​ IP协议的工作方式:由于网络分为同网段和不同网段,所以会分成两种方式
​ (1)同网段:
​ 源地址主机和目的地址主机处于同一网段,则目的IP地址被 ARP协议 解析 为MAC地址后,源主机会根据目的MAC地址直接将数据包发送给目的主机。
​ (2)不同网段:
​ 源地址主机和目的地址主机不处于同一网段,则数据包会经历多个过程最 终发送给目的主机。

  1. 网关(一般为路由器)的 IP地址被 ARP协议解析为 MAC 地址,根据该 MAC地址源主机会将数据包发送到网关。

  2. 网关根据数据包中的网段ID找到目标网络,如果找到,将数据包发送给目标网路,如果没有则重复第一步发送到更高一级网关。

  3. 数据包经过网关发送到正确的网段后,目标IP被 ARP协议 解析为MAC地址,在根据该 MAC地址 将数据包发送给目标地址的主机。

二、ICMP协议

​ ICMP协议又叫控制报文协议,ICMP协议用于在IP和路由器之间传递控制消息描述网络是否通畅、主机是否可达、路由器是否可用等网络状态。ICMP本身并不传输数据,但对于用户间数据的传递起着重要的作用。

主要作用:

​ 在数据包从源主机传输到目 的主机的过程中,会经历一个或多个路由器,而数据包在经过这些路由器传输过程中,可能会遇到很多问题,最终导致数据包没有成功传递给目的主机。
​ 为了了解数据包在传输过程中在哪个环节出了问题,就需要用到ICMP协议,它可以跟踪数据包,并把消息返回给源主机。

7.【数据链路层ARP协议】

​ ARP协议:
​ ARP协议是数据进行网络传输过程中,通过IP地址向MAC地址的转换,解决网络层和物理层衔接问题。
​ 由于IP地址和MAC地址定位方式不同,ARP协议成为数据传输的必备协议。
​ 主机发送信息前,必须通过ARP协议获取目标IP地址对应的MAC地址,才能正确地发送数据包。

​ ARP缓存:

  1. 在请求目标主机的MAC地址时,每次获取目标主机MAC地址都需要发送一次ARP请求,然后根据响应获取到 MAC地址。
  2. 为了避免重复发送ARP请求,每台主机都有一个ARP高速缓存。当主机得到ARP响应后,将目标主机的IP地址和物理地址存入本机ARP缓存中,并保留一定时间。
  3. 只要在这个时间范围内,下次请求MAC地址时,直接查询ARP缓存,而无须再发送ARP请求,从而节约了网络资源。

8.【整体的网络传输流程?】

主机A:发送http://www.baidu.com网络数据报

    (1)DNS解析:将域名转换为ip地址,从本机DNS缓存站查找>>根域名>>顶级域名>>目标域名IP>>;
    (2)找到IP后:通过目的IP找到对应的MAC地址;
    (3)根据目的IP计算目的主机是否与源主机处于同一网段内;
    (4)在同网段:通过ARP协议解析出的对应目的MAC地址,跳至第九步;
    (5)不在同一网段:发送数据报到网关,先在ARP缓存中查找,通过网关IP查找对应MAC,找不到就返回网关自己的IP;
    (6)交换机转发:在MAC地址转换表中找到对应的MAC交换机接口;
    (7)路由器转发:分用数据报,数据分组并进行路由转发;
    (8)途中的设备:与第7步同样操作如目的IP对应的MAC地址不是当前设备,则继续重复该操作继续往更接近目的IP的路由发送;
    (9)找到目的主机B,主机B开始接受分用请求,解析,最终组织响应;
    (10)B向A发送数据;
    (11)最终A接受到数据报,经过分用,解析,最终得到相应;

9.【滑动窗口协议?】

​ 滑动窗口协议是一种用于在数据通信中实现流量控制可靠传输协议。
​ 它通过动态调整发送方和接收方的窗口大小,以实现有效的数据传输和错误恢复。

滑动窗口协议的工作原理如下:
1. 发送方和接收方各自维护一个滑动窗口,用于控制发送和接收的数据量。
2. 发送方根据接收方发送的确认信息动态调整发送窗口的大小,以控制发送的数据量,避免发送速度过快导致网络拥塞。
3. 接收方根据接收到的数据包的顺序和校验信息,确认正确接收的数据,并发送确认信息给发送方。
4. 如果发送方在一定时间内未收到接收方的确认信息,会重新发送未确认的数据包,以实现可靠传输。
5. 发送方和接收方通过滑动窗口的移动,实现数据流的控制和调整,保证数据的有序传输和可靠性。

滑动窗口协议可以基于停-等协议(Stop-and-Wait Protocol)或连续传输协议(Go-Back-N Protocol、Selective Repeat Protocol)等不同的传输方式实现。

	滑动窗口协议在数据通信中起着重要作用,它可以提高传输效率、减少重传次数、提高网络利用率,并确保数据的正确传输和顺序传递。
	在现代网络通信中,滑动窗口协议被广泛应用于各种数据传输场景中,如TCP协议中的流量控制和拥塞控制机制。

10.【客户端和服务端的三次握手?】

​ 1、第一次握手:客户端给服务器发送一个 SYN 报文。
​ 2、第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文。
​ 3、第三次握手:客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文。
​ 4、服务器收到 ACK 报文之后,三次握手建立完成

	1、第一次握手:
	客户端给服务端发一个SYN报文,并指明客户端的初始化序列号ISN(c)。此时客户端处于SYN_Send 状态。
	
	2、第二次握手:
	服务器收到客户端的SYN报文之后,会以自己的SYN报文作为应答,并且也是指定了自己的初始化序列号ISN(s),同时会把客户端的ISN+1作为ACK的值,表示自己已经收到了客户端的SYN,此时服务器处于SYN_REVD(SYN Received)的状态。
	
	3、第三次握手:
	客户端收到SYN报文之后,会发送一个ACK报文,当然,也是一样把服务器的ISN+1作为ACK的值,表示已经收到了服务端的SYN报文,此时客户端处于establised状态。
	
	4、服务器收到ACK报文之后,也处于establised状态,此时,双方以建立起了链接。

11.【四次挥手?】

1. 第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于FIN_WAIT1状态。
(大白话:相当于客户端告诉服务端,我想断开链接了)

2. 第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值+1 作为 ACK 报文的序列号值表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT状态。
(大白话:相当于,服务端告诉客户端,好的,我收到你的断开请求了)

3. 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于LAST_ACK的状态。

4. 第四次挥手:客户端收到FIN之后,一样发送一个ACK报文作为应答,且把服务端的序列号值+1作为自己ACK报文的序列号值。此时客户端处于TIME_WAIT状态。需要过一阵子以确保服务端收到自己的ACK报文之后才会进入CLOSED状态。(如果收到了ack报文,B才不会继续发送fin+ack报文,如果没有收到a发送的ack报文,则会超时重传这个fin报文)

5. 服务端收到ACK报文之后,就处于关闭连接了,处于CLOSED状态。

12.【为什么建立连接是三次握手,而关闭连接却是四次挥手呢?】

这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。
​	而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,
​	再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。

13.【为什么 TIME-WAIT 状态必须等待 2MSL 的时间呢?】

 1、为了保证 A 发送的最后一个ACK报文段能够到达 B。
	这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FIN+ACK报文段的确认。B会超时重传这个FIN+ACK报文段,而A就能在2MSL时间内传输收到这个重传的FIN+ACK报文段。接着A重传一次确认,重新启动 2MSL 计时器。最后,A和B都正常进入到CLOSED状态。

2、防止已失效的连接请求报文段出现在本连接中。
	A 在发送完最后一个 ACK 报文段后,再经过时间 2MSL就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个连接中不会出现这种旧的连接请求报文段。
	2MSL 是 TCP 连接关闭过程中等待的时间,用于确保之前连接中的所有数据包都已经在网络中被丢弃,避免数据包重复传输或引起混淆。

14.【HTTP1.0,1.1,2.0 的版本区别】

	HTTP/1.0规定浏览器与服务器只保持短暂的连接浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接。

	为了解决HTTP/1.0存在的缺陷,HTTP/1.1于1999年诞生。相比较于HTTP/1.0来说,最主要的改进就是引入了持久连接。所谓的持久连接即TCP连接默认不关闭,可以被多个请求复用。

	HTTP/2 为了解决HTTP/1.1中仍然存在的效率问题,HTTP/2 采用了多路复用。即在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。
 (能这样做有一个前提,就是HTTP/2进行了二进制分帧,即 HTTP/2 会将所有传输的信息分割为更小的消息和帧(frame),并对它们采用二进制格式的编码。)

15.【GET和POST的区别】

1.参数传递方式:
    GET:通过URL的查询字符串(Query String)将参数附加在URL后面,以键值对的形式进行传递,
    GET请求的参数会被暴露在URL中,有长度限制。通常子2kb到8kb区间
    POST:通过请求体(Request Body)将参数传递,参数不会暴露在URL中,可以传递大量数据,没有长度限制。

2.数据安全性:
    GET:由于参数暴露在URL中,可能会被缓存、浏览器历史记录等保存,不适合传递敏感信息。
    POST:参数不会暴露在URL中,相对于GET请求更安全,适合传递敏感信息。

3.幂等性:
    GET:GET请求是幂等的,即多次发送相同的GET请求,对服务器的状态没有影响,只是获取相同的资源。
    POST:POST请求不是幂等的,多次发送相同的POST请求可能会对服务器状态进行修改或产生副作用。

4.缓存:
    GET:GET请求可以被缓存,浏览器可以缓存GET请求的响应结果,下次请求相同的URL时可以直接使用缓存。
    POST:POST请求默认不会被缓存,每次请求都会发送到服务器。

16.【HTTP 哪些常用的状态码及使用场景?】

一、状态码分类
       1xx:表示目前是协议的中间状态,还需要后续请求
       2xx:表示请求成功
       3xx:表示重定向状态,需要进一步操作
       4xx:表示请求报文错误
       5xx:服务器端错误
二、常用状态码
    101 切换请求协议,从 HTTP 切换到 WebSocket
    200 请求成功,有响应体
    301 请求的资源已经永久移动到新的 URL,客户端应该使用新的 URL 重新发起请求。
    302 请求的资源暂时移动到新的 URL,客户端应该使用新的 URL 重新发起请求,但未来可能会改变。
    304 客户端可以通过缓存直接使用之前获取的资源,并且资源没有被修改,无需重新获取。
    400 客户端发送的请求中存在语法错误或无法理解的请求。
    403 服务器禁止访问,服务器理解请求,但拒绝执行请求,通常由于权限不足导致。
    404 资源未找到  
    500 服务器错误,服务器在处理请求时发生了未知的内部错误。
    503 服务器繁忙,服务器暂时无法处理请求,通常是因为服务器过载或维护中。

17.【IP地址有哪些分类?】

 	A类地址(1~126):网络号占前8位,以0开头,主机号占后24位。
    B类地址(128~191):网络号占前16位,以10开头,主机号占后16位。
    C类地址(192~223):网络号占前24位,以110开头,主机号占后8位。
    D类地址(224~239):以1110开头,保留位多播地址。
    E类地址(240~255):以1111开头,保留位今后使用。

18.【谈谈你对 ARQ 协议的理解?】

ARQ(Automatic Repeat Request,自动重传请求)是一种在数据通信中用于错误检测和纠正的机制。
ARQ的基本原理是发送方发送数据帧给接收方,接收方接收到数据帧后进行校验,如果发现有错误,则发送一个特定的信号(如NAK)给发送方,要求发送方重新发送该数据帧。发送方在接收到NAK信号后会进行重传,直到接收方正确接收到数据帧为止。

19.【交换机,路由器工作原理】

交换机的工作原理:

1. 当交换机从其某个端口收到一个数据包时,会先读取包头中的源MAC地址(即发送该数据包的设备网卡的MAC地址),将该MAC地址和端口对应起来添加到交换机内存里的地址表中;

2. 然后再读取包头中的目的MAC地址,对照内存里的地址表看该MAC地址与哪个端口对应,如果地址表中有该MAC地址的对应端口,则将该数据包直接复制到对应的端口上,如果没有找到,则将该数据帧作为一个广播帧发送到所有的端口,对应的MAC地址设备会自动接受该帧数据;

3. 同时,交换机将接受该帧数据的端口与这个目的MAC地址对应起来放入内存中的地址表中。这样下次再有MAC 地址为这个MAC 地址的帧发送时交换机就可以直接从内存里的地址表中找到对应的转发端口,直接转发,不用再泛洪了。

一层/二层/三层交换机

交换机分为一层,二层,和三层交换机

一层交换机工作在物理层,主要负责局域网内的数据转发

二层交换机工作在数据链路层,可以划分VLAN,从而区分广播域,在数据转发的时候多了一个判断VLAN的步骤,同一VLAN内可以互相通信。

三层交换机工作在网络层,提供路由功能,但不能完全取代路由器,因为基础原理不同

路由器的工作原理:

	其主要任务是接收来源于一个网络接口的数据包,根据这个数据包中所含的目地址,决定转发到的下一个目的地址。路由器中时刻维持着一张路由表,所有的数据包的发送和转发都通过查找路由表来实现的。这个路由表可以静态配置,也可以通过动态路由协议产生。
	路由器物理层从路由器的一个端口收到一个报文,上送到数据链路层。数据链路层去掉链路层封装,根据报文的协议域上送到网络层。网络层首先看报文是否是送给本机的,若是,去掉网络层封装,送给上层。若不是,则根据报文的目的地址查找路由表,若找到路由,将报文送给相应端口的数据链路层,数据链路层封装后,发送报文。若找不到路由,报文丢弃。


1.接收数据包:路由器首先接收到数据包,数据包中包含目标 IP 地址和其他相关信息。

2.查找路由表:路由器会根据数据包中的目标 IP 地址查找路由表,路由表中记录了不同网络和子网的信息,包括目标网络地址、下一跳路由器地址、出接口等。当路由表中没有列出报文的目的地时,报文将被发送到默认路由器(如果有的话),如果数据包没有目的地,它将被丢弃。

3.匹配最佳路由:路由器会根据路由表中的信息匹配最佳的路由条目,通常会选择最长匹配前缀的路由条目,即最符合目标 IP 地址的路由条目。

4.确定下一跳:根据最佳匹配的路由条目,路由器确定下一跳路由器的地址或者直接连接的出接口。

5.选择数据链路:根据确定的下一跳路由器地址或者出接口,路由器选择合适的数据链路进行数据包的转发。选择数据链路的依据可能包括链路状态、带宽、延迟等因素。

6.转发数据包:最终,路由器将数据包转发到选择的数据链路上,使其达到目标网络或主机。

20.【交换机,路由器区别?】

(1)外形上:

    从外形上我们区分两者,交换机通常端口比较多看起来比较笨重,而路由器的端口就少得多体积也小得多,实际上右图并不是真正的路由器只是集成了路由器的功能,除此之外还有交换机的功能(LAN口就是作为交换机的端口来使用,WAN是用于连接外网的端口),而两个天线则是无线AP接入点(即是通常所说的无线局域网wifi)。

(2)工作层次不同:

    最初的交换机工作在OSI开放式系统互联模型的数据链路层,也就是第二层,而路由器则工作在OSI模型的网络层,就是第三层。也就是由于这一点所以交换机的原理比较简单,一般都是采用硬件电路实现数据帧的转发,而路由器工作在网络层,肩负着网络互联的重任,要实现更加复杂的协议,具有更加智能的转发决策功能,一般都会在在路由器中跑操作系统,实现复杂的路由算法,更偏向于软件实现其功能。

(3)数据的转发对象不同:
     交换机是根据MAC地址转发数据帧,而路由器则是根据IP地址来转发IP数据报/分组。数据帧是在IP数据包/分组的基础上封装了帧头(源MAC和目的MAC等)和帧尾(CRC校验码)。而对于MAC地址和IP地址大家也许就搞不明白了,为何需要两个地址,实际上IP地址决定最终数据包要到达某一台主机,而MAC地址则是决定下一跳将要交互给哪一台设备(一般是路由器或主机)。而且,IP地址是软件实现的,可以描述主机所在的网络,MAC地址是硬件实现的,每一个网卡在出厂的时候都会将全世界唯一的MAC地址固化在网卡的ROM中,所以MAC地址是不能被修改的,但是IP地址是可以被网络管理人员配置修改的。

(4)”分工“不同

     交换机主要是用于组建局域网,而路由器则是负责让主机连接外网。多台主机可以通过网线连接到交换机,这时就组建好了局域网,就可以将数据发送给局域网中的其他主机,如我们使用的飞秋、极域电子教室等局域网软件就是通过交换机把数据转发给其他主机的,当然像极域电子教室这样的广播软件是利用广播技术让所有的主机都收到数据的。然而,通过交换机组建的局域网是不能访问外网的(即是Internet),这时需要路由器来为我们”打开外面精彩世界的大门“,局域网的所有主机使用的都是私网的IP,所以必须通过路由器转化为公网的IP之后才能访问外网。

(5)冲突域和广播域

     交换机分割冲突域,但是不分割广播域,而路由器分割广播域。由交换机连接的网段仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,在这种情况下会导致广播风暴和安全漏洞问题。而连接在路由器上的网段会被分配不通的广播域,路由器不会转发广播数据。需要说明的是单播的数据包在局域网中会被交换机唯一地送往目标主机,其他主机不会接收到数据,这是区别于原始的集线器的,数据的到达时间由交换机的转发速率决定,交换机会转发广播数据给局域网中的所有主机。

21【网络地址ip、物理地址mac】

IP:用于网络寻址,它的作用空间是整个地球的网络。
MAC:用于链路层寻址,它的作用空间是局域网。

假设我们已知网址的IP,我们要把数据发给web服务器。
	1)主机网络层:它封装了IP地址,同时它也指导网关路由器的IP(连接到网络的第一个路由器),但是链路层不知道网关路由器的MAC地址,因此网络层创建ARP请求报文,经过网卡,用交换机进行广播,然后收到路由器返回的MAC地址,将其交给链路层。
	2)链路层有了网关路由器的MAC,就可以把数据通过交换机(链路层)交给网关路由器。
	3)网关路由器根据目的地址(web服务器的IP),在自己的路由表内查找,并根据网络性能,选择较好的节点,转发数据给下一个路由器(这里需要注意,当前路由器是不知道下一个路由器的IP和Mac的,因此它只是把数据转发到可以到目地地的IP网段)。
	4)数据经过多个路由器到达web服务器的网关路由器,然后现在网关路由器只知道web服务器的IP地址,不知道它的MAC。
	5)网关路由器的网络层创建ARP报文,广播到局域网中。web服务器的网络层接到ARP报文后返回一个ARP响应报文,告诉网关路由,自己的MAC地址。
	6)网关路由器知道web服务器的MAC地址后,开始将数据发送给web服务器,web服务器成功接到数据。

22【FTP协议?】

FTP即File Transfer Protocol,是TCP/IP协议组中的协议之一,是Internet文件传送的基础。

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
FTP可以在明文传输(默认端口)或加密传输(如FTPS或SFTP)下运行。
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令

FTP的工作模式分为主动模式和被动模式

	主动模式(Active Mode):在主动模式下,FTP客户端首先与FTP服务器的默认端口(通常是端口21)建立控制连接。当需要进行数据传输时,客户端会随机选择一个未使用的端口(通常是大于1024的端口)作为源端口,然后告知服务器使用该端口进行数据连接。服务器通过控制连接将数据连接请求发送到客户端的指定端口,建立数据连接并进行数据传输。

	被动模式(Passive Mode):在被动模式下,FTP客户端首先与FTP服务器的默认端口(通常是端口21)建立控制连接。当需要进行数据传输时,服务器会随机选择一个未使用的端口(通常是大于1024的端口)作为源端口,并将该端口告知客户端。客户端通过控制连接向服务器指定的端口发起数据连接,建立数据连接并进行数据传输。

	主动模式和被动模式在数据连接的建立方式上有所区别,主要涉及客户端和服务器之间数据连接的建立和传输。

	在网络环境复杂或存在防火墙的情况下,被动模式通常更容易穿越防火墙,因此在实际应用中被广泛使用。

23【常见网络端口?】


端口配置文件: /etc/service

    HTTP(80端口):用于传输超文本传输协议(HTTP)的数据,用于网页浏览和传输网页内容。

    HTTPS(443端口):用于传输安全的超文本传输协议(HTTPS)的数据,通过加密保护数据的安全性,常用于网上银行、电子商务等需要保护隐私信息的网站。

    FTP(20和21端口):用于文件传输协议(FTP),用于在客户端和服务器之间进行文件传输。

    SSH(22端口):用于安全外壳协议(SSH),用于远程管理和安全登录服务器。

    SMTP(25端口):用于简单邮件传输协议(SMTP),用于发送电子邮件(发送)。
    
    SMTPS(465端口):通过SSL或TLS对SMTP进行加密和安全传输的协议。它使用465端口来建立加密的SMTP连接,确保邮件传输过程中的安全性。

    POP3(110端口):用于邮局协议版本3(POP3),用于从邮件服务器上下载电子邮件(收)。

    IMAP4(143端口):用于互联网消息访问协议(IMAP),用于在邮件服务器上管理和访问电子邮件(收信)。
 
 	IMAPS(443) :通过SSL或TLS对IMAP进行加密和安全传输的协议,确保在电子邮件客户端和邮件服务器之间的数据传输过程中的安全性.

    DNS(53端口):用于域名系统(DNS),用于将域名解析为IP地址。

    RDP(3389端口):用于远程桌面协议(RDP),用于远程访问和控制计算机桌面。

    MySQL(3306端口):用于MySQL数据库服务器,用于存储和管理数据库。
  • 35
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只慵懒的猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值