嵌入式开发工程师笔试面试指南-计算机网络基础

1 网络分层结构

计算机网络体系大致分为三种,OSI七层模型、TCP/IP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。

五层模型:应用层、传输层、网络层、数据链路层、物理层。

应用层:为应用程序提供交互服务。在互联网中的应用层协议很多,如域名系统DNS、HTTP协议、SMTP协议等。

传输层:负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议TCP和用户数据协议UDP。

网络层:选择合适的路由和交换结点,确保数据及时传送。主要包括IP协议。

数据链路层:在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。

物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。

ISO七层模型是国际标准化组织(International Organization for Standardization)制定的一个用于计算机或通信系统间互联的标准体系。

应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS.

表示层:数据的表示、安全、压缩。,确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。

会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.

传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP.

网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等.

数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。

物理层:建立、维护、断开物理连接。

TCP/IP 四层模型

应用层:对应于OSI参考模型的(应用层、表示层、会话层)。

传输层: 对应OSI的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。

网际层:对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。

网络接口层:与OSI参考模型的数据链路层、物理层对应。

2 三次握手

第一次握手:客户端向服务端发起建立连接请求,客户端会随机生成一个起始序列号x,客户端向服务端发送的字段中包含标志位SYN=1,序列号seq=x。第一次握手前客户端的状态为CLOSE,第一次握手后客户端的状态为SYN-SENT。此时服务端的状态为LISTEN。

第二次握手:服务端在收到客户端发来的报文后,会随机生成一个服务端的起始序列号y,然后给客户端回复一段报文,其中包括标志位SYN=1,ACK=1,序列号seq=y,确认号ack=x+1。第二次握手前服务端的状态为LISTEN,第二次握手后服务端的状态为SYN-RCVD,此时客户端的状态为SYN-SENT。(其中SYN=1表示要和客户端建立一个连接,ACK=1表示确认序号有效)

第三次握手:客户端收到服务端发来的报文后,会再向服务端发送报文,其中包含标志位ACK=1,序列号seq=x+1,确认号ack=y+1。第三次握手前客户端的状态为SYN-SENT,第三次握手后客户端和服务端的状态都为ESTABLISHED。此时连接建立完成。

3 两次握手可以吗?

第三次握手主要为了防止已失效的连接请求报文段突然又传输到了服务端,导致产生问题。

  • 比如客户端A发出连接请求,可能因为网络阻塞原因,A没有收到确认报文,于是A再重传一次连接请求。
  • 连接成功,等待数据传输完毕后,就释放了连接。然后A发出的第一个连接请求等到连接释放以后的某个时间才到达服务端B,此时B误认为A又发出一次新的连接请求,于是就向A发出确认报文段。
  • 如果不采用三次握手,只要B发出确认,就建立新的连接了,此时A不会响应B的确认且不发送数据,则B一直等待A发送数据,浪费资源。

4 四次挥手

四次挥手的过程

四次挥手的过程如下:

  • 客户端发起连接终止(FIN):

客户端(主动关闭方)向服务器发送一个 FIN(Finish)报文段,表示客户端的数据已经发送完毕,希望关闭连接。

客户端进入 FIN_WAIT_1 状态,等待服务器的确认。

  • 服务器确认客户端的请求(ACK):

服务器收到客户端的 FIN 请求后,发送一个 ACK 报文段作为确认,确认号是客户端的 SEQ + 1。

服务器进入 CLOSE_WAIT 状态。

  • 服务器发送连接终止(FIN):

服务器发送一个 FIN 报文段,表示服务器也已经没有数据要发送了,准备关闭连接。

服务器进入 LAST_ACK 状态,等待客户端的确认。

  • 客户端确认服务器的请求(ACK):

客户端收到服务器的 FIN 报文后,发送一个 ACK 报文段作为确认,确认号是服务器的 SEQ + 1。

客户端进入 TIME_WAIT 状态,等待可能存在的延迟的 ACK 报文段。

客户端等待一段时间(通常是 2MSL,最大报文段生存时间)以确保服务器收到了确认,然后进入 CLOSED 状态,连接完全关闭。

四次挥手过程的状态变化:

客户端状态:

FIN_WAIT_1:等待服务器确认关闭连接。

FIN_WAIT_2:等待服务器发送关闭请求。

TIME_WAIT:等待可能延迟的包到达,确保服务器收到确认。

CLOSED:连接完全关闭。

服务器状态:

CLOSE_WAIT:等待应用层关闭连接。

LAST_ACK:等待客户端确认关闭连接。

CLOSED:连接完全关闭。

