计算机网络【五】广播通信+以太网

局域网的拓扑

广域网使用点到点通信
局域网使用广播通信
可以随意向网络中添加设备。

  • 总线网
  • 星形网,使用集线器。现在多使用星形网络。
  • 环状网
  • 树形网
    在这里插入图片描述其中匹配电阻用来吸收总线上传播的信号。

共享通信媒体

静态划分信道

频分复用、时分复用、波分复用、码分复用
可以让计算机充分使用介质来使用信号。可是这种方法太过麻烦。

动态媒体接入技术(多点接入)

  • 随机接入(以太网使用)
  • 受控接入

CSMA/CD协议

广播通信:所有的计算机都能收到其他计算机发送的信息(就算不是发给自己的也可以收到,但是不接受)

载波监听多点接入/碰撞检测协议:CSMA/CD协议
多点接入:许多计算机以多点接入的方式链接在一根总线上
载波监听:每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。如果有则暂时不要发送数据,以免发生碰撞。

碰撞检测

  • 当几个站同时在总线上发送数据时,总线上的信号电压摆动值会增大(互相叠加)
  • 当一个站检测到信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞(冲突)。
  • 发生碰撞时,总线上传输的信号产生了严重的失真,无法从中会付出有用的信息。
  • 每一个发送数据的站一旦发现总线上出现了碰撞就要立即停止发送免得继续浪费网络资源,然后等待一段随机事件再次发送。
传播时延对载波监听的影响

发送信号的计算机检测到冲突(碰撞)最多是两倍的传播时延

CSMA/CD协议的特征

  • 只能半双工通信(集线器这样的设备要求网卡必须是半双工通信)
  • 每个站在发送数据之后的一小段时间内(两倍传送时间)以内,均存在遭遇碰撞的可能性
  • 这种不确定性导致以太网的平均通信量原小于以太网的最高数据率。

争用期

争用期就是两倍的端到端传输时延τ\tauτ。如果在争用期期间没有检测到碰撞就不会发生碰撞。

  • 以太网的争用期取51.2微妙为争用期
  • 对于10Mb/s以太网,争用期内可以发送512bit(64字节)。因此10Mb/s的以太网在发送数据时如果前64字节没有发生冲突则后续的数据就不会发生冲突
  • 10Mb/s以太网规定了最短有效帧长为64字节,凡长度小于64字节的帧都是由于冲突而异常终止的无效帧 。同理,100Mb/s以太网最短有效帧长为640字节。
  • 最短有效帧长与传输时延和带宽有关。因此以太网规定局域网网线长度不能超过100m

二进制指数类型退避算法

  • 确定基本退避时间,一般是争用期2τ2\tau2τ
  • 确定参数k:k=min[重传次数,10]k=min[重传次数,10]k=min[,10]
  • 从整数集合[0,1,…2k−12^k-12k1]中随机取出一个数,记为r。重传所需要的时延就是r倍的基本规避时间,即2rτ2r\tau2rτ
  • 当重传16次仍不能成功时即丢弃该帧,并向高层报告。

以太网

只要满足CSMA/CD(载波监听多点接入/碰撞检测)协议的局域网都叫做以太网
后来将数据链路层分为两个子层。逻辑链路控制LLC子层(已经被取消了),媒体介入控制MAC子层(网卡中含有)

以太网提供的服务是不可靠的交付,即尽最大努力的交付。
当接收站收到有差错的数据帧时就丢弃该帧,其他什么也不做。差错的纠正由高层来(传输层)决定。如果高层发现丢失了一些数据而进行重传,但以太网并不知道这时一个重传的帧。

集线器

集线器是使用电子器件来模拟实际电缆线的工作,因此整个系统仍然像一个传统的以太网那样运行。集线器使用了大规模集成电路芯片,因此这样的硬件设备的可靠性已经大大提升了。
使用集线器的以太网在逻辑上仍然是一个总线网,各工作站使用的还是CSMA/CD协议(载波监听多点接入/碰撞检测协议),并共享逻辑上的总线。集线器像一个多接口的转发器,工作在物理层。集线器的带宽是被共享的。
在这里插入图片描述

10Base-T

通信距离稍微短,每个站到集线器的距离不超过100m。这种10Mb/s速率的无屏蔽双绞线星形网的出现,及降低的成本,又调高了可靠性。是局域网发展史上一个非常重要的里程碑。

信道利用率

发送实际信息的时间占总时间的比率S
传输时延τ\tauτ,发送时间T0T_0T0
定义:a=τT0a=\frac{\tau}{T_0}a=T0τ
在这里插入图片描述

a比较小的时候表示一发生碰撞就立即可以检测出来,并立即停止发送,因而信道利用率很高。a越大,表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源,是的信道利用率明显降低。

对以太网参数的要求:

  • 数据率一定时,以太网的连线的长度受到限制,否则τ\tauτ的数值会太大
  • 以太网的帧长不能太短,否则T0T_0T0的值会太小,使得a值增大
    信道利用率的最大值:在理想情况下,以太网上的各占发送数据都不会发生冲突,
    这样的情况下发送一帧占用线路的时间是T0+τT_0+\tauT0+τ而帧数据本身的发送时间是T0T_0T0,于是我们可以计算出理想情况下的极限信道利用率
    Smax=T0T0+τ=11+aS_max=\frac{T_0}{T_0+\tau}=\frac{1}{1+a} Smax=T0+τT0=1+a1

MAC层(媒体访问控制层)

MAC地址(媒体访问控制地址)

MAC(48位)地址又称作硬件地址、物理地址。尽管802标准中的地址并不是这个含义,但是大家都已经习惯了这种叫法。

  • IEEE的注册管理机构RA负责向厂家分配地址字段的前三个字节(即高位24位)。因此同一个厂家的MAC地址的前三个字节都一样(代表厂家)。

