计算机网络(1

网络初识

目录

  • 网络初识
    • 一. 网络分类
      • 1. 局域网LAN(Local Area Network):
      • 2. 广域网WAN(Wide Area Network):
    • 二. 组建网络的基础设备
      • 1. 路由器
      • 2. 交换机
    • 三. 标识符
  • 协议 (protocol)
    • 一. 协议分层
      • 1. 分层的好处
      • 2. OSI七层分层
      • 3. TCP/IP五层模型(或四层) 模型
        • (1. 物理层(可不算)
        • (2. 数据链路层
        • (3. 网络层
        • (4. 传输层
        • (5. 应用层
      • 4. OSI 与 TCP/IP模型
    • 二. 协议层与层之间的配合
      • 封装分用
        • (1. 封装操作
        • (2. 分用操作

一. 网络分类

1. 局域网LAN(Local Area Network):

若干个电脑, 连接到一起, 通过路由器进行组网;

2. 广域网WAN(Wide Area Network):

把很多的局域网进一步相连, 构成更复杂的网络体系;

二. 组建网络的基础设备

专门岗位: 网络管理员

1. 路由器

  • 路由器是一种网络设备,用于在不同网络之间传输数据包。它能够识别网络中的不同设备,并根据目标地址将数据包转发到正确的目标网络。
  • 路由器工作在网络层(OSI模型中的第三层),能够实现网络之间的连接和通信。
  • 它具有查找路由表、选择最佳路径、转发数据包等功能,使得数据能够在不同网络之间进行传输。

2. 交换机

  • 交换机是一种局域网设备,用于连接多台计算机并在它们之间传输数据。它能够识别连接到其端口的设备,并根据MAC地址转发数据包到正确的目标设备。
  • 交换机工作在数据链路层(OSI模型中的第二层),能够在局域网内部实现设备之间的快速数据交换。
  • 它具有学习MAC地址、构建转发表、实现数据的无碰撞转发等功能,使得局域网内的数据传输更加高效可靠。

三. 标识符

IP地址: 区分主机;
端口号: 区分主机商不同的程序或服务;

协议 (protocol)

通信双方, 对于通信规则一定双方认可的约定.
例如: 螺丝和螺帽, USB接口规格, 瓶盖规格, 语言的交流.

进行网络通信的时候, 一定需要网络协议.

  • 因为两个通信的主机设备, 不同的硬件, 不同的操作系统需要协议整合.

一. 协议分层

  • 当单个的东西很复杂, 就拆分成多个部分, 部分太多的话就进行分类, 分类要解耦合.

1. 分层的好处

  • 达到封装的效果
    某一层协议, 不必知道其他层协议的细节, 降低学习使用的成本.

  • 任意层次的协议, 都可以灵活替换, 给整个网络体系, 升级迭代, 带来了很大的便利 ---- 解耦合.

2. OSI七层分层

OSI: 即 Open Sysrem Interconnection, 开放系统互连.
客观世界中不存在的.
在这里插入图片描述

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

OSI的简化, 即真实时间采取的网络分层模型.
目前能接触到的网络, 大部分都是 TCP/IP模型.
在这里插入图片描述

(1. 物理层(可不算)

硬件层面, 网线, 网口, 与数据链路层关系紧密.

(2. 数据链路层

关注的是, 通信过程中, 两个相邻节点之间的通信.

(3. 网络层

关注的是通信路径的规划, 数据要经过哪些节点.

(4. 传输层

关注的是通信双方的 “起点” 和 “终点”, 端到端的传输.

(5. 应用层

与具体 程序 直接相关, 传输数据的用途.
将 应用层, 表示层, 会话层 合并.

4. OSI 与 TCP/IP模型

在这里插入图片描述

下四层的协议都是系统内核实现好的.
对于JAVA程序员, 重点关注的就是 应用层 + 传输层.

笔试题(选择):
路由器, 是工作在上述协议的哪一层;
交换机, 是工作在上述协议的哪一层;

路由器工作在网络层 (三层转发);
交换机工作在数据链路层 (二层转发);

但是现在不断完善路由器和交换机的功能, 界限也越来越模糊了, 有些 路由器/交换机 能工作在应用层.

二. 协议层与层之间的配合

协议的层与层之间
上层协议调用下层协议,
下层协议给上层提供服务.

封装分用

(1. 封装操作

网络上数据的传输, 本质上是(二进制 bit 流)字符串.
因此, 要传输的发送人, 接收人, 消息时间, 内容 都要组织到一个字符串内. 组织的时候需要一定的格式, 不同的协议, 数据组织的格式是不同的.

我们所发的信息本身是一个结构化数据(包含很多属性),需要先转成字符串.

  • 序列化: 结构化数据 ==> 字符串/二进制字符串.
  • 反序列化: 字符串/二进制字符串 ==> 结构化数据.
  1. 创建应用层数据包

    当应用层数据包有了之后, 程序就要调用系统的 api 让应用程序去调用.接着把应用层数据交给传输层.
    在这里插入图片描述

  2. 传输层拿到应用层数据包
    典型的协议有两个: “TCP, UDP”
    进一步封装数据包, 构造成传输层数据包. 在传输层.

  • UDP 数据包
    在这里插入图片描述
    TCP同上
    报头中则放入的是 UDP的相关属性, 比如发件人和收件人的端口号;
    后面的则是 UDP 数据包的载荷(payload);
    进一步调用网络层的api, 把上述的 IP数据包, 交给网络层协议;
  1. 网络层拿到数据包
    典型的协议: “IP协议”
  • IP 数据包
    在这里插入图片描述
    IP报头包含 收件人的IP地址 和 发件人的IP地址;
    IP报头后则是IP数据包的载荷;
    此时还是在此台机器上进行操作;
    之后进一步调用数据链路层的api, 把上述的 IP数据包, 交给数据链路层协议;
    这里的 api 往往是网卡的驱动程序提供的.
  1. 数据链路层拿到数据包
    典型协议: “以太网”
    “以太” 的原本是 物理学中 被称作 真空中光传播的介质, 此处传输网络数据也需要介质, 则把这个名称拿来用了.
    我们电脑通过有线网传输数据的协议, 就是 “以太网” 协议, 网线则被称作 “以太网线”.
  • 以太网数据帧
    在这里插入图片描述
    上述的以太网数据帧, 本质上还是二进制数据.
  1. 物理层
    硬件设备
    硬件设备把上述的二进制数据转换成 光信号/电信号/电磁波 才会真正的发射.

    发射后也并非直接从 A 到达 B , 而是先到达与A 相连的交换机/路由器.
    数据经过 交换机/路由器 一系列转发后, 最终到达 B

上述层层包装数据, 不同的添加数据报头的过程, 被称为 “封装”

(2. 分用操作

B 方操作

  1. 物理层
    收到一系列光信号, 把这些信号转换成二进制数据, 交给数据链路层

  2. 数据链路层 (以太网协议)
    按照以太网协议, 对数据进行解析(解析报头关键信息, 为后续传输和转发打下基础, 拿到数据载荷数据).
    在这里插入图片描述

  3. 网络层 (IP 协议)
    IP协议拿到IP数据包, 按照协议格式进一步解析, 解析报头中的关键信息, 取出载荷, 把载荷再交给传输层.
    在这里插入图片描述

  4. 传输层 (UDP/TCP)
    在这里插入图片描述

  5. 应用层
    程序拿到应用数据包
    在这里插入图片描述
    按照程序的协议格式, 进行解析(反序列化), 拿到这里的结构化数据, 显示到界面上.

中间的路由器, 交换机也会进行封装分用, 不过交换机封装分用到数据链路层, 即可知道下一步如何转发了, 路由器, 封装分用到网络层, 即可知道下一步如何转发了


完…

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

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

相关文章

从零开始:手把手教你使用Python实现PDF到Excel的转换

来百 在日常工作和学习中,我们经常会遇到需要将PDF文件中的数据提取到Excel表格中的情况。可能是为了进行数据分析、报告生成或者其他目的。虽然手动复制粘贴是一种方法,但对于大量的数据来说,这种方式显然效率太低。幸运的是,Py…

摸鱼大数据——Hive基础理论知识——Hive基础架构

1、Hive和MapReduce的关系 1- 用户在Hive上编写数据分析的SQL语句,然后再通过Hive将SQL语句翻译成MapReduce程序代码,最后提交到Yarn集群上进行运行 2- 大家可以将Hive理解成有道词典,帮助你翻译英文 2、Hive架构 用户接口: 包括 CLI、JDBC/…

ISCC——AI

得到一个T4.pyc 回编译一下 得到下面代码 import base64def encrypt_and_compare(user_input, offset_str, target_base64):if len(user_input) ! 24:return Please enter a string with a length of 24encrypted Nonefor i, char in enumerate(user_input):offset int(off…

自然资源-各级国土空间总体规划的审查要点及流程总结

自然资源-各级国土空间总体规划的审查要点及流程总结 国土空间规划是对一定区域国土空间开发保护在空间和时间上作出的安排,包括总体规划、详细规划和相关专项规划。 国土空间规划管理是国土空间规划中重要的一环。中共中央、国务院发布《关于建立国土空间规划体系…

C++ Primer Plus第十八章复习题

1、使用用大括号括起的初始化列表语法重写下述代码。重写后的代码不应使用数组ar。 class z200 { private:int j;char ch;double z; public:Z200(int jv,char chv,zv) : j(jv), ch (chv), z(zv){} };double x 8.8; std::string s "what a bracing effect ! …

添砖Java(十一)——常见类的使用Object,Math,System,BigDeciaml,包装类

目录 object: toString: equals: ​编辑 Math:​编辑 System: BigDecimal: 基本数据的包装类:​编辑 object: 我们知道,所有的类都是间接或直接继承了object类。然后object里面有几个用得很多的方法…

使用printf的两种方法,解决printf不能使用的问题

使用printf的两种方法,解决printf不能使用的问题 一、微库法 我们使用printf前要加上重定向fputc //重定义fputc函数 int fputc(int ch, FILE *f) { while((USART1->SR&0X40)0);//循环发送,直到发送完毕 USART1->DR (uint8_t) ch; return…

【JVM实践与应用】

JVM实践与应用 1.类加载器(加载、连接、初始化)1.1 类加载要完成的功能1.2 加载类的方式1.3 类加载器1.4 双亲委派模型1.5自定义ClassLoader1.6 破坏双亲委派模型2.1 类连接主要验证内容2.2 类连接中的解析2.3 类的初始化3.1 类的初始化时机3.2 类的初始化机制和顺序3.2 类的卸…

RedHat9 | DNS剖析-配置辅助DNS服务器

一、实验环境 1、辅助域名DNS服务器 DNS通过划分为若干个区域进行管理,每一个区域由1台或多台DNS服务器负责解析,如果仅仅采用1台DNS服务器,在DNS服务器出现故障后,用户将无法完成解析。 辅助DNS服务器的优点 容灾备份&#x…

Star-CCM+中滞环的实现—场平均监视

前言 前文有介绍过通过更新事件来实现滞环,但是更新事件的方法比较繁琐,应用起来比较困难,本文将介绍一种简单的方法来实现滞环功能。即通过场平均监视来实现,具体方法如下: 一 创建场平均监视 首先在检测量下创建“场平均监视”,具体操作步骤如下图所示: 二 创建质量…

企业客户信息反馈|基于SprinBoot+vue的企业客户信息反馈平台(源码+数据库+文档)

企业客户信息反馈平台 目录 基于SprinBootvue的企业客户信息反馈平台 一、前言 二、系统设计 三、系统功能设计 1平台功能模块 2后台登录 5.2.1管理员功能 5.2.2客户功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&am…

如何使用DotNet-MetaData识别.NET恶意软件源码文件元数据

关于DotNet-MetaData DotNet-MetaData是一款针对.NET恶意软件的安全分析工具,该工具专为蓝队研究人员设计,可以帮助广大研究人员轻松识别.NET恶意软件二进制源代码文件中的元数据。 工具架构 当前版本的DotNet-MetaData主要由以下两个部分组成&#xf…

matlab 使用Otsu方法计算图像全局阈值

目录 一、概述1、算法概述2、主要函数3、参考文献二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述

Java----Maven详解

前言 Maven是Java项目的构建工具,通过项目对象模型(POM)管理项目配置信息,自动化构建、测试和部署过程。开发人员可定义项目结构、依赖和构建流程,提高开发效率和质量。本文介绍基本概念和用法,帮助您更好…

大工作量LUAD代谢重编程模型多组学(J Transl Med)

目录 1,单细胞早期、晚期和转移性 LUAD 的细胞动力学变化 2,细胞代谢重编程介导的LUAD驱动恶性转移的异质性 3,模型构建 S-MMR评分管线构建 4,S-MMR 模型的预后评估 5, 还开发了S-MMR 评分网络工具 6&#xff0c…

笔记89:LeetCode_135_分发糖果

前言: 注:代码随想录中没有很清楚的提起想出方法的思路,只是给出了解决这个问题的大致思路和代码;下面我将介绍一下我的思考过程,并贴出实现代码; a a a a 思考过程: 思路1:为了…

Hadoop3:HDFS中DataNode与NameNode的工作流程

一、DataNode中的数据情况 数据位置 /opt/module/hadoop-3.1.3/data/dfs/data/current/BP-823420375-192.168.31.102-1714395693863/current/finalized/subdir0/subdir0块信息 每个块信息,由两个文件保存,xxx.meta保存的是数据长度、校验和、时间戳&am…

【halcon】set_part 实现平移和缩放 彻悟版

背景 之前写了一篇关于set_part 的文章 ,确实也实现了平移和缩放。平移是对的,但是缩放其实有畸变。这个问题一直都困扰着我,知道昨天连续测试了好几个小时,直到晚上11点终于完美解决。 坐标和高宽 坐标 再讲set_part 之前&am…

C语言实现三子棋游戏

目录 一.三子棋游戏分析和设计 二.文件结构设计 三.代码实现 1.先打印菜单,定义menu函数。 2.棋盘初始化 3.下棋 玩家下棋: 电脑下棋: 4判断输赢 判断平局: 四、完整代码 test.c game.h game.c 《三子棋》是一款古老…