网络原理与网络通信

news2025/6/20 1:43:09

目录

网络互连原理

网络通信

IP地址和端口号

网络协议

五元组

协议分层

OSI七层模型

TCP/IP五层模型

封装和分用


网络互连原理

计算机在最开始的时候是没有网络的,每个计算机之间相互独立。这样处理信息就非常的麻烦,为了能够更高效的利用计算机的高效,就需要信息和资源的共享,也就是计算机之间需要通信。也就是网络互连:把多台计算机通过网线连接到一起,连接到一起的计算机彼此之间数据可以共享: 

 如上图就构成了一个局域网(Local Area Network),也称为内网,简称LAN。在同一个局域网内,计算机之间可以相互通信。

但是,像这样通过网线进行两两相连的方式其实并不合理,一旦电脑多了,这些线很难处理。更好的做法是通过网络交换机或者路由器实现:

 交换机把多台主机连接到一起形成局域网, 而路由器可以把多个局域网连接起来,形成更大的局域网,当局域网足够大时,就变成了广域网(WAN)。广域网内部的局域网都属于它的子网。

网络通信

网络互连的目的就是实现网络通信,进而实现数据共享。实现网络通信首先需要如下信息:IP地址、端口号、协议等。

IP地址和端口号

IP地址:用于定于主机的网络地址,IP地址是32位二进制数,每8个一组,组与组之间用'.'连接。例如:127.0.0.1就是一个IP地址(用于本机环回测试)。

端口号:用于定位计算机中的进程。计算机中的进程非常多,要找到我们需要的进程,就需要通过端口号来定位。

以送快递为例:IP地址就是我们所在的位置:XX市XX大学,而端口号就是手机号。快递小哥把快递送到学校,还需要拨打手机号才能正确的定位到我。

网络协议

网络协议是网络通信的所有设备都必须遵循的一种规则。计算机通过光信号和电信号进行传输,但是传输时只能看到01这样的数字,因此需要约定频率的高低和电位的高低用0表示还是用1表示。

协议最终体现在传输时数据包的格式。

在TCP/IP协议中,通过五元组实现网络通信。

五元组

  • 源IP:源主机IP
  • 目的IP:目的主机IP
  • 源端口:发起通信的进程端口
  • 目的端口:接收通信的进程端口
  • 协议类型:发送和接收通信约定的传输的数据形式。

满足五元组的条件才可以进行通信。

协议分层

网络协议的内容庞大而复杂,因此需要分层。就像公司的职位布置一样,老板管干部,干部管他手下的员工,如果不设干部,让老板管理所有的员工,老板也很难管理过来。协议也是一样,先把复杂的协议分成一个个只负责某一部分的较为简单的协议,再进行对应的处理就会简单不少。不同层之间通过接口进行连接,只需要遵循接口的规范,维护更见便捷。

OSI七层模型

OSI七层模型分为:应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层。

应用层:针对特定用户的协议。

表示层:设备固有格式与网络标准数据格式之间的转换。保证对端设备可以识别。

会话层:通信管理。负责通信的连接与断开。

传输层:负责两个节点(起点和终点)之间的数据传输。

网络层:负责数据传输的路径规划。

数据链路层:负责两个相邻子节点之间的数据传输。

物理层:为数据传输提供必要的条件、功能以及规范。物理层属于硬件方面。

实际上OSI七层模型过于复杂且不实用,在实际的网络实现过程中,并没有使用到OSI七层模型,而是使用了更为合理的TCP/IP五层模型。

TCP/IP五层模型

TCP/IP五层模型其实沿用了OSI七层模型的应用层、传输层、网络层、数据链路层以及物理层。舍弃了表示层和会话层,或者说将其并入了应用层。

应用层协议负责进程与进程的沟通。应用程序之间的相互通信需要满足相同的应用层协议这一条件。网络编程主要就是针对的应用层。

传输层负责传输的起点和终点,网络层负责规划传输路线,数据链路层负责相邻两节点的传输,物理层保证传输需要用到的功能以及规范。

以送快递为例:在网上购物,商家需要填写寄件人地址信息和收件人地址信息(也就是传输层的起点和终点),然后交给快递公司,快递公司需要先确定运输路线,是直达还是中转,(网络层数据传输的路径规划),确定好运输路线还需要确定运输方式,空运还是陆运(数据链路层相邻节点的数据传输),最后才开始运输(交给物理层)。

