数据链路的作用

数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范。通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及红外线等介质。此外,各个设备之间有时也会通过交换机、网桥、中继器等中转数据。

实际上,各个设备之间在数据传输时,数据链路层和物理层都是必不可少的。众所周知,计算机以二级制0、1来表示信息,然而实际的通信媒介之间处理的却是电压的高低、光的闪灭以及光波的强弱等信号。把这些信号与二进制的0、1进行转换正式物理层的责任。数据链路层处理的数据也不是单纯的0、1序列,该层把他们集合为一个叫做帧的块,然后再进行传输。

网络的连接和构成的形态成为网络拓扑

包括:总线型,环型,星型和网状型。

数据链路相关作用

MAC地址

用于识别数据链路中互连的节点,地址长48比特,一般用16进制数表示。在使用网卡的情况下,MAC地址会被烧入到ROM中。因此,任何一个网卡的MAC地址都是唯一的。

从通信介质的使用方法上看,网络可分为共享介质型和非共享介质型。

共享介质型有两种介质访问控制方式:一种是争用方式,另一种是令牌传递方式。

MAC地址转发

以太网交互机会根据数据链路层中每个目标MAC地址,决定从哪个网络接口发送数据。这时所参考的、用意记录发送接口的表就叫做转发表。

转发表并非手动设置,而是交换机自动学习得到的。当某个设备向交换机发送帧时,交换机将帧的源 MAC 地址和接口对应起来,作为一条记录添加到转发表中。



当设备数量增加时,转发表也会随之变大,检索转发表所用的时间就越来越长,所有,有必要将网络分成多个数据链路,采用类似于网络层的IP地址一样对地址进行分层管理。

环路检测方式

  • 生成树方式
  • 源路由法

以太网帧

以太网帧的开头是“前导码(Preamble)”,长度为 8 字节,这一段没什么用,重点在于以太网帧的本体。

本体由首部,数据和 FCS 三部分组成:

类型部分存储了上层协议的编号,比如上层是 IP 协议,则编号为 0800。

FCS 表示帧校验序列(Frame Check Sequence),用于判断帧是否在传输过程中有损坏(比如电子噪声干扰)。FCS 保存着发送帧除以某个多项式的余数,接收到的帧也做相同计算,如果得到的值与 FCS 相同则表示没有出错。

无线通信

无线通信通常使用电磁波、红外线、激光等方式进行传播数据。一般在办公室的局域网范围内组成的较高速的连接成为无线局域网。

IEEE802.11

IEEE802.11定义了无线LAN协议中物理层与数据链路层的一部分(MAC层)。IEEE802.11这个编号有时指众多标准的统称,有时也只无线LAN的一种通信方式。主要针对笔记本电脑这样较大的计算机设备的标准。

蓝牙

是使用2.4GHz频率无线电波的一种标准,主要为手机或者智能手机、键盘、鼠标等较小设备而设计的标准。

PPP

PPP是指点对点,及1对1连接计算机的协议。

以太网使用同轴电缆或双绞线电缆,它可以决定其中的0,1该被解释为何种电子信号。与之相比,PPP属于纯粹的数据链路层,与物理层没有任何关系。及仅有PPP无法实现通信,还需要有物理层的支持。



PPP可以使用电话线或ISDN、专线、ATM线路。

LCP与NCP

在开始进行数据传输前,要先建立一个PPP级连接。这个连接建立以后就可以进行身份认证、压缩与加密。

PPP包括两个协议:

  • 不依赖上层的LCP协议: 主要负责建立和断开连接、设置最大接收单元、设置验证协议以及设置是否进行通信质量的监控。

  • 依赖上层的NCP(如上层为IP,也叫做IPCP)协议:负责IP地址设置以及是否进行TCP/IP首部压缩设备。

    PPP的帧格式

PPP0E

单纯的以太网没有验证功能,也没有建立和断开连接的处理,因此无法按时计费。而如果采用PPPoE管理以太网连接,就可以利用PPP的验证等功能使各家ISP可以有效地管理终端用户的使用。

主要数据链路类型及特点

公共网络

公共通信服务类似于电信运营商(如NTT、KDDI或软银等)提供的电话网络。人们通过这些运营商签约、付费不仅可以实现联网还可以与距离遥远的机构组织进行通信。

常见的有模拟电话线路、移动通信、ADSL、FTTH、有线电视、专线、VPB以及公共无线LAN等内容。自行了解下就好,就不一一介绍了。

关于数据链路层,最重要的一点还是它的定义:“通过通信介质相互连接的设备之间,数据传输的规范”。这说明数据链路层的协议适用于处于同一种数据链路两端的节点。如果不能理解这一点,就无法理解网络层和 IP 协议。

