数据链路层是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

TCP/IP系列之数据链路层相关推荐

  1. 跟我学TCP/IP系列5

    前面四篇文章大致写完了TCP/IP的大部分内容,今天恰好有空,又给可爱的小伙伴们写推文了.按照现在的知识点分类的话,应该还两到三篇的文章,今天这篇会讲讲TCP和UDP异同以及TCP的三次握手和四次挥手 ...

  2. 1.2 TCP/IP协议(数据链路层)

    数据链路层将不可靠的物理层转变为一条无差错的链路,传输的是帧(frame),高层的协议数据被封装在以太网帧的数据字段发送. 1.数据链路层解决三个问题 1.1封装成帧 (1)解释 网络层的IP数据报传 ...

  3. TCP/IP系列——长连接与短连接的区别

    1 什么是长连接和短连接 三次握手和四次挥手 TCP区别于UDP最重要的特点是TCP必须建立在可靠的连接之上,连接的建立和释放就是握手和挥手的过程. 三次握手为连接的建立过程,握手失败则连接建立失败. ...

  4. 接收二进制数据_漫话TCP/IP:数据链路层-以太网(1)

    序言 TCP/IP中对于数据链路层及以下部分(物理层)未作定义.因为TCP/IP以这两层的功能是透明的为前提.然而,数据链路的知识对于深入理解TCP/IP与网络起着至关重要的作用.本篇文章我们主要介绍 ...

  5. TCP/IP学习入门笔记

    近期需要做一个用到UDP的工程,之前的情况是上位机计算出的车速(左右轮速),发送给各个小车(具体实现还不知道,等下去问硬件的同学),现在我们要改成用WIFI通信,大致的想法是:以后电脑和小车都连接好手 ...

  6. Linux下套接字详解(补充)--OSI七层与TCP/IP五层网络架构详解

    OSI七层模型 OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI是Open System Interconnect的缩写,意为开放式系统互联. OSI七层参 ...

  7. socket,TCP/IP的理解(转)

    TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间 ...

  8. TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. TCP/IP协议族(TCP/IP Protocol Suite,或TCP/IP Protocols) ...

  9. TCP/IP四层模型与OSI七层模型

    0. 前言 TCP/IP协议族(TCP/IP Protocol Suite),简称TCP/IP. 该协议族的两个核心协议为:TCP(传输控制协议,Transmission Control Protoc ...

最新文章

  1. 输入字符串,包含数字,大小写字母,编程输出出现做多的数字的和
  2. PhpStorm+Homestead+Xdebug调试Laravel
  3. php 去重_php求两数组交集的四种方法详解
  4. 【Python】【应用 01】使用python初步处理文件数据就那么简单!(本文以处理excel和目录为例)
  5. Express请求处理-静态资源的处理
  6. GIMP永久保存选择的办法
  7. 地址转换算法 C++实现
  8. mvvm 后端_ZK实际应用:MVVM –与ZK客户端API一起使用
  9. 纵横安卓刷机界的CM,如今转行做无人车了,还获得了加州路测许可
  10. 贾俊平统计学思维导图- 第二章 数据搜集
  11. 电脑在指定时间关机的指令代码
  12. 做项目中遇到过得难点
  13. configure: error: --with-openssl was given but OpenSSL could not be detected 解决方法(Curl交叉编译到Arm板)
  14. Python语言:散修笔记
  15. MyBatis第N+1种分页方式,全新的MyBatis分页
  16. 浙商证券显示计算机丢失,无法启动此程序,计算机丢失d3dx-942.dll,这个怎么解决啊?...
  17. [HAOI2006]聪明的猴子 题解
  18. Python(十)函数
  19. Ubuntu利用Xorg.conf配置双屏扩展显示
  20. office 2016 for Mac打开时 出现隐藏模块中出现编译错误: link

热门文章

  1. 计数排序:时间复杂度仅为 O(n) 的排序算法
  2. 处理 __iob_func 无法链接的问题
  3. CentOS7 安装 TomCat 7
  4. drupal用户注册邮件smtp及社会化登录模块安装
  5. 羊了个羊品牌域名情况如何?
  6. IT:后端进阶技术路线图(初级→中级→高级)、后端开发工程师(技术方向分类之后台业务开发/中间件/内核/分布式架构)基础知识简介、技术路线/技术趋势指南(如何选择自己的技术方向)之详细攻略
  7. ES6读书笔记(下)
  8. Unity 数学基础
  9. 国产统信UOS系统运行小程序的探索
  10. 2013 HTML5 峰会,HTML5 守望者的盛宴