数据链路层,给两个相邻节点传输数据。

数据链路:物理链路+通信协议。

数据链路层使用的信道主要有点对点信道和广播信道两种。

一、点对点信道的PPP协议:

  用三层模型来研究数据链路层,不管在哪一链路上的通信(主机对路由,路由对路由)

  点对点信道的数据链路层的通信时主要步骤如下:

    1.A的数据链路层,把网络层传下来的IP数据包,加上头尾信息封装成framing

    2.A把封装好的framing发给B的数据链路层

    3.如果B收到的framing无差错,就拆掉头尾,提取出IP数据包交给网络层;反之就丢弃

  数据链路层协议需要解决的三个问题:

    1.封装成帧:分组交换的特点就是在因特网上以packet为单位传输,首尾的数据加在IP数据包上,用来标识数据的首尾并添加一些控制信息。帧的数据部分需要小于MTU maximum transfer unit.

  2.透明传输:"透明的"(transparent)表示实际上存在的东西对我们却好像看不见一样或好象不存在一样.对于普通的电话通信,由于输入和输出的波形是有差异的,故可以说普通的电话通信不是透明传输。

        帧的头尾数据的标记,可能与帧的数据包内的数据产生重复,导致接收方讲数据包的数据解读为 SOH,EOH而错误解读帧,解决办法是在帧内的数据包中,出现SOH,EOH的数据时,在前部加上转义字符ESC标记。

  3.差错检测:物理链路传输时,0差错是理想状态。非理想状态时,需要用差错检测来保证传输的正确性。

   差错有两种,一种是比特差错,即物理传输的1001之类的出现差错,另一种是传输差错,比如帧丢失,帧重复,帧顺序错误;

      数据链路层的比特差错检测目前用的方法是循环冗余检测CRC cyclic redundancy check,用于检验比特差错,使用的方法有FCS,即传输帧+余数(传输帧的N位模2运算➗N+1位的设置的协议数取得的余数)

      OSI要求是说数据链路层提供可靠传输,即在CRC的基础上,再对帧增加编号,确认和重传机制。但是现在的因特网上大多数使用的数据链路层协议都不支持确认和重传机制,说不支持可以提高通信效率,传输差错的检测交给运输层的TCP来做。

  PPP协议

    以前通信线路质量差,用得是HDLC协议,在数据链路层实现可靠传输。

    现在大多数都改为PPP point-to-point protocol协议,不可靠的数据链路协议。

    PPP协议应满足的需求:简单,封装成帧,透明性,多种网络层协议,多种类型链路,差错检测,检测连接状态,最大传送单元,网络层地址协商,数据压缩协商。

    PPP协议的工作状态:

二、使用广播信道的数据链路层

  广播信道可以进行一对多的通信。

  局域网优点:具有广播功能,便于系统的扩展和逐渐演变,提高了系统的可靠性,可用性和生存性

  局域网按照网络拓扑分类:环形网,星型网,总线网。

  网络共享信道需要考虑的问题是如何共享通信媒体:静态划分信道,动态媒体接入控制(随机接入/受控接入)

  属于随机接入的以太网被重点讨论:以太网的IEEE802.3标准将数据链路层拆成了逻辑链路控制LLC和媒体接入控制MAC,不过后来商业淘汰了LLC,大部分以太网只考虑MAC。

  适配器的作用:

  以太网为了传输数据,并且在传输失败时实现重传,采用的是CSMA/CD协议。

    CSMA/CD 实现在信号中途发生碰撞时,重传的机制。

    CSMA/CD的要点:准备发送,检测信道,发送中检测信道(适配器要边发边听)

  MAC协议的帧组成:

  扩展以太网的方法:

    -物理层拓展:用大集线器管理小集线器,小集线器管理主机,通过一个大的集线器网络,将各个以太网连接起来。

    -数据链路层拓展:以太网交换机(网桥被淘汰),以太网交换机就是多接口的网桥,每个接口都与一个主机或者另一个交换机相连,独占传输媒体,无碰撞传输数据。

  

疑问:

1.集线器原理是用一堆线将每个主机都互联起来传输数据吗?

2.以太网的那些帧长度设置,时间设置的原理不清楚

3.集线器扩展以太网,为什么网速要拉在一个水平线上呢?

4.网桥和适配器有什么差别?不都是分析帧的目的地址然后发送吗?适配器是都转发,然后接受的人发现自己不是接收人就遗弃?

5.以太网交换机为什么不会碰撞呢???交换机和主机只有一条线,不是也可以碰撞吗?数据从单独的这条线进出的时候不是会碰撞吗?

