原本这个章节应该放在第二节的,更符合知识从总体往下看的逻辑。可是考虑到学习的过程是按部就班的,我调整了一下。上一节,咱们学习数据具体在传输中表现的形式。经过帧数据包裹一层层的上层数据达到传输的能力。今天咱们来学习经典的网络模型分层。随着时间的推动变迁,有些层级结构已经被历史遗弃了。可是仍然须要知道有这么些东西。咱们快来看吧。html
网络模型分层结构又称OSI模型(Open System Interconnection Reference Model)。web
我很是不想像往常你看到的文章同样,给你贴上来七层是哪几层。四层又是哪几层。枯燥无味,看完过两天又忘记。遵循知识是具备关联性来学习。熟悉的老司机们咱们就当复习或者跳过好了。安全
从上往下七层结构分别是:服务器
应用层、表达层、会话层、传输层、网络层、数据链路层、物理层网络
咱们如今从底层至上来看看。每一个层都在作什么事情。session
还记得上一节讲到的数字信号么?它就是第一层物理层。数据结构
即:比特信号,在物理介质中传输。物理层上不关注任何上层协议和结构,对于该层而言就是任性的随心所欲往外输出和接受。app
通俗来讲就像现实世界中的马路同样,每条路均可以四通八达到枢纽,车就是比特信号。马路历来无论车子里坐的是宝马车上爱哭的她,仍是摩托车上放DJ的你。运维
对应的物理层介质:RJ-45 光钎 网卡 双绞线 以太网 调制解调器 电力线通讯 同步光网络 光导纤维 同轴电缆 等
学习
数据链路层其实就是对咱们上一节讲到的数据帧进行处理,它们表示数据桢内的消息发给谁,谁须要关心这一桢数据。对帧的收发顺序同步管理进行控制。因为咱们的操做系统都是多进程多应用的,该层并不知道数据是来自哪一个应用的,更不知道内容具体是什么,他们只负责把数据帧输入输出到对应的单元和把控帧数据质量。
记不清的同窗请翻到上一节包数据MAC帧。
其中数据链路层又被划分红:介质访问控制(MAC)子层和逻辑链路控制
对应:ARP GPRS 以太网 WIFI PPP PPPoE 等
网络层的工做就是把对应的数据输送到对应目标的IP上去,和数据链路层相比很相似。可是数据链路层是针对相邻的硬件设备的MAC地址单元的。MAC地址太过于复杂和很差记。才产生了IP层协议,也就是如今咱们说的OSI中的网络层。能够借助以太网IP协议将数据发送到以太网之内的任何设备上。与之相关联的是IP数据包报文,在上一节也有提到。
咱们多少都有配置过IP的经历,这里的IP配置就和网络层有很大的关联。正式因为以太网的推动演变致使了这一层被抽象出来了。若是要把网络层内容彻底讲清楚有些超纲,它依托了路由器、交换机、集线器等工做原理。这里不作硬性规定,可扩展学习。固然网络层不只只有IP协议这一种。
对应:IP(v4·v6) ICMP(v6) IGMP IS-IS IPsec BGP RIP OSPF RARP 等
传输层属于传输控制协议,好比TCP、UDP。它的存在是为了数据的稳定和可靠而设计的。由于更底层的的协议对于数据包体里自己的内容是不透明的,若是出现丢包和紊乱的状况是没法知道应用层的数据是否还正确的。因此就产生了传输层来把控。如今只要是一台联网的设备系统都会具备操做系统协议栈。
而协议栈就是来保障上层应用的套接字IP地址、进出端口、数据内存块、数据包切割、响应等待、丢包重发、组装、挂起切换等问题。能够说他负责了各个应用层丢下来的数据在何时处理,对应远程设备回复的包如何输送到当前操做系统上,再数据进行分拣到对应进程的套接字端口上。很是相似快递中转站的工做。
对应:TCP UDP DCCP SCTP RSVP PPTP 等
之前是用来作维护管理会话状态的。好比咱们有多条数据,是一次性所有发过去,仍是一条条发过去。这个层如今已经废弃不用了。缘由是应用层通常已经作了相似的事情。
上层数据可能在传输的过程当中,由于不一样的操做系统或特殊的须要被转换成了有利于传输、利于计算机处理、安全因素等。表示层这里的意义能够理解为翻译的工做。和会话层同样也被废弃了。
应用层就是做为应用开发者真正常常要接触的。它表明着咱们的应用本身定义的协议体结构和业务内容。像HTTP这种常见的应用层协议已经被普遍的应用在web和各类终端设备中使用了。它真正决定了一套体系的应用从一端到另外一端是如何互相识别的。关于应用层咱们在后续的自定义报文的章节里作详细的讲解。
对应:HTTP DHCP DNS FTP IMAP4 IRC NNTP XMPP POP3 SIP SMTP SNMP SSH TELNET RPC RTCP RTP RTSP SDP SOAP 等自定义协议
前面说起到了一共七层分法,实际上只有五层了。下面我来看看这五层分别对应到完整的报文里是什么。
那么其实咱们平时开发只须要关注到传输层和应用层。它和咱们写的程序有真正的关联。决定了咱们的程序是选用那种传输方式和数据结构。而网络层与链路层通常在物联网开发中属于和运维部署关系较大。好比没法正常上网了。在开发环境正常到了线上环境就不正常这种问题。若是是专门从事物联网方向开发的话,仍是很是有必要了解它们之间的工做原理的。只是和上层的关联性没有那么强。
网络模型分层是一个很是庞大的体系,由于要对其系统的解释就必须牵扯到各类设备的工做原理。我在写这节的时候也是一边翻资料看书参考才能总结出来的,有地方描述不对还请指出。
本篇文章不够深度,有些描述可能只是我理解了,并不能使你理解透彻。更深的了解须要咱们一块儿看书才行。这里我推荐《网络是怎么样链接》的一书给读者参考。固然这并不会影响咱们后续的章节学习进度。