网络基础

news2024/12/23 14:38:59

文章目录

    • 网络发展
    • 协议
    • 网络分层结构
    • 局域网通信
    • IP地址和MAC地址

网络发展

  • 独立模式: 计算机之间相互独立 ; 网络互联: 多台计算机连接在一起, 完成数据共享
  • 因为人和人之间数据要互相协作,所以网络的出现是必然的,同时随着网络发展,必然会产生新的物理级别的设备

协议

"协议"是一种约定,计算机协议就是计算机之间的约定,目的是减少通信时的沟通成本

网络分层结构

  • 软件分层
    软件分层是一种常用的组织代码的方式,它将一个软件系统分解成多个层次,每个层次都有自己的职责和功能。层与层之间是松耦合的,可以随时替换,方便维护。

  • 网络分层(为什么要存在网络协议?为什么要协议分层?)
    因为互联网通信双方的距离变远了,必定会引发新的问题:
    1.如何使用数据的问题
    2.可靠性问题(数据丢包或顺序不一致)
    3.主机定位的问题
    4.数据包局域网转发的问题
    为了解决这些问题,有人提出了网络协议,所以网络协议本质是一个解决方案,如何衡量一个方案的好与坏?好的方案一定要方便维护且可扩展,所以网络协议就是层状结构

  • OSI七层模型

分层名称功能每层功能概览
应用层针对特性应用的协议针对每个应用的协议
表示层备固有数据格式和网络标准数据格式的转换接收不同表现形式的文件,如文字流、图像、声音等
会话层通信管理。负责建立和断开通信连接。管理传输层以下的分层何时建立连接,合适断开连接以及保持多久的连接
传输层管理两个节点之间的数据传输负责可靠传输(确保数据被可靠的传送到目标地址)是否有数据丢失
网络层地址管理与路由选择经过哪个路由传递到目标地址
数据链路层互联设备之间传送和识别数据帧数据帧与比特流之间的转换
物理层用‘0’和‘1’表示高低电压,灯光的闪灭比特流与电子信号的转换、连接器与网线的规格

因为OSI七层模型复杂又不实用,所以实际中用的是TCP/IP五层(或四层)模型

  • TCP/IP五层模型

    物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
    数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
    网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
    传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
    应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

在这里插入图片描述
互联网因为通信双方距离变远,引发的问题:
1.如何使用数据的问题 ------ 应用层
2.可靠性问题(数据丢包或顺序不一致) ------ 传输层
3.主机定位的问题 ------- 网络层
4.数据包局域网转发的问题 ------- 数据链路层

物理层我们考虑较少,因此很多时候也可以称为TCP/IP四层模型

  • 网络和OS之间的关系

在这里插入图片描述
在这里插入图片描述
windows和linux操作系统在系统上可能有很多差别,但在网络上,双方必须使用相同的数据类型,所以经过传输,对方一定认识每个字段的大小,含义,这样不同系统之间就可以进行网络通信了。
世界上所有的操作系统只要想入网,就必须遵守TCP/IP协议,保证不同主机之间的数据通信
所以站在语言角度,协议就是双方都能识别的结构体数据类型

局域网通信

局域网中的任意两台主机可以直接通信
每台主机都有网卡,每张网卡都有自己的地址,即MAC地址,MAXC地址标示网卡的唯一性

  • 以太网
    任何时刻只允许一台主机在局域网中发送消息,通过碰撞域和碰撞检测来完成通信的。

OS和网络一统:局域网是一个临界资源

应用层数据通过协议栈发送到网络上时,报文不断被自顶向下交付的过程中,要添加每一层的协议报头,叫做封装。
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
在这里插入图片描述
解包和分用:任何协议(特殊情况暂不考虑)

  • 1.同层协议将包头和有效载荷进行分离
  • 2.将有效载荷交付给上层协议,所以协议中要有表明上层协议的字段

在这里插入图片描述
逻辑上,同层协议都可以认为自己在和对方直接通信
在这里插入图片描述
所有的主机协议在数据链路层可能不一致,但只要到了网络层以上,所有协议都是一样的,网络层屏蔽掉底层的差异,所以在互联网中只需要使用IP地址即可,所以互联网也叫做IP网

IP地址和MAC地址

我们所讲的IP,但凡没有说明,默认都是IPv4

  • IP地址在IP协议中,用来标示网络中不同主机的地址
  • 对于IPv4来说,IP地址是一个4字节的32位整数
  • 通常也使用点分十进制的字符串表示IP地址

MAC地址用来识别数据链路层中相连的节点
长度为48位6个字节,一般用16进制数字加上冒号的形式来表示
MAC地址通常是唯一的,且MAC地址只在局域网中使用

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

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

相关文章

yt-dlp:强大的跨平台视频下载器

一、引言 在当今数字时代,视频已成为我们获取信息和娱乐的重要途径。然而,由于版权和网络限制,我们常常无法直接在本地保存我们喜爱的视频。幸运的是,有一个名为yt-dlp的命令行程序,它可以帮助我们从YouTube.com和其他…

NoSQL-Tidis支持分布式事务,兼容redis协议,使用tikv存储引擎,可水平扩展

项目repo地址 GitHub - yongman/tidis: Distributed transactional NoSQL database, Redis protocol compatible using tikv as backend Tidis是分布式数据库,支持redis协议,多种数据结构支持,编写语言为golang。 Tidis工作角色类似于TIDB,提供协议转换和数据结构计算,底…

Jenkins教程-3-github自动化测试任务构建

上一小节我们学习了Jenkins在windows和mac系统上安装搭建环境的方法,本小节我们讲解一下Jenkins构建github自动化测试任务的方法。 接下来我们以windows系统为例,讲解一下构建实际自动化测试任务的具体步骤。 安装git和github插件 点击进入Jenkins插件…

