计算机网络基础

文章目录

    • 网络协议初识
      • 协议分层
        • OSI七层模型
        • TCP/IP五层协议
    • 网络传输基本流程
      • 网络传输流程
      • 数据包装和分用
        • 封装过程
        • 分用过程
    • 网络中的地址管理
      • IP地址
      • MAC地址

网络协议初识

  协议是一种约定。

协议分层

  分层之后,每一层只关注自己同层的功能,只使用下层的接口,任何一层出现问题,都不会直接影响另一层,减少开发者后期的维护成本。符合高内聚,低耦合的特性。

OSI七层模型

  OSI七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  把网络从逻辑上分为了7层,每一层都有相关、相对应的物理设备,比如路由器,交换机;
  OSI七层模型是一种框架性的设计方法,主要功能是帮助不同类型的主机实现数据传输;
  它的优点是将服务、接口和协议这三个概念区分开,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

分层名称功能
应用层针对特定应用的协议
表示层设备固有的数据格式和网络标准数据格式的转换
会话层通信管理。负责建立和断开通信链接(数据流动的逻辑通路),管理传输层以下的分层
传输层管理两个节点之间的数据传输。负责可靠传输,确保数据被可靠的传送到目标地址
网络层地址管理和路由选择
数据链路层互联设备之间传送和是被数据帧
物理层以0、1代表电压的高低、灯光的明灭。界定链接器和网线的规格

TCP/IP五层协议

  TCP/IP是一组协议的代名词,它包括了许多协议,组成了TCP/IP协议簇,TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
  物理层:负责光/电信号的传递方式,物理层的能力决定了最大传输速率、传输距离、抗干扰性等。
  数据链路层:负责设备之间的数据帧的传送和识别。
  网络层:负责地址管理和路由选择。
  传输层:负责两台主机之间的数据传输。
  应用层:负责应用程序间的沟通。
  实际上TCP/IP五层协议就是讲OSI七层协议中的应用层、表示层、会话层合并成了一个应用层。
在这里插入图片描述

网络传输基本流程

网络传输流程

  每一层都会把上层交付给自己的数据,作为自己的有效载荷,并在有效载荷前加上自己的协议报头。
  在某一层中,自己的协议报头+上层交付的有效载荷,就构成了该层要发送的报文,这个就被称为封装。
  在逻辑上,同层协议都认为自己在和对方的同层协议进行通信,譬如发送方的传输层在逻辑上认为自己是在和接收方的传输层通信。因为只有同层协议能够相互认识对方的报头。
  每一层协议都需要具备能够将报头和有效载荷进行分离,并且将有效载荷交付给上一层的能力。
在这里插入图片描述
在这里插入图片描述

数据包装和分用

  不同的协议层对数据报有不同的称谓,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧。
  应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装。
  首部信息中包含了一些类似于首部有多长,载荷有多长,上层协议是什么等信息。
  数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的上层协议字段将数据交给对应上层协议处理。

封装过程

在这里插入图片描述

分用过程

在这里插入图片描述

网络中的地址管理

IP地址

  IP协议有两个版本,IPv4个IPv6,IPv6是IPv4的升级,但是我们默认情况下说IP协议都是指IPv4。
  IP地址在IP协议中用来表示网络中不同主机的地址。
  对于IPv4来说,IP地址是一个4字节,32位的整数。而IPv6则是128位。
  我们通常使用点分十进制来表示IP地址。就是192.168.0.1这种形式,每个数字的取值范围是0~255

MAC地址

  MAC地址就是电脑的物理地址,每台电脑有且仅有一个MAC地址,这个地址全球唯一,一共48位,也就是6个字节,一般用16进制数字加上冒号的形式来表示。
  MAC地址用来识别数据链路层中相连的节点。

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

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

相关文章

卷积神经网络实现MNIST手写数字识别 - P1

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍦 参考文章:365天深度学习训练营-第P1周:实现mnist手写数字识别🍖 原作者:K同学啊 | 接辅导、项目定制🚀 文章来源:K同…

【Hystrix技术指南】(1)基本使用和配置说明

这世间许多事物皆因相信而存在,所以人们亲手捏出了泥菩萨,却选择坚定的去信仰它。 分布式系统的规模和复杂度不断增加,随着而来的是对分布式系统可用性的要求越来越高。在各种高可用设计模式中,【熔断、隔离、降级、限流】是经常被…

一个好的人力资源管理系统包括哪些部分

阅读本文,您将具体详细了解:一个好的人力资源管理系统应该包括哪些部分。 人事部门是一家公司重要的职能部门之一,为公司的持续性、健康性发展提供人力保障。 然而,目前传统的人事管理方式在应对一些问题时存在着一些挑战。 例…

Shell脚本学习-循环的控制命令

break continue exit对比&#xff1a; 示例1&#xff1a;break命令跳出整个循环。 [rootabc scripts]# cat break1.sh #!/bin/bashfor((i0;i<5;i)) doif [ $i -eq 3 ]thenbreakfiecho $i done echo "ok"[rootabc scripts]# sh break1.sh 0 1 2 ok可以看到i等于3及…

jupyter lab环境配置

1.jupyterlab 使用虚拟环境 conda install ipykernelpython -m ipykernel install --user --name tf --display-name "tf" #例&#xff1a;环境名称tf2. jupyter lab kernel管理 show kernel list jupyter kernelspec listremove kernel jupyter kernelspec re…

