【Linux 网络编程】网络的背景、协议的分层知识!

文章目录

      • 1. 计算机网络背景
      • 2. 认识 "协议"
      • 3. 协议分层

1. 计算机网络背景

  • 网络互联: 多台计算机连接在一起, 完成数据共享;

  • 🍎局域网(LAN----Local Area Network): 计算机数量更多了, 通过交换机和路由器连接。

在这里插入图片描述


  • 🍎 广域网WAN: 将远隔千里的计算机都连在一起;
    在这里插入图片描述

2. 认识 “协议”

🍎① “协议” 本质是一种约定 (通信双方之间 ),可以理解我们在淘宝上面买一个商品,我们收到快递后,我们收到的不止是买的商品还有一个快递单 ( 这个快递单其实就是我们双方约定好的协议,从快递单我们知道双方的寄货、收货信息, — 报文 ---- ,协议是通信信息多出来的部分 )
协议其实就是C语言中的结构体,结构体中 填充我们需要的字段(两个结构体对象之间相互通信,所以都认识)

在这里插入图片描述


🍎② 计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式.


🍎③ 小问题: 只要通信的两台主机, 约定好协议就可以了么?

  • 计算机生产厂商有很多;
  • 计算机操作系统, 也有很多;
  • 计算机网络硬件设备, 还是有很多;
  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?
    就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是网络协议;

🍎④ 每层都需要有自己的协议!
在这里插入图片描述


3. 协议分层

  • 🍎 打电话📞的例子
  • 🐧 分层有什么好处呢?
    ① 分层最大的好处在于 “封装”;
    ② 分层符合 “高内聚”(层内部之间相互联系),“低耦合” (层与层之间)的特性,便于维护。
    在这里插入图片描述

在这里插入图片描述

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

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

相关文章

多模态模型入门:BLIP与OWL-ViT

BLIP 数据预处理 CapFilt:标题和过滤 由于多模态模型需要大量数据集,因此通常必须使用图像和替代文本 (alt-text) 对从互联网上抓取这些数据集。然而,替代文本通常不能准确描述图像的视觉内容,使其成为噪声信号,对于…

MAC M1 —— Install

文章目录 MAC M1 —— Install安装IDEA安装JDK安装Maven安装brew无法创建文件 /data/serverMac 修改终端用户名(主机名)PyCharm MAC M1 —— Install 安装IDEA 关键词:2020到2021.3的激活步骤。找下Download文件夹 安装JDK 在个人的电脑上…

思维+滑动窗口,LeetCode 2831. 找出最长等值子数组

目录 一、题目 1、题目描述 2、接口描述 python3 cpp JS 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 python3 cpp JS 一、题目 1、题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 如果子数组中所有元素都相等,则认…

TypeScript 学习笔记(十一):TypeScript 与微服务架构的结合应用

TypeScript 学习笔记(十一):TypeScript 与微服务架构的结合应用 1. 引言 在前几篇学习笔记中,我们探讨了 TypeScript 的基础知识、前后端框架的结合应用、测试与调试技巧、数据库以及 GraphQL 的结合应用。本篇将重点介绍 TypeScript 与微服务架构的结合应用,包括如何使…

mysql数据库管理-mysqlbinlog备份与恢复,主备复制分析

由于服务器生成的二进制日志文件以二进制格式保存,所以如果想要检查这些文件的文本格式, 就会用到mysqlbinlog日志管理工具。 mysqlbinlog的具体用法如下: shell> mysqlbinlog [options] log-files1 log-files2. . option有很多选项&…

《探索Stable Diffusion:AI绘画的创意之路与实战秘籍》

《Stable Diffusion AI 绘画从提示词到模型出图》介绍了 Stable Diffusion AI 绘画工具及其使用技巧。书中内容分为两部分:“基础操作篇”,讲解了 SD 文生图、图生图、提示词、模型、ControlNet 插件等核心技术的应用,帮助读者快速从新手成长…

mysql仿照find_in_set写了一个replace_in_set函数,英文逗号拼接字符串指定替换

