计算机网络之-嵌入式学习

网络作为嵌入式学习的必备知识,很多嵌入式学习者还没有真正的去系统的了解过网络这个知识,在学习网络这块的知识,整理了一些网络笔记,希望对大家的学习能有帮助,那下面就一起看看计算机网络的相关知识吧!本文较长,建议点赞收藏反复观看!
本文将会从以下几个方面为大家系统的介绍计算机的网络:
1、什么是计算机网络?
2、网络的分类
3、七层网络模型
4、IP地址
5、子网掩码
6、TCP/IP协议
7、三次握手四次挥手
什么是计算机网络?

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。–(定义来源于百度百科)
看完这个官方定义可能大家还不太清楚计算机网络到底是个什么东西,那下面就用几个关键词来定义一下计算机网络吧!计算机网络就是相互连接的、以资源共享为目的的、自治的计算机集群。
首先要明白计算机网络是集群性质的,一个电脑不叫网络,多台能够自治(独立工作)的电脑的互联才能组成网络!在网络中一个最重要的也是网络的核心那就是多机共享,正是人们基于共享才出现了网络。
网络的分类

了解了计算机网络的定义,之后再了解一下计算机网络的分类,总的来说可以按照以下5点进行分类:网络的覆盖范围、网络传输方式、拓扑结构、网络协议、传输介质。
1、按照覆盖范围分
网络的覆盖范围,又可以分为:局域网、城域网和广域网。
局域网英文是 LAN ( Local Area Network),Local,本地的、当地的。自己安装过网线或者路由器的应该都知道路由器上有个LAN口,大家在家庭中的网络连接一般都是PC —> 无线路由器 ---->(LAN)光猫(WAN)—> ISP —> Internet GW —> Internet,一般情况下,这样链接在同一个路由器下的各电脑就组成了一个简单的局域网。
但是,若路由器下连接有可网管的高级交换机,这类交换机可划分VLAN(虚拟局域网),这样有的电脑即使在同一个路由器下,也可能分别属于不同的VLAN,即不同局域网。
局域网规模相对较小,通信线路较短,覆盖区域的直径通常在几百米到几公里之间。城域网是指覆盖一个城市的计算机网络。广域网是指覆盖一个国家甚至整个地球的更大的网络。
虽然局域网、城域网和广域网这些术语是针对网络的覆盖范围而提出的,但它们更有别于网络建设技术。
2、网络的传输方式分
网络按照传输方式分可分为广播式网络和点对点网络。
广播式网络在网络中只有一个单一的通信信道,由这个网络中所有的主机所共享。即多个计算机连接到一条通信线路上的不同分支点上,任意一个节点所发出的报文分组被其他所有节点接受。发送的分组中有一个地址域,指明了该分组的目标接受者和源地址。
图片
纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其它节点充当客户端和服务器。这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。
图片
大家在学习计算机时可能听说过P2P这样的网络结构,P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。P2P网络的分布特性通过在多节点上复制数据,也增加了防故障的健壮性,并且在纯P2P网络中,节点不需要依靠一个中心索引服务器来发现数据。在后一种情况下,系统也不会出现单点崩溃。
3、按照拓扑结构分
网络拓扑结构就是指用传输媒体把计算机等各种设备互相连接起来的物理布局,网络拓扑结构可按形状分类,分别有:星型、环型、总线型、树型、总线/星型和网状型拓扑结构。
图片
1、星型拓扑星型是结构是一个中心,多个分节点。它结构简单,连接方便,管理和维护都相对容易,而且扩展性强。网络延迟时间较小,传输误差低。中心无故障,一般网络没问题。中心故障,网络就出问题,同时共享能力差,通信线路利用率不高。图片
2、总线拓扑结构总线拓扑结构所有设备连接到一条连接介质上。总线结构所需要的电缆数量少,线缆长度短,易于布线和维护。多个结点共用一条传输信道,信道利用率高,但不找诊断故障。图片
3、环形拓扑网络环形拓扑网络是节点形成一个闭合环。工作站少,节约设备。当然,这样就导致一个节点出问题,网络就会出问题,而且不好诊断故障。图片
4、树形拓扑树形拓扑从总线拓扑演变而来,形状像一棵倒置的树,顶端是树根,树根以下带分支,每个分支还可再带子分支,树根接收各站点发送的数据,然后再广播发送到全网。好扩展,容易诊断错误,但对根部要求高。图片
5、网形拓扑应用的最广泛,它的优点是不受瓶颈问题和失效问题的影响,一天线路出问题,可以做其他线路,但太复杂,成本高。图片
6、混合式拓扑结构是将上面两种或多种共同使用。如用的多有星总线型、星环型等。优点:可以对网络的基本拓扑取长补短。缺点:网络配置挂包那里难度大。
4、按照网络协议分
首先大家要明白网络协议是什么,通信协议就是双方共同遵守的规则或约定。不同的网络采用不同的通信协议,如局域网中的以太网采用CSMA协议,广域网中的分组交换网采用X.25协议,Internet网采用TCP/IP 协议。
5、按照传输介质分
传输介质就是通信线路。目前常用同轴电缆、双绞线、光纤、卫星、微波等有线或无线传输介质,相应的网络就分别称为同轴电缆网、双绞线网、光纤网、卫星网、无线网等。
七层网络模型

