网络原理基础概念

目录

局域网与广域网:

IP地址:

端口号:

协议:

协议的分层:

分层模型:

应用层

传输层

网络层(互联网层)

数据链路层 (网卡层)

物理层

封装与分用:

以QQ发送消息为例解析传输过程:

发送方工作:

1.应用层:

2.传输层:

3.网络层:

4.数据链路层:

5.物理层:

接收方工作:

1.物理层

2.数据链路层:

3.网络层:

4.传输层:

5.应用层:

其他注意事项:

私聊与群聊:


局域网与广域网:

局域网:通过集线器或者路由器或者交换机将一些计算机相连,或者直接连接让所有计算机两两相连,这样就形成了局域网,比如一些游戏就可以进行局域网联机,在局域网外的计算机不能和局域网内部的计算机联机

广域网:一种相对概念,通过相关设备扩大局域网,使局域网更大,连接一个城市,一个国家,最后整个世界,这样就可以实现相隔两地的人也可以进行联机游戏

IP地址:

作用:标识一台主机的位置

本质上是一个四个字节,32位的二进制数字,通常使用点分十进制的形式进行表示:

比如192.168.0.136用三个点将四个字节分开表示,每个字节范围是0-255

可以在cmd窗口使用ipconfig查看IP地址

端口号:

作用:标识主机上哪个应用程序,即根据端口号可以找到相应的进程

协议:

网络传输的本质就是通过网线/光纤/无线电信号或者光信号来传输

比如网线中的高低电平分辨代表01,光纤中的不同频率代表01,

发送者和接收者需要指定同一份协议来确定这些01代表什么意思,也就是说发送的数据的格式需要根据协议来进行理解

协议的分层:

一个协议太复杂时,就可以拆分成多个小协议,针对作用/定位类似的协议可以分为一类,

而针对这些不同类别的协议可以进行分层。

上层协议可以调用下层协议,下层协议可以给予上层协议支持,但协议不能跨层交互

协议分层后,降低了层次间的耦合度,上下层协议之间不必很了解彼此,而且页方便后续协议的替换

分层模型:

真实的分层模型主要有两种:

1.OSI七层网络模型(几乎只存在于教科书中)

2.TCP/IP五层网络模型(主流的分层模型)

(TCP/IP五层网络协议中有一个层级叫物理层,只和硬件相关,跟程序猿关联不大,所以部分资料称其为四层网络协议)

所以这里只介绍TCP/IP五层网络模型:

应用层是程序猿可以设计的,

传输层与网络层是操作系统封装好的

数据链路层和物理层是由相应的硬件设备提供的

应用层

关注数据传输过来要干什么,程序猿网络编程主要关注的就是应用层,下面四个层次都是操作系统已经封装好了的

传输层

只关心传输的起点和终点,不关心中间选择哪条路线,节点间怎么运输,会被应用层调用

网络层(互联网层)

只关心路线的规划,从起点到终点应该选择什么样的节点组成的道路

数据链路层 (网卡层)

只关心节点间传输的细节,选择网线/光纤/无限直接连接设备等

物理层

网络通信的基础设施,网线,光纤,网络接口等硬件设施之间交互遵守的协议

封装与分用:

封装:发送方发送数据,会将数据从上到下依次交给对应的层次协议,进行封装

分用:接收方收到数据,要把数据从下到上,依次交给对应的层次协议,进行解析

(注意不同的协议层对数据包有不同的称谓,在传输层叫段,在网络层叫数据报,在数据链路层叫帧)

以QQ发送消息为例解析传输过程:

发送方工作:

从上到下依次封装,新增报头

1.应用层:

在输入框内输入一段消息:"你好世界"

应用层(QQ应用程序)会拿到上述数据并且进行封装,封装成应用层数据包

这里的封装包是随便画的,QQ真正的封装包更加复杂

封装其实就是字符串拼接,为了更好识别某块内容,不同模块间可能会用分隔符分割比如:

123456;654321;2077-05-31 00:00:00;你好世界

2.传输层:

传输层拿到应用层传来的数据包(应用层会调用传输层的api来处理这个数据)

传输层有许多协议,其中最典型的是TCP和UDP,这里以UDP为例

UDP会针对上述数据包继续封装

此时的封装仍旧是字符串拼接比如:1234;4321;...;123456;654321;2077-05-31 00:00:00;你好世界

生成UDP数据包

3.网络层:

获取到UDP数据包之后,需要把该数据包交给网络层的协议

网络层中最常用的协议就是IP协议

IP协议会为UDP数据包添加IP协议的报头,整个UDP数据包作为载荷

4.数据链路层:

数据链路层中最常用的协议是以太网:

(以太网协议不只是针对数据链路层,其对物理层也有一定的影响)

(我们平时上网用的就是以太网(以太网线))

以太网协议拿到网络层传来的数据包要通过字符串拼接合成数据帧:

会添加一个帧头,一个帧尾,

mac地址就是物理地址,作用是表述一个主机在网络中的位置,其功能和IP地址极其类似

但IP地址是用来进行网络层的路径节点规划的,IP地址存的是起点与终点的位置

但mac存的地址是两节点的地址,比如从上海到西安要先经过南京中转,那么在第一次第二次传输中IP都分别是上海和西安,是不变的,而mac地址是变动的,第一次运输中是上海,南京,第二次是南京,西安

(理论上每个网卡都对应唯一的mac地址,但这只是理论上,实际不一定这样)但IP不是这样的

5.物理层:

物理层获取到数据链路层传输的数据帧后,会把这些二进制数据转换成电信号/光信号/电磁波信号,然后进行传输。

接收方工作:

从下到上,依次分用,去掉报头

1.物理层

即网卡,收到高低电频或者其他信号,就会对这里的信号进行解析,还原成二进制数据

2.数据链路层:

物理层将数据交给数据链路层,此时会把这些二进制数据当作一个以太网数据帧(因为发送的时候用的是以太网协议)

其会将数据帧的帧头与帧尾去除,保留载荷,继续传递给上一层,

(帧头中有一个消息类型,根据他能确定网络层使用的是何种协议)

3.网络层:

由网络层的IP协议进行数据报解析,去掉报头,保留载荷传递给传输层,其中还会做一些其他的工作

IP数据报头中存储了某个字段会标识传输层使用的是哪个协议

4.传输层:

从网络层获取到数据报后根据UDP协议继续处理,去掉报头,将载荷传递给应用层

根据端口号传递给相应的进程

5.应用层:

由QQ这个程序进行数据解析

将其中的数据显示在聊天框中

其他注意事项:

如果是自己发送给自己消息,这其中涉及到环回网卡,是一种特殊情况

也就是说交换机是二次转发,路由器是三次转发

注意上述的交换器与路由器是教科书中标准的交换器与路由器

实际中的交换器与路由器其实界限很模糊,有的交换器与路由器也可以分用到应用层,

在舆情分析中经常使用到这种设备,比如在QQ发消息时如果发送了一些违规词汇,通过中间设备的监管,违规词汇就会被替换成***,情节严重的可能涉及到人工监管直接封号

私聊与群聊:

私聊:

私聊是通过先将数据传递给QQ服务器,QQ服务器根据接收方的QQ号查询当前登录的IP地址,然后朝其发送数据

群聊:

群聊和私聊类似,也是先将数据发送给服务器,然后根据群编号找到当前群内成员,循环给这些成员发消息

上述操作都是应用层的操作,也就是说这样的功能模式是程序猿写代码实现的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值