【网络通信基础】网络中的常见基本概念

目录

一、IP地址

二、端口号

三、协议

四、五元组 

五、协议分层

1. OSI 模型

2. TCP/CP五层(或四层)模型

3. 网络设备所在分层

六、封装和分用

封装(Encapsulation)

分用(Multiplexing)


一、IP地址

IP地址是 Internet Protocol Address(互联网协议地址)的缩写:

  • 它是用于在网络上唯一标识和定位设备的数字标签。在 Internet 上,每个连接到 Internet 的设备(如计算机、路由器、服务器等)都被分配一个唯一的 IP 地址,简单来说,IP地址用于定位主机的网络地址

IP地址的主要作用:

  • 用于在 Internet 上的数据通信中确定发送和接收数据的设备。当你在浏览网页、发送电子邮件、下载文件或进行其他网络活动时,你的设备和其他设备之间的通信都需要使用 IP 地址来定位和识别彼此。就像发送快递一样,需要同时知道发件人的地址和收件人的地址。

IPv4 和 IPv6 是当前两种主要的 IP 地址版本:

  • IPv4 地址由 32 位二进制数表示,通常以点分十进制表示,如 192.0.2.1。(目前最广泛使用的IP地址,IPv4 地址空间的最大限制是约 43 亿个唯一地址,这在互联网的早期足够大。然而,随着互联网的发展和普及,IPv4 地址资源逐渐枯竭)
  • IPv6 地址由 128 位二进制数表示,通常以冒号分隔的十六进制数表示,如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。(IPv6的出现,就是为了解决IPv4地址接近枯竭的问题,IPv6可以为地球上每一粒沙子设置IP地址)

除了用于设备之间的通信外,IP 地址还可以用于确定网络中的位置、限制或允许对特定网站或服务的访问,以及诊断网络问题等方面。

二、端口号

端口号是计算机网络中用于标识特定服务或应用程序的编号。在TCP/IP协议中,端口号是一个16位的数字,范围从0到65535。简单说,端口号用于定位主机中的进程

有了 IP 可以确定主机,但是一个主机上可能有很多程序在使用网络,主机收到网络数据就需要区分出是交给哪个程序使用数据。

类似发送快递时,不光需要收获地址(IP地址),还需要指定收件人(端口号)。

对于一次网络通信的过程中,涉及到的 IP 和 端口,其实各有两个:

  • 收件人地址 => 目的IP
  • 收件人电话 => 目的端口
  • 发件人地址 => 源IP
  • 发件人电话 => 源端口

三、协议

协议,网络协议的简称。是计算机网络中用于在不同设备之间传输数据和进行通信的规则和约定。它们定义了数据在网络中的传输格式、传输方式、错误检测和纠正方法等。

为什么要有协议?

  • 进行通信的两个计算机,可能来自不同的生产厂商;可能使用的是不同的操作系统;可能两台计算机的网络硬件设备也是来自不同厂商。而为了确保任意的两个计算机之间都能进行网络通信,就要求这些计算机需要遵守相同的网络协议。

四、五元组 

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

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

可以在cmd中,输入 netstat -ano 查看网络数据传输中的五元组信息:

五、协议分层

网络通信过程中,需要涉及到的细节,其实是非常非常多的。如果一个协议来完成网络通信,就需要约定好很多很多内容,其中非常多的细节,导致这个协议非常复杂。

因此,对于网络协议来说,往往分成几个层次进行定义。

协议分层类似于打电话时,定义不同层次的协议:

在这个例子中,协议只有两层(语言协议和电话机协议),实际上的网络通信更复杂,需要分更多层次。

把功能定位相似的协议放到同一层中,只有相邻的层次之间可以进行沟通,不能跨层次沟通。这样做是为了让一个复杂的协议变成多个简单的协议,且附带了一些好处:

  1. 上层协议之间使用下层协议即可,不需要了解下层协议的细节.(只要都说汉语,就能打电话,不用了解电话的工作原理)
  2. 对某一层的协议进行替换之后,对其他层没有影响.(都说汉语改成都说英语,同样能够打电话)

两个主要的协议分层模型是 OSI 模型和 TCP/IP 模型。

1. OSI 模型

OSI 模型:该模型是由国际标准化组织(ISO)制定的参考模型,将网络通信划分为七个不同的层次,从底层物理连接到顶层应用程序。每个层次负责不同的功能,且在通信过程中逐层传递数据

OSI 模型的七个层次分别是(最低层到最高层):

  • 物理层(Physical Layer):负责定义物理介质上的数据传输方式,如电压、频率等。
  • 数据链路层(Data Link Layer):负责在相邻节点之间传输数据,包括数据帧的组装和解析。
  • 网络层(Network Layer):负责在不同网络间进行数据路由和转发,实现数据的传输。
  • 传输层(Transport Layer):负责两个节点的之间数据传输,提供可靠的数据传输服务,如 TCP 和 UDP。
  • 会话层(Session Layer):负责建立、管理和终止会话连接。
  • 表示层(Presentation Layer):负责数据的格式转换和编码,确保不同系统间数据的兼容性。
  • 应用层(Application Layer):提供用户与网络服务之间的接口,包括各种应用程序和协议,如 HTTP、FTP、SMTP 等。