为什么是四次?

四次挥手的原因是,在 TCP 协议中,连接是全双工的,即每一方向的数据传输是独立的。因此,客户端和服务器需要分别确认各自的数据已经发送完毕,才能安全地关闭连接。

第一步:客户端希望关闭连接,发送 FIN,表示客户端没有数据要发送了。

第二步:服务器收到 FIN 后,发送 ACK,表示确认客户端没有数据要发送了,但服务器可能仍然有数据要发送。

第三步:服务器发送 FIN,表示服务器也没有数据要发送了,准备关闭连接。

第四步:客户端收到服务器的 FIN 后,发送 ACK,确认连接的关闭。

四次挥手与三次握手的区别:

三次握手用于连接的建立,确保双方都准备好开始通信。

四次挥手用于连接的关闭,确保双方都能安全地关闭连接,防止数据丢失。

示例:

客户端 → 服务器: FIN

服务器 → 客户端: ACK(确认收到 FIN)

服务器 → 客户端: FIN

客户端 → 服务器: ACK(确认收到服务器的 FIN)

在四次挥手完成后,TCP 连接会被完全关闭,双方的通信完全结束。

总结:

四次挥手是 TCP 连接断开的标准过程,通过这种方式,双方确保各自的所有数据都已经成功传输,并且在适当的时机安全地关闭连接。

5 TCP有哪些特点?

  • TCP是面向连接的运输层协议。
  • 点对点,每一条TCP连接只能有两个端点。
  • TCP提供可靠交付的服务。
  • TCP提供全双工通信。
  • 面向字节流。

6 TCP和UDP的区别?

  • TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
  • TCP提供可靠的服务;UDP不保证可靠交付。
  • TCP面向字节流,把数据看成一连串无结构的字节流;UDP是面向报文的。
  • TCP有拥塞控制;UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如实时视频会议等)。
  • 每一条TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的通信方式。
  • TCP首部开销20字节;UDP的首部开销小,只有8个字节。

7 TCP 和 UDP 分别对应的常见应用层协议有哪些?

基于TCP的应用层协议有:HTTP、FTP、SMTP、TELNET、SSH

HTTP:HyperText Transfer Protocol(超文本传输协议),默认端口80

FTP: File Transfer Protocol (文件传输协议), 默认端口(20用于传输数据,21用于传输控制信息)

SMTP: Simple Mail Transfer Protocol (简单邮件传输协议) ,默认端口25

TELNET: Teletype over the Network (网络电传), 默认端口23

SSH:Secure Shell(安全外壳协议),默认端口 22

基于UDP的应用层协议:DNS、TFTP、SNMP

DNS : Domain Name Service (域名服务),默认端口 53

TFTP: Trivial File Transfer Protocol (简单文件传输协议),默认端口69

SNMP:Simple Network Management Protocol(简单网络管理协议),通过UDP端口161接收,只有Trap信息采用UDP端口162。

8 TCP的粘包和拆包

TCP是面向流,没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。

为什么会产生粘包和拆包呢?

  • 要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去,将会发生粘包;
  • 接收数据端的应用层没有及时读取接收缓冲区中的数据,将发生粘包;
  • 要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包;
  • 待发送数据大于MSS(最大报文长度),TCP在传输前将进行拆包。即TCP报文长度-TCP头部长度>MSS。

解决方案:

  • 发送端将每个数据包封装为固定长度
  • 在数据尾部增加特殊字符进行分割
  • 将数据分为两部分,一部分是头部,一部分是内容体;其中头部结构大小固定,且有一个字段声明内容体的大小。

9 说说TCP是如何确保可靠性的呢?

  • 首先,TCP的连接是基于三次握手,而断开则是基于四次挥手。确保连接和断开的可靠性。
  • 其次,TCP的可靠性,还体现在有状态;TCP会记录哪些数据发送了,哪些数据被接收了,哪些没有被接受,并且保证数据包按序到达,保证数据传输不出差错。
  • 再次,TCP的可靠性,还体现在可控制。它有数据包校验、ACK应答、超时重传(发送方)、失序数据重传(接收方)、丢弃重复数据、流量控制(滑动窗口)和拥塞控制等机制。

10 说下TCP的滑动窗口机制

TCP 利用滑动窗口实现流量控制。流量控制是为了控制发送方发送速率,保证接收方来得及接收。 TCP会话的双方都各自维护一个发送窗口和一个接收窗口。接收窗口大小取决于应用、系统、硬件的限制。发送窗口则取决于对端通告的接收窗口。接收方发送的确认报文中的window字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将接收方的确认报文window字段设置为 0,则发送方不能发送数据。