OSI七层模型,OSI为(Open System interconnect)的缩写,自上而下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,这些知识大家在C语言或者计算机基础里应该也已经有所学习了。下面就分别来一起看一下这七层网络模型吧!
图片
1)物理层(Physical Layer)首先,物理层定义了所有电子及物理设备的规范,为上层的传输提供了一个物理介质数据的单位为比特(bit)。物理层虽然处于最底层,却是整个开放系统的基础。
进一步讲就是,物理层的作用是要尽可能的屏蔽掉计算机网络中的硬件设备和传输媒体的差异,毕竟世界上有那么多硬件设备制造商,我们上网使用的手段很多,硬件当然是种类繁多了。
物理层要做的就是尽可能屏蔽掉这种差异,这样就可以使数据链路层只需要考虑如何完成本层次的协议和服务,而不必考虑网络具体的传输媒体是什么。
2)数据链路层(Data Link Layer)数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
3)网络层(Network Layer)网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。
4)传输层(Transport Layer)传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。在这一层,信息传送的协议数据单元称为段或报文。
网络层只是根据网络地址将源结点发

  • List item

出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
5)会话层会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
6)表示层表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
7)应用层为操作系统或网络应用程序提供访问网络服务的接口。
IP地址和硬件地址

所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。
IP地址是IP数据报在网络层及以上各层使用的一种逻辑地址,硬件地址是物理层和数据链路层使用的地址。
Internet 上的每台主机(Host)都有一个唯一的IP地址。IP协议就是使用这个地址在主机之间传递信息,这是Internet 能够运行的基础。
硬件地址就是我们常说的MAC地址,这个地址就像你的身份证一样是世界上唯一的,在设备出厂的时候就打在设备的芯片里了,是按照国际上的标准和规定统一的格式,这个地址是永远不变的。
同一型号的两个设备硬件地址也不同,局域网内有多种寻找硬件地址的方法,而路由有一个最大的特点就是通过广播把他下面的所有PC机或者是交换机,或者是路由器的MAC自动加入到他的分配表里面,这样才去给他们分配IP地址,是先获取其实际的MAC地址后,按MAC地址去分配IP地址,路由有自动学习的功能。
子网掩码

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩。它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。
TCP/IP

