【网络编程】网络基础知识总结

news2024/11/26 15:34:39

文章目录

  • 一、局域网与广域网
  • 二、协议
    • 2.1 协议的概念
    • 2.2 协议分层
    • 2.3 数据传输的条件
  • 三、OSI七层模型
  • 四、TCP/IP五层(四层)模型
  • 五、网络传输
    • 5.1 预备知识——报头
    • 5.2 局域网通信原理
    • 5.3 以太网和令牌环网
    • 5.3 网络传输流程图
      • 5.3.1 同一网段的两台计算机的通讯过程
      • 5.3.2 不同网段的两台计算机通讯过程
    • 5.4 数据包的封装和分用
  • 六、IP地址与MAC地址

一、局域网与广域网

广域网(WAN),就是我们通常所说的Internet,它是一个遍及全世界的网络。

局域网(LAN),相对于广域网(WAN)而言,主要是指在小范围内的计算机互联网络。这个“小范围”可以是一个家庭,一所学校,一家公司,或者是一个政府部门。

文献常常提到的公网、外网,即广域网(WAN)
文献中常常提到私网、内网,即局域网(LAN)

那么怎么区分它们呢?

其实局域网和广域网的概念很模糊,它们是相对的概念。如果硬要区分的话可以看路由器,如果没有路由器就是局域网,需要路由器横跨就是广域网。

二、协议

2.1 协议的概念

首先要知道协议就是一种约定

在谈协议之前我们先来看一个场景:

我们知道计算机内部有很多组件,例如CPU、显卡、网卡……而它们在计算机内部是用线连接起来的。所以一台计算机内部本质上也是小型网络结构,在一台计算机内部设备和设备之间也存在协议,比方说驱动程序访问硬件就要通过协议。
而我们假设这些线足够长,把硬盘放到几百公里外,那么现在我们存储数据就由写入本地变成通过网络写入远端了,再把CPU等等都放到远处,相当于我们把一台计算机的各个功能用多台计算机构建起来,通过网络连接起来。由此得出结论:
计算机中 体系结构中有网络,网络中有体系结构。

我们要思考一个问题,我们学习系统的时候从来没有谈论过协议这个问题,那么为什么现在要讨论呢,因为多台主机距离较远,为了减少通信成本,所以需要协议。
所有的网络问题都是因为传输距离变长了。

举个例子理解一下什么是协议:

两个老太太用座机联系早上一起去种菜,而用座机接电话会花钱,她们就想了一个办法,响铃一声就挂了就表示该出发去种菜了。而如果真的有事的话就响三声,这样就减少了成本
所以这里响几声代表了不同的含义,而这个含义不用解释,双方已经达成了共识,这就叫做约定,而用计算机语言来说就叫做协议
举个例子在计算机中,一台主机想让另一台主机干一件事,可以先约定好只发送一个字节,不同的比特位代表要做什么事情,这样就减小了成本。

现在虽然有了协议,但是也有很多的计算机生产厂商、也有不同的操作系统……它们可能各自有各自的协议,所以这个时候就需要约定一个共同的标准,让大家都遵守,这就是网络协议(TCP/IP)

2.2 协议分层

什么是分层?
举个例子:

两个人用电话来联系,站在人的角度,是人和人之间在沟通,站在电话的角度,是电话与电话之间在沟通。这就叫做分层

分层有什么好处?

我们把软件进行模块化分,可以很好的进行解耦。而解耦了以后我们把通信设备进行更换,比如说用QQ电话进行沟通,上层不用改变;同样的上层语言改变,底层不用变。所以我们对任何一层进行修改并不会影响到其他层。

封层的依据是什么呢?

我们把功能比较集中、耦合度较高的的模块放在一层,也就是高内聚
而每一层都是要解决特定的问题。

2.3 数据传输的条件

1️⃣ 当两太很远的主机之间要传递数据,首先要先有传递一台主机数据的能力(数据包交付能力),然后一台一台的“蹦”到目标主机。
2️⃣ 要有路径选择的能力。有成千上万个主机,如果不知道给哪一台也不行。
3️⃣ 要有纠错的能力。如果出错了就要重新传递一份。
4️⃣ 要有数据解析能力。数据传递过去主机要识别这是什么,然后才能使用这个数据。

而这里的每一层都有自己的协议,每一层协议都解决当前层的问题。

三、OSI七层模型

OSI把网络从逻辑上分为了七层,每一层都有相关的物理设备。

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

在这里插入图片描述
但是, 它既复杂又不实用; 所以我们按照TCP/IP四层(除开物理层)模型来讲解。
在工程实践中把应用层表示层和会话层压缩成一层。

