【网络原理】网络通信,网络协议,协议分层,网络设备的分层,封装和分用

这篇具有很好参考价值的文章主要介绍了【网络原理】网络通信,网络协议,协议分层,网络设备的分层,封装和分用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
大家好,我是良辰丫,今天我们一起来学习网络原理,了解一些网络的基本知识以及面试题.💞💞💞

🧑个人主页:良辰针不戳
📖所属专栏:javaEE初阶
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
💌作者能力有限,可能也会出错,欢迎大家指正。
💞愿与君为伴,共探Java汪洋大海。

1. 简述网络

1.1 独立模式

所谓独立模式,就是计算机之间相互独立,也就是单机模式.

  • 每台计算机拥有自己的资源.
  • 资源不能远程共享.

1.2 网络互联

独立模式的局限性太大了,随着时代的发展,人们的思维也不再只局限于单机模式,而是将一个个的计算机连在一起,形成一个计算机网络.

  • 多台计算机可以实现资源共享.
  • 可以远程共享资源.

数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。根据网络互连的规模不同,可以划分为局域网和广域网。

1.3 局域网(LAN)

  • 局域网是本地,局部组建的一种私有网络。
  • 局域网内的主机之间能方便的进行网络通信,又称为内网。
  • 局域网和局域网之间在没有连接的情况下,是无法通信的。

局域网有很多组建网络的方式

  • 网线直连.
  • 集线器组建.
  • 交换机组建.
  • 交换机和集线器组建.

1.4 广域网(WAN)

通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网,广域网内部的局域网都属于其子网。

【网络原理】网络通信,网络协议,协议分层,网络设备的分层,封装和分用

其实局域网和广域网是一个相对的概念,广域网也可以看做是一个比较大的局域网.

2. 网络通信

  • 网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基于网络传输数据。
  • 那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址来标识(也就是原地址找目的地址)。

2.1 IP地址

IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。我们给某个主机发送信息就需要知道目的主机的IP,就像我们寄快递需要提前知道快递的收货地址.

IP的表示方法 : IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数),例如168.10.20.30.

本机环路IP : 这是一种特殊的IP,主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。当客户端和服务器都在一个主机上的时候,我们为了测试,可以用环路IP,我们通常用的环路IP地址为127.0.0.1

2.2 端口号

  • 网络通信时信息传到了你的主机上,但是这是和你主机上的哪个程序进行通信呢?我们不得而知,于是乎,引进了端口,端口号可以具体定位到主机上的某个程序.快递到达了你们的城市,但是还需要具体的门牌地址,才能送货上门.微信发消息不能客串到QQ上吧.
  • 咱们之前学过数据库的JDBC编程,其中有个3306就是MySQL的端口号.

那么端口号是什么呢?

  • 在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程。
  • 端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。

注意:
两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号(了解)。

  • 一个进程启动后,系统会随机分配一个端口(启动端口)程序代码中,进行网络编程时,需要绑定端口号(收发数据的端口)来发送、接收数据.
  • 进程绑定一个端口号后,fork一个子进程,可以实现多个进程绑定一个端口号,但不同的进程不能
    绑定同一个端口号.

3. 网络协议

3.1 关于协议

其实,协议就是一种约定,发送方约定了自己要发送怎样格式的信息,比如文本或者图片等,接收方也得用这个格式进行接收,这样才能进行通信.协议最终体现为在网络上传输的数据包的格式.

  • 网络传输本质上都是通过网线/光纤/无线电信号或者光信号来进行传输.
  • 其中网线传输的是一系列的高电平和低电平(用1和0表示).
  • 光纤传输的是光信号,光表示波长和频率,不同的频率来表示1和0.
  • 会有一个约定记录一连串的1和0表示什么.(协议)

3.2 协议的三要素

  • 语法:即数据与控制信息的结构或格式.例如是文本文件还是图片文件.
  • 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应.
  • 时序,即事件实现顺序的详细说明.时序定义了何时进行通信,先讲什么,后讲什么,讲话的速度等,比如是采用同步传输还是异步传输.

3.3 TCP/IP协议的五元组

  • 源IP:标识源主机.
  • 源端口号:标识源主机中该次通信发送数据的进程.
  • 目的IP:标识目的主机.
  • 目的端口号:标识目的主机中该次通信接收数据的进程.
  • 协议号:标识发送进程和接收进程双方约定的数据结构.

4. 协议分层

在网络通信中,许多协议是非常复杂的,于是乎,我们就需要把复杂的协议拆分成一些小的协议,可以针对这些小的协议进行分层,这相当于约定了层级与层级的调用关系.这就要求上层协议调用下层协议,下层协议给上层协议提供服务,不能跨层调用.

4.1 协议分层的好处

  • 层次之间耦合度比较低,上层协议不必了解下层协议的细节,下层也不必了解上层的细节.这就相当于我们打电话,我们只在乎电话是否能打通,并不关心电话的工作原理.
  • 方便对某一层协议进行替换,能促进标准化工作,因为每一层的功能及其所提供的服务都已有了精确的说明,标准化的好处就是可以随意替换其中的某一层,对于使用和科研来说十分方便。
  • 易于实现和维护.