6.以太网的实例是什么?局域网可以是公司网,校园网。以太网呢????网吗????

7.后面那一大堆以太网,交换机,网桥,和”给两个相邻节点传输数据“有什么关系???感觉很像网络层啊???

计算机基础:计算机网络-chapter3的更多相关文章

  1. Java学习之计算机基础(一)

    阅读本文大概需要 4 分钟 想要开始学习Java开发,需要掌握一些必要的计算机基础.如果你是计算机专业的人或者已经学过类似的课程,可以跳过这篇文章的阅读.计算机基础课程有很多,小编在大学里学过的课程就 ...

  2. day01<计算机基础知识&Java语言基础>

    计算机基础知识(计算机概述) 计算机基础知识(软件开发和计算机语言概述) 计算机基础知识(人机交互) 计算机基础知识(键盘功能键和快捷键) 计算机基础知识(如何打开DOS控制台) 计算机基础知识(常见 ...

  3. [Java 教程 00] 计算机基础

    前言 我想,来到这的朋友肯定是想学习JAVA或者想要进入IT这个行业的.考虑到大家的基础可能不一样,有些人可能还是用着新买的电脑,为了让大家在后续的学习中更加顺畅.在学习一门全新的计算机语言之前,我需 ...

  4. 【java基础】01 计算机基础知识

    一.计算机基础知识 1. 计算机 1. 什么是计算机? 计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设 ...

  5. Java学习1——计算机基础知识

    本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.

  6. 计算机基础--Java中int char byte的关系

    计算机基础--Java中int char byte的关系 重要:一个汉字占用2byte,Java中用char(0-65535 Unicode16)型字符来存字(直接打印输出的话是字而非数字),当然要用 ...

  7. 计算机基础-Day1

    计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...

  8. python计算机基础-Day1

    计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...

  9. Python之旅_计算机基础入门

    一.计算机基础 1.Python是编程语言 语言:一种事物与另一种事物沟通的介质. 编程语言:程序员与计算机沟通的介质. 什么是编程:程序员用编程语言把自己的逻辑思想下来,编程的结果就是一堆文件. 为 ...

  10. 计算机基础,Python基础--变量以及简单的循环

    一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存  用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全 ...

随机推荐

  1. Javassist之使用字节码在运行时生成新的类 01

    介绍 Javassist是一个开源的分析.编辑和创建Java字节码的类库.是由东京工业大学的数学和计算机科学系的 Shigeru Chiba (千叶 滋)所创建的.它已加入了开放源代码JBoss 应用 ...

  2. 关于SQL查询语句中的LIKE模糊查询的解释

    LIKE语句的语法格式为: select * from 表名 where 字段名 like 对应值(字符串) 注:主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应字符串的. 下面列举 ...

  3. Ubuntu install flash

    Software&Updates - Other Software - Canonical Parners sudo apt install adobe-flashplugin

  4. .NET Core 2.0及.NET Standard 2.0 Description

    NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q3 ...

  5. C#常忘语法笔记(C#程序设计基础1-4章)

    1.1 const:声明一个常量 1.2强转: double->int eg1: int i=(int)3.0; eg2: double d=3.0; int i=(int)d+1; strin ...

  6. IntelliJ IDEA default settings 全局默认设置

    可以通过以下两个位置设置IDEA的全局默认设置: 以后诸如默认的maven配置就不需要每次都重复配置了?

  7. 浅析Android设备中grep命令处理流程

    2017-04-18   概述     在TV开发板中,可以在串口中直接使用grep命令.这是因为在/system/bin/下有一个'grep'链接.这个链接指向'/system/bin/toolbo ...

  8. springMVC整理05--数据校验、格式化 & 其他注解 & 数据绑定流程

    1.  数据校验.数据格式化 参考博客 http://www.importnew.com/19477.html 1.1  数据校验 使用 spring 数据校验,先要导入校验器的 jar: <! ...

  9. Vijos P1459 车展 (treap 任意区间中位数)

    题面: 描述 遥控车是在是太漂亮了,韵韵的好朋友都想来参观,所以游乐园决定举办m次车展.车库里共有n辆车,从左到右依次编号为1,2,…,n,每辆车都有一个展台.刚开始每个展台都有一个唯一的高度h[i] ...

  10. 「CodeForces - 717E」Paint it really, really dark gray (dfs)

    BUPT 2017 summer training (for 16) #1H 题意 每个节点是黑色or白色,经过一个节点就会改变它的颜色,一开始在1节点.求一条路径使得所有点变成黑色. 题解 dfs时 ...