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

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

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

一、点对点信道的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. Nginx 慢启动与拥塞窗口

    L:127

  2. AMD直奔5nm!这一步棋下得妙

    AMD今年将推出采用7nm工艺的第二代EPYC霄龙.第三代Ryzen锐龙处理器,其中后者已经在CES 2019上公开首秀,性能追评i9-9900K,功耗则低得多. 虽然被称为“女友”的GlobalFo ...

  3. 洛谷P1107[BJWC2008]雷涛的小猫题解

    题目 这个题可以说是一个很基础偏中等的\(DP\)了,很像\(NOIpD1T2\)的难度,所以这个题是很好想的. 简化题意 可以先简化一下题意,这个题由于从上面向下调和从下向上爬都是一样的,所以我们就 ...

  4. python爬取豆瓣前25个影片内容的正则表达式练习

    通过python正则表达式获取豆瓣top250的第一页的25个影片排名,影片名字,影片连接,导演,主演,上映日期,国家,剧情,评分,评价人数的内容 网页html内容: <ol class=&qu ...

  5. IDEA中Maven项目使用Junit4单元测试的写法

    IDEA默认是安装了junit控件的,直接使用就好了 在maven项目的pom.xml文件中添加依赖 <dependency> <groupId>junit</group ...

  6. linux系统下saltstack的安装和配置

    Saltstack是一个新的基础设施管理工具,两大功能:远程执行和配置管理. Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具.由Master和Minion构成,通过Zer ...

  7. 【CodeChef】Querying on a Grid(分治,最短路)

    [CodeChef]Querying on a Grid(分治,最短路) 题面 Vjudge CodeChef 题解 考虑分治处理这个问题,每次取一个\(mid\),对于\(mid\)上的三个点构建最 ...

  8. 【BZOJ5287】[HNOI2018]毒瘤(动态规划,容斥)

    [BZOJ5287][HNOI2018]毒瘤(动态规划,容斥) 题面 BZOJ 洛谷 题解 考场上想到的暴力做法是容斥: 因为\(m-n\le 10\),所以最多会多出来\(11\)条非树边. 如果就 ...

  9. Codeforces | CF1041F 【Ray in the tube】

    昨天晚上全机房集体开\(Div2\),因为人傻挂两次\(B\)题的我开场就\(rank2000+\dots qwq\)于是慌乱之中的我就开始胡乱看题(口胡),于是看了\(F\dots\)(全机房似乎也 ...

  10. 理解Spark的核心RDD

    http://www.infoq.com/cn/articles/spark-core-rdd/