微信小程序--原生

1&#xff1a;数据绑定 1&#xff1a;数据绑定的基本原则 2&#xff1a;在data中定义页面的数据 3&#xff1a;Mustache语法 4&#xff1a;Mustache的应用场景 1&#xff1a;常见的几种场景 2&#xff1a;动态绑定内容 3&#xff1a;动态绑定属性 4&#xff1a;三元运算 4&am…

C语言:打开调用堆栈

第一步&#xff1a;打断点 第二步&#xff1a;FnF5 第三步&#xff1a;按如图找到调用堆栈

C 语言高级3--函数指针回调函数,预处理,动态库的封装

目录 1.函数指针和回调函数 1.1 函数指针 1.1.1 函数类型 1.1.2 函数指针(指向函数的指针) 1.1.3 函数指针数组 1.1.4 函数指针做函数参数(回调函数) 2.预处理 2.1 预处理的基本概念 2.2 文件包含指令(#include) 2.2.1 文件包含处理 2.2.2 #incude<>和#include&q…

C++ 线性群体的概念

线性群体中的元素次序与其位置关系是对应的。 在线性群体中&#xff0c;可以按照访问元素的不同方法分为直接访问、顺序访问和索引访问。 &#xff08;1&#xff09;直接访问 对可直接访问的线性群体&#xff0c;我们可以直接访问群体中的任何一个元素&#xff0c;而不必首先访…

npm 报错 cb() never called!

不知道有没有跟我一样的情况&#xff0c;在使用npm i的时候一直报错&#xff1a;cb() never called! 换了很多个node版本&#xff0c;还是不行&#xff0c;无法解决这个问题 百度也只是让降低node版本请缓存&#xff0c;gpt给出的解决方案也是同样的 但是缓存清过很多次了&a…

Python中enumerate用法详解

目录 1.简介 2.语法 3.参数 4.返回值 5.详解 6.实例 7.补充 1.简介 enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列&#xff0c;同时列出数据和数据下标&#xff0c;一般用在 for 循环当中。 2.语法 以下是 enumerate() 方法的语…

Linux 匿名页的生命周期

目录 匿名页的生成 匿名页生成时的状态 do_anonymous_page缺页中断源码 从匿名页加入Inactive lru引出 一个非常重要内核patch 匿名页何时回收 本文以Linux5.9源码讲述 匿名页的生成 用户空间malloc/mmap(非映射文件时&#xff09;来分配内存&#xff0c;在内核空间发生…

【小梦C嘎嘎——启航篇】类和对象(中篇)

【小梦C嘎嘎——启航篇】类和对象&#xff08;中篇&#xff09;&#x1f60e; 前言&#x1f64c;类的6个默认成员函数构造函数析构函数拷贝构造函数拷贝构造函数的特性有哪些&#xff1f;既然编译器可以自动生成一个拷贝构造函数&#xff0c;为什么我们还要自己设计实现呢&…

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio构建SpringSecurity权限框架

1.Cloud Studio&#xff08;云端 IDE&#xff09;简介 Cloud Studio 是基于浏览器的集成式开发环境&#xff08;IDE&#xff09;&#xff0c;为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装&#xff0c;随时随地打开浏览器就能在线编程。 Clou…

Spring 知识点

Spring 1.1 Spring 简介 1.1.1 Spring 概念 Spring是一个轻量级Java开发框架&#xff0c;最早有Rod Johnson创建为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题Spring最根本的使命是解决企业级应用开发的复杂性&#xff0c;即简化Java开发。使现有的技术更加容易使…

Linux下进程的特点与环境变量

目录 进程的特点 进程特点的介绍 进程时如何实现并发性的 进程间如何切换 概念铺设 PC指针 上下文 环境变量 PATH 修改PATH HOME SHELL env 命令行参数 什么是命令行参数&#xff1f; 打印命令行参数 通过函数获得环境变量 getenv 命令行参数 env 修改环境变…

SpringBoot 项目使用 Redis 对用户 IP 进行接口限流

一、思路 使用接口限流的主要目的在于提高系统的稳定性&#xff0c;防止接口被恶意打击&#xff08;短时间内大量请求&#xff09;。 比如要求某接口在1分钟内请求次数不超过1000次&#xff0c;那么应该如何设计代码呢&#xff1f; 下面讲两种思路&#xff0c;如果想看代码可…

MySql用户管理、权限管理

用户管理 1. 查看系统用户&#xff08;查询mysql系统数据库中的user表&#xff09; select * from mysql.user; 2. 创建用户 CREATE USER 用户名主机名 identified by 密码 -- 创建用户zhonghua,只能在当前主句localhost访问,密码为123456 create user zhonghualocalhost i…

springCache-缓存

SpringCache 简介&#xff1a;是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;底层可以切换不同的cache的实现&#xff0c;具体是通过CacheManager接口实现 使用springcache,根据实现的缓存技术&#xff0c;如使用的redis,需要导入redis的依赖包 基于map缓存 …

MySQL 查询语句大全

目录 基础查询 直接查询 AS起别名 去重&#xff08;复&#xff09;查询 条件查询 算术运算符查询 逻辑运算符查询 正则表达式查询⭐ 模糊查询 范围查询 是否非空判断查询 排序查询 限制查询&#xff08;分页查询&#xff09; 随机查询 分组查询 HAVING 高级查询…