OSI 七层模型即复杂又不使用,所以 OSI 七层模型没有落地、实现。

实际组件网络时,只是以 OSI 七层模型设计中的部分分层,即以下 TCP/IP 五层(或四层)模型来实现的。

2. TCP/CP五层(或四层)模型

TCP/IP 模型:该模型是实际应用中最常用的网络协议模型,将网络通信划分为五/四个层次,是互联网的基础。各层次具体内容与前面类似,这里假设在网上购买了一件物品,来阐述五个层次做的事情(商家发货需要关注:收件人地址,收件人电话,发件人地址,发件人电话;包裹运输的起点和终点)。

TCP/IP 模型的五个层次是(最高层到最低层):

  • 应用层:程序拿到数据之后,要用来干啥,解决什么问题。(商家接到订单,将包裹交给快递公司)
  • 传输层:负责关注网络数据包起点和终点。(发货地址和收件地址)
  • 网络层:负责关注起点和终点之间,要走哪条路。(快递公司进行路线规划,比如上海 => 南京 => 石家庄 => 北京)
  • 数据链路层:负责两个相邻节点之间的传输。(比如上海到南京,铁路运输;南京到石家庄,飞机空运;石家庄到北京,货车运输)
  • 物理层:通信过程中的基础设施。(公路,铁路,航线等)

而如果算四层模型,则不算物理层,因为物理层是纯硬件,考虑的比较少。

3. 网络设备所在分层

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

这里所说的是传统意义上的交换机(二层交换机)和路由器(三层路由器)。随着网络设备技术的发展,也出现了很多三层或四层交换机,四层路由器。

六、封装和分用

封装(Encapsulation)和分用(Multiplexing)是网络通信中两个重要的概念,是网络传输数据的过程中,最核心的流程。

封装(Encapsulation)

封装是指将数据从一个协议的格式转换为另一个协议的格式的过程。在网络通信中,数据在传输过程中需要经过多个层次的协议处理,每一层都会在数据上添加一些特定的信息(称为协议头部),以便在接收端能够正确地解析和处理数据。封装就是在每一层添加相应的协议头部,形成一个数据包(Packet),使得数据能够在网络中传输。

  • 不同的协议层对数据包有不同的称谓,在传输层中较做段(segment),在网络层中叫做数据报(datagram),在链路层叫做帧(frame)。

下图为数据封装的过程:

分用(Multiplexing)

分用是指在通信链路上同时传输多个信号或数据流的技术。通常情况下,通信链路的带宽是有限的,为了更有效地利用带宽资源,可以采用分用技术将多个信号或数据流合并到同一条链路上进行传输,然后在接收端再将其分离出来。常见的分用技术包括时分复用(TDM)、频分复用(FDM)和码分复用(CDM)等。

下图是数据分用的过程:

封装和分用之间是相辅相成的概念:

  • 封装提供了实现分用的手段,通过隐藏对象的内部细节和提供简单的公共接口,实现了对对象的抽象,从而简化了对象的使用。
  • 分用则强调隐藏对象的复杂性,使得用户只需关注对象的功能而不必了解其具体实现方式,从而简化了对象的理解和使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/554443.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多目标环形粒子群算法和多目标遗传算法跑MOCEC2020(24个多目标测试函数,matlab代码,多个评价指标)

本号从现在起可以定制使用评估次数改进单目标群体算法,需要的私,价格贵,质量高。 目录: 一、多目标环形粒子群算法MO_Ring_PSO_SCD 二、多目标遗传算法NSGAII 三、MOCEC2020的24个多目标测试函数 四、实验结果 五、代码获取…

C语言进阶课程学习记录-函数指针的阅读

C语言进阶课程学习记录-函数指针的阅读 5个标识符含义解析技巧 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图片全部来源于课程PPT,仅用于个人学习记录 5个标识符含义解析 int (*p1) (int* , int (*f) ( int* ) );定义了指针p1,指向函数&#…

javaWeb智能医疗管理系统

简介 在当今快节奏的生活中,智能医疗系统的崛起为医疗行业带来了一场革命性的变革。基于JavaWeb技术开发的智能医疗管理系统,不仅为医疗机构提供了高效、精准的管理工具,也为患者提供了更便捷、更个性化的医疗服务。本文将介绍一个基于SSM&a…

树莓集团产业生态建设之特色产业服务:人才项目转化中心

树莓集团在产业生态建设中,积极输出特色产业服务——人才项目转化中心。该中心依托数字产业园致力于推动创新创业工作,通过链接产业人才聚集地与树莓认证的导师库体系,为人才及相关课题项目提供全方位的服务。 树莓集团人才项目转化中心以人…

Python学习(四)文件操作

文件操作 想想我们平常对文件的基本操作,大概可以分为三个步骤(简称文件操作三步走): ① 打开文件 ② 读写文件 ③ 关闭文件 注意:可以只打开和关闭文件,不进行任何读写 在Python,使用open函数,可以打开一个已经存在的文件&…

IP爬虫代理服务器是什么以及为什么使用爬虫代理?