自杀行为的神经生物学认识

自杀行为的神经生物学认识 编译 李升伟 隐藏在自杀行为背后的大脑生化机制正引领人类对自杀的认识从黑暗步入光明。科学家希望未来这些机制能带来更好的治疗和预防策略。 基斯 • 范希林根(Cornelis Van Heeringen)第一次遇见瓦莱丽( Va…

dmhs同步因目的端表自增列报错解决方法

dmhs同步因目的端表自增列报错解决方法 1 dmhs copy 装载数据时报错 HY000 CODE:-27232 配置源端捕获器cpt 1 dmhs copy 装载数据时报错 HY000 CODE:-2723 ERR:Only if specified in the column list and SET IDENTITY INSERT is ON, then identity column could be assigned …

04-对原生app应用中的元素进行定位

本文介绍对于安卓原生app应用中的元素如何进行定位。 一、uiautomatorviewer uiautomatorviewer是Android-SDK自带的一个元素定位工具,非常简单好用,可以使用该工具查看app应用中的元素属性,帮助我们在代码中进行元素定位。 1)使…

oracle12c到19c adg搭建(三)oracle19c数据库软件安装

由于这里的19c是做备库所以我们只安装软件不用创建实例,实例由主库同步过来 解压软件到安装目录 注意19c得db要直接解压到19c得软件安装目录 [rooto12u19p software]# ls V982063-01.zip [rooto12u19p software]# ls -ll total 2987996 -rw-r--r-- 1 root ro…

第二证券:英伟达“利空”?!黄仁勋逢高又卖超2亿

时隔9个月,黄仁勋再次套现英伟达,股价小幅下跌。 当地时间6月17日周一,美股三大股指全线收涨。到收盘,道指涨0.49%,纳指涨0.95%,标普500指数涨0.77%。 英伟达CEO黄仁勋时隔9个月再度出售英伟达股票。最新…

netty服务端与客户端的启动流程

如图所示,右侧是服务端Server,左侧是客户端Client 要点说明: 1.在Server中,在NioEventLoopGroup()中,会有1个selector和线程在不断循环,等待是否有accept事件,在accept事件发生后,才…

所以spring mvc异常处理工作原理是啥

文章目录 spring mvc异常处理(源码分析)概述原理(源码角度)模拟debug前期提要分析4个map4个map的初始化为什么需要基于mappedMethods缓存 总结一下 spring mvc异常处理(源码分析) 概述 spring mvc有下面三…

ubuntu 18.04 安装vnc

如何在Ubuntu 18.04安装VNC | myfreax sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt install tigervnc-standalone-server tigervnc-common vncserver sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt ins…

kotlin数组

1、kotlin中的数组与java数组比较: 2、创建 fun main() {// 值创建val a intArrayOf(1,2,3)// 表达式创建val b IntArray(3){println("it: ${it}")it1}println("a数组:${a.contentToString()}, 长度:${a.size}")prin…

乡村养老服务管理系统的设计

管理员账户功能包括:系统首页,个人中心,医疗人员管理,乡村志愿者管理,文娱活动管理,活动报名管理,医疗保健管理 前台账户功能包括:系统首页,个人中心,文娱活…

【vue baidu-map】解决更新数据,bm-marker显示不完全问题

实现效果&#xff1a; 问题&#xff1a;切换上面基地tab键&#xff0c;导致地图图标展示不完全&#xff1b;刷新页面就可以正常展示。判断是<bm-marker>标记元素没有动态刷新dom元素引起的问题。 方案&#xff1a;this.$nextTick({}) this.$nextTick(()>{this.equipm…

多网页登录Cookie免登通俗理解

背景&#xff0c;现在有A、B两个系统&#xff0c;其中B是乾坤框架的微前端&#xff0c;里面又有若干可以单独运行的系统C、D、E、F&#xff0c;现在的目标是&#xff0c;如果没有登录过其中任一系统&#xff0c;则需要跳转登录页登录&#xff0c;登录后&#xff0c;所有的A-F都…

threejs材质的贴图(四)

效果 代码实现 import ./style.css import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls.js//相机轨道控制器 import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader.js"//加载hdr文件作为环境贴…

如何训练AI大模型?熬夜爆肝整理大全

随着人工智能技术的快速发展&#xff0c;大型预训练模型在自然语言处理、计算机视觉、语音识别等领域取得了显著成果。这些模型通过在海量数据上进行预训练&#xff0c;能够捕捉到丰富的特征信息&#xff0c;为各种下游任务提供强大的支持。然而&#xff0c;训练AI大模型面临着…

船舶能源新纪元:智能管理引领绿色航运潮流

在蓝色的大海上&#xff0c;无数船只乘风破浪&#xff0c;为全球的贸易和文化交流贡献着力量。然而&#xff0c;随着环保意识的提升和可持续发展的要求&#xff0c;船舶的能源消耗和排放问题逐渐成为了人们关注的焦点。在这个关键时刻&#xff0c;船舶能源管理系统应运而生&…

山体滑坡监测利器:传感器与智能监测平台的应用

山体滑坡&#xff0c;这一地质灾害的代名词&#xff0c;指的是山坡上的土体或岩体在重力作用下&#xff0c;因自然或人为因素而向下滑动的现象。滑坡具有突发性、隐蔽性、危害性和破坏性等特征&#xff0c;因此&#xff0c;对于山体滑坡的监测工作显得尤为重要。本文将探讨山体…

鸿蒙开发网络管理:【@ohos.request (上传下载)】

上传下载 说明&#xff1a; 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import request from ohos.request;限制与约束 默认支持https&#xff0c;如果要支持http&#xff0c;需要在config.json里…