作为一名程序猿,往往并不关注物理层,因此也称为TCP/IP四层模型。

常见网络设备中,主机实现了传输层到物理层的协议(下四层),路由器实现了网络层到物理层(下三层),交换机实现了数据链路层到物理层(下两层)。

当然这里的路由器和交换机只是传统意义上的情况,实际上随着科技的进步,路由器和交换机已经没有什么区别了,不少交换机和路由器实现了下四层协议。

封装和分用

数据的传输需要先封装后分用。就像发快递一样,购买的商品往往需要多一层包装用来表示信息,发到我们手里以后呢,这个包装就没用了,就需要拆掉这层包装。

网络数据传输时,每一层协议都需要进行封装,以发短信为例:假如A给B发送信息:你好。

A发送的信息为:

 但实际上,与快递类似,需要传输的不仅仅时内容,它还包括了其他的很多东西,以UDP协议为例:

 

 像上述这些过程,每一层协议都会在数据前加一个协议报头,以便于下层协议对数据进行处理,这就是封装。传输到目的地后,需要按照从下层往上层的顺序解析内容,在到达每一层都会去掉对应的协议头,以便于上层的协议对数据进行处理,这个过程就称为分用

在真实的网络传输中,往往需要经过很多个中间节点的转发,也就是经过很多个交换机或路由器,路由器和交换机接收数据会先进行分用,分用到其能够支持的最高层,然后接着进行封装,传输给下一个节点:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个基于Java线程池管理的开源框架Hippo4j实践

文章目录概述定义线程池痛点功能框架概览架构部署Docker安装二进制安装运行模式依赖配置中心接入流程个性化配置线程池监控无中间件依赖接入流程服务端配置三方框架线程池适配拒绝策略自定义概述 定义 Hippo4j 官网地址 https://hippo4j.cn/ 最新版本1.5.0 Hippo4j 官网文档地…

硬件系统工程师宝典(17)-----你的PCB符合工艺要求吗?

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到PCB设计中板子要符合EMC,信号的走线要平顺,信号回流阻抗尽量小。今天我们开始看看板子在生产制造时的工艺问题。…

【安全防御】防火墙(二)

目录 1、防火墙如何处理双通道协议 2、防火墙如何处理nat 3、防火墙支持哪些NAT,主要应用的场景是什么? 4、当内网PC通过公网域名解析访问内网服务器的时候,会存在什么问题,如何解决?请详细说明 5.防火墙使用VRRP…

面试题总结-JS

文章目录一、JS 系列1、原型、原型链2、闭包3、this指向4、call、 apply、 bind 的作用与区别?5、数组扁平化6、var、let、const 区别7、对称加密和不对称加密的区别8、js 的栈和堆9、对象的深拷贝和浅拷贝10、浏览器的事件循环机制11、宏任务和微任务12、script 标…

StringBuilder、StringBuffer、String的区别

StringBuilder与StringBuffer的append方法源码分析 #mermaid-svg-N8145OzAyMWzlewt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-N8145OzAyMWzlewt .error-icon{fill:#552222;}#mermaid-svg-N8145OzAyMWzlewt .er…

C#基础学习--泛型

目录 C#中的泛型 泛型类 声明泛型类 创建构造函数 创建变量和实例 类型参数的约束 Where 子句 泛型方法 声明泛型方法 ​编辑 调用泛型方法 扩展方法和泛型类 泛型结构 泛型委托 泛型接口 协变 逆变 接口的协变和逆变 C#中的泛型 泛型允许我们声明 类型参数化 的代码&…

Jetpack Compose大师乘势而上,创建引人入胜和直观的UI;实用技巧和技术

简述 Jetpack Compose 是 Android 上的一种全新的 UI 工具箱,旨在简化 Android UI 开发流程,提高开发效率和应用性能,并且提供更直观、更灵活、更强大的 UI 定义方式。 Jetpack Compose 提供了一套新的声明式 UI 编程模型,采用 …

【Redis】多级缓存(nginx缓存、redis缓存及tomcat缓存)

【Redis】多级缓存 文章目录【Redis】多级缓存1. 传统缓存的问题2. 多级缓存方案2.1 JVM进程缓存2.1.1 本地进程缓存2.1.2 Caffeine2.2 Nginx缓存2.2.1 准备工作2.2.2 请求参数处理2.2.3 nginx发送http请求tomcat2.2.3.1 封装http查询函数2.2.3.2 使用http函数查询数据2.2.4 ng…