在网络抓取领域,爬虫代理发挥着关键作用。 但它们到底是什么? 从本质上讲,爬虫代理是位于网络抓取工具和目标网站之间的中间服务器。 该中间服务器充当盾牌,提供匿名性,并允许您访问网站并提取数据,而无需透…

IDEA配置Maven环境

黑马程序员JavaWeb开发教程 文章目录 如果当前有已经打开项目的话,File -> Close Project 到以下页面之后选择 Customize -> All settings… 配置maven的安装目录,maven的配置文件,maven的本地仓库(修改完成之后一定要先…

mybatis进阶篇-执行CRUD操作-typeAliases别名-接口绑定

目录结构 所需jar包 https://download.csdn.net/download/weixin_44201223/89160447?spm1003.2166.3001.6637.1 1.创建数据表(book) # 创建book表 create table book(id int auto_increment primary key,name varchar(255) ,price double ,num int )…

Linux OpenSSH最新版9.7p1升级操作详细教程

原创声明:非本人许可,谢绝转载! 1.背景说明 前几天与朋友闲聊中得知他朋友圈有服务器因OpenSSH漏洞遭受攻击的事情,OpenSSH重要性这里就不废话了,在网上一查,公布的漏洞还真不少,其中还有不少…

RK3588平台开发系列讲解(PCIe开发篇2)

根据原理图填写DTS 原理图是基于IO信号的视⻆来描述硬件,IO信号是跟PHY的index强相关的,前⾯提到RK3588的controller和PHY的index可能不⼀致,所以看原理图的时候需要特别注意这⼀点。这⾥给出⼀些填写建议,并通过⽰例说明如何将原…

socket通信基础讲解及示例-C

socket通信之C篇 服务端与客户端简介 socket通信服务端与客户端通信模型通信实战server(服务端)创建client(客户端)创建 函数详解创建套接字 socket绑定端口bind进入监听状态listen获取客户端连接请求accept接收网络数据read发送数…

音素与视素(Viseme)

什么是视素(视位) 音素(Phoneme),是人类语言中能够区别意义的最小声音单位。视素(Viseme),是指与某一音素相对应的嘴、舌头、下腭等可视发音器官所处的状态。Viseme是MPEG-4 标准提出来的概念。 有时Viseme也翻译为视位。下面会…

JavaEE初阶Day 10:多线程(8)

目录 Day 10:多线程(8)单例模式阻塞队列1. 生产者消费者模型1.1 生产者消费者模型解耦合1.2 生产者消费者模型削峰填谷 2. 生产者消费者代码3. 阻塞队列实现 Day 10:多线程(8) 单例模式 单例模式&#xf…

springboot中mongodb连接池配置-源码分析

yml下spring.data.mongodb 以前mysql等在spring.xxx下配置,现在springboot新版本(小编3.2.3)在spring.data.xxx下了,如下所示,mongodb的配置在spring.data.mongodb下: 连接池相关参数配置-源码分析 拼接在…

vue3 删除对象中的属性,可以使用js里的delete,但需注意ts定义对象类型!

如上如,当使用delete 删除stateData中的属性时, 报错,意思为 TypeScript 错误“‘delete’ 运算符的操作数必须是可选的 什么原因呢?是因为我偷懒 缺少了ts定义类型 方法一: (不推荐) delete …

【网络安全 | 信息收集】JS文件信息收集工具LinkFinder安装使用教程

文章目录 前言安装教程使用教程 前言 JavaScript文件可能会泄露敏感信息,如注释中的机密信息、内部IP地址,以及包含未授权访问或其他漏洞的URL。手动检查这些信息效率低下,而该工具——LinkFinder,可用于自动收集JavaScript文件中…

Windows10系统中忘记MySQL数据库root权限登录密码

本文档所使用的MySQL版本为MySQL5.7>> mysqld_safe --skip-grant-tables&mysql -u root mysql在命令行中使用上面的命令登录MySQL,其中--skip-grant-tables允许用户跳过权限表进行无密码登录 >> UPDATE user SET authentication_stringPASSWORD(&q…

2024 年 Web 前端开发趋势

希腊哲学家赫拉克利特认为,变化是生命中唯一不变的东西。这句话适用于我们的个人生活、行业和职业领域。 尤其是前端开发领域,新技术、开发趋势、库和框架不断涌现,变化并不陌生。最近发生的一些事件正在改变开发人员构建网站和 Web 应用的方…

buuctf之ciscn_2019_c_1

ciscn_2019_c_1 一、查看属性二、静态分析三、动态分析四、思路五、exp 一、查看属性 首先还是必要的查看属性环节: 可以知道该文件是一个x86架构下的64位小端ELF文件,开启了栈不可执行(NX) 执行一下,先有一个选择&…

容联云QCon全球软件大会分享:大模型引领“营销服”创新实践

近日,QCon 全球软件开发大会正式召开。容联云大模型产品负责人唐兴才受邀出席,并分享营销服场景中,大模型的创新应用与实践。 唐兴才指出,在大模型浪潮的推动下,营销服场景正经历着前所未有的变革。面对激烈的市场竞争…