TCP头包含window字段,16bit位,它代表的是窗口的字节容量,最大为65535。这个字段是接收端告诉发送端自己还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。接收窗口的大小是约等于发送窗口的大小。

11详细讲一下拥塞控制?

慢开始

把拥塞窗口 cwnd 设置为一个最大报文段MSS的数值。而在每收到一个对新的报文段的确认后,把拥塞窗口增加至多一个MSS的数值。每经过一个传输轮次,拥塞窗口 cwnd 就加倍。 为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量。

当 cwnd < ssthresh 时,使用慢开始算法。

当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。

当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞控制避免算法。

拥塞避免

让拥塞窗口cwnd缓慢地增大,每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口cwnd按线性规律缓慢增长。

无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有收到确认),就要把慢开始门限ssthresh设置为出现拥塞时的发送 方窗口值的一半(但不能小于2)。然后把拥塞窗口cwnd重新设置为1,执行慢开始算法。这样做的目的就是要迅速减少主机发送到网络中的分组数,使得发生 拥塞的路由器有足够时间把队列中积压的分组处理完毕。

快重传

有时个别报文段会在网络中丢失,但实际上网络并未发生拥塞。如果发送方迟迟收不到确认,就会产生超时,就会误认为网络发生了拥塞。这就导致发送方错误地启动慢开始,把拥塞窗口cwnd又设置为1,因而降低了传输效率。

快重传算法可以避免这个问题。快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认,使发送方及早知道有报文段没有到达对方。

发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待重传计时器到期。由于发送方尽早重传未被确认的报文段,因此采用快重传后可以使整个网络吞吐量提高约20%。

快恢复

当发送方连续收到三个重复确认,就会把慢开始门限ssthresh减半,接着把cwnd值设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大。

在采用快恢复算法时,慢开始算法只是在TCP连接建立时和网络出现超时时才使用。 采用这样的拥塞控制方法使得TCP的性能有明显的改进。

12 HTTP协议的特点?

  • HTTP允许传输任意类型的数据。传输的类型由Content-Type加以标记。
  • 无状态。对于客户端每次发送的请求,服务器都认为是一个新的请求,上一次会话和下一次会话之间没有联系。
  • 支持客户端/服务器模式。

13 HTTP报文格式

HTTP请求由请求行、请求头部、空行和请求体四个部分组成。

  • 请求行:包括请求方法,访问的资源URL,使用的HTTP版本。GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。
  • 请求头:格式为“属性名:属性值”,服务端根据请求头获取客户端的信息,主要有cookie、host、connection、accept-language、accept-encoding、user-agent。
  • 请求体:用户的请求数据如用户名,密码等。

14HTTP 协议包括哪些请求?

HTTP协议中共定义了八种方法来表示对Request-URI指定的资源的不同操作方式,具体如下:

  • GET:向特定的资源发出请求。
  • POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
  • OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*'的请求来测试服务器的功能性。
  • HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
  • PUT:向指定资源位置上传其最新内容。
  • DELETE:请求服务器删除Request-URI所标识的资源。
  • TRACE:回显服务器收到的请求,主要用于测试或诊断。
  • CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

15 如何理解HTTP协议是无状态的

当浏览器第一次发送请求给服务器时,服务器响应了;如果同个浏览器发起第二次请求给服务器时,它还是会响应,但是呢,服务器不知道你就是刚才的那个浏览器。简言之,服务器不会去记住你是谁,所以是无状态协议。

16 HTTP长连接和短连接?

HTTP短连接:浏览器和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。HTTP1.0默认使用的是短连接。

HTTP长连接:指的是复用TCP连接。多个HTTP请求可以复用同一个TCP连接,这就节省了TCP连接建立和断开的消耗。

HTTP/1.1起,默认使用长连接。要使用长连接,客户端和服务器的HTTP首部的Connection都要设置为keep-alive,才能支持长连接。

17 HTTP 如何实现长连接?

HTTP分为长连接和短连接,本质上说的是TCP的长短连接。TCP连接是一个双向的通道,它是可以保持一段时间不关闭的,因此TCP连接才具有真正的长连接和短连接这一说法哈。

TCP长连接可以复用一个TCP连接,来发起多次的HTTP请求,这样就可以减少资源消耗,比如一次请求HTML,如果是短连接的话,可能还需要请求后续的JS/CSS。

如何设置长连接?

通过在头部(请求和响应头)设置Connection字段指定为keep-alive,HTTP/1.0协议支持,但是是默认关闭的,从HTTP/1.1以后,连接默认都是长连接。

