一、 链路层的功能

可靠交付:在高差错的链路,如无线链路,可以进行可靠交付;对于其它的有线,可以是多余的;

流量控制:防止接收方的缓存区溢出,帧丢失;

差错检测与差错纠正:在硬件上实现了;

二、多路访问协议

信道划分协议: 时分复用(TDM)、频分复用(FDM)、 码分多址(CDMA);

随机接入协议:以信道的全部速率进行传输,遇到碰撞就停下来, 等待随机的时间后再次发送;

  • 时隙ALOHA:把每个节点的发送时间开始都是固定的、同步的(如12点、1点、2点……, 而不会12.04发送),间隔时间为一个帧的传播时间;当没有碰撞时发送完成,当碰撞发生时,在下一个发送点以概率P进行发送;
  • ALOHA: 原理与上面的相同,不一样的地方为:发送时间点不是固定的,而是随机的;
  • 载波侦听多路访问(CSMA):每一个节点都会进行监听信道,如果有空闲的,就发送,否则等一段时间;  当加上碰撞(由于传播时延,会碰撞)检测时,变为了(CSMA/CD)了;

轮流协议:

  • 轮询协议:各节点中有一个主节点,它会去轮流询问每一个节点是否需要发送数据,你如果发送就让让你发,你发完以后再问下一下;(会引入时延)
  • 令牌传递协议:各节点中没有主节点了,而是有一个特殊的称为令牌的帧,这个令牌在各个节点之间轮流传递,有令牌的人就可以发送数据,发送完就传给下一个人;

三、地址解析协议:ARP与逆ARP

ARP表的样子,其中TTL表示为过期的时间 ,它们是有时效的;

一个主机的ARP表中想要得到一个IP的MAC时,它可以这么做:

  • 1. 发送一个ARP的请求包,其中包括源IP与MAC、目的的MAC为广播MAC,即全为1,目的的IP地址就是要查询的IP地址;
  • 2. 这样所以的 其它主机都可以解析这个请求包,查看是否与自己的IP对应,如果对应则回复人家,如果不对应,直接忽略就可以了;

四、以太网

帧结构:

  • 前同步码(7个字节10101010和1个字节10101011):
  • 目的地址源地址都是MAC;
  • 类型:这是网络协议分层设计减小耦合度的精心设计,这允许以太网多路复用网络层协议,可以支持除了IP协议之外的其他不同网络层协议,或者是承载在以太网帧里的协议(如ARP协议)。接收方根据此字段进行多路分解,从而达到解析以太网帧的目的,将数据字段交给对应的上层网络层协议,这样就完成了以太网作为数据链路层协议的工作。
  • 数据:在交换式以太网中,一台主机向局域网中的另一台主机发送一个IP数据报,这个数据报封装在以太网帧结构中作为其有效载荷,以太网的最大传输单元(MTU)是1500字节,也就是限制了一个IP数据报最大为1500字节,如果超过1500字节,就要启用IP协议的分片策略进行传输。同时,数据字段最小长度为46字节,如果不够必须要填充到46字节。如IP数据报和填充部分会被网络层利用IP数据报首部的长度字段去除相关填充。
  • CRC:循环冗余校验;

整体结构:

五、交换机

工作在数据链路层,可以进行过滤志转发,连接以太网;

六、 点对点的协议,PPP

使用到的协议:链路控制协议 (LCP)、 网络控制协议(NCP)、PPP扩展协议;

http://www.cnblogs.com/gtarcoder/p/6259105PPP.html

