网络 基础

news2024/9/22 9:40:35

目录

1、协议:

2、OSI 七层 模型:

3、TCP/IP 五层 / 四层  协议  

3.1、为什么要有TCP / IP 协议? 

3.1.1、主机之间变远产生的问题: 

3.1.2、TCP/IP协议于操作系统的关系

4、局域网 

4.1、Mac

4.1.1 在Linux内使用指令  ifconfig   进行Mac地址的查看

4.2、数据碰撞  

4.3、封装与解包 

5、跨网络传输 与 IP

5.1 、在Linux内使用指令  ifconfig   进行Mac地址的查看

 5.2 、路由器与跨网络传输

5.3、跨网络运输也需要从上到下的封装和解包 

 6、IP和Mac的区别


1、协议:

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

2、OSI 七层 模型:

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型, 是一个逻辑上的定义和规范;
  • 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  •  OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七 个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
  • 但是, 它既复杂又不实用;

  •  其实在网络的角度,OSI定的协议七层模型是非常完善的,但是在实际操作的过程中,会话层、表示层、是不可能接入到操作系统的,且会话层、表示层的模型构造十分的复杂,具体表现不能用一层来进行实现,内部还需要进行多次的分层结构。
  • 所以最终在工程的实践中,最终落地的是五层协议。

3、TCP/IP 五层 / 四层  协议  

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇. TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

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

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

一般而言:

  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
  • 对于一台路由器, 它实现了从网络层到物理层;
  • 对于一台交换机, 它实现了从数据链路层到物理层;
  • 对于集线器, 它只实现了物理层;

但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发);

3.1、为什么要有TCP / IP 协议? 

首先,即使是单机,计算机的内部也是存在各种各样的协议,比如:其他设备和内存通信时会有内存协议;其他设备和磁盘进行通信,会有磁盘协议。

其次,网络通信的最大特点也是最大的问题:主机之间的距离变远了,任何通信特征的变化一定会带来新的问题,有问题就必须要解决问题,所以就需要产生新的协议。

3.1.1、主机之间变远产生的问题: 

1、如何将数据发送到路由器?