开发中使用mysql5.7版本数据库,对于英文逗号拼接的字符串,想要替换其中指定的字符串,找不到数据库函数支持,自己写了一个,实测好用! /*类似find_in_set,按英文逗号拆分字段,找出指定的旧字符串,替换成新字…

Python库之retrying的高级用法深度解析

Python库之retrying的高级用法深度解析 概述 retrying 是一个Python库,它通过装饰器的方式简化了代码中重试机制的实现。本文将深入探讨retrying库的高级用法,帮助开发者更有效地利用它来增强程序的稳定性和健壮性。 安装 首先,确保你已经…

java中,怎样用最简单方法实现写word文档

在跨平台环境中实现写word时,如果用现成的库,就会涉及跨平台兼容性问题,比如在安卓与java中实现写word的功能。还有一个问题就是,完全用程序生成word文档,工作量较大。所以采用了模板替换的方法。 docx文档本质就是一…

深度学习之学习率调度器Scheduler介绍

调度器是深度学习训练过程中非常重要的一部分,它用于动态调整模型的学习率,从而提高训练效率和最终性能。 1. 为什么需要学习率调度器? 深度学习训练中,学习率是一个非常关键的超参数。合适的学习率可以确保模型快速收敛并获得良好的性能。 但是在训练过程中,最优的学习率会随…

算法与数据结构:二叉排序树与AVL树

ACM大牛带你玩转算法与数据结构-课程资料 本笔记属于船说系列课程之一,课程链接: 哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep66799?csourceprivate_space_class_null&spm_id_from333.999.0.0 你也可以选择购买『船说系列课程-年度会…

python判断字符串有无小数点有的话去掉小数点后面的数

python判断字符串有无小数点有的话去掉小数点后面的数 可以使用Python的字符串方法split()和strip()来判断和去除字符串中小数点后的数。 def remove_decimal_part(s):parts s.split(.)if len(parts) > 1:return parts[0]else:return s# 示例代码 s1 "123.456"…

javascript极简Date对象总结

new Date()和Date.now() new Date() 返回的是一个包含年月日时分秒的时间Date.now() 返回的是1970年1月1日0时0分0秒,到现在的时间毫秒数 时间格式化 let date new Date();let y date.getFullYear(); let m date.getMonth(); //返回值1真实月份 let d date.g…

# AI作画原理:生成对抗网络(GAN)的原理与应用

AI作画原理:生成对抗网络(GAN)的原理与应用 现在,AI已经可以画出非常逼真的图像了。那么,AI是怎么做到这一点的呢? 深度学习与生成对抗网络(GAN) AI画画的核心技术之一是深度学习&…

从java.util.Date到java.time.LocalDateTime:Java日期时间处理的现代进化

在深入探究Java日期时间管理的进化轨迹中,java.time.LocalDateTime与传统java.util.Date之间的差异凸显了现代软件工程对时间处理精准度与灵活性的更高要求。本文旨在通过详尽分析两者特性与实践案例,展现Java 8引入的日期时间API如何革新了这一基础而又…

java-开发验证码

### 3. 图像渲染 在上面的代码中,我们使用了 Graphics2D 类来绘制图像。这个类提供了很多绘图功能,包括绘制字符、线条、矩形等。在这个例子中,我们使用了 drawString 方法来绘制验证码字符串,并且使用 setFont 方法设置了字体和大…

日期转换运算工具类

一、日期转换运算 Java 中的日期常用转换 二、工具类 代码如下: package com.common.utils.time;import org.apache.commons.lang3.time.DateFormatUtils;import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.Sim…

关于MySQL数据库和数据表的基础

目录 一. 数据库的基础SQL 1. 创建数据库 2. 查看当前有哪些数据库 3. 选中数据库 4. 删除数据库 5. 小结 二. 数据表的基础SQL 1. 创建数据表 2. 查看当前数据库中有哪些表 3. 查看指定表的详细情况(查看表的结构) 4. 删除表 5. 小结 一. 数据库的基础SQL 1. 创建…

史上最全排序算法整理!(1)

1.排序的概念及其应用 1.1排序的概念 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之&#…

实战解析:爬取音乐每日推荐歌单并自动分享

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、准备阶段 三、实战步骤 四、总结与展望 一、引言 在数字化时代&#xff0c…