目录
前言:
1.网络的发展史
1.1独立模式
1.2网络互联
1.3局域网LAN
1.4广域网WAN
2.网络通信基础
2.1IP地址
2.2端口号
3.认识协议
3.1协议分层
3.2分层的作用
3.3TCP/IP五层(或四层)模型
3.4OSI七层模型
3.5网络设备所在分层
4.封装和分用
结束语:
网络的主要发展大体可以分为这四个阶段单机阶段=>局域网阶段=>广域网阶段=>移动互联网阶段。
独立模式就是计算机之间是相互独立的。
随着时代的发展,越来越需要计算机之间相互通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。
网络互连:就是将多态计算机连接在一起,完成数据共享。
数据共享的本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。
根据网络互连的规模的不同,可以划分为局域网和广域网。下面就来给大家介绍一下什么是局域网,什么是广域网。
局域网即Local Area Network,简称LAN。Local即标识了局域网是本地,局部组件的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为内网,局域网和局域网之间在没有连接的情况下是无法进行通信。他就是把一些设备通过交换机/路由器连接起来。
广域网即Wide Area Network,简称为WAK,广域网就是把更多的局域网也相互连接起来,当规模足够大的时候就变成了广域网。更官方的解释就是通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都是属于其子网。
在上述谈到的交换机和路由器是组网过程中的重要设备。
网络互连的目的是进行网络通信,也是网络数据传输,更具体一点是网络主机中的不同进程间,基于网络传输数据。那么我们在组建网络中如何判断到底是从哪台主机将数据传输到哪台主机呢?这就需要使用IP地址来标识。具体的我们往下看。
IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单来说IP地址用于定位主机的网络地址。就像是我们发快递一样需要知道对方的收货地址,快递员才能将快递送到目的地。
格式:
IP地址是一个32位的二进制数,通常被分隔为4个“8位二进制数”(也就是4个字节),但是通常是用“点分十进制”的方式来表示的,比如:192.168.0.136的形式。或者是你可以打开cmd输入ipconfig命令即可查看。
IP地址解决了网络通信时,定位网络主机的问题,但是还存在一个问题,传输到目的主机后,由哪个进程来接收这个数据呢?这就需要端口号来标识。
上述的IP是定位大体的位置,但是就像是快递员送包裹一样虽然送到指定的地址也就是收货地址(IP地址)了,但是那么多的人,到底是送给哪一个人也就是收货人(端口号)的,这就需要继续定位了,所以这里的端口号就是用来定位是该主机上的哪一个程序(进程)的。
注意:两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号!!!
通过上述的介绍相信大家大体对IP和端口号都有了一定的了解,但是此时有了IP地址和端口号,我们是可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?
网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”,这里我们又该如何标识发送的数据是文本类型,及文本的编码格式呢?基于网络数据传输,就需要使用协议来规定双方的数据格式。
对于网络协议来说,往往分成几个层次进行定义。那么在网络通信中约定的协议其实是非常复杂的,那么面对这种复杂的环境,就需要一个复杂的协议,但是协议太复杂也不好,所以就将协议进行了分层,这就相当于是约定了层级和层级之间的调用关系,要求上层协议调用下层协议,下层协议给上层提供支持,不能跨层调用。怎么对这个进行理解呢?我们可以通过在公司中的层级关系来进行理解。如下图所示:
如上所示就是一种层级结构。
那么分层之后又有什么作用呢?
如果协议分层之后就可以做到一下两点:
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,分别是:物理层、数据链路层、网络层、传输层和应用层,每一层都有自己的任务和责任,通过不同层次之间的协调和合作,实现了计算机之间的数据传输。
具体内容如下所示:
物理层针对于程序猿来说可能考虑的会比较少,所以很多时候也可以称之为TCP/IP四层模型。
OSI参考模型与TCP/IP参考模型对比图如下所示:
那么在协议的背景下,数据如何通过网络来进行传输呢?我们可以采用封装和分用。主要的过程如下所示:
封装:应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装。
分用:数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的“上层协议字段”将数据交给对应的上层协议处理。
下面我们通过QQ发送一条短信为例,来讲解封装和分用的整个过程,比如现在A要发送给B一条短信:“网络基础知识”。
封装:
UDP会针对上述数据包再进行封装,首先他会把上述整个应用层数据包作为UDP数据包的数据部分(载荷)。然后再在前面加上UDP数据报头。
注意:这里的源IP和目的IP就是在这次传输过程中,最初的起点和终点。
注意:这里的mac也是用来描述地址的,他叫做物理地址,IP是用来进行网络层的路径规划的,而mac是用来描述数据链路层的,他是描述两个即将进行传输的相邻节点。拿运输快递来举例子,如果快递的地址是从郑州->西安,那么IP地址的源IP就是郑州,而目的IP就是西安,是一直不变的,但是从浙江到西安还需要经过很多其他站点,比如说是郑州-> 洛阳 ->三门峡 -> 西安。所以这里的mac地址就相当于是每到一个站点就会更新一下自己的源mac和目的mac。
分用:
经过上述的过程操作系统就帮助咱们已经封装好了,然后接下来就是接收了,接收与上述过程更好相反。发送是从上到下依次封装,新增报头。接收是从下到上,依次分用,去掉报头。
网卡,接收到高低电平二进制数据,就会对这里的信号进行解析,还原成0101这样的二进制序列。
此时就把上述的0101这种序列数据当做一个以太网数据帧(此处是以太网线,收到的数据,就是要交给以太网协议来处理了)。
此时将帧头和帧尾去掉,取出中间的载荷部分,再往上交给网络层。此时以太网数据帧头中会有一个消息类型,根据这个类型就知道了网络层是IP协议了。
此时就由网络层的IP协议进行解析数据报,也是去掉IP报头,同时还会做一些其他工作,最重要的还是取出载荷,然后交给上层的传输层协议。在IP数据报也有一个字段会标识当前传输层用的是哪一个协议。
此处是由UDP来解析处理,还是去掉报头,取出载荷,把数据交给应用层。此时借助端口号来区分具体的应用程序。
总结一下:
注意:
这节中小编主要是与大家分享了网络方面的一些基础知识,后期小编还会继续出有关于网络方面的知识的,希望这节对大家了解网络有一定帮助,想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)