四、TCP/IP五层(四层)模型

分层序号分层名称功能例子
5应用层负责程序之间的沟通。简单的电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
4传输层负责两台主机之间的数据传输,能够确保数据能够可靠的从源主机发送到目标主机。传输控制协议(TCP),能够确保数据能够可靠的从源主机发送到目标主机。
3网络层负责地址管理和路由选择。IP协议中,通过ip地址来标识一台主机,并通过路由表的方式规划处两台主机之间的数据传输的线路。
2数据链路层负责设备之间的数据帧的传送和识别。网卡设备的驱动、数据差错效验等工作。
1物理层负责光 / 电信号的传递方式。物理层的能力决定了最大传输效率,传输距离,抗干扰性等。以太网通用的网线(双绞线),早期以太网使用的是同轴电缆。

上面我们说过数据传输的条件

数据链路层解决的是能够传递的问题,网络层解决的是选择路径的问题,传输层解决的是纠错的问题,而应用层就是解决数据解析的问题。

这里注意数据链路层中的网卡层是驱动程序的一部分。
网络层和传输层是操作系统内部自己实现的。所有的操作系统都一样,所以全球的主机都能互联。

这是一张OS层次图
在这里插入图片描述
可以看到跟上面讲的没什么区别。

在应用层传输层时间会有系统调用接口,主要是文件类的系统调用接口。

细节:
这里注意TCP和IP各自是传输层和网络层最具代表性的两个协议,这个协议栈命名为TCP/IP模型,足以看出这两个协议的重要性,它们的重要性是操作系统赋予的。

五、网络传输

5.1 预备知识——报头

上面我们讲的层状结构,每一层都会有协议,而每一个协议的最终表现就是报头
举个例子:

我们网购的时候,商家要把物品送到我们手上,但不是他们亲自送,而是交给快递公司,这就体现了分层的思想:
在这里插入图片描述
我们收件的时候不会单单只收到物品,还有快递盒和快递单。这个多出来的快递单就叫做报头

同样的,现在我们要发数据,发送的数据可能比我们想要的多一点,这多出来的一部分就是报头

再来想一想,那个快递单号是给谁看的呢?
答案是给快递员看的,这个快递单就是快递公司自己定的协议,这个快递单子在它们的物流体系中都能够被识别。

由此得出第二个结论:
协议通常是通过协议报头来表达的。每一份数据在每一层都要有自己的报头。

5.2 局域网通信原理

两台局域网的主机是能够直接通信的。

在讲原理之前先引入一个概念:

每一台主机都有自己的网卡,每一张网卡都有自己的地址,叫做MAC地址。就像我们的身份证一样,标识网卡的唯一性。
而MAC地址虽然全球唯一,但是不应用于全球,只是在局域网中标识自己的唯一。

指令:ifconfig
查看云服务器中的网络细节。
在这里插入图片描述
这里的MAC地址是个虚拟地址。

在局域网中有很多主机:
在这里插入图片描述
现在MAC1想要跟MAC7发送消息时,其他所有主机都能收到,但是其他主机在做协议判断发现并不是发给自己的,会自动丢弃。

5.3 以太网和令牌环网

以太网:
以太网就是一种具体的局域网。
以太网的通信方式就是上面局域网这种通信的方式:就是发出的消息所有人都能收到。
但是当MAC1想把消息发给MAC7,MAC3想把消息发给MAC5,但是它们不能同时发消息(数据覆盖)。
所以以太网发送消息的原则是只允许一个主机在任何一个时刻在局域网中发消息。否则就会发生碰撞,如果发生了碰撞就把消息作废然后重发。

所以我们站在系统的角度看待网络资源就是临界资源。

令牌环网:
而令牌环网的解决方式就是谁持有令牌环谁发送数据。没有令牌的主机就不能发送消息。就类似于系统中的锁

5.3 网络传输流程图

5.3.1 同一网段的两台计算机的通讯过程

接下来来看两台主机之间的数据传输:
在这里插入图片描述

5.3.2 不同网段的两台计算机通讯过程

在这里插入图片描述
一个设备至少要横跨两个网络,才能实现数据包跨网络转发,所以路由器必须要横跨两个网络,所以必须有两张网卡。

5.4 数据包的封装和分用

比方现在两个人用QQ在进行聊天,他们会认为他们是在用户层直接进行聊天,而事实上是数据向下交付(封装)在向上解包(分用)才实现的聊天。

数据包封装:
在向下交付的时候每一层都会添加自己的报头,报文=报头+有效载荷,再把报文向下交付。

