网络原理与网络通信

目录

网络互连原理

网络通信

IP地址和端口号

网络协议

五元组

协议分层

OSI七层模型

TCP/IP五层模型

封装和分用


网络互连原理

计算机在最开始的时候是没有网络的,每个计算机之间相互独立。这样处理信息就非常的麻烦,为了能够更高效的利用计算机的高效,就需要信息和资源的共享,也就是计算机之间需要通信。也就是网络互连:把多台计算机通过网线连接到一起,连接到一起的计算机彼此之间数据可以共享: 

 如上图就构成了一个局域网(Local Area Network),也称为内网,简称LAN。在同一个局域网内,计算机之间可以相互通信。

但是,像这样通过网线进行两两相连的方式其实并不合理,一旦电脑多了,这些线很难处理。更好的做法是通过网络交换机或者路由器实现:

 交换机把多台主机连接到一起形成局域网, 而路由器可以把多个局域网连接起来,形成更大的局域网,当局域网足够大时,就变成了广域网(WAN)。广域网内部的局域网都属于它的子网。

网络通信

网络互连的目的就是实现网络通信,进而实现数据共享。实现网络通信首先需要如下信息:IP地址、端口号、协议等。

IP地址和端口号

IP地址:用于定于主机的网络地址,IP地址是32位二进制数,每8个一组,组与组之间用'.'连接。例如:127.0.0.1就是一个IP地址(用于本机环回测试)。

端口号:用于定位计算机中的进程。计算机中的进程非常多,要找到我们需要的进程,就需要通过端口号来定位。

以送快递为例:IP地址就是我们所在的位置:XX市XX大学,而端口号就是手机号。快递小哥把快递送到学校,还需要拨打手机号才能正确的定位到我。

网络协议

网络协议是网络通信的所有设备都必须遵循的一种规则。计算机通过光信号和电信号进行传输,但是传输时只能看到01这样的数字,因此需要约定频率的高低和电位的高低用0表示还是用1表示。

协议最终体现在传输时数据包的格式。

在TCP/IP协议中,通过五元组实现网络通信。

五元组

  • 源IP:源主机IP
  • 目的IP:目的主机IP
  • 源端口:发起通信的进程端口
  • 目的端口:接收通信的进程端口
  • 协议类型:发送和接收通信约定的传输的数据形式。

满足五元组的条件才可以进行通信。

协议分层

网络协议的内容庞大而复杂,因此需要分层。就像公司的职位布置一样,老板管干部,干部管他手下的员工,如果不设干部,让老板管理所有的员工,老板也很难管理过来。协议也是一样,先把复杂的协议分成一个个只负责某一部分的较为简单的协议,再进行对应的处理就会简单不少。不同层之间通过接口进行连接,只需要遵循接口的规范,维护更见便捷。

OSI七层模型

OSI七层模型分为:应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层。

应用层:针对特定用户的协议。

表示层:设备固有格式与网络标准数据格式之间的转换。保证对端设备可以识别。

会话层:通信管理。负责通信的连接与断开。

传输层:负责两个节点(起点和终点)之间的数据传输。

网络层:负责数据传输的路径规划。

数据链路层:负责两个相邻子节点之间的数据传输。

物理层:为数据传输提供必要的条件、功能以及规范。物理层属于硬件方面。

实际上OSI七层模型过于复杂且不实用,在实际的网络实现过程中,并没有使用到OSI七层模型,而是使用了更为合理的TCP/IP五层模型。

TCP/IP五层模型

TCP/IP五层模型其实沿用了OSI七层模型的应用层、传输层、网络层、数据链路层以及物理层。舍弃了表示层和会话层,或者说将其并入了应用层。

应用层协议负责进程与进程的沟通。应用程序之间的相互通信需要满足相同的应用层协议这一条件。网络编程主要就是针对的应用层。

传输层负责传输的起点和终点,网络层负责规划传输路线,数据链路层负责相邻两节点的传输,物理层保证传输需要用到的功能以及规范。

以送快递为例:在网上购物,商家需要填写寄件人地址信息和收件人地址信息(也就是传输层的起点和终点),然后交给快递公司,快递公司需要先确定运输路线,是直达还是中转,(网络层数据传输的路径规划),确定好运输路线还需要确定运输方式,空运还是陆运(数据链路层相邻节点的数据传输),最后才开始运输(交给物理层)。

作为一名程序猿,往往并不关注物理层,因此也称为TCP/IP四层模型。

常见网络设备中,主机实现了传输层到物理层的协议(下四层),路由器实现了网络层到物理层(下三层),交换机实现了数据链路层到物理层(下两层)。

当然这里的路由器和交换机只是传统意义上的情况,实际上随着科技的进步,路由器和交换机已经没有什么区别了,不少交换机和路由器实现了下四层协议。

封装和分用

数据的传输需要先封装后分用。就像发快递一样,购买的商品往往需要多一层包装用来表示信息,发到我们手里以后呢,这个包装就没用了,就需要拆掉这层包装。

网络数据传输时,每一层协议都需要进行封装,以发短信为例:假如A给B发送信息:你好。

A发送的信息为:

 但实际上,与快递类似,需要传输的不仅仅时内容,它还包括了其他的很多东西,以UDP协议为例:

 像上述这些过程,每一层协议都会在数据前加一个协议报头,以便于下层协议对数据进行处理,这就是封装。传输到目的地后,需要按照从下层往上层的顺序解析内容,在到达每一层都会去掉对应的协议头,以便于上层的协议对数据进行处理,这个过程就称为分用

在真实的网络传输中,往往需要经过很多个中间节点的转发,也就是经过很多个交换机或路由器,路由器和交换机接收数据会先进行分用,分用到其能够支持的最高层,然后接着进行封装,传输给下一个节点:

猜你喜欢

转载自blog.csdn.net/weixin_71020872/article/details/130117809