作者:困了电视剧
专栏:《JavaEE初阶》
文章分布:这是一篇关于网络初识的文章,在这篇文章中讲解了局域网广域网,IP地址,端口以及网络分层等相关内容,希望对你有所帮助!
目录
网络互连
局域网LAN
广域网WAN
网络通信
IP地址
端口号
认识协议
五元组
协议分层
为什么要分层
OSI七层模型
网络互连
随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了 网络互连 。网络互连:将多台计算机连接在一起,完成数据共享。数据共享本质是 网络数据传输 ,即计算机之间通过网络来传输数据,也称为 网络通信 。根据网络互连的规模不同,可以划分为局域网和广域网
局域网LAN
局域网是本地,局部组建的一种私有网络。局域网内的主机之间能方便的进行网络通信,又称为 内网 ;局域网和局域网之间在没有连接的情况下,是无法通信的。
局域网又有几种组建网络的方式 :即基于网线组建,基于集线器组建,基于交换机组建,基于交换机和路由器组建。
广域网WAN
通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。
需要注意的是,局域网和广域网只是一个相对的概念 ,就比如中国的网络如果只对国内的网络来看的话,那他就是广域网,但如果以一个世界的视角来看,那他就是一个局域网。
网络通信
IP地址
IP 地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说, IP 地址用于定位主机 的网络地址 。IP 地址是一个 32 位的二进制数,通常被分割为 4 个 “8 位二进制数 ” (也就是 4 个字节),如:01100100.00000100.00000101.00000110 。通常用 “ 点分十进制 ” 的方式来表示,即 a.b.c.d 的形式( a,b,c,d 都是 0~255 之间的十进制整数)。如:100.4.5.6。
端口号
在网络通信中, IP 地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程 。端口号是 0~65535 范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。
认识协议
协议,网络协议的简称,网络协议是网络通信(即网络数据传输) 经过的所有网络设备 都必须共同遵从的一组约定、规则。 如怎么样建立连接、怎么样互相识别等 。只有遵守这个约定,计算机之间才能相互通信交流。
协议最终体现为在网络上传输的数据包的格式。
五元组
在TCP/IP协议中,用五元组来标识一个网络通信。
1. 源 IP :标识源主机2. 源端口号:标识源主机中该次通信发送数据的进程3. 目的 IP :标识目的主机4. 目的端口号:标识目的主机中该次通信接收数据的进程5. 协议号:标识发送进程和接收进程双方约定的数据格式
协议会将这些信息封装成一个数据包传递过去,使用同一个协议的接受端自然会识别这个数据包然后提炼出相关的信息,从而实现一个信息的传输。
协议分层
对于网络协议来说,往往分成几个层次进行定义。
举个栗子:A,B两个说汉语的人在用电话机交流的时候,电话机实现课一个接口能收取A说的话,然后A和B的电话机之间通过通信协议将A说的话传给了B的电话机,B的电话机再通过接口将A的话传给了B,A和B之间又都遵循“汉语协议”,所以B听懂了A的话,这样一段对话就完成了。
这里仅仅分成了两个层次。
为什么要分层
分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务):1)对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可2)对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可
以电话机为例,A并不用关注电话机怎么进行通信和处理A说的话的, A只需要关心自己是否遵循汉语协议就行,而电话机也不需要知道A和B说的话是什么意思,它只需要将话进行储存和按照通讯协议原封不动的传输就行,这样就大大提高了效率,降低了维护难度。
OSI七层模型
OSI 七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了 7 层。OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;它的最大优点是将 服务 、 接口 和 协议 这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
通过这个表我们可以看出,OSI七层模型有点太复杂了,所以OSI七层模型并没有落地实现。
在实际组建网络的过程时,只是以 OSI 七层模型设计中的部分分层,也即是 TCP/IP 五层(或四层)模型来实现。
以上就是本篇博客的全部内容,下一篇会详细讲解TCP/IP五层协议,如有疏漏还请指正!