您现在的位置: 万盛学电脑网 >> 电脑基础 >> 电脑入门 >> 正文

TCP/IP系列之数据链路层 电脑技术吧

作者:佚名    责任编辑:admin    更新时间:2022-06-22

TCP/IP系列之数据链路层   数据链路层是TCPIP4层协议中最底层的协议,它的主要功能为:     为IP模块发送和 接收IP数据报。     为ARP模块发送ARP请求和接收ARP应答。     为RARP发送RARP请 求和接收RARP应答 数据链路层的协议一般有以太网(目前最常用的)、令牌环网、F D D I(光纤分布式数据接口) 及R S-2 3 2串行线路等。  .   数据从IP层传到数据链路层在经过底层物理线路传输的示意图如下:

  数据在一台网传输的时候是以以太网数据帧的格式传输的,在令牌环网则以令牌环网协议规定 的数据格式进行传输,连接两个异构网络的路由器负责转换.不过目前在数据链路层绝大多数都是 以太网.(如果是在同一个局域网内,则没有路由器IP路由) 下面是以太网RFC 894规定的以太网帧的格式:

  下面是用Wireshark抓取的一个以太网帧:

  RFC 894要求数据帧最小为60字节(48字节数据+12字节头),为了保证这一点, 必须在不足的空间插入填充pad字节. 同时每一种数据链路层协议,都有一个MTU(最大传输单元)定义, 在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation). 下图是在linux下用netstat -in看到的eth0的MTU为1500字节.
  环回接口(loopback)概念,大多数的产品都支持环回接口( Loopback Interface),以允许运行在同一台主机上的客户 程序和服务器程序通过TCP/IP进行通信.A类网络号127就是为环回接口预留的.根据惯例, 大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost.一个传给环回接口的IP数 据报不能在任何网络上出现.  .   我们想象,一旦传输层检测到目的端地址是环回地址时,应该可以省略部分传输层和所 有网络层的逻辑操作.但是大多数的产品还是照样完成传输层和网络层的所有过程,只是当 IP数据报离开网络层时把它返回给自己.
  1) 传给环回地址(一般是127.0.0.1)的任何数据均作为I P输入。 2) 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是 因为广播传送和多播传送的定义包含主机本身。 3 ) 任何传给该主机I P地址的数据均送到环回接口。 *通过ping 127.0.0.1可以检测本机的TCP/IP是否工作正常. *不仅仅是127.0.0.1代表本机,127开头的合法IP都代表本机,如127.12.13.1 在JDK提供的API中通常不能对链路层进行操作,可以通过jpcap来操作ARP包. 参看 http://blog.csdn.net/kkdelta/article/details/7717930  
    作者 kkdelta