4.2 协议如何分层

教科书上经常看到OSI七层网络协议,但是我们经常见到是TCP/IP五层网络模型,这是最广泛使用的.

OSI七层网络模型图

【网络原理】网络通信,网络协议,协议分层,网络设备的分层,封装和分用

我们主要关注OSI五层网络模型,有的资料没有物理层,可能叫做四层网络模型.

【网络原理】网络通信,网络协议,协议分层,网络设备的分层,封装和分用

  • 应用层:关注传输过来的数据的用途.
  • 传输层:不考虑中间路径,只关注起点和终点.
  • 网络层:负责两个遥远的节点之间的路径规划.
  • 数据链路层:关注的是两个相邻节点之间的传输.
  • 物理层:网络通信的基础措施,网线,光纤,网络接口等.

咱们程序员主要关注应用层,实现某个软件的功能是什么.

协议分层的情况下,数据如何进行网络传输?

  • 发送方发送数据,要把数据从上到下,依次交给对应的层次上的协议进行封装.
  • 接收方收到数据,要把数据从下到上,依次交给对应的层次的协议进行解析.

4.3 协议实例(QQ发消息)

发送方:你好

4.3.1 应用层封装数据包

应用层(QQ程序)拿到上面用户信息,封装成数据包,本质就是字符串拼接,下面是我简化的数据包封装图.

发送方QQ号 接收方QQ号 时间与日期 消息内容(你好)

4.3.2 传输层拿到上述数据

应用层要调用传输层提供的api来处理这个数据.传输层有许多协议,其中最常见的就是TCP和UDP.
这里以UDP举例.

UDP针对上述数据包再进行封装,一个典型的数据包都是通过报头+载荷构成的,下面的豆蔻信息就是报头,后面的部分就是载荷.

源端口(发送方程序端口号)
目的端口(接收程序端口号)
发送方QQ号 接收方QQ号 时间日期 内容(你好)

上述就是UDP协议再给应用层数据包加了一个UDP报头,目的就是为了再贴一层标贴,在标签上可以添加一些属性(源端口和目的端口),在传输层协议中,源端口和目的端口非常重要.

4.3.3 传输层到网络层

UDP封装好数据包后,接下来就要交给网络层,网络层最常见的协议就是IP协议,IP协议还要继续封装数据包,添加上IP协议包头.

源IP
目的IP
源端口(发送方程序端口号)
目的端口(接收程序端口号)
发送方QQ号 接收方QQ号 时间日期 内容(你好)

源IP和目的IP描述了这次数据传输,起点和终点.

4.3.4 网络层交给数据链路层

这里最典型的协议是以太网协议(数据链路层与物理层的协议)

  • 以太网是最常见的数据链路层的网络.
  • 使用网线上网的时候就是在用以太网(以太网线).
  • 以太网数据帧的帧头是用mac地址进行描述的.

我们还需要再IP数据包前面加上mac地址(源mac地址和目的mac地址).

  • mac地址也叫物理地址,也是用来描述一个主机在网络上的位置.
  • mac地址和IP地址很相似,但是有很大的不同.IP地址是进行网络层的路径规划,而mac地址是进行描述数据链路层,两个即将进行传输的相邻节点.
  • mac地址和网卡进行绑定的,全世界的网卡,每个设备都有一个唯一的mac地址.

4.3.5 物理层接收数据帧

数据链路层就会把上述的以太网数据帧交给物理层,物理层要把上述的01二进制转换成光信号/电信号/电磁波信号进行传输.

接收数据包的过程与发送数据包的过程整合相反,在这里我就不做描述了.

4.4 网络环境中的节点转发

真实的网络环境中,应用层封装到物理层会有很多复杂的过程.

  • 交换机会进行分用,从物理层分用到数据链路层,判断当前这个数据包的目的IP对不对.
  • 交换机会针对这个数据重新封装,从数据链路层封装到物理层,把数据继续转发.
  • 物理层收到数据,会从物理层分用到网络层,根据当前得到的目的IP进行下一阶段的寻路操作(IP协议是在一边传输的过程中,一边规划路径)
  • 把数据包重新封装,从网络层封装到物理层,此时经过数据链路层的时候也会调整mac地址
  • 直到到达目标主机,才会完成从物理层分用到应用层这个过程.
  • 每次消息的传输都会涉及到封装分用.
  • 重新封装的时候源mac和目的mac就变了.
  • 中间的交换机只需要封装分用到数据链路层(只需要改变源mac和目的mac)
  • 中间的路由器,需要封装分用到网络层(需要改变mac,同时也需要根据目的ip进行下一阶段的路径规划)

5. 网络设备的分层

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层.
  • 对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层.
  • 对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层.
  • 对于集线器,它只实现了物理层.