18 HTTP长连接在什么时候会超时?

HTTP一般会有httpd守护进程,里面可以设置keep-alive timeout,当tcp连接闲置超过这个时间就会关闭,也可以在HTTP的header里面设置超时时间。

TCP 的keep-alive包含三个参数,支持在系统内核的net.ipv4里面设置;当 TCP 连接之后,闲置了tcp_keepalive_time,则会发生侦测包,如果没有收到对方的ACK,那么会每隔 tcp_keepalive_intvl再发一次,直到发送了tcp_keepalive_probes,就会丢弃该连接。

19 HTTP1.1和 HTTP2.0的区别?

HTTP2.0相比HTTP1.1支持的特性:

  • 新的二进制格式:HTTP1.1 基于文本格式传输数据;HTTP2.0采用二进制格式传输数据,解析更高效。
  • 多路复用:在一个连接里,允许同时发送多个请求或响应,并且这些请求或响应能够并行的传输而不被阻塞,避免 HTTP1.1出现的”队头堵塞”问题。
  • 头部压缩,HTTP1.1的header带有大量信息,而且每次都要重复发送;HTTP2.0把header从数据中分离,并封装成头帧和数据帧,使用特定算法压缩头帧,有效减少头信息大小。并且HTTP2.0在客户端和服务器端记录了之前发送的键值对,对于相同的数据,不会重复发送。比如请求a发送了所有的头信息字段,请求b则只需要发送差异数据,这样可以减少冗余数据,降低开销。
  • 服务端推送:HTTP2.0允许服务器向客户端推送资源,无需客户端发送请求到服务器获取。

20 HTTPS与HTTP的区别?

  • HTTP是超文本传输协议,信息是明文传输;HTTPS则是具有安全性的ssl加密传输协议。
  • HTTP和HTTPS用的端口不一样,HTTP端口是80,HTTPS是443。
  • HTTPS协议需要到CA机构申请证书,一般需要一定的费用。
  • HTTP运行在TCP协议之上;HTTPS运行在SSL协议之上,SSL运行在TCP协议之上。

21 DNS 的解析过程?

  • 浏览器搜索自己的DNS缓存
  • 若没有,则搜索操作系统中的DNS缓存和hosts文件
  • 若没有,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则依次向根域名服务器、顶级域名服务器、权限域名服务器发起查询请求,最终返回IP地址给本地域名服务器
  • 本地域名服务器将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来
  • 操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来
  • 浏览器得到域名对应的IP地址

22 什么是cookie和session?

由于HTTP协议是无状态的协议,需要用某种机制来识具体的用户身份,用来跟踪用户的整个会话。常用的会话跟踪技术是cookie与session。

cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。说得更具体一些:当用户使用浏览器访问一个支持cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器;接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息,当然这些信息并不是存放在HTTP响应体中的,而是存放于HTTP响应头;当客户端浏览器接收到来自服务器的响应之后,浏览器会将这些信息存放在一个统一的位置。 自此,客户端再向服务器发送请求的时候,都会把相应的cookie存放在HTTP请求头再次发回至服务器。服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。网站的登录界面中“请记住我”这样的选项,就是通过cookie实现的。

cookie工作流程:

  • servlet创建cookie,保存少量数据,发送给浏览器。
  • 浏览器获得服务器发送的cookie数据,将自动的保存到浏览器端。
  • 下次访问时,浏览器将自动携带cookie数据发送给服务器。

session原理:首先浏览器请求服务器访问web站点时,服务器首先会检查这个客户端请求是否已经包含了一个session标识、称为SESSIONID,如果已经包含了一个sessionid则说明以前已经为此客户端创建过session,服务器就按照sessionid把这个session检索出来使用,如果客户端请求不包含session id,则服务器为此客户端创建一个session,并且生成一个与此session相关联的独一无二的sessionid存放到cookie中,这个sessionid将在本次响应中返回到客户端保存,这样在交互的过程中,浏览器端每次请求时,都会带着这个sessionid,服务器根据这个sessionid就可以找得到对应的session。以此来达到共享数据的目的。 这里需要注意的是,session不会随着浏览器的关闭而死亡,而是等待超时时间。

23 cookie和session的区别?

  • 作用范围不同,Cookie 保存在客户端,Session 保存在服务器端。
  • 有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭或者Session 超时都会失效。
  • 隐私策略不同,Cookie 存储在客户端,容易被窃取;Session 存储在服务端,安全性相对 Cookie 要好一些。
  • 存储大小不同, 单个 Cookie 保存的数据不能超过 4K;对于 Session来说存储没有上限,但出于对服务器的性能考虑,Session 内不要存放过多的数据,并且需要设置 Session 删除机制。