数据链路层的意义在于,如果没有数据链路层,数据只能以流的形式存在与通信介质中,不知道该发送往哪里,过长的数据流可能无法在通信介质中传输。

TCP/IP笔记(三)数据链路层的更多相关文章

  1. TCP/IP笔记 三.运输层(2)——TCP 流量控制与拥塞控制

    TCP 的流量控制与拥塞控制可以说是一体的.流量控制是通过滑动窗口实现的,拥塞避免主要包含以下2个内容: (1)慢开始,拥塞避免 (2)快重传,快恢复 1.流量控制——滑动窗口 TCP采用大小可变的滑 ...

  2. TCP/IP笔记 三.运输层(4)——TCP链接管理与TCP状态机

    1. 建立连接 三次握手 (1)A 的 TCP 向 B 发出连接请求报文段,其首部中的同步比特 SYN 应置为 1,并选择序号 x,表明传送数据时的第一个数据字节的序号是 x. (2)B 的 TCP ...

  3. TCP/IP笔记 三.运输层(1)——UDP,TCP

    1. 运输层 1.1 两种协议:TCP和UDP. (1)TCP:提供了一种可靠的数据传输服务,TCP是面向连接的,只有链接建立起来后才能通信. (2)UDP:是把数据直接发出去,而不管对方是不是在收信 ...

  4. TCP/IP笔记 三.运输层(3)——TCP超时重传算法

    TCP 每发送一个报文段,就对这个报文段设置一次计时器.只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段 1. 平均往返时延RTT 往返时延:一个报文段发出的时间,以及收到相应的确认报文 ...

  5. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  6. TCP/IP协议三次握手与四次握手流程解析

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

  7. TCP/IP协议三次握手与四次握手流程解析(转载及总结)

    原文地址:http://www.2cto.com/net/201310/251896.html,转载请注明出处: TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式  TCP/IP协议的详 ...

  8. TCP/IP的三次握手协议

    关于TCP/IP的三次握手协议,这篇文章中有详细的介绍,很通俗易懂,什么时候忘了,都可以过来瞧两眼,保证很快就明白了. 首先TCP/IP协议分为三个阶段:建立连接(握手阶段),数据传输阶段,连接终止阶 ...

  9. TCP/IP笔记

    TCP/IP 连接 三次握手 TCP/IP 四次分手 @TODO TIME_WAIT 状态 有三种状态可以进入此状态 1.由FIN-WAIT-2,双方不同时发起FIN,主动关闭的一方在完成自身发起的关 ...

随机推荐

  1. JQuery之 serialize() 及serializeArray() 实例介绍

    这两个方法都是jq封装的,主要用于form表单. serialize(); 1.创建一个标准url编码显示的文本字符转: 2.操作的对象是表单元素结合的jq对象: serializeArray(); ...

  2. Use Prerender to improve AngularJS SEO

    Use Prerender to improve AngularJS SEO Nuget Package of ASP.NET MVC HttpModule for prerender.io: Ins ...

  3. select中的文字垂直居中的问题

    select文字在默认和边框高度增加时 是默认居中的.你要是不想居中的话可以用padding值调整.但是右侧的三角不会改变. select在高度减小时.字体是不会垂直居中的.无论你用什么他都不会垂直居 ...

  4. javascript学习-目录

    Javascript学习 第1章 Javascript简介 1.1 Javascript简史 1.2 Javascript实现 1.3 Javascript版本 第2章 Javascript入门 2. ...

  5. 读书笔记 effective c++ Item 17 使用单独语句将new出来的对象放入智能指针

    1. 可能会出现资源泄漏的一种用法 假设我们有一个获取进程优先权的函数,还有一个在动态分类的Widget对象上根据进程优先权进行一些操作的函数: int priority(); void proces ...

  6. 纪中集训 Day 4

    今天(其实是昨天)不考试= = 所以就刷题了 = = 早上无所事事,想把几道题刷过却很不爽的全删了 下午觉得不能这样了,把BZOJ 过了两道水的DP (计算几何根本不会啊QAQ) 晚上先水了一题之后, ...

  7. android学习6——canvas的save,restore作用

    先看如下代码 public class SaveRestoreActivity extends Activity { @Override public void onCreate(Bundle sav ...

  8. CLOSE_WAIT TIME_WAIT

    TCP状态转移要点    TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放.网络服务器程序要同时 ...

  9. 简洁美观的Java博客系统Tale开源了,让每一个有故事的人更好的表达想法

    Tale Tale的英文含义为故事,我相信每个坚持写Blog的人都是有故事的:中文你叫它 塌了 也无所谓 . Tale 使用了轻量级mvc框架 Blade 开发,默认主题使用了漂亮的 pinghsu, ...

  10. C# .NET更智能的数据库操作的封装

    前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注 ...