计算机网络基础知识

文章目录

  • 局域网与广域网
  • ip与端口号
  • 协议
  • 计算机网络的层次结构
  • 封装与分用

局域网与广域网

局域网(LAN)Local Area Network把多台计算机通过,网线,路由器等设备链接到一起,就组成了一个局域网,局域网中计算机实现了数据共享,可以方便的进行网络通信。
局域网组建的方式:使用网线直连,使用集线器连接Hub,使用交换机Switch,使用路由器Router进行连接。集线器现在已经很少见了,他的原理是把一根网线“劈开”当成两根用。
计算机网络基础知识_第1张图片
广域网(WAN)Wide Area Network 根据时代的发展,小范围的通信已经不能满足我们的日常需求了,此时我们需要创建更大范围的网络,通过路由器将多个局域网连接起来就组成了广域网了,广域网内部的局域网属于广域网的子网。

ip与端口号

在使用计算机的时候我们经常会听到的一个词语IP,那IP到底是什么呢?一个IP地址其实就标记了一个主机的位置,是一个主机的身份证,IP地址是一个32位的二进制数,本质上一个4字节32位的整数,往往写成点分十进制,三个点,把整个IP分成了4个部分,每个部分一个字节(取值范围0 - 255)。
计算机网络基础知识_第2张图片
而端口号是我们打开的一个进程会有一个端口号,标记了主机的上的一个程序,所以一台计算机只会有一个IP会有很多个端口号
总结一下:

IP:描述了一个主机在互联网上的具体位置
端口号:区分一台主机上的不同程序

协议

协议是什么?是两个人的一个约定,而网络通信也有协议,他的作用是什么?是保证数据传输的准确性与正确性,面对复杂的环境我们就需要有复杂的协议,而协议太复杂也不行,我们又将复杂的协议拆分成了多个协议,这些拆分出的协议有些作用是一样的,我们就针对这些拆分出的协议进行分类,根据不同类型的协议进行了分层。

分层的好处:
1、分层其实约定了层级关系,层级之间要求上层协议调用下层协议,下层协议为上层协议提供服务,不能跨层级调用
2、这样耦合程度比较低,层级与层级之间不需要了解对方的细节
3、方便对某一层进行更改与替换。

计算机网络的层次结构

OSI七层网络模型:应用层 - 表示层 - 会话层 - 传输层 - 网络层 - 数据链路层 - 物理层

这种层次结构仅仅存在于教科书中,我们不做过多的讨论,下面的TCP/IP五层协议是我们讨论的重点。

TCP/IP五层网络模型:应用层 - 传输层 - 网络层 - 数据链路层 - 物理层

这是当下最广泛使用的网络模型:

计算机网络基础知识_第3张图片
光看上述这个表格大家肯定还不理解,应用层和物理层好理解,中间这三层是什么鬼?下面我举一个例子大家就明白了:
传输层:

我在某宝上面买了一个东西,买家需要填收货地址,卖家需要填写发货地址,而传输层关注的就是这两个地址,至于中间怎么快递,用什么快递,一概不管。

网络层:

知道了发货地址和收获地址,现在需要送快递了,假设发货地址是上海,收货地址是西安,有很多条路都可以到达马,那么究竟走那一条呢?这个网络层关注的

数据链路层:

知道了路径,路径上有可能会有很多节点,例如从上海到西安,可以上海 -> 南京 -> 西安,那么数据链路层关注的就是上海怎么到南京,到了南京之后如何到西安。

此时物理层就是快递驿站,而应用层就是收货的我,我买了这个东西要干什么由我自己决定,这也是我们程序员写程序的地方。
每一层协议只要做好自己的工作,就可以保证快递正确送达,这也就是之前优点中说的低耦合,这样我们程序员同一时刻就只需要关注一个子问题就可以了。

封装与分用

上面我们介绍了协议的分层,那么数据究竟是如何通过这几层协议进行网络传输的呢?
封装:发送方发送数据,要把数据从上到下,一次交给对应的层次的协议,进行封装。
分用:接收方收到数据,要把数据从上到下,一次交给对应的层次的协议进行解析。
我们来举一个例子简单模拟一下数据传输时的封装与分用:
例如现在我想要给你发送一条消息:“兄弟,你好“。

此时应用层拿到我输入的数据,进行封装,封装成应用层数据包,下面就是封装好的信息,可能还会有很多内容但此时我们就不再赘述了。
计算机网络基础知识_第4张图片

封装好了之后这个数据包就交给了传输层,传输层有很多·协议例如TCP、UDP,我们以简单的UDP举例。
计算机网络基础知识_第5张图片
源端口就是发送方程序的端口号,目的端口就是接收方程序的端口号。

之后这个UDP数据报被交给了网络层,网络层再次进行封装。
在这里插入图片描述
源IP和目的IP描述的就是此次传输中的起点与终点。

在次封装好了之后将数据包交给数据链路层再次封装
在这里插入图片描述
数据链路层中最典型的协议叫做以太网,使用以太网可以完成相邻设备的数据帧传输。
mac地址也叫做物理地址,他跟IP很相似都是描述一台主机在互联网中的位置,但是作用不一样IP用来进行网络层的路径规划,而mac用来进行描述数据链路层,完成相邻设备的数据传输。

之后交给物理层
物理层将上述01的二进制文件转换成光电信号或者电磁波进行传输。

分用
发送方发送数据,需要层层封装,类似于我们的包装快递,而接收方接受数据正好相反,需要一层一层的将我们的数据包拆开,层层分用,物理层会将信号进行解析,转换成二进制序列交给数据链路层,此时使用以太网协议进行处理,去掉帧头帧尾,将载荷交给网络层,网络层使用IP协议进行处理数据报,去掉IP报头,将载荷取出交给传输层,传输层使用UDP协议进行处理,把UDP报头去掉,将载荷交给应用层,应用层拿到数据进行最后处理。

注意上一层的报头内都有一个信息来提示我们下一层使用的是什么协议,例如在以太网数据帧帧头内有一个消息类型,根据这个消息类型就知道网络层是IP协议,IP数据报中有一个字段,也提示我们在传输层中使用的是UDP协议。

一个数据在传输的过程中不可能直接从源IP传递到目的IP,传输中间一定要经过很多的节点,在中间的经过交换机时,只需要封装分用到数据链路层,也就是只需要更改源mac地址和目的mac地址。而经过中间的路由器时,则需要封装分用到网络层,既需要更改源mac地址和目的mac地址,由要更更改源IP和目的IP,进行下一阶段的路径规划

你可能感兴趣的:(JavaEE初阶,计算机网络,智能路由器,网络)