物理层负责把计算机中的0、1数字信号转换为具体传输媒介的物理信号(电压的高低、电波的强弱、光的闪灭)

数据链路层协议定义了(通过通信介质互连的设备间的)数据传输规范 (常见的通信介质有同轴电缆、双绞线电缆、光纤、电波)

相关技术

MAC地址

数据链路层机器节点的标识,无论是哪种数据链路的网络(如以太网,蓝牙等),等不会有相同的MAC地址

6字节(48比特)

共享介质型网络

共享介质型网络指多个设备共享一个通信介质的一种网络。

多个设备之间使用同一个载波信道进行数据的发送和接受, 这样当一个设备在发送或者接受数据的时候其他设备就只能排队等待。

基本为半双工通信【全双工通信指可以同时进行数据的发送和接受, 而半双工不行】

介质访问控制方式

共享型网络是共享通信信道的, 当一个设备使用的时候其他设备不能再进行数据传输,所以就需要对传输通道的使用进行控制

主要有:争用方式 和 令牌传递两种介质访问控制方式

争用方式(先到先得)

也叫CSMA/CD(载波监听多路访问/冲突检测)

算法如下:

当信道上没有数据传输时,所有的站点都可以发送数据帧

当发生冲突时,放弃发送数据帧, 同时立即释放信道

放弃发送后,随机等待一段时间,再重新争用信道,重新发送帧。(随机等待一段时间避免再次发送数据时也产生冲突)

令牌传递方式

令牌沿着整个网络环传递, 只有获得令牌之后才能发送数据帧。

因为同一时刻只会有一个设备获得令牌, 所以可以保证不会冲突。

但是信道的利用率不会太高(因为即使此刻没有其他设备在传送数据帧,也需要等令牌传递到当前设备才可以发送数据 )

非共享介质型网络

网络中的每个站点直接与交换机端口连接,所以发送方和接收方是不共享传输介质的

可以实现全双工通信

集线器(Hub)

Hub工作在物理层,对接受到的信号进行整形扩大 以扩大网络的传输距离。

它不具有类似交换机的MAC地址表,所以会把数据广播到所有与之相连的节点。

交换机

交换机工作在数据链路层或者网络层(有路由功能)

MAC地址转换表自我学习过程

交换机收到某站点数据帧时,如果源地址和端口不在转换表中就将源地址和端口写到转换表中

然后在转换表中查找目标MAC地址。

如果找到就把数据帧转发到该端口,否则广播到所有端口。

转发方式

有存储转发和直接转发两种方式:

存储转发会校验数据帧的FCS字段 如果检测到帧已经损坏就直接丢弃

直通转发在知道MAC地址之后就开始转发,不校验数据帧

直通转发延迟会更低。

环路检测技术

如果网络成环,数据帧就可能在环中一而再再而三的转发,然后造成网络瘫痪。

有生成树和源路由两种算法:

生成树方式:通过禁用某些端口 将整个网络构成为一棵树,避免成环。

源路由算法:将发送帧的源网桥MAC地址写入数据帧中

VLAN(虚拟局域网)

把交换机根据端口分成多个网段,从而区分了广播数据传播的范围

减少了网络的负载并提供了网络的安全性

当然这样整个网络就有多个网段, 需要利用有路由功能的交换机(L3) 或者路由器连接多个网段

以太网(IEEE802.3)

以太网是一种计算机局域网技术

在网络普及的时候, 多台终端使用同一根同轴电缆的共享介质型的连接方式。

而现在一般采用终端与交换机之间独占电缆的方式实现以太网通信(如下图)

以太网帧

前导码 + 帧体

以太网帧前端有一个前导码的部分, 表示一个以太网帧的开始, 用于与对端网卡进行同步(对齐)

帧体:

6字节目标MAC地址:用于数据链路层寻址(交换机查找转发端口)

类型:上层协议类型(IP等协议)

FCS(帧校验序列):用于check帧在传输过程是否遭到破坏

MTU = 1500

从信道利用率和传输时间两方面考虑,以太网的数据传输范围被限制为(46~1500字节)

信道利用率: 假设实际传输数据X字节,利用率就是X/(X + 18)【实际数据字节数/整个帧字节数, 18是帧头14字节 + 帧尾4字节FCS】, X越大信道利用率就越高

数据最少为46字节: 取46的时候信道利用率为71%[46 / (46 + 18)] ,利用率不会太低(当然还有其他原因)

数据最大为1500字节:

我们知道传输的数据越大, 传输时间就越长

假设100Mbps的网络, 网络层的数据报最大65535字节时数据传输时间就是 65535 / (100 * 1024 *1024 / 8) * 1000 = 4.99ms

如果是共享介质型网络,在这5ms内自己不能接受数据,其他设备不能接受发送数据,不可接受!!!

