计算机网络的数据链路层的学习笔记

  数据链路层为计算机网络七层模型中的第二层,同物理层一并构成了TCP/IP协议的四层结构的第一层——网络接口层

 

数据链路层解决的问题

封装成帧

  帧是数据链路层的基本单位

  在数据链路层中,发送端会在网络层的一段数据前后添加特性标记变成“帧”,而接收端则会识别出这个“帧”

  一般过程如下:

  1.数据链路层获得网络层传输的IP数据报,

  2.之后,数据链路层把这个数据看成是“帧”的数据,并在首尾添加特定的标记

  但是,如果在数据中也有和添加的标记一样的内容,该如何处理呢?

透明传输

  这里的透明,可以理解成“虽然存在,但是当做不存在”

  数据链路层中,会把原始的数据内部出现的帧标记添加转义字符,使得其与标记区分开(例如编程语言中的\

差错检测

  由于物理层只管传输比特流,而不管传输的对错(例如受到干扰而导致传输出错),因此数据链路层担负起了差错检测的任务

  这里的检测包括奇偶校验码以及循环冗余校验码CRC(数据链路层采用的差错检验的方法)两种

奇偶校验码

  在比特流的尾部添加一个比特位来检测比特流是否出错

  如果比特位全部相加奇数,末尾加1,偶数加0,这样可以结合奇偶校验码来判断数据的正误

  但是,如果数据变化比较巧妙(有偶数位出现错误),也符合奇偶校验码,那就无法检验出错误了

循环冗余校验码CRC

  这种方法是根据传输/保存的数据来产生固定位数的校验码,从而检测错误

  这里也是生成数字,然后附加到数据后面,不同的数据校验码不同,保证了数据和校验码的一一匹配

 

最大传输单元MTU

  由于数据链路层可以传输的“帧”也不是无限大的,最大值就是最大传输单元(Maximum Transmition Unit)

  MTU一方面是受低层物理层影响,另一方面,数据帧的大小影响着传输的效率

  以太网的MTU一般为1500字节

路径MTU

  在网络传输的过程中,不同路径可能MTU不一样,这时取其中最小值作为路径MTU

 

以太网协议

  以太网协议是数据链路层的一个协议(实际上规定了物理层数据链路层,也就是网络接口层),一种广泛使用的局域网技术,可以用来完成相邻设备的数据帧传输

MAC地址

  即物理地址/硬件地址,全世界所有设备都有自身唯一特有的MAC地址(类似于身份证)

  MAC地址有48位,通常用十六进制表示,例如30-B4-9E-4D-55-6A

  可以在命令提示符中用ipconfig/all指令查看本机所有物理设备的MAC地址

数据格式

  以太网的数据格式分为目的地址(6字节)、源地址(6字节)、类型(2字节)、帧数据(46-1500字节)以及CRC(4字节)

  这里的类型指的是帧数据是什么协议的数据(这里的协议指的是网络层的)

MAC地址表

  MAC地址表存在于以太网协议中,用来把数据格式最开始的目的地址同一个硬件接口做关联,这样就可以知道哪个数据发往哪里了

  但如果路由器中没有存某个硬件接口呢?

  路由器就会把数据发往除了发送端以外的所有主机,等待回应,然后根据回应,记录下MAC地址表中没有的硬件端口

  但如果要跨设备传输(例如通过路由器,发往下一个路由器连接的主机),则需要利用网络层的协议