计算机网络——初识网络

一、局域网与广域网

1.局域网(LAN)

        局域网:即Local Area Network,简称LAN。Local即标识了局域⽹是本地,局部组建的⼀种私有⽹络。局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和局域⽹之间在没有连接的情况下,是⽆法通信的。以下是实现局域网的几种方式:

(1)基于网线直接连接,如图1.1.1所示:

图1.1.1 基于网线直接连接

(2)基于集线器组建,如图1.1.2所示:

         要注意的是,集线器是把一个网口扩展成多个,扩展出的网口之间会有冲突,所以同一时刻只有一条路能通,相比之下,交换机则是扩展出这些路线,各个网口之间互不影响。

图1.1.2 基于集线器组建

(3)基于交换机组建,如图1.1.3所示:

图1.1.3 基于交换机组建

(4)基于交换机和路由器组建,如图1.1.4所示:

图1.1.4 基于交换机与路由器组建

2.广域网(WAN)

        广域网:即Wide Area Network,简称WAN。通过路由器,将多个局域⽹连接起来,在物理上组成很⼤范围的⽹络,就形成了⼴域⽹。⼴域⽹内部的局域⽹都属于其⼦⽹。其大致的实现逻辑可参考图1.2所示的方式:

图1.2 广域网搭建

二、网络通信基础

1.IP地址

        IP地址描述了一个设备在网络上的位置,在生活中,我们地址的地址例如:XXX省XXX市XXX区XXX小区这样来进行描述,在计算机中则是通过数字来进行描述地址(IP地址),IP地址是一个32位的二进制数,通常被分割成4个“8位二进制数”(也就是4个字节),为了方便表示,往往把IP地址表示成“点分十进制”的方式,使用3个.把四个字节分成四部分,每部分取值范围是0~255。例如:192.168.0.100。

2.端口号

        IP地址描述了主机在网络中的位置,那么端口号则是描述一个主机上的哪个应用程序,有了IP地址可以确定主机,但是一个主机上可以存在很多个程序在使用网络,这时候当主机收到网络数据时就需要区分出这个网络数据是要交给哪个应用程序的,这就像发送快递时,我们不仅需要指定收货地址(IP地址),还需要指定收获人(端口号)。

        每个程序在进行网络通信过程中都有一个端口号,这个端口号可以是用户手动指定,也可以系统自动分配,但是一个主机上程序之间的端口号不能冲突,这个端口号是一个0~65535的整数。

3.认识协议

        在有了IP地址与端口号后,我们可以确定网络中唯一的主机的唯一程序(进程),但是还是存在一个问题,网络通信是基于二进制0/1数据来传输的,如何描述对方我们发送的数据是什么样的呢?

        网络通信传输的数据类型有很多种:图片、音乐、视频、文本等,同一个类型数据格式也可能不同,这时候就需要协议来规定双方在网络传输过程中的数据格式了。

        协议:⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵 从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能 相互通信交流。

        例如市面上有很多不同形状的灯管,但是他们和灯座上的接口是一定能对应上的,这是因为所有生产灯管的厂商都统一遵循灯管与灯座之间的规格,所以可以确保任意灯管与灯座之间的搭配是可行的,这就是现实生活中协议的一种体现。

4.网络通信五元组

        在TCP/IP协议中,⽤五元组来标识⼀个⽹络通信:

        1. 源IP:标识源主机。

        2. 源端⼝号:标识源主机中该次通信发送数据的进程。

        3. ⽬的IP:标识⽬的主机。

        4. ⽬的端⼝号:标识⽬的主机中该次通信接收数据的进程。

        5. 协议号:标识发送进程和接收进程双⽅约定的数据格式。

三、协议分层

1.分层的好处

        对于⽹络协议来说,往往分成⼏个层次进⾏定义。 分层的初心是为了让复杂的一个协议变成简单的多个协议,并且还附带了很多好处:

  • 上层协议直接使用下层协议即可,不需要了解下层协议的细节;

例如这里我们打电话,我们只要会说汉语就可以,并不需要了解电话的工作原理。  

  • 某一层的协议进行替换之后,对于其他层没有什么影响。

例如下图,当我们语言协议发生变化,或者电话协议发生变化,并不会影响我们的使用 

