写给前端同学需要知道的一些网络知识

324 阅读6分钟

iso/osi七层模型

OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。(这个你能看得懂吗?反正我是看不懂)请看下图


其实要记住这七层模式其实还是比较困难,困难的是什么呢?因为百度出来的,或者是一些技术文章,都是文绉绉的术语,一看就头痛。但是这些网络的知识还是要懂的。因为对我们前端开发来说,百利无一害。那怎么理解和记住七层东西呢?首先我们要明白他们每一层都有什么作用,还有他们传输数据都是什么。所谓七层模型,不过就是大家制定好一种规则让数据进行传输,然后这个规则就是我们所说的一些协议。我们要记住一个概念就是,两台机器要通讯,我们发出去的数据是要从第七层开始逐渐往下面走,一直走到最底层物理层。然后物理层这一层就会通过网线啊,光纤啊,等等一些物理设备,连通道另外一台机器上,这就你如果要上网就需要拉网线的意思。然后在另外一层数据又开始从物理层开始往上传一直到最高层应用层进行展示,大概可以这么理解。然后每一层都做了什么呢?我们只需记住他们传输单位是什么,还有功能是什么就OK了。

1、物理层

传输单位:比特位   (101010100之类的)

功能:

主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输(因为我们知道数据之所以能够传输。就是在物理这层用1,或者0来记录信息,为们要用1,0来记录信息呢?因为物理设备是同过电平来表示的,只有高低之分,高就用1表示,低就用0表示。然后各种1和0的组合就能表达出不同的信息。可以这样通俗理解),到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

2、数据链路层

传输单位:帧(保存着局域网的信息,硬件地址,就是MAC,计算机网卡的硬件地址,局域网)


功能:我们要知道网络是分为局域网和外网之分的。网络之间数据传输是在局域中先进行传输,然后在到外网的。什么是外网什么是内网呢?其实可以大致这样理解。你可以想象你所在公司所使用的一个网络就相当于一个局域网,然后这个局域网还有一个IP,这个IP是全世界唯一的。如果别人要找到你,首先要通过外网找到你这个公司的IP,找到了IP地址以后,消息就进入了你们的局域网。(你们好奇会问,我自己电脑上不是也有IP吗,不也是世界唯一的吗?其实不是这样的,你的IP只是在你的公司局域网里是唯一,你的ip是通过你们公司里的局域网里的网关给你的分配的。)外网的传输过来的消息要找到你的话,找到你公司的IP后,进入局域网,再通过这个物理地址,就是所谓的MAC,(这个物理地址,每台电脑上都会有)找到你。所以这一层给你发送的消息写入了MAC,除了这个功能,还做了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

3、网络层

传输单位:报文

功能:刚才我们将了传输层中,通过局域网里的mac最终找到了你的计算机。但是怎么找到我们的公司的公网IP,或者对方的公网IP呢?其实网络层这一层功能就是写入消息的IP就是你目标主机的所在公网的IP地址,同时呢也会写入你所在公网的IP。(当然啦还包括了路由器交换机那些具有寻址功能的设备所实现的功能。因为这一层定义的写入IP地址,又通过IP地址寻址。所以产生了IP协议。)


4、传输层

传输单位:TPDU

功能:我们知道消息通信除了要知道本地的MAC、公网的ip外。消息到了你的计算机以后,还他还要知道什么?聪明的同学应该知道,他还需要一个你所在程序所占用的端口。因为消息到达了你计算机以后,你的计算机软件那么多,他怎么知道你的消息是发送给QQ还是微信或者是其他什么软件。端口的作用就在于此,告诉你应该跟哪个软件进行通信的。所以这一层就是写入程序所占用的端口的。还有包括传输协议。当然还包括一些可靠与不可靠的传输、传输前的错误检测、流控等。


5、会话层

传输单位:SPDU

功能:我们知道有些时候我们的消息只想存到本地,不想远程发送,这个会话层就是判断是否需要通过远程发送,是不是网络传递的,如果是消息就会入到传输层,如果不是就存在硬盘里或者其他设备里。还有对应用会话的管理、同步。

6、表示层

传输单位:PPDU

功能:数据的表现形式、特定功能的实现如-加密。因为到目前为止我们获取到的数据都是101010之类的一串机器数字,所以我们就要在这一层里把这些数据翻译成计算机所能识别的文字最主要就是这个功能。

7、应用层

传输单位:APDU

功能:用户的接口,可以简单理解成为消息所到达对应的应用层程序。


附上数据封装的过程图