24 什么是对称加密和非对称加密?

对称加密:通信双方使用相同的密钥进行加密。特点是加密速度快,但是缺点是密钥泄露会导致密文数据被破解。常见的对称加密有AES和DES算法。

非对称加密:它需要生成两个密钥,公钥和私钥。公钥是公开的,任何人都可以获得,而私钥是私人保管的。公钥负责加密,私钥负责解密;或者私钥负责加密,公钥负责解密。这种加密算法安全性更高,但是计算量相比对称加密大很多,加密和解密都很慢。常见的非对称算法有RSA和DSA。

25 说说 WebSocket与socket的区别

Socket是一套标准,它完成了对TCP/IP的高度封装,屏蔽网络细节,以方便开发者更好地进行网络编程。Socket其实就是等于IP地址 + 端口 + 协议。

WebSocket是一个持久化的协议,它是伴随H5而出的协议,用来解决http不支持持久化连接的问题。

Socket一个是网编编程的标准接口,而WebSocket则是应用层通信协议。

26 ARP协议的工作过程?

ARP解决了同一个局域网上的主机和路由器IP和MAC地址的解析。

  • 每台主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址的对应关系。
  • 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。
  • 网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址。
  • 源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。
  • 如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

26 ICMP协议的功能

ICMP,Internet Control Message Protocol ,Internet控制消息协议。

  • ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。
  • 它是一个非常重要的协议,它对于网络安全具有极其重要的意义。它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
  • 当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。 比如我们日常使用得比较多的ping,就是基于ICMP的。

27 什么是DoS、DDoS、DRDoS攻击?

  • DOS: (Denial ofService),翻译过来就是拒绝服务,一切能引起DOS行为的攻击都被称为DOS攻击。最常见的DoS攻击就有计算机网络宽带攻击、连通性攻击。
  • DDoS: (Distributed Denial ofService),翻译过来是分布式拒绝服务。是指处于不同位置的多个攻击者同时向一个或几个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。常见的DDos有SYNFlood、Ping of Death、ACK Flood、UDP Flood等。
  • DRDoS: (Distributed Reflection Denial ofService),中文是分布式反射拒绝服务,该方式靠的是发送大量带有被害者IP地址的数据包给攻击主机,然后攻击主机对IP地址源做出大量回应,从而形成拒绝服务攻击。

28 说下ping的原理

ping,Packet Internet Groper,是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送ICMP(Internet Control Message Protocol 因特网报文控制协议) 请求报文,测试目的站是否可达及了解其有关状态。

一般来说,ping可以用来检测网络通不通。它是基于ICMP协议工作的。假设机器A ping机器B,工作过程如下:

  • ping通知系统,新建一个固定格式的ICMP请求数据包
  • ICMP协议,将该数据包和目标机器B的IP地址打包,一起转交给IP协议层
  • IP层协议将本机IP地址为源地址,机器B的IP地址为目标地址,加上一些其他的控制信息,构建一个IP数据包
  • 先获取目标机器B的MAC地址。
  • 数据链路层构建一个数据帧,目的地址是IP层传过来的MAC地址,源地址是本机的MAC地址
  • 机器B收到后,对比目标地址,和自己本机的MAC地址是否一致,符合就处理返回,不符合就丢弃。
  • 根据目的主机返回的ICMP回送回答报文中的时间戳,从而计算出往返时间
  • 最终显示结果有这几项:发送到目的主机的IP地址、发送 & 收到 & 丢失的分组数、往返时间的最小、最大& 平均值

#计算机网络##嵌入式#

该专栏面向嵌入式开发工程师,包括C语言、C++,操作系统,ARM架构、RTOS、Linux基础、Linux驱动、Linux系统移植、计算机网络、数据结构与算法、5篇面试题目、HR面试常见问题汇总和嵌入式面试简历模板等18篇文章。超全的嵌入式软件工程师笔试面试题目和高频知识点总结!招聘so easy。

全部评论
如果大家觉得可以帮助到自己,麻烦点赞、评论和订阅哦😀
1 回复 分享
发布于 03-10 22:18 安徽
点赞 回复 分享
发布于 今天 10:28 江苏
点赞 回复 分享
发布于 今天 11:37 江苏

相关推荐

_追梦旅人_:同学考虑深圳睿联不,我们正在春招,可在我主页看岗位,感兴趣可直接投递~
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务