网络通信基本原理

本文介绍了网络通讯的基础知识,包括主机间的通讯条件,如传输介质、网卡设备和调制解调过程。讨论了通过交换机和路由器实现多主机互连,以及网络层次模型如OSI七层模型和TCP/IP四层模型在通讯中的作用。此外,还详细阐述了数据从封装到解封的过程,涉及应用层、传输层、网络层、数据链路层和物理层的功能。
摘要由CSDN通过智能技术生成

通讯的必要条件

  • 主机之间需要有传输介质。光纤、蓝牙、wify
  • 主机上必须有网卡设备。把二进制信息转为高低电压的过程就是数据的调制过程。把电信号转为二进制信息的过程为解调制。
  • 主机之间需要协商网络速率
    在这里插入图片描述

网路的通讯方式

日常生活中,我们通讯的方式不可能只有两台主机,如何建立多台主机互连,假如要与十台电脑通讯,那么不可能去买一台有十个网卡的主机,所以这个时候就可以通过交换机路由器完成这个事情。

如何建立多台主机互连?如何定位局域网中的其它主机?

通过交换机我们可以将多台电脑进行连接。
a主机将消息发送给交换机,交换机将消息广播给其他主机,在这个过程中其他机器都会收到这条消息,然后b主机就通过MAC地址发现a想找的是自己,而其他的主机就会将这条消息当作垃圾丢弃。这个过程就是通过交换机来完成局域网通信的操作。
在这里插入图片描述

通过交换机来完成局域网通信有哪些问题?

通过交换机来完成局域网通信是无法满足互联网的需求。比如说我们不可能将所有电脑都放在一个局域网内,因为交换机的接口数量是有上限的,而且如果我们把所有机器放在一个局域网里,那么这个时候广播风暴就会尤为明显!因为任意一条消息的发送都会被其他主机所接收,然后还要确认是否有效。基于这种情况,网路就被分为许多较小的局域网,然后就是城域网,最后是互联网
在这里插入图片描述

如何实现?

我们现在能访问百度,但是百度并不在局域网内,所以我们与百度的主机分属于不同的局域网,那这两个局域网之间该如何建立通讯呢?这里我们就需要用来路由器来进行数据的交换了。首先我们的电脑要去访问百度的主机,我们不仅需要知道百度的网卡地址,还需要知道它在哪个网络里,这块就需要用到ip地址了。这里要说明的是,我们数据在发送的时候不仅只有程序代码所接收到的数据,还有原mac地址、原ip地址和目标mac地址、目标ip地址等等。这些内容呢首先会被组装成一条大的数据,之后再发送到路由器上,路由器是可以识别当前要找的主机它在不在这个局域网内。如果说它不在当前的局域网内,这个时候他会按照路由表上的信息去帮助我们通过网络路由来找到对应的网络,之后再去把数据发送过去。发送到对应的网络之后,由那边的交换机完成定位功能。那这样的话我们就通过了路由器实现了不同网络之间的主机通讯。
在这里插入图片描述

网络层次模型

对于网络通信来说它是一个复杂的工程,它需要有很多的基础硬件设备,而这些设备又有很多的厂商在进行生产,所以为了方便网络的实施与管理维护就会有相应的组织来推出相应的标准规范 。目前最常见的就是OSI七层模型TCP、IP的四层模型。TCP、IP是建立在OSI之上的另外四种模型。无论我们采用的哪一种模型,它其实都是对通信的过程进行分层,然后每层当中也存在很多的协议。例如我们常用的http就属于应用层的协议,而tcp和udp就属于传输层的协议。下面就以OSI为例来介绍它的七层分层以及每一次做了哪些事情。它的作用就是更加清晰规范的完成网络通讯。
这里主要掌握分层的目的,七层的名称和作用,还有就是一些常见的协议名称

OSI七层模型

  • 应用层: 用户与网络的接口
    • 利用http协议完成网站服务
    • 利用ftp协议完成文件的传输服务
    • 利用ssh协议完成远程登陆服务
  • 表示层: 数据加密、转换、压缩
  • 会话层: 控制网络连接建立与终止
  • 传输层:保证数据传输的可靠性
    • 在封装的时候还会携带目标占用的端口号,例如访问网站的时候会携带80端口(TCP,UDP)
  • 网络层: 通过路由来找到目标网络
    • 常见的就是ip协议,让我们根据ip地址来确定源和目标的网络
  • 数据链路层:确定目标主机
    • 这一层就是确定了目标网路并进入了某一个局域网内
  • 物理层: 各种网络物理设备和标准
    数据从A至B,先封装再解封

TCP IP四层模型

  • 应用层
    • 就是将OSI的应用层、表示层、会话层合并
  • 传输层
    • 就是OSI的传输层
  • 主机层
    • 就是OSI的网络层
  • 接入层
    • 就是将OSI的数据链路层、物理层合并

数据从A到B

  • 按照分层自上向下一层一层封装
  • 到了B主机的网卡协调之后,再按照自下向上的顺序进行拆解
  • 最后在应用层里拿到A主机所发送过来的数据

数据封装与解封的过程

  • 第一步在应用层产出需要使用的数据data
    在这里插入图片描述
  • 然后data数据就传向了传输层。在这一层对于我们来说最熟悉的就是TCP与UDP协议,这两个协议都是基于端口的,而端口的作用就是在主机上用于确定唯一一个应用进程。所以数据在这层就会包裹上目标应用端口和应用在当前主机上的源端口
    在这里插入图片描述
  • 数据再传到网络层,因为我们的主机是在不同的网络里的,所以需要通过IP协议来确定目标主机所在的网络。因此数据在这一层中会包裹目标主机的mac地址、目标主机的ip地址和当前主机的源ip地址。有了这些地址之后我们只是能确定某一个网络,并不能确定在这个网络里边那一台机器是我们想要的,所以接下来数据就到达了链路层
    在这里插入图片描述
  • 在这一层主要是通过mac地址来完成寻址操作,所以数据在这一层会被包裹目标主机的mac地址与当前主机的mac地址。至此一条具备完整信息的数据就封装ok了。
    在这里插入图片描述
  • 这个时候就要传递给网络了,而我们知道网线是不能识别二进制的,所以经过物理层(网卡)的调制之后就会变成高低电压,而我们这里任然是以二进制的数据来表示转换之后的数据,有了高低电压之后经过网络路由器的分配和传输介质的运输,最终就到达了目标主机的网卡。mac地址是由硬件厂商确认好的,也就是网卡设备(一般电脑有两个网卡,一个是有线一个是无线)
    在这里插入图片描述
  • 这个时候已经到目标设备了,它要去做数据的解调,将电信号变成二进制,然后再向上一层一层的验证
    在这里插入图片描述
  • 到达链路层之后它就去分析一下,目标的mac地址是不是当前主机的mac地址,如果是则继续向上传递至网络层
    在这里插入图片描述
  • 在这层就要去校验目标的ip是不是当前自己的ip,如果是,则继续拆包。向上传输至传输层
    在这里插入图片描述
  • 这里再次确定当前的端口是不是自己,如果是的话,则再次拆解数据,向上传递至应用层
    在这里插入图片描述
  • 到了应用层之后,当前网络里的目标应用就拿到了另外一个网络当中的某一台主机上的某一个应用所传递过来的数据。 这个过程就是数据在通讯过程中的封装与解封的步骤。
    在这里插入图片描述
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值