数据转发过程常见问题整理

1、子网掩码的作用是什么

   分割网络和计算网络号

2、网关的作用

   转发来自不同网段之间的数据包,将两个使用不同协议的网段连接在一起

3、数据在进行二层和三层封装之前,主机需要了解哪些信息

   主机在封装数据包之前,必须要知道目的端IP地址。在封装数据帧之前,必须要知道去往目的网络的路由以及下一跳的MAC地址

4、当数据帧发送到非目的主机时,非目的主机将会如何处理

   如果主机接收到一个不是发往自己的数据帧,在检验帧头中的目的MAC地址之后会丢弃该帧

5、传输层如何能够准确的将数据交给特定应用

   传输层会检查TCP或UDP报文头中的目的端口号,以此来识别特定应用

6、当两台主机同时访问服务器的HTTP服务,该服务器如何区分数据属于哪个会话

扫描二维码关注公众号,回复: 6396391 查看本文章

   服务器可以只通过源IP地址识别两台主机的HTTP流量,另外TCP报文头中包含的源端口也可以被用来区分同一台主机通过不同的浏览器发起的不同的会话。例如,两个来自源IP为10.1.1.1的HTTP流量使用的目的端口号都是80,但源端口号为1028和1035

7、数据包转发过程

   路由器收到数据报文后,网络层会对该报文进行处理。路由器首先根据IP 头部信息中的校验和字段,检查IP数据报文头部的完整性,然后根据目的IP地址查看路由表,确定是否能够将数据包转发到目的端。路由器还必须对TTL的值进行处理。另外,报文大小不能超过MTU值。如果报文大小超过MTU值,则报文将被分片。 
   网络层处理完成后,报文将被送到数据链路层重新进行封装,成为一个新的数据帧,该帧的头部会封装新的源MAC地址和目的MAC地址。如果当前网络设备不知道下一跳的MAC地址,会发送ARP请求获得MAC地址

8、数据帧转发过程

   主机工作在半双工状态下,所以会使用CSMA/CD来检测链路是否空闲 。如果链路空闲,主机会将一个前导码(Preamble)和一个帧首定界符 (SFD)附加到帧头然后进行传输。前导码的作用是使接收设备进行同步并做好接收数据帧的准备。前导码是包括了7个字节的二进制“1”、 “0”交替的代码,即1010…10共56位。帧首定界符是长度为1个字节的 10101011二进制序列,它的作用是使接收端对帧的第一位进行定位 

   主机发送数据帧到共享以太网,此网络中的所有网络设备都会收到该帧。设备收到帧之后,首先会进行FCS校验。如果FCS校验未能通过,则帧被立即丢弃。对于通过了FCS校验的帧,设备会检查帧中的目的MAC地址。如果帧中的目的MAC地址与自己的MAC地址不同, 设备将丢弃帧,如果相同,则会继续处理。处理过程中,帧头帧尾会被剥去(也就是解封装),剩下的数据报文会被根据帧头中的类型字段的值来送到网络层中的对应协议模块去处理

9、数据包解封装过程

   如果服务器通过IP协议来处理该报文,首先会通过校验和字段来验证报文 头的完整性,然后检查IP报文头中的目的IP地址是否与自己当前的IP地址匹配。如果匹配则剥去IP头部交给上层,如果不匹配则查找路由表然后把这个包转发出去
   如果在源与目的之间的数据传输期间数据发生了报文分片,则报文会被目的端重新组合。标识字段用于标识属于同一数据源的分片报文,偏移量表示该分片在原分组中的相对位置。标志字段目前只有两位有意义, 标志字段最低位为1表示后面还有分片,为0表示这已经是最后一个数据片;中间一位为1表示不能分片,为0表示允许分片。所有的分片报文必须被目的端全部接收到后才会进行重新组合。 
   协议字段表示此数据包携带的上层数据是哪种协议的数据。需要注意的是,下一个报头并非总是传输层报头。例如,ICMP报文也是使用IP协议封装,协议字段值为0x01

10、数据帧解封装过程

   如果服务器处于一个共享以太网中,两台服务器都会收到路由器发送的数据帧。该帧的目的MAC地址与服务器的接口MAC地址不匹配 ,所以会被服务器丢弃。 
   服务器A成功收到该帧,并通过FCS校验。服务器A将利用帧中的类型字段来识别在网络层处理该数据的协议

11、数据段解封装过程

   当IP报文头被处理完并剥离后,数据段会被发送到传输层进行处理。在此示例中,传输层协议使用的是TCP,且发送端和接收端已经通过三次握手建立了连接。传输层收到该数据段后,TCP协议会查看并处理该数据段头部信息,其中目的端口号为80,用于表示处理该数据的应用层协议为HTTP协议。TCP处理完头部信息后会将此数据段头部进行剥离, 然后将剩下的应用数据发送到HTTP协议进行处理

猜你喜欢

转载自blog.csdn.net/weixin_43955429/article/details/88826226