2.OSI七层模型

        OSI:即Open System Interconnection,开放系统互连

  • OSI 七层⽹络模型是⼀个逻辑上的定义和规范:把⽹络从逻辑上分为了7层。
  • OSI 七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传 输;

        OSI七层模型划分为以下七层:

 

        OSI 七层模型既复杂⼜不实⽤:所以OSI七层模型没有落地实现。实际组建⽹络时,只是以OSI七层模型设计中的部分分层,也即是以下TCP/IP五层模型来实现。  

3.TCP/IP五层模型

        TCP/IP是⼀组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采⽤了5层的层级结构,每⼀层都呼叫它的下⼀层所提供的⽹络来完成⾃⼰的需求。

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

4.网络设备所处分层

(1)主机

        它的操作系统内核实现了从传输层到物理层的内容,也就是TCP/IP五层模型的下四层

(2)路由器(传统)

        它实现了从网络层到物理层,也就是TCP/IP五层模型的下三层

(3)交换机(传统)

        它实现了从数据链路层到物理层,也就是TCP/IP五层模型的下两层

(4)集线器

        它只实现了物理层

        当然,随着现在网络设备技术的不断发展,也出现了许多3层或4层的交换机,4层路由器,所以上述的说的网络设备都是传统意义上的交换机和路由器。

5.封装与分用

        封装与分用是网络传输数据过程中最核心的流程,这里我们以QQ发送与接收信息的过程来模拟封装与分用的步骤。

(1)封装

①应用层(应用程序)

        在应用层中所用到的应用层协议往往是实现这个程序的程序员自己定义的,例如QQ从消息输入框中获取到用户输入的hello就把这个字符串构造成一个应用层数据包,这样一个应用层数据包就是按照QQ这个程序自定义的应用层协议约定的格式来构造的。

应用层封装

        应用程序会调用操作系统提供的api,把这个数据包交给传输层。 

② 传输层

        传输层把应用层传来的数据作为一个整体再根据传输层的协议构造成一个传输层数据包,传输层中涉及到的协议最主要的就是TCP协议UDP协议,这里假定使用的是UDP协议进行通信,构造出来的数据包就是一个UDP数据包。

传输层封装

         像上面添加报头的过程就叫做“封装”,其实就是字符串的拼接,只不过报头有一定的数据结构,这里的UDP报头虽然不能保护数据,但是可以起到“贴标签”的类似效果,对于UDP报头最主要的信息就是源端口目的端口

        拼好的传输层数据包就可以交给下一层网络层继续进行封装了。(交给下层,指的是下层协议提供一组api,上层调用这个api(函数),并且把刚才构造好的数据通过参数传过去,下层协议就可以来处理这个数据了)。

 ③网络层

        网络层涉及到的最核心的协议就是IP协议,网络层通过IP协议将刚才传输层的UDP数据包作为一个整体再拼上一个IP协议的报头,构造成一个IP数据包。

网络层封装

         这里IP报头中最关键的信息就是源IP目的IP了。

        构造完IP数据包后,IP协议继续调用数据链路层的api,把数据再交给数据链路层的协议进行处理。

④数据链路层

        数据链路层中涉及到的核心协议是以太网协议,数据链路层通过以太网协议将网络层传来的IP数据包作为整体加上一个帧头与帧尾构造成一个以太网数据帧。

数据链路层封装

        封装结束后将以太网数据帧继续传给物理层。

⑤物理层

        把上面传来的以太网数据帧,二进制结构(一串0 1 0 1这样的数据)转换成光信号(光纤,通过光的频谱进行编码)/电信号(网线,高低电平)/电磁波(无线wifi),然后进行发送。

        经过上面的一系列操作,数据才算从A的电脑中发送出去了,这也就是封装的过程。

(2)分用

        分用的过程可以理解为封装的逆过程,这里我们就不考虑信息在中间的传输过程了,默认信息已经发送到B的电脑中,开始模拟分用的过程。

①物理层

        B的物理层收到了光信号/电信号/电磁波,就会把这些物理信号转换成数字信号(二进制的0 1 0 1数据),得到一个以太网数据帧,进一步的把得到的数据帧交给数据链路层进行处理。

 ②数据链路层

        数据来到数据链路层后,接收方要与发送方使用一样的协议才能进行分用,然后按照以太网数据帧的格式进行解析取出其中的载荷再交给上层协议。

数据链路层分用
 ③网络层

        按照IP协议的格式进行解析,取出其中载荷再交给上层协议。

