zoukankan      html  css  js  c++  java
  • TCP/IP 协议:链路层概述

    我们以一个常见的查看IP指令为出发点(ifconfig -a):

     

    1、链路层是什么

    链路层是指硬件层协议。也即网络所使用的硬件,比如:以太网(后文主要讨论对象),令牌环网,FDDI已经RS-232串行线路。

    在上面的命令(ifconfig -a)结果中,硬件地址(MAC)为08:00:27:00:9c:59 (48bit),链路层主要的作用就是连接不同的两个硬件。

     

    2、链路层的作用

    1.为IP模块发送和接收IP数据报

    2.为ARP模块发送和接收ARP应答

    3.为RARP发送RARP请求和接收RARP应答

     

    注意:

    1.TCP/IP支持在不同链路层之间的传输

    2.IP、ARP、RARP表示三个协议,后面的三个章节我们将描述这3个协议

     

    3、具体链路层

    3.1、RFC标准的链路层以及链路层实例以太网的封装格式:

     

    3.2、对IP数据包的进一步封装SLIP和PPP协议:

    在串行线路上对IP数据报进行简单的封装存在多种方式SLIP就是其中一种简单的形式,SLIP对IP数据报的封装形式

                

    由于SLIP只是对IP数据报进行简单的封装,所以依然存在较多的问题:

    1.两端都需要对方的IP地址,不能将本端的IP告知另一端

    2.封装格式中不存在类型字段,因此该封装具有特殊性

    3.封装格式中不存在校验和

     

    PPP协议是为解决SLIP的问题而提出的另一种对IP数据包封装格式:

     

    3.3、减少逻辑操作的环回接口(Loopback Interface)描述:

    环回接口(Loopback Interface)存在原因是为了减少在主机内部的数据传递(省略传输层(TCP,UDP),网络层(IP层))的逻辑操作。其具体的情况见最初命令(ifconfig -a)中的lo。

    其判断的逻辑较为简单:

    关于lookback interface的几个注意点:

    1.传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入

    2.传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身

    3.任何传给该主机IP地址的数据均送到环回接口

     

    3.4、最大传输单元(MTU)和路径MTU描述:

    每一种数据链路层协议,都有一个MTU(最大传输单元)定义,在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation),使得每片都小于MTU。需要注意的是MTU只是逻辑限制(程序限制,一般限制为最优解),而不是固定值,使用netstat –i可以查看MTU(ifconfig –a同样可以)。

         

    注意此处显示的MTU表示的是最大传输单元。路径MTU则是指两台相互通信的主机中路径最小的那个MTU。

     

     

    Reference:

    祝:玩得愉快!
  • 相关阅读:
    C++ 字符串与数字之间的转换
    两种常见的模式匹配算法(代码实现)
    C++ string整行读取带空格的字符串
    JavaEE(一)开发环境搭建(JDK+Eclipse+Tomcat+Mysql+Spring)
    25java模拟容器的实现
    24java的StringBuilder类和StringBuffer类
    23java的String类常用方法
    22java的回调&内部类
    21java的抽象类和接口
    20java的组合&IDEA踩坑合集1
  • 原文地址:https://www.cnblogs.com/hejianglin/p/5470706.html
Copyright © 2011-2022 走看看