TCP/IP 是供已连接因特网的计算机进行通信的通信协议。当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。
TCP/IP 意味着 TCP 和 IP 在一起协同工作。TCP 负责应用软件(比如你的浏览器)和网络软件之间的通信,IP 负责计算机之间的通信。TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们,IP 负责将包发送至接受者。
TCP/IP的标准化流程大概分为以下几个阶段:
①互联网草案阶段:从提出开始不断进行讨论实验,有了一定成熟度,觉得实际可行,认为其可以进行标准化,可进入下一阶段
②提议标准阶段:计入RFC,开始进入众多设备厂商生产环节,投入试验使用,一般为6个月,当所有参与协议的人觉得其“实用性强,不存在太多问题”,则进入下一阶段
③草案标准阶段:一般为期4个月,在经过不断的使用和讨论改进后,被大众所使用接受,那么这个草案标准就进入下一个阶段
④标准阶段:到这个阶段,意味着该标准已广泛被使用且具有很强的实用性图片
三次握手四次挥手

(1)第一步:源主机A的TCP向主机B发出连接请求报文段,其首部中的SYN(同步)标志位应置为1,表示想与目标主机B进行通信,并发送一个同步序列号X(例:SEQ=100)进行同步,表明在后面传送数据时的第一个数据字节的序号是X+1(即101)。SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号。
(2)第二步:目标主机B的TCP收到连接请求报文段后,如同意,则发回确认。在确认报文中应将ACK位和SYN位置1,表示客户端的请求被接受。确认号应为X+1(图中为101),同时也为自己选择一个序号Y。
(3)第三步:源主机A的TCP收到目标主机B的确认后要向目标主机B给出确认,其ACK置1,确认号为Y+1,而自己的序号为X+1。TCP的标准规定,SYN置1的报文段要消耗掉一个序号。
图片
运行客户进程的源主机A的TCP通知上层应用进程,连接已经建立。当源主机A向目标主机B发送第一个数据报文段时,其序号仍为X+1,因为前一个确认报文段并不消耗序号。
当运行服务进程的目标主机B的TCP收到源主机A的确认后,也通知其上层应用进程,连接已经建立。至此建立了一个全双工的连接。
三次握手的原因如果采用的是三次握手,就算是那一次失效的报文传送过来了,服务端接受到了那条失效报文并且回复了确认报文,但是客户端不会再次发出确认。由于服务器收不到确认,就知道客户端并没有请求连接。在这里插入代码片

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

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

相关文章

PDF文件压缩

1. 在线PDF压缩 http://pdfcompressor.com/zh/ http://pdfcompressor.com/ https://www.pdfcompress.com/ 可下载相应软件 Soda PDF Desktop 2. PDF压缩软件 http://www.xdowns.com/soft/4/258/2012/Soft_92680.html PDFshrink

Kali渗透测试技术实战

第一章 引言 EC-Council Certified Ethical Hacker (EC CEH,伦理黑客认证)。整个过程包含五个阶段:侦察、扫描、获取访问、维持访问以及清除痕迹。 第二章 下载并安装Kali Linux 硬盘最小120G,尤其是在密码破解、取…

关于slot、slot-scope的指令的一些操作记录

关于slot、slot-scope的指令的一些操作记录: 从vue2.6.0开始,slot、slot-scope已经被废弃,推荐使用v-slot; slot-scope是作用域插槽, 父组件中不能直接用子组件中定义的data数据。 而slot-scope的出现就是解决了这样的问题 子组…

关于前端Vue的webpack的基本只用总结心得

1.先说一下vue webpack 的配置的问题 "scripts": {"dev": "node build/dev-server.js","build": "node build/build.js","lint": "eslint --ext .js,.vue src" }我们 npm run dev 便是运行的 第一条命…

五种方法提高你的智力

五种方法提高你的智力 智力是天生的,一成不变的吗?教你五种方法提高智力:1体验新鲜事物 2挑战自己3有创造力的思考4生活中,多玩“hard”模式5多与他人进行交流 弯兔123 2011-04-04 14:53经验说:智力是天生的&#xff0…

vue-cli中的webpack的config配置详细说明

vue-cli中的webpack的config配置详细说明打开我们的vue项目文件夹我们可以清楚的看到文件夹下的三个文件, “dev.env.js”,“index.js”,“prod.env.js”, 我们先打开prod.env.js的文件,看里面的内容:‘use…

matlab中 text 使用画图示例

