【面经】网络常见面试题

1、OSI七层网络模型

分层名称功能TCP/IP协议
应用层文件传输、电子邮件、文件服务TFTP、HTTP、SNMP、FTPDNS、Telnet
表示层设备固有数据格式和网络标准数据格式的转换没有协议
会话层通信管理。负责建立和断开连接没有协议
传输层管理两个节点之间的数据传输。确保数据被可靠的传送到目的地址TCP、UDP
网络层地址管理与路由选择路由器
数据链路层互连设备之间传送和识别数据帧(数据帧与比特流之间的转换)网桥(很少使用)、以太网交换机,网卡(数据链路层、物理层)
物理层比特流与电子信号之间的切换中继器、集线器

OSI七层模型各个层次的划分遵循下列原则:

  • 同一层中各个节点都有相同的层次结构,具有同样的功能
  • 统一节点内相邻层之间通过接口进行通信
  • 七层结构中每一层使用下一层提供的服务,并且向其上层提供服务
  • 不同节点的同等层按照协议实现对等层之间的通信

1)物理层
实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。常用设备有(各种物理设备)集线器、中继器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。

2)数据链路层
将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。

3)网络层
本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。

4)传输层
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。

5)会话层
会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

6)表示层
提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

7)应用层
应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

 

2、TCP/IP四层网络模型

分层名称功能举例设备
物理层负责光/电信号的传递方式现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。
数据链路层负责设备之间的数据帧的传送和识别网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作交换机(Switch)工作在数据链路层
网络层负责地址管理和路由选择在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)路由器(Router)工作在网路层
传输层负责两台主机之间的数据传输传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机
应用层负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等我们的网络编程主要就是针对应用层。

网络基础

 

3、TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?

答:建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。

TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。

原因:采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。

失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。(这就是缺少第三次握手(A再给B确认))
 

4、TCP对应的协议和UDP对应的协议

TCP对应的协议

1) FTP:定义了文件传输协议,使用21端口。

2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。

3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。

4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。

5)HTTP:是从Web服务器传输超文本到本地浏览器的传送协议。

UDP对应的协议

1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。

2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。

3) TFTP(Trival File Transfer Protocal):简单文件传输协议,该协议在熟知端口69使用UDP服务。

 

5、在浏览器中输入www.baidu.com后执行的全部过程

1)客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。

2)在客户端的传输层(添加TCP头),把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。

3)客户端的网络层(添加IP头)不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。

4)客户端的链路层(添加MAC头),包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

 

6、TCP三次握手四次挥手

三次握手

1)第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND(发送)状态,等待服务器确认;

2)第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV(接收)状态;

3)第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(已建立)状态,完成三次握手。

说明:
1)SYN和ACK是标志位(0/1)(ACK=1表明ack有效),seq是序列号,ack是确认号。2)给对方的确认方式就是把对方传来的seq+1并赋给ack。
 
四次挥手

1)第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送。(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据,但是,此时主动关闭方还可以接受数据。)

2)第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1。

3)第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。

4)第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

说明:

1)SYN攻击:用众多伪造ip地址向服务器发送SYN=1(请求连接),让服务器处于SYN-RCVD状态,但都无法第三次握手(因为伪造ip不存在)

2)4次挥手中的FIN就相当于三次握手中的SYN。

3)为什么一个3次1个4次不一样?
因为两端的数据并不是同时发送完,所以两端谁发送完数据都需要自己告诉对方一次,并且对方确认一次。

在这里插入图片描述
 

7、ARP是地址解析协议,简单解释一下工作原理。

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

1)首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。

2)当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据;如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址

3)当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包;如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。

4)源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

 

8、IPv4和IPv6的区别

1)协议地址的区别

  • 地址长度:IPv4协议具有32位(4字节)地址长度;IPv6协议具有128位(16字节)地址长度
  • 地址的表示方法:IPv4地址是以小数表示的二进制数。 IPv6地址是以十六进制表示的二进制数。

2)地址解析协议

  • IPv4协议:地址解析协议(ARP)可用于将IPv4地址映射到MAC地址。

  • IPv6协议:地址解析协议(ARP)被邻居发现协议(NDP)的功能所取代。

3)身份验证和加密

  • IPv6提供身份验证和加密,但IPv4不提供。

4)数据包的区别

  • 包的大小:IPv4协议的数据包最小值为576个字节;IPv6协议的数据包最小值为1280个字节。
  • 包头:IPv4长度为20~40字节;IPv6固定40字节。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值