网络--TCP/IP(一)数据链路层
对于网络知识我们要学习的比较多,这里只是让我们对它有个初步的认识与了解。
这篇文章里,我们将了解到,MAC地址、分组交换。
计算机网络体系结构*
计算机网络体系结构.png1. 七层协议
如图 a 所示,其中表示层和会话层用途如下:
- 表示层:信息的语法、语义以及它们的关联,如加密解密、转换翻译、压缩解压缩;
- 会话层:不同机器上的用户之间建立及管理会话。
2. 五层协议
-
应用层:为特定应用程序提供数据传输服务,例如 HTTP、DNS 等。数据单位为报文。
-
运输层:提供的是进程间的通用数据传输服务。由于应用层协议很多,定义通用的运输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:传输控制协议 TCP,提供面向连接、可靠的数据传输服务,数据单位为报文段;用户数据报协议 UDP,提供无连接、尽最大努力的数据传输服务,数据单位为用户数据报。TCP 主要提供完整性服务,UDP 主要提供及时性服务。
-
网络层:为主机之间提供服务,而不是像运输层协议那样是为主机中的进程提供服务。网络层把运输层传递下来的报文段或者用户数据报封装成分组来进行传输。
-
数据链路层:网络层针对的还是主机之间,而主机之间可以有很多链路,链路层协议就是为相邻主机结点之间提供服务。数据链路层把网络层传来的分组封装成帧。
-
物理层:考虑的是怎样在传输媒体上传输数据格式为1和0的比特流,它的主要任务是将比特流和电子信号进行转换,而不是指具体的传输媒体。物理层的作用是尽可能屏蔽传输媒体和通信手段的差异,使物理层上的数据链路层感觉不到这些差异。
要谈数据链路层,首先我们得知道:
OSI七层模型和协议
这一节我们先不谈具体协议,我们首先要知道OSI模型中,网络被分为了七层,从底层到高层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
协议实际上是一种通信双方共同约定好并遵守的规范。
一、数据链路层
数据链路层位于OSI七层模型的第二层,它定义了通过通信介质相连的设备之间,数据传输的规范。
在数据链路层中,数据被分割成一个个的“帧”,然后再进行传输。
数据链路层中有两个重要的内容:MAC地址和分组交换。
1. MAC地址
MAC地址是被烧录到网卡ROM中的一串数字,长度为6字节(48比特),它在世界范围唯一(不考虑虚拟机自定义MAC地址)。由于MAC地址的唯一性,可以被用来区分不同的节点,一旦指定了MAC地址,就可以知道往哪个设备传输数据。
2. 分组交换
分组交换是将较大的数据分割成若干个较小的数据,然后依次发送。使用分组交换的原因是不同的数据链路有各自的最大传输单元(MTU:Max Transmission Unit)。不同的数据链路好比不同的运输大桥,该桥只能承受20吨,如果超过了20吨,就需要分多次运输通过。
以以太网(一种数据链路)为例,它的MTU为1500字节,也就是通过以太网传输的数据必须被分割为若干个帧,每个帧大小不能超过1500字节。如果上层传来的数据超过这个长度,数据链路层需要分割手再发送。
为了更好的理解我们看看以太网帧。
- 以太网帧
以太网帧的开头是“前导码”,8个字节,这一段没什么用,重点在以太网本体。
以太网本体由首部、数据和FCS三部分组成。
- 类型,存储了上层协议的编号,如上层是IP,编号为0800.
- FCS,表示帧校验序列(Frame Check Sequence),用于判断帧在传输过程中是否有损坏(比如电子噪声干扰)。FCS保存着发送帧除以某个多项式的余数,接收到以后也做同样的计算,如果值与FCS一样则表示没有出错。
- 交换机
交换机是一种在数据链路层工作的网络设备,它有多个端口,可以连接不同的设备。交换机根据每个帧中的目标MAC地址决定向哪个端口发送数据,此时它需要参考“转发表”。
转发表并非手动设置,而是交换机自动学习得到。当某个设备向交换机发送帧时,交换机会把帧的源MAC地址和端口对应起来,作为一条记录添加到转发表中。
关于数据链路层,最重要的还是它的定义:定义了通过通信介质相连的设备之间,数据传输的规范。
数据链路层的意义在于,如果没有数据链路层,数据只能以流的形式存在于通信介质中,不知道该发往哪里;过长的数据流可能无法在通信介质中传输。
网络这里的知识基本都是从下边资料中转过来了,只不过为了加深记忆自己又打了一遍。
参考:
TCP/IP(一):数据链路层
计算机网络