主要功能:用于两个设备(同一种数据链路节点)之间进行信息传递。
网络层和数据链路层对比: 网络层是进行地址管理和路由选择的,是为数据报的转发找出一条路来;而数据链路层解决的是两个结点之间的数据交换,数据链路层接近于物理层的概念。
以太网不是具体的网络,而是一种技术标准。包含数据链路层和物理层的内容。例如:规定了网络拖拓扑结构、访问控制方式、传输速率。
以太网是当前最广泛的局域网技术,还有令牌环网,无限LAN等。
2)类型
08xx | 协议类型 |
---|---|
0806 | ARP请求 |
0835 | ARP应答 |
0800 | ip协议 |
在数据链路层,存在多种异构的网络,比如以太网、令牌环网等,也就是数据链路层存在多种MTU,既然存在多种不同的传输信道,如果只有MAC地址,在不同的网络之间是没有办法传输的,只能在MAC地址上封装一次抽象的IP地址来封装底层各种不同的网络。
MAC地址和IP地址的对比:
这个限制是不同的链路层对应的物理层的限制。
由于链路层存在MTU的限制,导致网络层的报文如果超过1500字节,就必须要对齐进行分片发送。
(1500 - 20(IP首部) - 8(UDP首部))
,那么就会在网络层分成多个ip数据报;
在Linux系统中可以使用ifconfig命令查看MAC、IP和MTU:
封装成帧:帧是数据链路层的传送单位。一个帧的帧长等于帧的数据部分加上帧的首部和尾部的长度。首部和尾部的一个重要作用是帧定界(确定帧的界限)。每一种链路层协议都规定了所能传输的帧的数据部分的上限既最大传输单元MTU。
1)当数据是由ASCII组成的文本文件时,使用特殊的帧定界符。
SOH(Start Of Header)放在帧的最前面,表示帧的开始。十六进制编码是01(二进制00000001)
EOT(End Of Transmission)表示帧的结束。十六进制编码是04(二进制00000100)
SOH和EOT只是控制字符的名称。
2)当数据是非ASCII码的文本文件(字符都是从键盘上输入)时
字节填充:发送端的数据链路层在数据中出现了控制字符SOH或者EOT时,就在其前面加上转义字符“ESC”(十六进制为1B,二进制为00011011)。如果数据中出现了转义字符,也在其前面加上一个转义字符。在接收端的数据链路层在把数据向网络层传送之前,删除这些转义字符。
透明传输:表示无论什么样的比特组合的数据,都能按照原样没有差错的通过这个数据链路层。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。
解决方法:字符填充。
在计算机网络传输数据时,必须采用各种差错控制技术。目前在数据链路层广泛使用了循环==冗余检验(CRC)==的检错技术。
为什么数据链路层要以帧为单位来传送数据呢? 因为如果不以帧为单位,就无法加入冗余码来进行差错检验。
一个主站轮流和链路上的多个从站进行通信。只支持点对点的链路通信,只支持全双工链路。
PPP协议的三个组成部分:
1)一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。
2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP。
3)一套网络控制协议NCP。
1)标志字段F:0x7E(01111110):表示一个帧的开始或者结束。标志字段就是PPP帧的定界符。
2)地址字段A:0xFF(11111111)
3)控制字段C:0x03(00000011)
4)协议字段:为0x0021时,PPP协议帧就是IP数据报;为0xC021时,信息字段就是PPP链路控制协议LCP的数据;为0x8021时表示网络层的控制信息。
5)FCS:使用CRC帧检验的冗余码。
一种将私有IP和全局IP转换的技术
1)静态NAT(一对一)
内部网络的私有ip地址转换成公有ip地址
2)动态NAT(多对多)
私有IP地址可随机转换为任何指定合法的IP地址
3)网络地址端口转换 NAPT(多对一)
改变外出数据包的源端口并进行端口转换
NAPT是使用最普遍的一种转换方式,它有两种转换方式:SNAT,DNAT
源NAT(SNAT):修改第一个数据包的源地址。伪装数据包就是SNAT的例子。
目的NAT(DNAT):修改第一个数据包的目的地址。如平衡负载、端口转发、透明代理
代理服务器:客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果传给客户端。
NAT和代理服务器的区别
1)应用上:NAT设备是网络基础设备之一解决IP不足的问题。代理服务器更贴近具体应用
2)底层上:NAT是工作在网络层,直接对ip地址进行替换。代理服务器工作在应用层。
3)范围上:NAT一般在局域网出口部署。代理服务器可以在局域网,也可以广域网,也可以跨网。
4)部署位置:NAT一般集成在防火墙,路由器等硬件设备。代理服务器则是一个软件程序,需要在服务器上。