Huffman 编码

1.Huffman编码 1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。 2.Huffman树 树是一种重要的非线性数据结构,它是数据元…

​2023年十大目标检测模型!

“目标检测是计算机视觉中最令人兴奋和具有挑战性的问题之一,深度学习已经成为解决该问题的强大工具。”—Dr. Liang-Chieh Chen目标检测是计算机视觉中的基础任务,它涉及在图像中识别和定位目标。深度学习已经革新了目标检测,使得在图像和视…

【CV大模型SAM(Segment-Anything)】真是太强大了,分割一切的SAM大模型使用方法:可通过不同的提示得到想要的分割目标

目录前言安装运行环境SAM模型的使用方法导入相关库并定义显示函数导入待分割图片使用不同提示方法进行目标分割方法一:使用单个提示点进行目标分割方法二:使用多个提示点进行目标分割方法三:用方框指定一个目标进行分割方式四:将点…

文件操作和IO—javaEE

文章目录1.文件1.1文件系统的结构1.2java中的文件操作(metadata的操作)2.io操作2.1定义2.2io划分2.3java的io流之输入流2.4java的io流之输出流1.文件 文件包含数据本身和文件的头信息(metadata),文件的头信息包括文件…

VSCode的C/C++编译调试环境搭建(亲测有效)

文章目录前言1.安装VSCode和mingw642.配置环境变量3.配置VSCode的运行环境3.1设置CodeRunner3.2设置C/C4.调试环境配置前言 这片博客挺早前就写好了,一直忘记发了,写这篇博客之前自己配的时候也试过很多博客,但无一例外,都各种js…

SpringBoot(4)整合数据源

SpringBoot整合数据源数据层解决方案数据源技术持久化技术数据库技术NoSQL整合Redis整合MongDB整合ES数据层解决方案 MySQL数据库与MyBatisPlus框架,后面又用了Druid数据源的配置,所以现在数据层解决方案可以说是MysqlDruidMyBatisPlus。而三个技术分别…

一文彻底了解派克Parker无铁芯/有铁芯直线电机及其应用

一、什么是直线电机? 直线电机是一种将电能直接转换成直线运动机械能,而不需要任何中间转换机构的传动装置。它可以看成是一台旋转电机按径向剖开,并展成平面而成。 二、直线电机的特点 直线电机类似于一台旋转电机解剖摊开来进行运转。在一…

9、DRF实战总结:过滤(filter)与排序,以及第三方库django-filter的使用(附源码)

在前面的DRF系列教程中,以博客为例介绍了序列化器(Serializer), 并使用基于类的视图APIView和ModelViewSet开发了针对文章资源进行增删查改的完整API接口,并详细对权限、认证(含jwt认证)和分页进行了总结与演示。在本篇文章中将向演示如何在Django REST …

Boost库在windows上的使用

今天要配置一个C环境,被Boost库困扰了一段时间,在这里记录一下解决的方法。 主要是打不开 libboost_iostreams-vc143-mt-gd-x64-1_82.lib这样的问题。 操作的步骤如下: 下载binary包: 链接: https://boostorg.jfrog.io/artifac…

ChatGPT有用到知识图谱吗?它自己是这样回答...

从搜索引擎到个人助手,我们每天都在使用问答系统。问答系统必须能够访问相关的知识并进行推理。通常,知识可以隐式地编码在大型语言模型(LLMs)中,例如ChatGPT、T5 和LaMDA 等大型语言模型,这些模型在未结构…

如何面对人生困境至暗时刻

北方春天伊始刚好想发表下另一种境遇就是当人生面临困境或者至暗怎么样走出来,如果有正面临这样的情况来分享下如何走出阴霾,拥有更多可能性的人生,现在回望过去一年的自己太过牵强失去自我。 对世界的应该思维:为什么我总看不清现…

PHP快速入门10-图像处理,附图像大小调整、旋转、获取颜色等15个常见示例

文章目录前言一、PHP的图像处理1.1 图像处理函数二、 图像处理示例2.1 创建一个空白的图像2.2 从文件创建一个新的图像2.3 从URL创建一个新的图像2.4 调整图像大小2.5 对比度和亮度调整2.6 度数旋转2.7 模糊滤镜2.8 获取图像的颜色信息2.9. 图像合并2.10 图像旋转和裁剪2.11 图…