数据包分用:
在向上解包的时候,因为同一层有相同的协议,所以能识别报头,它会解开报头,把有效载荷在向上解包。这样就形成了对称的结构

在这里插入图片描述

可以看到同层报头和有效载荷完全一样,左边怎么发的右边就是怎么收到的,所以可以认为在同层协议中直接通信;也可以理解为向下交付。

而对于不同网段的两台计算机通讯过程略有不同,不同的地方就在路由器部分:
在这里插入图片描述
它的流程图是这样,它在路由器部分传递给令牌环驱动程序的时候,加上的报头就是令牌环协议(重新封装),这样就跟左边不一样了,但是不影响上面的对称性。

简单理解一下路由器部分传输数据:就像我们脱了外套换了新的外套,但人没有变。

由此可得出IP层的作用就是屏蔽底层网络的差异。

一些概念:
不同的协议层对数据包有不同的称谓,在传输层叫做数据段,在网络层叫做数据报,在链路层叫做数据帧
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(报头),称为封装。

六、IP地址与MAC地址

在这里插入图片描述
IP协议有两个版本, IPv4和IPv6
上面的用4个节表示形式称为IPv4。
而IPv6就是用16个字节表示。

MAC地址通常在局域网使用,IP地址通常在广域网使用。

IP地址

1️⃣ IP地址是IP协议中,用来标识网络中不同主机的地址
2️⃣ 对于IPV4来说,IP是一个4字节,32位的整数
3️⃣ 我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255

MAC地址

1️⃣ MAC地址用来识别数据链路层中相连的节点,也叫物理地址
2️⃣ 长度为48位(6)个字节,一般用16进制数字加上冒号形式来表示(如: 08:00:27:03:fb:19)
3️⃣ 在网卡出厂时就确定了,不能修改。mac地址通常是唯一的

既然这两个都能表示地址,那么为什么要搞两个地址呢?
举个例子:

在西游记中,我们经常听到一句话,唐僧进过一个国家的时候,会跟首领说:贫僧从东土大唐而来,去往西天拜佛取经。而首领就会问他从哪里来的,再告诉他接下来该去哪:比方说:上一站是宝象国,下一站该去乌鸡国。

这里的东土大唐和西天就是IP地址,从始至终不会发生变化。
而宝象国和乌鸡国就是MAC地址,一直在变化。

IP地址提供的是方向
MAC地址提供的是可行路径

注意这里的MAC两个地址一定是挨着的,所以是同一个局域网。



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

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

相关文章

海岛旅行回忆总结(不定更)

文章目录 概述大辣甲岛外伶仃岛、东澳岛长洲、南丫岛下川岛 概述 喜欢大海,与海滩相比,海岛的空气更好、海水更靓、人更少、污染更少 海岛位置日期天气小结大辣甲岛惠州2017年7月29~30日台风前夕,云淡风轻,阳光猛烈开发程度低&…

分享2款CSS3母亲节主题寄语文字动画特效

目录 ❤️ 前言 第一款:妈妈您辛苦了! 一、效果图 二、代码实现 第二款:Mothers Day! 一、效果图 二、代码实现 ❤️ 祝福 ❤️ 前言 母亲节,在每年五月的第二个星期日,是用来感谢母亲的节日。…

SpringAOP

SpringAOP 一、AOP1. AOP简介1.1 AOP简介和作用1.2 AOP中的核心概念 2. AOP入门案例【重点】2.1 AOP入门案例思路分析2.2 AOP入门案例实现【第一步】导入aop相关坐标【第二步】定义dao接口与实现类【第三步】定义通知类,制作通知方法【第四步】定义切入点表达式、配…

阿里云g8i服务器Intel Xeon(Sapphire Rapids) Platinum 8475B

阿里云服务器ECS通用型实例规格族g8i采用2.7 GHz主频的Intel Xeon(Sapphire Rapids) Platinum 8475B处理器,3.2 GHz睿频,g8i实例采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固。阿里云百科分享阿里云服…

< C++ >lesson2.C++入门下

文章目录 1. 内联函数❤️1.1 内联函数的定义1.2 特性 2. auto关键字🤍2.1 auto简介2.2 auto使用细则2.3 auto不能进行推导的场景 3. 基于范围的for循环🧡3.2 范围for的条件 4. nullptr指针💚 1. 内联函数❤️ 在C语言中有宏函数的概念&…

【嵌入式】Modbus实践

前言 最近接了一个项目,需要使用Modbus协议,虽然之前有所耳闻,但一直没有实操过,但实践之后发现其实还是很简单的,我认为它本质上就是对串口传输进行“二次封装”。 建议的入门顺序 大神带你秒懂Modbus通信协议——理…