% Plot the image of the Sensitivity and False Positive per image clear; close all; clc; I1 [0.5 75]; I2 [1 54.5];msize 19; %设定字体的大小hold on plot(I1(1),I1(2),ko-,MarkerFaceColor,r) % 红色实心圆点text(I1(1)0.1,I1(2),Wei 2002) hold on plot(I2(1),I2(2)…

计算机视觉界CV牛人牛事

CV人物1:Jianbo Shi史建波毕业于UC Berkeley,导师是Jitendra Malik。其最有影响力的研究成果:图像分割。其于2000年在PAMI上多人合作发表”Noramlized cuts and image segmentation”。这是图像分割领域内最经典的算法。主页:www.…

vscode编辑器,自己喜欢的颜色

"workbench.colorCustomizations": { //覆盖当前所选颜色主题的颜色"editor.background": "#1b1b19", //编辑器背景色"editor.selectionBackground": "#3514c554", //用户选中代码段的颜色 "editor.findMatchBackgroun…

Ubuntu中python切换及pip 安装相应python库

更改python默认版本 只需在终端里面执行 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150 sudo update-alternatives --install /usr/bin/python python …

js消息任务队列

JS单线程、异步、同步概念 多次出现“事件循环”这个名词,简单说明了事件循环的步骤,以便理解nextTick的运行时机,这篇文章将更为详细的分析下事件循环。在此之前需要了解JS单线程,及由此产生的同步执行环境和异步执行环境。 众所…

Ubuntu下安装cmake,配置ITK 和 SimpleITK, VTK(已测试可执行)

curses库 在安装cmake之前应该先安装一下curses库。如果系统中有curses库的话,cmake将生成一个可执行文件ccmake,它是一个基于文本程序的终端,有点类似windows GUI。 sudo apt-get install libncurses5-dev 备注:若无curses库…

定义[nextTick、事件循环]

详情清查收:---》 实例理解nextTick的使用,并给出在页面渲染上的优化巧用 https://www.cnblogs.com/hity-tt/p/6729118.html

世界坐标与图像坐标

1. 右手坐标系 2. 左手坐标系 伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上。其余的手指指向前方。这样就建立了一个左手坐标系。拇指、食指和其余手指分别代表x,y,z轴的正方向。判断方法:在空间直…

module.exports与exports,export与export default之间的关系和区别

CommonJS模块规范和ES6模块规范完全是两种不同的概念。 CommonJS模块规范: 根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。 CommonJS规范规定&#xff0…

Ubuntu下安装 imagej 和 Fiji

安装ImageJ 方法一 sudo apt-get install imagej whereis imagej imagej -version 方法二 下载 Linux版本的 imagej 安装 Instructions cd /home mkdir imagej cp ij150-linux64-java8.zip /home/imagej unzip ij150-linux64-java8.zip 建立软连接,可以在终端…

vue的diff 算法

1. 当数据发生变化时,vue是怎么更新节点的? 要知道渲染真实DOM的开销是很大的,比如有时候我们修改了某个数据,如果直接渲染到真实dom上会引起整个dom树的重绘和重排,有没有可能我们只更新我们修改的那一小块dom而不要…

Ubuntu中python调用SimpleITK来显示图像

misc.imshow ipython import os from scipy import misc dataDir os.environ["HOME"] "/Downloads/SimpleITK-MICCAI-2001-Tutorial-master/Data" print dataDir image misc.imread(dataDir "FA.png") misc.imshow(image) 或者 ipython i…

Websocket--- long loop--ajax轮询

Websocket--- long loop--ajax轮询,long poll 和 ajax轮询 的原理。 1,首先是 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。 2,long poll 其实原理跟 ajax轮询 差不多…

Linux下设置环境变量

单独查看PATH环境变量,可用: echo $PATH11 方法一:在用户主目录下的 profile或 bashrc文件 sudo gedit ~/.profile 或者 sudo gedit ~/.bashrc123123 可以在此文件末尾加入PATH的设置如下: export PATH”$PATH:your path1:you…