TCP/IP详解卷1数据链路层

    这一章略显枯燥,感觉既没有讲细,也没有讲透,可能是数据链路层协议不是重点,或者说很多细节需要后续展开,比如ARP、RARP如何工作的,循环冗余码CRC如何工作的目前都没有找到答案。也可能是我的网络基础太差,不能心领神会。

   这一章罗列了以太网、IEEE802、SLIP、PPP的封装。

    以太网的封装很简洁,6个字节的目的地址、6个字节的源地址、2个字节类型、46~1500字节数据、4字节CRC;其中类型决定是IP数据报还是ARP数据或者RARP数据。

    IEEE802则增加了LLC、SNAP的设置,具体怎么起作用目前看不出来。

     SLIP串行线路上对IP数据报的简单封装,这个封装就是用两个END字符将IP报文包住,如果报文内有END和ESC字符,则用连续两个字节替换掉。没有比这个设计更简单的设计了。为了提升传输效率,还支持对IP首部、TCP首部进行压缩。

      PPP是点对点协议,支持不同的协议,支持CRC校验,代价是最少增加3个字节和更为复杂的实现。

      剩下是两个比较重要的概念,一个是环回接口,一个是MTU;

      环回接口就是本机访问本机服务,自己访问自己。这一点设计比较巧妙,就是把本机作为一个普通的IP来处理,以提供统一的模型来处理,只不过做一些逻辑判断,让数据不上以太网。一般本机使用127.0.0.1作为本机ip,当然也可以使用具体的IP。

      MTU是为了响应时间而设置的,就是数据帧的最大长度限制。如果数据超过MTU,就需要对数据分片。另外一个概念是路径MTU,经过不同的网络,以最小的作为MTU,且来回不一定一样。

      数据链路层的封装有很多,但是都支持IP层及之上的封装,这得益于分层设计。IP层对链路层的实现无感知。

你可能感兴趣的:(TCP/IP详解卷1数据链路层)