2024年最新详细讲解 —— 初识网络基础(Java EE初阶)(2)

3.1 认识协议

概念:

协议是网络协议的简称,网络协议是网络通信经过的所有网络设备都必须共同遵从的一组约定,规则。比如怎样建立连接,怎样相互识别,只有遵守这个约定,计算机之间才能互相通信交流。

比如:

插板,插板中的插座要符合我们常用电器的规格。
电脑连接外部设备的接口,这种接口一般也是统一的,每种接口有不同的功能。
手机的充电接口,市面上现在有两种冲电接口,一种是华为的充电接口,一种是安卓的充电接口。
像这种规定的接口,就是协议。

协议最终体现为在网络上传输数据包的格式。

作用:

协议的作用是:规范统一,方便管理,节约成本。(就像秦统一六国之后,统一度量衡,统一语言)

计算机之间的传输媒介是光信号和电信号。通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。
计算机生产厂商有很多;计算机操作系统,也有很多;计算机网络硬件设备,还是有很多;
如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?
就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是 网络协议

3.2 五元组

网络通信中我们主要使用两个网络协议,一个是 TCP,另一个是 UDP。

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式
3.3 协议分层

网络通信这个过程,其实很复杂,里面有很多的细节,如果只是通过一个协议,来约定所有的细节,那么这个协议就会非常的庞大和复杂。更好的做法就是把一个复杂的协议,拆成多个小的协议,更简单的协议,每个协议负责一部分的工作。

协议分层的好处
  1. 每层协议不需要理解其他层协议的细节(更好的做到了封装)
  2. 把对应层的协议替换成其他的协议(更好的解耦合)

举例:就比如我们打电话,打电话被分成了两层,一层是电话的工作原理,一层是通话的语言。我们通话不需要了解电话的工作原理,我们只需要关注我们通话的语言,可以是汉语,可以是英语(解耦合,换成其他协议),等等。制造电话的人也不需要知道各种各样的语言,只需要关注怎么制造电话就可以了(封装的好处)。

TCP/IP五层(或四层)模型

在这里插入图片描述

  1. 物理层,网络通信中的硬件设备。
    网线、网卡,针对硬件设备的约定,就是物理层协议所负责的范畴,需要保证所有的主机和网络设备之间,能够相互匹配。
  2. 数据链路层,负责完成相邻的两个设备之间的通信,一根网线相连的两个设备。
  3. 网络层,负责主机到主机之间的通信。
    网络中的任意两台主机之间的通信,网络层就是负责在这两点之间,规划出一条合适的路线。实际的网络环境结构非常的复杂,两个点之间的线路,不只是一条,这个就需要我们规划出最合适的一条路线。
  4. 传输层,关注结果(数据是否传输到了),不关注过程(数据是经过那一条路到的)。
  5. 应用层,和应用程序密切相关,你传输的这个数据,是干什么用的。
    不同的应用程序就有不用的用途。

举例:

网购过程。
应用层(我们买商品的用途)
传输层(商品到没有到货)
网络层(物流公司规划商品运输的路线)
数据链路层(两个相邻运输点的运输)
物理层(运输车,公路等等)

从 物理层 到 应用层,就是从微观到宏观的过程。

物理层我们考虑的比较少,因此很多时候也可以称为TCP / IP 四层模型。

一台主机,其实就对应了物理层到应用层五层(把这五层都给实现了),一台路由器,主要是物理层到网络层(包含了物理层,数据链路层,网络层),一台交换机,主要是物理层到数据链路层(包含了物理层和数据链路层)。

3.4 封装和分用

网络分层中的一组重要的概念,封装和分用,不同的分层的协议之间,是如何配合的。

例如:使用 QQ 给一个同学发送信息。

封装过程

应用层

根据用户输入的内容,把数据构造成一个应用层的协议报文。

在这里插入图片描述

上面图片是假设的一种应用层协议报文。

应用层协议调用操作系统提供的 API,把应用层的数据,交给传输层(进入操作系统内核了)。

传输层

根据刚才传过来的数据,基于当前使用的传输层协议,来构造出一个传输层的协议报文。传输层最典型的协议是 UDP、TCP,下面我们以 TCP 为例:

在这里插入图片描述

TCP 的数据报 = TCP 报头 + 数据载荷(Payload 也是一个完整的应用层数据)

TCP 的报头中有很多的信息,其中最重要的是 “源端口” 和 “目的端口”。

接下来就会把这个传输层的数据报,交给网络层。

网络层

拿到了完整的传输层数据报,就会再根据当前使用的网络层协议,再次进行封装。把 TCP 数据报构造成 IP 数据报,添加一个协议报头。

在这里插入图片描述

IP 数据报 = IP 协议报头 + 载荷(完整的 TCP / UDP 的数据报)。

IP 数据报中有很多重要的信息,其中最重要的是 “源 IP” 和 “目的 IP”。

把这个数据报传送给数据链路层。

数据链路层

在刚才的 IP 数据报的基础上,根据当前使用的数据链路层协议,构造出一个数据链路层的数据报,典型的数据链路层协议,叫做 “以太网”,就会构造出一个 “以太网数据帧”。

在这里插入图片描述

以太网数据帧 = 帧头 + IP 数据报 + 帧尾,其中重要的数据是,要传输两个相邻段的地址。

数据链路层,又会 把这个数据交给物理层。

物理层

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值