计算机网络——链路层协议的更多相关文章

  1. 计算机网络七层协议模型 “开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)

    计算机网络七层协议模型 作者:Ryan    时间:2013年10月7日 一.物理层(Physical Layer) OSI模型的最低层或第一层,规定了激活.维持.关闭通信端点之间的机械特性.电气特性 ...

  2. 计算机网络-链路层(4)WiFi:802. 11无线LAN

    有几套有关无线LAN 的802. 11标准,包括802.11b.802.11a和802.11g. 802.11g是至今为止最为流行的技术.一些双模式(802.11a/g)和三模式(802.11a/b/ ...

  3. 计算机网络-链路层(2)多路访问控制协议(multiple access control protocol)

    单一共享广播信道,如果两个或者两个以上结点同时传输,会互相干扰(interference) 冲突(collision):结点同时接收到两个或者多个信号→接收失败! MAC协议采用分布式算法决定结点如何 ...

  4. H3C 链路层协议

  5. TCP/IP协议学习(六) 链路层详解

    学习知识很简单,但坚持不懈却又是如此的困难,即使一直对自己说"努力,不能停下"的我也慢慢懈怠了... 闲话不多说,本篇将讲述TCP/IP协议栈的链路层.在本系列第一篇我讲到,TCP ...

  6. 《TCP/IP详解卷1:协议》第2章 链路层-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  7. TCP/IP协议族之链路层(二)

    TCP/IP学习记录,如有错误请指正,谢谢!!! TCP/IP协议族之链路层(二) 链路层是最底层协议,主要有三个目的: 1. 为IP模块发送和接收IP数据报 2. 为ARP模块发送ARP请求和接收A ...

  8. <再看TCP/IP第一卷>关于链路层的知识细节及相关协议

    在TCP/IP协议族中,链路层的主要有三个目的: (1)为IP模块发送和接受数据报 (2)为ARP模块发送ARP请求和接受ARP应答 (3)为RARP发送RARP请求和接受RARP应答 TCP/IP支 ...

  9. 《TCP/IP详解卷1:协议》——第2章:链路层(转载)

    1.引言 从图1-4可以看出,在TCP/IP协议族中,链路层主要有三个目的: (1)为IP模块发送和接收IP数据报: (2)为ARP模块发送ARP请求和接收ARP应答. (3)为RARP发送RARP请 ...

随机推荐

  1. mongoose之findOneAndUpdate方法之代码示例

    categoryModel.findOneAndUpdate({name:{$in:req.body.categorys}},{$inc:{total:1}},function(err){ if (e ...

  2. 注册vue组件的几种方式

    1,全局注册(这种方式注册组件必须在vue实例化之前声明) Vue.component('tag-name',{}) 2,局部注册 var Child = { template: '<div&g ...

  3. [SQL in Azure] High Availability and Disaster Recovery for SQL Server in Azure Virtual Machines

    http://msdn.microsoft.com/en-us/library/azure/jj870962.aspx Microsoft Azure virtual machines (VMs) w ...

  4. 深入HBase架构解析(一)[转]

    前记 公司内部使用的是MapR版本的Hadoop生态系统,因而从MapR的官网看到了这篇文文章:An In-Depth Look at the HBase Architecture,原本想翻译全文,然 ...

  5. spark on alluxio和MR on alluxio测试(改进版)【转】

    转自:http://kaimingwan.com/post/alluxio/spark-on-alluxiohe-mr-on-alluxioce-shi-gai-jin-ban 1. 介绍 2. 准备 ...

  6. C++用new来创建对象和非new来创建对象的区别

    转:http://www.cnblogs.com/GODYCA/archive/2013/01/10/2854777.html 我们都知道C++中有三种创建对象的方法,如下: #include < ...

  7. Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)【转】

    [转自:]http://blog.csdn.net/hitwengqi/article/details/8008203 最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文. 首先要了 ...

  8. java 多线程 24 : 线程组

    线程组 可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式,如图所示: 线程组的作用是:可以批量管理线程或线程组对象,有效地对线 ...

  9. django使用email进行身份验证(转载)

    版权所有,转载请注明出处:http://guangboo.org/2013/03/27/authentication-using-email-in-django django自带的验证功能免去了我们的 ...

  10. java中ThreadExecutor使用注意

    如果使用了submit(Runnable task) 就会出现这种情况,任何的错误信息都出现不了! 这是因为使用submit(Runnable task) 的时候,错误的堆栈信息跑出来的时候会被内部捕 ...