所以我们需要在链路层对上层数据报进行拆分,1500字节的数据在100Mbps的网络下, 传输时间只需要0.11ms左右,是OK 的。

【网络协议】TCP/IP:数据链路层的更多相关文章

  1. 网络协议TCP/IP、IPX/SPX、NETBEUI简介

    网络中不同的工作站,服务器之间能传输数据,源于协议的存在.随着网络的发展,不同的开发商开发了不同的通信方式.为了使通信成功可靠,网络中的所有主机都必须使用同一语言,不能带有方言.因而必须开发严格的标准 ...

  2. JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo

    OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...

  3. 网络知识--OSI七层网络与TCP/IP五层网络架构及二层/三层网络

    作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Int ...

  4. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

     reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...

  5. Socket网络编程(TCP/IP/端口/类)和实例

    Socket网络编程(TCP/IP/端口/类)和实例 原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次 ...

  6. 加深理解HTTP请求---网络基础TCP/IP

    为了了解HTTP,必须的了解TCP/IP协议族. 通常使用的网络实在TCP/IP协议族的基础上运作的.而HTTP就属于他的一个子集. 1.TCP/IP 协议族 计算机与网络设备要相互通信,双方就必须基 ...

  7. 网络编程TCP/IP详解

    网络编程TCP/IP详解 1. 网络通信 中继器:信号放大器 集线器(hub):是中继器的一种形式,区别在于集线器能够提供多端口服务,多口中继器,每个数据包的发送都是以广播的形式进行的,容易阻塞网络. ...

  8. 网络协议TCP、Http、webservice、socket区别

    网络协议TCP.Http.webservice.socket区别 http 和 webservice 都是基于TCP/IP协议的应用层协议 webservice是基于http的soap协议传输数据 w ...

  9. JavaWeb 获取请求网络协议、IP、端口号、项目根路径

      JavaWeb 获取请求网络协议.IP.端口号.项目根路径 CreateTime--2018年6月1日16点32分 Author:Marydon 1.需求 在项目中,需要使用Java向本程序发送r ...

  10. js 获取请求网络协议、IP、端口号、项目名称

      js 获取请求网络协议.IP.端口号.项目名称 CreationTime--2018年6月19日15点54分 Author:Marydon /** * 获取url请求前缀 * @return ht ...

随机推荐

  1. Python post请求模拟登录淘宝并爬取商品列表

    一.前言 大概是一个月前就开始做淘宝的爬虫了,从最开始的用selenium用户配置到selenium模拟登录,再到这次的post请求模拟登录.一共是三篇博客,记录了我爬取淘宝网的经历.期间也有朋友向我 ...

  2. eclipse 设置默认编码为Utf-8 详细教程。

    需要设置的几处地方为: Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8 Window ...

  3. IO优化

    Linux性能优化之CPU.内存.IO优化 https://blog.csdn.net/zyc88888/article/details/79027944 iOS的I/O操作 https://www. ...

  4. 避免nullpointer 空指针

    来自知乎: 一般在服务器返回的数据上我们会做数据合法性检测,所以在api文档上需要注明字段的取值范围,然后客户端根据这个去做数据检测,缺段就直接走数据错误的流程,这个很大程度上避免了不少nullpoi ...

  5. A+B in Hogwarts (20)(模拟)

    时间限制 1000 ms 内存限制 65536 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 If you are a fan of Harry Potter ...

  6. Codeforces1312D Count the Arrays 组合数学

    题意 给你\(n\)和\(m\),问满足以下条件的数列的个数: 数列长度为\(n\) 数列值域范围为\(\left[1,m\right]\) 数列有且仅有一对相等的数 数列是单峰数列(先严格递增后严格 ...

  7. [BUUOJ记录] [强网杯 2019]随便注(三种方法)

    本题主要考察堆叠注入,算是比较经典的一道题,在i春秋GYCTF中也出现了本题的升级版 猜测这里的MySQL语句结构应该是: select * from words where id='$inject' ...

  8. Oracle错误 ora-12514 解决方法-九五小庞

    成功连到数据库上之后,查看listener状态:lsnrctl status status READY 状态,需要由非归档转为归档模式,故操作如下: 1.关闭数据库shutdown immediate ...

  9. linux 文件系统和磁盘

    linux 文件系统和磁盘 1.文件系统 ext2, ext3, ext4 , XFS ext3和ext4为日志文件系统 文件系统格式 : 磁盘格式化为 inode和block inode是索引,记录 ...

  10. Linux系统小知识

    换Linux系统快半年了,刚开始总是碰到各种各样的问题,虽然斗解决了,由于没有记录,过一段时间就忘了,故在这里记录一下. 选择国内镜像源: Manjaro有一个很好用的命令rankmirrors.ra ...