局域网设计

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/383661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊Linux 五种IO模型

一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过的,建议先看这篇博文理解这两个概念点。在认知上,建立统一的模型。这样,大家在继续看本篇时&#…

操作系统【四】分页存储管理

连续分配方式的缺点: 固定分区分配:缺乏灵活性,产生大量的内部碎片,内存的利用率较低 动态分区分配:会产生许多外部碎片,虽然可以用紧凑技术处理,但是紧凑技术的时间代价较高 基本分页存储管理…

聊聊同步、异步、阻塞与非阻塞

近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具…

操作系统【五】分段内存管理+段页式内存管理

基本分段存储管理 与分页最大的区别:离散分配时所分配地址空间的基本单位不同 进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名,每段从0开始编址 内存分配规则:以段位单位进行分配&#xff…

计算机网络【六】网络层协议

网络层负责在不同网络之间尽力转发数据包(基于数据包的IP地址转发)。不负责丢失重传,也不负责顺序(每一个数据包都是单独选择路径)。 可靠传输是由传输层实现。 网络设备和OSI参考模型 通过分层,屏蔽了…

epoll 水平触发与边缘触发

https://blog.csdn.net/lihao21/article/details/67631516?refmyread epoll也是实现I/O多路复用的一种方法,为了深入了解epoll的原理,我们先来看下epoll水平触发(level trigger,LT,LT为epoll的默认工作模式&#xff…

计算机网络【3】网络层

主要任务时把分组从源端发送到目的端,为分组交换网上的不同主机提供服务。网络层传输单位是数据报 功能: 路由选择与分组转发(最佳路径 )异构网络互联拥塞控制 数据交换方式 电路交换:通信时延小、有序传输、没有冲…

C++空类的大小

https://blog.csdn.net/lihao21/article/details/47973609 本文中所说是C的空类是指这个类不带任何数据,即类中没有非静态(non-static)数据成员变量,没有虚函数(virtual function),也没有虚基类(virtual base class)。 直观地看&#xff0c…

Linux探秘之用户态与内核态

https://www.cnblogs.com/bakari/p/5520860.html 一、 Unix/Linux的体系架构 如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源&…

哈夫曼算法证明+哈夫曼编码译码程序实现

哈夫曼算法证明 哈夫曼算法是一种贪心算法,我们考虑证明其最优子结构和贪心选择性质: 最优子结构:假设一个树是哈夫曼树,则以其任意节点为根节点的最大子树也是哈夫曼树。 证明:子树的根节点的值是其所有叶子节点出现…

Python3小知识

对于迭代器对象,Python默认赋值是将引用赋值,即指向同一片内存空间。为了实现对内存空间的赋值,我们可以使用分片进行深复制。例如: 当定义元组的时候,我们一般使用小括号将元素包围起来,也可以不使用括号…

汇编:实现日历星期数查询工具

编制一个简单日历查询工具,输入年、月、日,能够判断当日的星期数,并进行输出,数据的输入和结果的输出要有必要的提示,且提示独占一行。 查阅资料 ​ 经过查阅资料,发现有两个相关的算法可以解决这个问题&…

一个通用纯C队列的实现

https://blog.csdn.net/kxcfzyk/article/details/31728179 队列并不是很复杂的数据结构,但是非常实用,这里实现一个队列是因为在我的另一篇博客非常精简的Linux线程池实现中要用到。 队列API定义如下: //queue.h #ifndef QUEUE_H_INCLUDED…

Dijkstra算法介绍+正确性证明+性能分析

算法介绍 源点s,数组d[u]表示s到u的最短距离,空集S,点集Q初始化:将源点s从点集中去掉,加入S,d[s]0,∀v∈Q,d[v]w[s][v]\forall v\in Q ,d[v]w[s][v]∀v∈Q,d[v]w[s][v]将Q中d[v]最小的点去掉加入S,并对u∈…

Linux C 实现一个简单的线程池

https://www.cnblogs.com/GyForever1004/p/9185240.html 线程池的定义 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级…

斐波那契数列求解+尾递归

1.普通递归 这里观察f[4]的递归树代替f[10]的递归树(后者比较大,画不下)。 使用递归求解的时候复杂度为T(n)T(n−1)T(n−2)T(n)T(n-1)T(n-2)T(n)T(n−1)T(n−2),观察递归树,发现降速最快的是最右边每次减2&#xff0c…

循环服务器,并发服务器模型以及I/O多路转接模型

https://blog.csdn.net/xinianbuxiu/article/details/53455784 一、基于TCP/IP协议的基本循环服务器 tcp_server.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #incl…

c++继承父类的子类,如何调用父类的同名函数?

https://blog.csdn.net/qq_26399665/article/details/52080215 子类调用父类的同名函数&#xff1a; 子类和父类返回值参数相同&#xff0c;函数名相同&#xff0c;有virtual关键字&#xff0c;则由对象的类型决定调用哪个函数。 子类和父类只要函数名相同&#xff0c;没有vi…

LCS最长公共子串

问题介绍 LCS问题(longest common subsequence problem)指的是求解两个字符串最长公共子序列问题。这里的子序列是可以不连续的。LCS问题广泛地出现在计算生物学中&#xff08;DNA序列、系统生成树等等&#xff09;。这里介绍如何解决LCS问题&#xff0c;以及算法的正确性证明…

将字符串中的空格用%20替换

如果不需要原地操作&#xff0c;则一遍遍历&#xff0c;将非空串复制&#xff0c;遇到空格加上%20&#xff0c;如果需要原地操作&#xff0c;首先进行遍历出空格的个数x,然后扩容2x,从后往前遍历实现。如果非空格字符串比空格字符串多的多的时候而且字符串非常长的时候使用原地…