计算机基础:计算机网络-chapter3
数据链路层,给两个相邻节点传输数据。
数据链路:物理链路+通信协议。
数据链路层使用的信道主要有点对点信道和广播信道两种。
一、点对点信道的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的更多相关文章
- Java学习之计算机基础(一)
阅读本文大概需要 4 分钟 想要开始学习Java开发,需要掌握一些必要的计算机基础.如果你是计算机专业的人或者已经学过类似的课程,可以跳过这篇文章的阅读.计算机基础课程有很多,小编在大学里学过的课程就 ...
- day01<计算机基础知识&Java语言基础>
计算机基础知识(计算机概述) 计算机基础知识(软件开发和计算机语言概述) 计算机基础知识(人机交互) 计算机基础知识(键盘功能键和快捷键) 计算机基础知识(如何打开DOS控制台) 计算机基础知识(常见 ...
- [Java 教程 00] 计算机基础
前言 我想,来到这的朋友肯定是想学习JAVA或者想要进入IT这个行业的.考虑到大家的基础可能不一样,有些人可能还是用着新买的电脑,为了让大家在后续的学习中更加顺畅.在学习一门全新的计算机语言之前,我需 ...
- 【java基础】01 计算机基础知识
一.计算机基础知识 1. 计算机 1. 什么是计算机? 计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设 ...
- Java学习1——计算机基础知识
本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.
- 计算机基础--Java中int char byte的关系
计算机基础--Java中int char byte的关系 重要:一个汉字占用2byte,Java中用char(0-65535 Unicode16)型字符来存字(直接打印输出的话是字而非数字),当然要用 ...
- 计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- python计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- Python之旅_计算机基础入门
一.计算机基础 1.Python是编程语言 语言:一种事物与另一种事物沟通的介质. 编程语言:程序员与计算机沟通的介质. 什么是编程:程序员用编程语言把自己的逻辑思想下来,编程的结果就是一堆文件. 为 ...
- 计算机基础,Python基础--变量以及简单的循环
一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存 用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全 ...
随机推荐
- 如何在mac下安装php
步骤如下: 1.下载php源码并解压 2.进入php源码并configure 3.安装openssl 4.sudo make及make test 5.sudo make install 具体命令如下: ...
- Servlet学习的一些笔记
Servlet一点笔记 Servlet:Server Applet,全称Java Servlet,是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP ...
- Java多线程之线程状态转换图
说明:线程共包括以下5种状态.1. 新建状态(New) : 线程对象被创建后,就进入了新建状态.例如,Thread thread = new Thread().2. 就绪状态(Runn ...
- iOS WKWebView全屏浏览网页返回 状态栏问题
问题: 用这个方法隐藏显示状态栏,总是带有残余 过一会才能消失掉 [[UIApplication sharedApplication]setStatusBarHidden:YES]; 可以切换状态栏的 ...
- 搭建Hexo博客(三)—换电脑继续写Hexo博客
Hexo和GitHub搭建博客的原理是:Hexo将source下的md文件生成静态的html页面,存放到public目录中,这一步是由命令:hexo -g完成.接下来执行hexo -d命令,就将pub ...
- 法语Linux NuTyX 11 RC2 发布
读 NuTyX是一个法语Linux发行版(具有多语言支持),由Linux From Scratch和Beyond Linux From Scratch构建,带有一个名为“cards”的自定义包管理器. ...
- 【Java】Android EditText开发的一个容易忽略的坑
这几天接手做一个远程控制Android application,安卓前台的EditText用来输入ip地址.端口等信息,发现EditText的使用存在着巨坑一个! 我在网上找了半天,发现仅仅有人提出这 ...
- python----函数初识
一,什么是函数? 现在有这么个情况:python中的len方法不让用了,你怎么办? 来测试一下‘hello word’ 的长度: s1 = "hello world" length ...
- Spring 使用介绍(十三)—— Bean的生命周期
一.概述 Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,生命周期时序图如下: 二.生命周期接口分类 Bean的生命周期经历了多个接口方法的调用, ...
- Luogu4389 付公主的背包(生成函数+多项式exp)
显然构造出生成函数,对体积v的物品,生成函数为1+xv+x2v+……=1/(1-xv).将所有生成函数乘起来得到的多项式即为答案,设为F(x),即F(x)=1/∏(1-xvi).但这个多项式的项数是Σ ...