网络层分用
④传输层

        前面我们约定传输层用的UDP协议,所以这里我们按照UDP协议格式进行解析,取出载荷再交给上层协议。

传输层分用
⑤应用层

        按照QQ应用程序内部的应用层协议格式来解析数据,QQ程序拿到这些信息后就会在窗口给你弹出提示并且把消息、消息的发送者、发生时间都显示到聊天窗口上。

应用层分用

        到这分用的过程就演示完了,其实数据在传输过程中经过交换机/路由器时也会进行封装与分用,经过一个个交换机/路由器数据才会传到目的地。 

四、基本术语介绍

        在每层协议中封装出的数据其实都有自己的一个名词后缀,标准如下:

包(packet)                IP数据包

段(segment)             TCP数据段

报(datagram)            UDP数据报

帧(frame)                  以太网数据帧

五、结语

        文章到此就要结束了,本篇文章主要介绍了计算机网络的基本概念与流程,可以让大家更直观的认识到计算机网络,如果你认为读了本篇文章您有所收获,希望给本篇文章点个赞,收藏走一波,后面我会继续与大家分享计算机网络的相关知识,关注博主不迷路~~~您的支持就是我创作最大的动力。

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

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

相关文章

A4的PDF按A3打印

先用办公软件打开,比如WPS。 选择打印-属性。 纸张选A3,如果是双面打印,选短边装订,然后在版面-页面排版-每张页数(N合1)选2。 不同打印机的具体配置可能不一样,但大体都是这个套路。

[NSSCTF]prize_p1

