《TCP/IP详解》_卷一_主机对接收帧的过滤

前面写了一些关于广播和多播的笔记,这里加上一点主机在信道的帧过滤过程简介,可能会对理解产生帮助。

帧过滤过程有一个很大的特点,就是:它和帧信息解析一样,都有分层的概念。

过程简单的介绍下:

1、首先是链路层。链路层分为2大块。

a)接口卡(网卡),它会检测帧中的地址:通常,只有地址为本地网卡地址或者广播地址的数据才会被接收。当然,现在市面上的多数网卡也支持地址为多播地址或者子网多播地址的帧。总之,接口卡的作用是确认是否接收信道上传输的帧数据。

b)设备驱动程序,也属于链路层的一部分。当帧地址为本地地址或者广播地址时,它会检测帧中指定的协议,如是否IP、RARP等等。当帧地址为多播地址时,会检测该主机是否在该多播组中。

否则,帧数据会丢弃

2、如果一切正常,帧数据会传到IP层。这一层会检测IP首部,若无错误,数据被递交给上层。否则,数据丢弃

3、接下来是TCP/UDP层。同上一层一样,会检测TCP或者UDP首部。但是,当首部出现某些意外时,和下层不同的是,会有2种处理方式。如,当TCP或者UDP首部的目的端口关闭,则会发送一个ICMP不可达报文。倘若检验和出错,则帧数据直接丢弃。

小结:

通过上面的分析,可以看到,不管是单播、广播、多播,都是基于协议栈之间向上的类型过滤,每个协议层都可以为不同的理由丢弃数据报或者采取其他的处理。

猜你喜欢

转载自263796001-qq-com.iteye.com/blog/1163716