【网络协议】TCP/IP:数据链路层
物理层负责把计算机中的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:数据链路层的更多相关文章
- 网络协议TCP/IP、IPX/SPX、NETBEUI简介
网络中不同的工作站,服务器之间能传输数据,源于协议的存在.随着网络的发展,不同的开发商开发了不同的通信方式.为了使通信成功可靠,网络中的所有主机都必须使用同一语言,不能带有方言.因而必须开发严格的标准 ...
- JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo
OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...
- 网络知识--OSI七层网络与TCP/IP五层网络架构及二层/三层网络
作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Int ...
- 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)
reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...
- Socket网络编程(TCP/IP/端口/类)和实例
Socket网络编程(TCP/IP/端口/类)和实例 原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次 ...
- 加深理解HTTP请求---网络基础TCP/IP
为了了解HTTP,必须的了解TCP/IP协议族. 通常使用的网络实在TCP/IP协议族的基础上运作的.而HTTP就属于他的一个子集. 1.TCP/IP 协议族 计算机与网络设备要相互通信,双方就必须基 ...
- 网络编程TCP/IP详解
网络编程TCP/IP详解 1. 网络通信 中继器:信号放大器 集线器(hub):是中继器的一种形式,区别在于集线器能够提供多端口服务,多口中继器,每个数据包的发送都是以广播的形式进行的,容易阻塞网络. ...
- 网络协议TCP、Http、webservice、socket区别
网络协议TCP.Http.webservice.socket区别 http 和 webservice 都是基于TCP/IP协议的应用层协议 webservice是基于http的soap协议传输数据 w ...
- JavaWeb 获取请求网络协议、IP、端口号、项目根路径
JavaWeb 获取请求网络协议.IP.端口号.项目根路径 CreateTime--2018年6月1日16点32分 Author:Marydon 1.需求 在项目中,需要使用Java向本程序发送r ...
- js 获取请求网络协议、IP、端口号、项目名称
js 获取请求网络协议.IP.端口号.项目名称 CreationTime--2018年6月19日15点54分 Author:Marydon /** * 获取url请求前缀 * @return ht ...
随机推荐
- POJ-3255-Roadblocks(次短路的另一种求法)
Bessie has moved to a small farm and sometimes enjoys returning to visit one of her best friends. Sh ...
- Java 与 Mysql连接,并分页显示
这是我第一个上规模的Java项目,我们必须在一周内完成的作业,零基础学习Java,网上收集了很多资料,逐渐对面向对象的思想有所了解,但还是半灌水,后期打算结合项目系统地学习一遍Java.老师布置的任务 ...
- SSM整合+WebUpload使用(spring+springmvc+mybatis+maven)
SSM框架整合以及webupload的集成与使用 在项目中最近用到了webupload.js,也方方面面遇到了不少问题,比如上传文件前对表单参数校验,当校验失败不予提交,及在文件上传成功后,选择同 ...
- js reduce
数组对象求和 let books = [ { id: 100, name: '红楼梦', price: 100 }, { id: 101, name: '西游记', price: 150 }, { i ...
- 求支付表中按id累积和最接近100的那条记录
此例源自美团的一道SQL面试题 支付表结构: create table hy_payment( id number(4,0) primary key, pay number(3,0) not null ...
- 文件压缩跟解压(本地&Linux服务器)
远程解压需要的jar包: <dependency> <groupId>commons-net</groupId> <artifactId>commons ...
- 滴滴AR实景导航背后的技术
桔妹导读:机场.商场.火车站等大型室内场所内GPS信号不稳定.室内面积大.路线复杂.用户判断方向难等问题,给在大型场所内发单的乘客找上车点带来了很大的挑战,用户急需一种操作简单.交互友好的引导功能.本 ...
- C++ 读入优化&输出优化
读入优化:读入优化只是针对整数,由于getchar()读字符非常的快,所以采用getchar()来进行读入,下设输入的数为x 负数处理:用一个标志变量f,开始时为1,当读入了'-'时,f变为-1,最后 ...
- 漏洞扫描工具acunetix12会遇到的问题
1.如果安装好之后,打开工具时显示无法访问,首先去看任务管理器当中,acunetix的服务是否启动了 2.如果忘记了账号密码,可以在安装目录下,双击ChangePassword.exe进行重置密码
- xss构造--如何使用xss语句
XSS的构造 1.利用[<>]构造html/js 如[<script>alert(/xss/)</script>] 2.伪协议 使用javascript:伪协议来构 ...