6. 简述封装和分用

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

【网络原理】网络通信,网络协议,协议分层,网络设备的分层,封装和分用

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

【网络原理】网络通信,网络协议,协议分层,网络设备的分层,封装和分用

后序:
看到这里想必大家已经入门网络原理知识了,希望小小的文章可以帮到大家,我们下一篇文章再见.文章来源地址https://www.toymoban.com/news/detail-413112.html

到了这里,关于【网络原理】网络通信,网络协议,协议分层,网络设备的分层,封装和分用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络协议的重要性与应用:理解进程间通信和网络分层结构(上)

    进程间通信有多种方式,包括管道、消息队列、共享内存和信号等。然而,如果不同设备上的进程需要进行通信,就只能通过网络来实现。由于设备的多样性,为了兼容各种设备,就需要一个统一通用的网络协议。 学习网络协议的关键是了解其分层结构。之前在计算机基础专

    2024年02月08日
    浏览(27)
  • 解决---设备“VMnet0”上的网桥没有运行。该虚拟机无法与此主机或网络上的其他主机进行通信。 无法连接虚拟设备“Ethernet0”。

    quad quad 由于之前安装过VMware,但是卸载后从新安装导致 虚拟机 的虚拟网络编辑器没有桥接模式,即只有 网络适配器 网络类型 VMnet1 Host-only(仅主机) VMnet8 NAT quad quad 这导致 你所安装的虚拟机( 如 Ubuntu) 就不能与你的电脑再同一个网段,也就是虚拟机与你的电脑不能够

    2024年02月01日
    浏览(47)
  • 【网络原理】网络通信与协议

    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 独立模式 :计算机之间相互独立 网络互连 : 随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。   网络互连:将多台计算机连接在一起,完成数据共

    2023年04月09日
    浏览(43)
  • 万字长文深入理解Docker镜像分层原理、容器数据卷、网络通信架构(Docker系列第2章,共3章)

    在执行docker pull时,会发现多个Pull complete 字样,就能体现分层,如果是一个文件,只会有一个Pull complete 。 概念:文件系统是计算机系统中用于组织和管理数据存储的一种方式。它定义了数据如何存储、命名、访问和修改的方式。 举例:如Windows自带的NTFS、FAT32、EXFAT,和L

    2024年04月14日
    浏览(24)
  • 网络基础:通信原理及网络协议

    集线器:一个口收到的信号原封不动地转发给其他所有口,其他口上的设备自己决定是否接收信号。有点类似广播,但必广播更纯粹。由于hub只是单纯地转发,所以工作在物理层(OSI第一层) 类似于广播模式,纯硬件 网桥:工作在数据链路层(OSI第二层)。以太网中,数据

    2024年02月21日
    浏览(31)
  • 【netty系列-01】深入理解网络通信基本原理和tcp/ip协议

    Netty系列整体栏目 内容 链接地址 【一】深入理解网络通信基本原理和tcp/ip协议 https://zhenghuisheng.blog.csdn.net/article/details/136359640 【二】深入理解Socket本质和BIO https://zhenghuisheng.blog.csdn.net/article/details/136549478 在最初的网络中,是借鉴于这个OSI七层网络模型,而在实际开发应用中

    2024年03月17日
    浏览(45)
  • 网络安全设备工作原理

    一、Firewall(防火墙) 1.1、定义: 是一个有软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障。它可通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况,以此来实现网络的安全保

    2024年02月05日
    浏览(31)
  • Java中网络的基本介绍。网络通信,网络,ip地址,域名,端口,网络通信协议,TCP/IP传输过程,网络通信协议模型,TCP协议,UDP协议

    - 网络通信 概念:网络通信是指 通过计算机网络进行信息传输的过程 ,包括数据传输、语音通话、视频会议等。在网络通信中,数据被分成一系列的数据包,并通过网络传输到目的地。在数据传输过程中,需要确保数据的完整性、准确性和安全性。常见的网络通信协议有T

    2024年02月10日
    浏览(50)
  • 深入解析SNMP协议及其在网络设备管理中的应用

    SNMP(Simple Network Management Protocol,简单网络管理协议)作为一种用于网络设备管理的协议,在实现网络设备的监控、配置和故障排除方面发挥着重要的作用。本文将深入解析SNMP协议的工作原理、重要概念和功能,并探讨它在网络设备管理中的应用。 首先,让我们对SNMP协议进

    2024年02月10日
    浏览(28)
  • 10 - 网络通信优化之通信协议:如何优化RPC网络通信?

    微服务框架中 SpringCloud 和 Dubbo 的使用最为广泛,行业内也一直存在着对两者的比较,很多技术人会为这两个框架哪个更好而争辩。 我记得我们部门在搭建微服务框架时,也在技术选型上纠结良久,还曾一度有过激烈的讨论。当前 SpringCloud 炙手可热,具备完整的微服务生态,

    2024年02月11日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包