2、如何把数据发送到对应的主机上?(网络上主机太多了,如何进行定位要发送到的主机?

3、数据发送后,如果丢失了怎么办?

4、发送数据只是手段,不是目的,使用数据才是目的?接收到数据的主机将如何处理数据?如何使用数据?

以上都需要使用协议进行解决,所以TCP/IP协议的本质就是一种解决方案,而为什么需要有TCP/IP协议的原因就是主机之间的距离变远了。

3.1.2、TCP/IP协议于操作系统的关系

在TCP/IP 协议的五层分层模型中,传输层和网络层都是在操作系统内部进行实现的,所以网络层和传输层都必须要遵守TCP/IP协议栈的规矩,即便是两个不同的操作系统,它们内部的传输层和网络层都必须要遵守TCP/IP协议,因为这事关之后的网络通讯、操作系统互相通讯的问题。

4、局域网 

局域网(Local Area Network,简称LAN)是一种在有限区域内(如一个学校、一栋大楼、一个企业或一个家庭内部)将各种计算机、外设、数据库等互相连接起来,实现资源共享和信息交换的计算机网络。局域网具有覆盖范围小、传输速率高、误码率低、易于配置和管理等特点。

简单来说,局域网就是使用了同一个网络线路的,就是局域网

4.1、Mac

局域网是能够进行直接通信的,而在通信的过程中,每一台主机都需要有一个唯一的标识符:Mac

1、MAC地址(Media Access Control Address)是一个用于唯一标识网络上每个设备的物理地址

2、MAC地址是48位长的二进制数,以及6个字节,一般用16进制数字加锁冒号的形式来表示,例如:08:00:27:03:fb:19

3、在局域网中,当设备需要与其他设备通信时,它们会使用MAC地址来识别对方。

4、MAC地址主要用于局域网内的链路层通信,用来识别数据链路层中相连的节点;。当数据包从一台设备发送到另一台设备时,它们首先在局域网内使用MAC地址进行传输。

5、MAC地址是唯一的值,在出厂之前就设置好了,且是集成于网卡的,在计算机开机时,会根据协议将网卡内部的mac地址读取到操作系统中。

4.1.1 在Linux内使用指令  ifconfig   进行Mac地址的查看

4.2、数据碰撞  

以太网中,任何时刻,只允许一台机器向网络中发送数据

如果有多台同时发送,会发生数据干扰,我们称之为数据碰撞

所有发送数据的主机要进行碰撞检测和碰撞避免,例如:例如让发送数据的主机进行一段时间的休眠,同时休眠的时候,可以让其他的主机进行数据的发送。

没有交换机的情况下,一个以太网就是一个碰撞域

局域网通信的过程中,主机对收到的报文确认是否是发给自己的,是通过目标Mac地址判定

4.3、封装与解包 

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

对于每一层增加的封装,我们可以称作报头,当每一层的报头进入下一层后,这些报头会和数据 合体变成一个有效的荷载,而新一层的封装变成了新的报头。 

如上图所示,网络数据之间的传输正是从用户将数据输入应用层,随后由应用层开始进行一层一层的往下进行封装,直到数据链路层,通过局域网之间的Mac地址的联系将封装的数据进入另一个主机当中,由主机2的数据链路层开始,一层一层的往上将数据进行解包,直到另一个用户获取到,用户A输入的数据。 

这个过程看似简单,但实际上还是有问题产生的:那就是每一层解包报头后,剩下的有效荷载,应该交给上层哪一种协议? (每一层都有许多的协议,如下图所示)

5、跨网络传输 与 IP

  • IP协议有两个版本, IPv4和IPv6. 我们整个的课程, 凡是提到IP协议, 没有特殊说明的, 默认都是指IPv4
  •  对于IPv4来说, IP地址是一个4字节, 32位的整数;
  • 我们通常也使用 "点分十进制" 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个 字节, 范围是 0 - 255;

5.1 、在Linux内使用指令  ifconfig   进行Mac地址的查看

 

 5.2 、路由器与跨网络传输

跨网段的主机 的数据传输,这些传输的数据从一台计算机到另一台计算机 传输的过程需要经过一个或多个路由器,如下图所示: 

如果路由器要进行数据 的跨网络传输则至少需要集联两种网络,链接两个网络,所以路由器可以配上多张网卡,如下图所示,左边是以太网网卡,右边是令牌环网网卡。

5.3、跨网络运输也需要从上到下的封装和解包 

如图所示,传递数据要 有 起始地址 和 最终的地址,这两个地址都在报文内部。

数据从上到下要进行封装,也就是添加报头,但是在网络层还需要进行一个操作,就是路由操作。

因为要进行跨网络操作传输操作,所以传输的数据 并不是传输给当前局域网内部的,所以它会把数据推送给路由器

路由的操作并不是判断数据该去哪里,而是判断数据最终进入的地方是否是当前局域网内部

但是数据也并不是直接由路由操作从网络层交给路由器,而是先向下进行交付继续封装,也就是添加报头。

且这个报头内部要添加路由器网卡地址,然后将整个报文进入当前局域网,让路由器进行接收

然后让路由器确认报文,让路由器的网络层进行解包。

同时路由器的网络层 也需要进行一个路由的功能,当查询到数据要进入的地址是另一个直连的网段,则会解包后的报文,再度进行封装,然后传递给另一个局域网,让那个局域网对报文进行解包。

 6、IP和Mac的区别

 1、唯一性:

  • IP地址:在全局范围内(除非使用私有地址)必须是唯一的,但可以被管理员更改或重新分配。
  • Mac地址:每个网络设备的Mac地址都是唯一的,且不可更改,由制造商在设备制造时分配。

 2、可变性:

  • IP地址:具有可变性,可以根据需要进行更改或重新分配。
  • Mac地址:具有固定不变性,一旦分配就不能被用户更改。

 3、层次与位置:

  • IP地址:位于网络层,用于标识逻辑网络上的设备和主机,支持跨网络通信。
  • Mac地址:位于数据链路层,主要用于标识局域网内的物理设备,不能跨越不同网络。

 4、长度与表示:

  • IP地址:目前主流是32位长(IPv4),也有128位长(IPv6),通常用十进制点分表示法表示。
  • Mac地址:由48位二进制数组成,通常用16进制表示,并且通常以冒号分隔的六组两位16进制数表示。

5、表示形式: 

  • IP地址:IP 表示的是传输的数据 最终抵达的地址
  • Mac地址:Mac 表示的是传输的数据 需要进入的下一个阶段时,该阶段所处在的地址

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

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

相关文章

leetCode - - - 哈希表

目录 1.模拟行走机器人(LeetCode 874) 2.数组的度(LeetCode 697) 3.子域名访问次数(LeetCode 811) 4.字母异位词分组(LeetCode 49) 5.小结 1.常见的哈希表实现 2.遍历Map 1.模…

基于Java中的SSM框架实现医院收费系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现医院收费系统演示 摘要 随着医疗体制改革的不断深入,医院收费系统成为医院信息化建设的重点内容。医院收费系统是利用计算机、网络技术和数据库技术,实现病人在医疗机构的诊疗信息的电子化存储、传递和分析,从而提高…

[Meachines] [Medium] Mango PHP弱比较绕过+MongoDB注入+TRP00F自动化权限提升+JJS权限提升

信息收集 IP AddressOpening Ports10.10.10.162TCP:22,80,443 $ nmap -p- 10.10.10.162 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-host…

<数据集>快递识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:5382张 标注数量(xml文件个数):5382 标注数量(txt文件个数):5382 标注类别数:1 标注类别名称:[Box-Packet] 序号类别名称图片数框数1Box-Packet53828965 使用标注工…

8.15-配置mysql5.7环境+使用python管理数据库+使用中间件mycat配置读写分离

一、配置mysql5.7的环境 1.基础配置 # 将mysql5.7的包拖入xshell [rootmysql_5 ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ​ # 解压 [rootmysql_5 ~]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ​ # 备份文件 [rootmysql_5 ~]# cp…

短说V4.2.0测试版发布|字体更换、小名片及个人中心UI更换

Hi 大家好, 我是给你们带来惊喜的运营小番茄。 本期更新为短说V4.2.0测试版,本次更新涉及平台有H5、App、微信小程序。 4.2.0版本除功能优化外,新增了如下功能: 一、新增功能 通用版: ①全站默认字体全部更换为…

淘宝到一个墨水屏,成功实现显示经历记录

一,淘一个墨水屏的原因 在一些小的PCB设计和编程中发现,许多程序控制运行情况如果能够显示出来,会很完美。大学时期使用LCD1602(经典)显示了一个称重传感器的课程设计,后来尝试OLED显示。在过程中发现墨水…

【嵌入式linux开发】智能家居入门5(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派)

智能家居入门5(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派) 前言一、QT界面设计二、云平台产品创建与连接三、下位机端QT代码总览:四、微信小程序端代码总览五、板端测试 前言 前四篇智能家居相关文章都是使用STM32作为主控&#xf…

报表的多行业应用!用工具做报表省了我不少事...

一、什么是报表? 说起报表,你不会还停留在Excel报表的层面上吧? 传统的报表一般都是基于Excel制作的,主要面向业务人员、开发人员等,也有一些公司会自己去开发设计,只不过周期较长,耗费人力多。…

端到端自动驾驶落地挑战与驱动力

1、端到端的发展驱动力 1.1 对标驱动:特斯拉FSD的标杆作用吸引行业关注 大部分行业专家表示,特斯拉FSD v12的优秀表现,是端到端自动驾驶这一技术路线快速形成大范围共识的最重要的推动力;而在此之前,从来没有一个自动…

C#模拟量线性变换小程序

1、一步步建立一个C#项目 一步步建立一个C#项目(连续读取S7-1200PLC数据)_s7协议批量读取-CSDN博客文章浏览阅读1.7k次,点赞2次,收藏4次。本文详细介绍了如何使用C#构建一个项目,通过S7net库连接并连续读取S7-1200 PLC的数据,包括创建窗体应用、配置存储位置、安装S7net库…

服务器端请求伪造漏洞

1.客户端请求 客户端请求指的是由客户端设备(如个人计算机、智能手机、平板电脑等)或软件(浏览器、各种APP)发出的请求,以获取指定的网页、图片、视频或其他资源。比如当用户在浏览器中输入URL或点击链接时,浏览器会自动发起HTTP请求,请求服…

Python | Leetcode Python题解之第335题路径交叉

题目&#xff1a; 题解&#xff1a; class Solution:def isSelfCrossing(self, distance: List[int]) -> bool:n len(distance)# 处理第 1 种情况i 0while i < n and (i < 2 or distance[i] > distance[i - 2]):i 1if i n:return False# 处理第 j 次移动的情况…

【语义通信】灵(Genie)——6G的第四维元素

6G 不仅包含 5G 涉及的人类社会、信息空间、 物理世界&#xff08;人、机、物&#xff09;这 3 个核心元素&#xff0c;还第四维元素—灵&#xff08;Genie&#xff09;。Genie存在于虚拟世界体系&#xff0c;虚拟世界体系包括&#xff08;VPS, VBS, VSS&#xff09;&#xff0…

BvSP_ Broad-view Soft Prompting for Few-Shot Aspect Sentiment Quad Prediction

中文题目: 英文题目: BvSP: Broad-view Soft Prompting for Few-Shot Aspect Sentiment Quad Prediction 论文地址: aclanthology.org/2024.acl-long.460.pdf 代码地址: https://github.com/byinhao/BvSP 论文级别&#xff0c; 单位: (2024 ACL long paper) 南开大学&#xff0…

写给大数据开发:如何解决拖延

你是否曾面对一个复杂的Spark任务&#xff0c;明知它对项目至关重要&#xff0c;却总是找各种理由推迟动手&#xff1f;或者&#xff0c;你有没有在面对一堆待优化的Hive查询时&#xff0c;选择先去重构那个"并不那么紧急"的Python脚本&#xff1f; 如果你点头了&am…

faceswap安装

目录 简介下载地址安装clone代码安装conda配置和安装 启动其他 简介 Faceswap 是领先的免费开源多平台 Deepfakes 软件。由 Tensorflow、Keras 和 Python 提供支持&#xff1b;Faceswap 将在 Windows、macOS 和 Linux 上运行。支持CPU运行&#xff0c;无独显也能跑。 下载地址…

language model

1、language model&#xff08;LM&#xff09;&#xff1a;估计token序列的可能性 2、对于HMM&#xff0c;固定需要P(Y)才符合公式&#xff1b;对于LAS&#xff0c;加上P(Y)能够使效果更好 P(Y|X)需要成对的数据&#xff0c;而P(Y)不需要成对&#xff0c;所以可以得到很多数据 …

Git使用教程介绍 - 1.Git 起因和背景

对于git的整体运作体系和更多的基本操作和概念并不是非常熟悉&#xff0c;因此恶补一番&#xff0c;把自己的成果和理解整理为一个git使用系列。 我也会不断更新该系列&#xff0c;与大家共勉&#xff0c;也是自我学习迭代的过程。 更多技术文章&#xff0c;全网首发公众号 “…

pytorch库 05 PyTorch深度学习实践笔记

文章目录 一、基本概念1、深度学习流程2、感知机结构与人工神经网络结构3、反向传播&#xff08;Back Propagation&#xff09;导学 二、线性模型1、线性模型计算流程2、代码实现3、小练习 三、梯度下降算法1、梯度下降计算流程2、代码实现3、随机梯度下降&#xff08;SGD&…