前言 之前做了p5 才知道还有p1到p4 遂来做一下 顺便复习一下反序列化 prize_p1 <META http-equiv"Content-Type" content"text/html; charsetutf-8" /><?phphighlight_file(__FILE__);class getflag{function __destruct(){echo getenv(&qu…

The Role of Subgroup Separability in Group-Fair Medical Image Classification

文章目录 The Role of Subgroup Separability in Group-Fair Medical Image Classification摘要方法实验结果 The Role of Subgroup Separability in Group-Fair Medical Image Classification 摘要 研究人员调查了深度分类器在性能上的差异。他们发现&#xff0c;分类器将个…

基于Springboot的民宿管理平台

基于SpringbootVue的民宿管理平台设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 民宿信息 后台登录 后台首页 用户管理 商家管理 民宿信息管理 房间类型管理 …

【正版系统】知识付费系统搭建,系统模板开发完善功能强大,支持快速部署上线

在数字化时代&#xff0c;知识付费已成为一种趋势&#xff0c;为内容创作者和求知者搭建了一个高效的交流平台。今天&#xff0c;我要为大家介绍一款功能强大的知识付费系统。 知识付费系统模板是我们一款经过精心开发、完善的系统&#xff0c;旨在为用户提供一站式的知识付费…

【Docker】如何注册Hub账号并上传镜像到Hub仓库

一、创建Hub账户 浏览器访问&#xff1a;hub.docker.com 点击【Sign up】注册账号 输入【邮箱】【用户名】【密码】 ps&#xff1a;用户名要有字母数字&#xff1b;订阅不用勾选 点击【Sign up】注册即可 点击【Sign in】登录账号 输入【邮箱】【密码】 点击【Continue】登录 二…

Unreal 编辑器工具 批量重命名资源

右键 - Editor Utilities - Editor Utility Blueprint&#xff0c;基类选择 Asset Action Utility 在类默认值内&#xff0c;可以添加筛选器&#xff0c;筛选指定的类型 然后新建一个函数&#xff0c;加上4个输入&#xff1a;ReplaceFrom&#xff0c;ReplaceTo&#xff0c;Add…

大数据学习笔记14-Hive基础2

一、数据字段类型 数据类型 &#xff1a;LanguageManual Types - Apache Hive - Apache Software Foundation 基本数据类型 数值相关类型 整数 tinyint smallint int bigint 小数 float double decimal 精度最高 日期类型 date 日期 timestamps 日期时间 字符串类型 s…

nginx--自定义日志跳转长连接文件缓存状态页

自定义日志服务 [rootlocalhost ~]# cat /apps/nginx/conf/conf.d/pc.conf server {listen 80;server_name www.fxq.com;error_log /data/nginx/logs/fxq-error.log info;access_log /data/nginx/logs/fxq-access.log main;location / {root /data/nginx/html/pc;index index…

使用STM32F103C8T6与蓝牙模块HC-05连接实现手机蓝牙控制LED灯

导言: 在现代智能家居系统中,远程控制设备变得越来越普遍和重要。本文将介绍如何利用STM32F103C8T6单片机和蓝牙模块HC-05实现远程控制LED灯的功能。通过这个简单的项目,可以学会如何将嵌入式系统与蓝牙通信技术相结合,实现远程控制的应用。 目录 导言: 准备工作: 硬…

Java零基础入门到精通_Day 11

1.继承 定义&#xff1a; 继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法&#xff0c;还可以在子类中重新定义&#xff0c;追加属性和方法 格式&#xff1a; public class 子类 extends 父类{} 子类&#xff1a;也叫派生类 父类&#xff1a;基类/超类 继…

低代码技术在构建质量管理系统中的应用与优势

引言 在当今快节奏的商业环境中&#xff0c;高效的质量管理系统对于组织的成功至关重要。质量管理系统帮助组织确保产品或服务符合客户的期望、符合法规标准&#xff0c;并持续改进以满足不断变化的需求。与此同时&#xff0c;随着技术的不断进步&#xff0c;低代码技术作为一…

机器学习笔记-14

机器学习系统设计 1.导入 以垃圾邮件分类器为例子&#xff0c;当我们想要做一个能够区分邮件是否为垃圾邮件的项目的时候&#xff0c;首先在大量垃圾邮件中选出出现频次较高的10000-50000词作为词汇表&#xff0c;并为其设置特征&#xff0c;在对邮件分析的时候输出该邮件的特…

计算机网络-408考研

后续更新发布在B站账号&#xff1a;谭同学很nice http://【计算机408备考-什么是计算机网络&#xff0c;有什么特点&#xff1f;】 https://www.bilibili.com/video/BV1qZ421J7As/?share_sourcecopy_web&vd_source58c2a80f8de74ae56281305624c60b13http://【计算机408备考…

在idea中连接mysql

IDE&#xff08;集成开发环境&#xff09;是一种软件应用程序&#xff0c;它为开发者提供编程语言的开发环境&#xff0c;通常集成了编码、编译、调试和运行程序的多种功能。一个好的IDE可以大幅提高开发效率&#xff0c;尤其是在进行大型项目开发时。IDE通常包括以下几个核心组…

Docker-Compose编排lnmp(dockerfile) 完成Wordpress

目录 一、创建nginx镜像 二、创建mysql镜像 三、创建php镜像 四、启动wordpress 五、安装Compose 六、准备环境 ​编辑 七、编写docker-compose.yml 八、启动并运行 九、浏览器访问 一、创建nginx镜像 #基于基础镜像 FROM centos:7 #用户信息 MAINTAINER this is ngi…

LabVIEW换智能仿真三相电能表研制

LabVIEW换智能仿真三相电能表研制 在当前电力工业飞速发展的背景下&#xff0c;确保电能计量的准确性与公正性变得尤为重要。本文提出了一种基于LabVIEW和单片机技术&#xff0c;具有灵活状态切换功能的智能仿真三相电能表&#xff0c;旨在通过技术创新提高电能计量人员的培训…

vue初始化项目

打开终端输入vue create project-name 选择Manually select features回车&#xff0c;继续选择如下&#xff1a; 如果要使用pina就可以不选vuex&#xff0c;回车&#xff0c;选择如下&#xff1a; 按下图选即可

BJFUOJ-C++程序设计-实验2-类与对象

A 评分程序 答案&#xff1a; #include<iostream> #include<cstring>using namespace std;class Score{ private:string name;//记录学生姓名double s[4];//存储4次成绩&#xff0c;s[0]和s[1]存储2次随堂考试&#xff0c;s[2]存储期中考试&#xff0c;s[3]存储期…

与 Apollo 共创生态:企业解决方案Apollo X 9.0,七载同舟,携手远航,视频简说

目录 介绍背景方案与项目Apollo 开源项目Apollo X 企业解决方案落地因素助力企业落地流程 预置套件需求定义功能定义场景用例融合技术面向园区功能安全Cyber RT企业硬件套件 开发工具链研发迭代范式协同研发工具链标定工具地图工具仿真平台数据闭环 企业合作模式合作方式 共创计…