【zotero】从知网万方维普WOS等数据库上导出格式引文-引文格式到zotero中

一、问题背景 最近新中特课要交课程论文作业了,老师说要有参考文献引注。 于是我找了很多参考文献,但是不打算放在我的zotero文献库中,因为我不想我的zotero文献库中包括与我专业学习不相关的东西。 鉴于导入文献后识别成引注后续导出打包…

iOS开发之Masonry框架源码深度解析

Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的&#xff…

1992-2022年31省人均gdp/各省人均地区生产总值

1992-2022年31省人均gdp/各省人均地区生产总值 1、时间:1992-2022年 2、来源:国家统计J、各省NJ 3、范围:包括31省 4、缺失情况说明:无缺失 5、指标包括:各省人均GDP/省人均地区生产总值 6、指标解释&#xff1a…

sql注入(二)盲注,二次注入

目录 一、布尔盲注 1.判断库名的长度 2.判断数据库名 2.1判断数据库名首字符 2.2 判断数据库名的其余字符 二、时间盲注: 1.判断库名的长度 2.判断库名: 3.判断表名payload: 4.爆出列名 5.爆数据 三、二次注入 1.原理: …

Linux 常用操作技巧

Linux 操作技巧大全 Linux是一种强大的操作系统,掌握各种操作技巧可以帮助我们惬意地使用它。在这篇博客中,我们将分享一些实用的Linux技巧,希望能对您有所帮助! 1. 使用Tab进行自动补全 在输入命令时,按下Tab键可…

漫谈大数据 - 数据湖认知篇

导语:数据湖是目前比较热的一个概念,许多企业都在构建或者准备构建自己的数据湖。但是在计划构建数据湖之前,搞清楚什么是数据湖,明确一个数据湖项目的基本组成,进而设计数据湖的基本架构,对于数据湖的构建…

Embarcadero Delphi 11 和 C++Builder 11 免费社区版发布!

Embarcadero为Delphi和CBuilder的最新11.3版本提供了社区版许可证。这是Delphi或CBuilder的免费版本,适用于学生,业余爱好者和初创公司(因为许可证仅对于收入有限的公司或个人)。 什么是CE社区版? Delphi 和 CBuilde…

【Git 入门教程】第七节、Git 远程仓库(Github)

GitHub是一个基于Git的代码托管平台,它是全球最大的开源软件社区之一。GitHub允许开发者在上面创建和托管他们的Git仓库,并与其他开发者进行协作。 GitHub是一个非常流行的Git工具,它是开源社区的重要组成部分,并支持许多著名的开…

【MySQL】交叉连接、自然连接和内连接查询

一、引入 实际开发中往往需要针对两张甚至更多张数据表进行操作,而这多张表之间需要使用主键和外键关联在一起,然后使用连接查询来查询多张表中满足要求的数据记录。一条SQL语句查询多个表,得到一个结果,包含多个表的数据。效率高…

测试人员的启蒙指南

文章目录 一. 了解测试1. 生活中的测试场景2. 什么是软件测试3. 实战练习 二. 软件测试和软件开发的区别三. 软件测试和软件调试的区别四. 软件测试的发展五. 软件测试的岗位六. 一个优秀的软件测试人员具备的素质 本篇中介绍测试人员是干什么的, 起到启蒙和了解的作用, 重点是…

A 股指数分时行情数据 API 数据接口

A 股指数分时行情数据 API 数据接口 多维度分时指标,指数分时,多时间区间查询参数。 1. 产品功能 支持所有指数数据查询;支持指数分时数据查询;多时间维度分时数据;多维度的统计时间以及数据结果;秒级查询…

linux系统应用中select函数与poll函数详解

目录 第一:poll()函数详解 第二:select()函数详解 第一:poll()函数详解 1 poll函数概述 select() 和 poll() 系统调用的本质一样,poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多…

外设驱动库开发笔记53:MAX31856热偶变送器驱动

在我们的产品中经常有需要温度检测的地方,而热电偶温度检测电路是我们常用的。热电偶温度检测的方法很多,有时出于简单方便的考虑我们会选择热偶温度变送器来实现,这一篇我们就来讨论使用MAX31856热电偶温度变送器实现温度的检测。 1、功能概…

【PCL】—— 点云配准ICP(Iterative Closest Point)算法

文章目录 数学原理问题定义计算平移计算旋转 案例实现参考 ​     由于三维扫描仪设备受到测量方式和被测物体形状的条件限制,一次扫描往往只能获取到局部的点云信息,进而需要进行多次扫描,然后每次扫描时得到的点云都有独立的坐标系&…