计算机网络,网络接口层

不仅是记录我的半吊子基础知识,也是一次再学习,不敢保证都对

前言

  我们就开始聊一聊TCP/IP体系结构每一层的作用,举个常见的例子,我作为一个新手目前写代码用的是HTTP协议,它位于应用层,它的下一层运输层是用的TCP协议,运输层的下一层,网络层用的是IP协议。我们说的定位IP地址啥的,就是这个意思。这么一说,好像实质上TCP/IP只有最上面的三层,那网络接口层是干什么的?
  为了能将概念讲明白,我们把网络接口层分成两层来了解,分别是数据链路层,物理层。画个图就明白了。书上说这是综合OSITCP/IP的优点,这样既简洁又能将概念阐述清楚。
在这里插入图片描述

物理层

  物理层是干什么的呢?一是为了计算机之间能够互相连接,怎么连接呢?那方式就很多了,铜线啊,电缆啊,光纤啊,无线电啊等等这些不都是用来连接的。二来就是传输比特流——bit不就是0或者1嘛,比特流就是一长串的0101010010101001。反正我们是看不懂的。
  专家们把传送信息的这个通道抽象出来一个概念叫做信道,信道的概念就大了,铜线,电路,光纤可以叫做信道,但是信道不能叫做电路。
  计算机之间的通信包含一条发送信道和一条接收信道。你想啊,我们要是每台计算机之间都有这么两条信道,那全世界这么多台计算机,得多少条,剪不断理还乱。所以,专家们又弄出来一个信道复用技术,让多台计算机共享信道。这样一来,就有一个复用器,这多台计算机把比特流发给复用器,复用器通过这个共享信道发到目的地,接收端使用一个分用器,发给不同的计算机。

数据链路层

  物理层只负责传输比特流,那把这么一长串比特流传输过去,谁知道这都是啥啊。所以呢,数据链路层就是将比特流封装一下,比如这几位比特代表啥,那几位比特代表啥,这个过程就叫做封装成帧,帧是一个数据单位,是数据链路层的一个基本单位,每一帧的比特流代表一个意义。
  封装成帧:就是在一段数据的前后添加标记,代表首部和尾部。这样接收端就可以识别一段比特流的开始与结束。首部编码称作SOH(Start Of Hearder),尾部编码叫做EOT(End Of Transmission)。它们也是用一串的00000001来表示,那这样就出现了一个问题,假如传输的比特流里有这些标记怎么办?比如这样SOH 0101010101 EOT 01010100101 EOT,在一串比特流里,真正的结束符之前出现了结束符怎么办?这就涉及到了数据链路层的另一个作用:透明传输
  专家们总是起一些令人疑惑的概念,如果不了解的话,就看透明传输这个词,还真不知道这是啥意思。其实是这么个意思,就是一串比特流中如果出现了SOH或者EOT,那就当它是透明的,看不见。有这个东西,但是我看不见。这就叫做透明传输
  透明传输:怎么进行透明传输呢?就是用转义符ESC,它也是一串00011011这样的比特流。这样一来,如果比特流中间出现了帧首尾编码,就把它转义一下,就像这样SOH 0101010101 ESC EOT 01010100101 EOT,这不就可以了嘛。我们又有疑问,一串比特流中也出现了转义符怎么办,那就给转义符也转义呗,就像这样SOH 0101010101 ESC ESC 01010100101 EOT。这是不是就很像我们日常写代码的那种转义符\n \t这样,我们要输出\就得用\\
  除了上面两个作用,数据链路层还有个作用就是差错检测。比如我们在传输过程中,被雷劈了,被伽马射线射中了,出现了差错怎么办,这就用到了差错检测。比如用奇偶校验码啊,循环冗余校验码CRC啊。这里就不细说了。

结尾

  这样,物理层与数据链路层就共同组成了TCP/IP的网络接口层。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章