401-视频与网络应用篇-网络分层和常见网络协议

news2024/9/27 7:22:26

常使用的网络有广域网(WAN)、城域网、局域网(LAN),一般我们遇到的场景是广域网和局域网,广域网就是常说的外网,而局域网一般用于学校、公司等场合。在家庭路由器中对应WAN口和LAN口。网络是极为复杂的,为了使开发方面,提出了网络分层的概念。
一.网络分层
网络分层
业内普遍的分层方式有两种。OSI七层模型 和TCP/IP四层模型。
实际应用中是TCP/IP四层模型,下面对这种模型进行描述。如下图。
在这里插入图片描述
应用层协议:
我们一般常见的http、Telnet协议属于应用层,此处不进行详细描述。
传输层协议:
1.TCP:
(1)面向连接;
(2)每一条TCP连接只能是点对点的(一对一);
(3)提供可靠交付的服务;
(4)提供全双工通信;
(5)面向字节流。
2.UDP:
(1)无连接;
(2)尽最大努力交付;
(3)面向报文;
(4)无拥塞控制;
(5)支持一对一、一对多、多对一和多对多的交互通信;
(6)首部开销小(只有四个字段:源端口、目的端口、长度、检验和)。

网络层协议:
1.
IP:网际协议(互连网协议),用来使互连起来的网络能够相互通信。
2.
ARP:地址解析协议,用来把IP地址映射成物理地址。
3.
RARP:逆地址解析协议,使只知道自己硬件地址的主机能够知道其IP地址。
4.
ICMP:互连网控制报文协议,允许主机或路由器报告差错情况和提供有关是否有异常情况的报告。
(应用在ping包命令,用于检查两设备之间网络连接是否正常)

链路层协议:
常规的网络开发场合用不到,此处不详细描述。

二、每一个网络层的工作方式
1.链路层:
每一个网卡都有一个唯一的地址,我们叫其为mac地址。mac地址,就是数据包的发送地址和接收地址。可以用于标识通信过程的发送端与接收端。
每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。有了MAC地址,就可以定位网卡和数据包的路径了。
外网情况下通过IP通信,然后ARP和RARP实现MAC地址与IP地址的映射、从而实现两张网卡链路层mac地址与mac地址的交互。链路层的交互对应的就是两张网卡的MAC地址的信息交互。

2.网络层
在上海的主机和北京的主机要完成交互时,单纯用上海主机的mac地址和北京主机的mac地址通信实现交互是无法高效率完成的。
针对这种外网情况,提出了网络层的概念。
网络中有对应的外网IP地址,把外网IP地址当成唯一标识符实现外网通信的身份标记,IP地址难以被人熟记(比如14.119.104.189),并且通过IP地址无法确认设备所处位置和关系,因而可以用一个网址将IP与一个字符串对应起来,这个网址实际上就对应IP地址(如:www.xxxxx.com -> 14.119.xxx.xxx),实现网站与IP之间的转换所需要的协议是DNS。

3.传输层
前面所述链路层设备的交互靠MAC地址标识、外网的交互靠IP地址标识。若一台主机IP确定和MAC均已确认是唯一的,此时用户在同时微信聊天和百度网页。此主机同时与腾讯服务器和百度的服务器同时通信,怎样知道收到的内容是哪一个服务器发送过来的呢。 这里面就要提交一个概念,也就是端口,"端口"是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口,通过端口就能确认这个主机是在与哪一个服务器交互,内容是供主机的哪个进程使用。传输层有UDP和TCP协议。两种协议各有特点,前面已描述。

4.应用层
应用层协议很多比如http、FTP等,均是基于TCP、或UDP传输。这个用户可以根据后期项目进行深入了解

通过上面的内容对网络分层的概念和各层对应的协议有一个直观的了解。下面我们分析一下一个TCP包的组成。

在这里插入图片描述
如上图所示为一个TCP包,可以看出此包为主机1(IP:192.168.6.95 端口:1949)向主机2(IP:192.168.6.139 端口:8899)发送的一个长度为310字节(负载长度为256字节)的TCP包。
图中1:所指信息为主机1发包主机2收包
图中2:包长度310
图中3:14字节的以太网标头,用于描述主机1的mac和主机2的mac地址。(对应链路层)
图中4:20字节的IP标头,用于搭述IP类型,主机1的IP和主机2的IP地址。(对应网络层)
图中5:20字节的TCP标头,里面包含主机1和主机2端口等信息(对应传输层)
图中6: 负载,对应于应用层

一帧TCP数据结构如下:
在这里插入图片描述

下图可以看到在TCP通信过程中,数据的流动情况。

Tcp通信数据流动情况

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

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

相关文章

学生宿舍智能电表改造解决方案

随着科技的发展和人们对环保意识的提高,节能减排已经成为当今社会的重要议题。学生宿舍作为学生生活、学习的重要场所,其能源消耗问题日益受到关注。为了提高学生宿舍的能源利用效率,降低能源消耗,智能电表改造成为了一种有效的解…

3、字符设备驱动框架和开发步骤

一、Linux内核对文件的分类 Linux的文件种类 1、-:普通文件2、d:目录文件3、p:管道文件4、s:本地socket文件5、l:链接文件6、c:字符设备7、b:块设备 Linux内核按驱动程序实现模型框架的不同&…

深图SONTU医用X射线高压发生器维修SONTU-HFG50

X射线高压发生器的高压开不起来常见故障分析: 这是X射线荧光光谱仪较常见的故障,一般发生在开机时,偶尔也发生在仪器运行中。故障的产生原因可以从三个方面去分析:1、X射线防护系统;2、内部水冷系统;3、高压发生器及X射线光管。 …

离散傅里叶变换(DFT)的推导及C语言实现

1、傅里叶变换(FT) 傅里叶变换(连续时间傅里叶变换)是该部分内容的理论基础,回顾一下: 傅里叶变换: 傅里叶逆变换: 以上是连续时间傅里叶变换,但计算机只能处理离散的数…

practical on mifare

抽象的。 mifare Classic 是市场上使用最广泛的非接触式智能卡。 其设计和实施细节由制造商保密。 本文研究了该卡的体系结构以及卡与读卡器之间的通信协议。 然后,它提供了一种实用的、低成本的攻击,可以从卡的内存中恢复秘密信息。 由于伪随机生成器的…

计算32位二进制整数中1的个数(包括负数补码)

引言: 在计算机科学和编程中,位操作是一项重要的技能。一个常见的任务是计算一个32位二进制整数中1的个数,包括负数的补码表示。这个问题有多种解决方法,本博客将介绍一种高效的解决方案,同时提供详细的代码案例。 背…

“优化STM32单片机处理大量网络数据的方法“

"优化STM32单片机处理大量网络数据的方法" 在处理大量网络数据时,对STM32单片机的裸机程序,可采用以下处理方法:1.使用DMA实现直接内存访问,减轻CPU负担。2.优化缓冲区管理,使用循环缓冲区或多缓冲区。3.利…

智能垃圾桶在线监测方案

提高垃圾收集率、减少乱丢垃圾是我们共同努力的目标,在人口稠密的城市,垃圾是必要的服务,在许多城市,垃圾车是空的,垃圾随处可见沿线,但它不是有效的方法,因为有很多空间可以很多垃圾离开的路上…

Java Agent之ByteBuddy

1:前言 在上一篇文章介绍 Java Agent 技术时,结合 Byte Buddy 技术实现了统计方法执行时间的功能。本次分享深入介绍 Byte Buddy 的一些基础知识,SkyWalking Agent 强大的地方就是重度使用该工具实现探针数据动态生成代码填充参数的。 2&am…

基于springboot实现在线动漫信息交流分享平台项目【项目源码+论文说明】

基于springboot实现在线动漫信息交流分享平台演示 摘要 随着社会互联网技术的快速发展,每个行业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线动漫信息平台当然也不能排除在外,随着网络技术的不断成熟&#xf…

公司文件防泄密软件——「天锐绿盾」@德人合科技

天锐绿盾是一款企业级数据安全解决方案,主要用于保护企业的知识产权、客户资料、财务数据、技术图纸、应用系统等机密信息化数据不外泄。 PC访问地址: 🔗isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 该软件解决方案…

Three.js如何计算3DObject的2D包围框?

推荐:用 NSDT编辑器 快速搭建可编程3D场景 在Three.js应用开发中,有时你可能需要为3D场景中的网格绘制2D的包围框,应该怎么做? 朴素的想法是把网格的3D包围框投影到屏幕空间,例如,下图中的绿色框 3D包围框…

Linux 部署1Panel 现代化运维管理面板进行公网远程访问

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透2.1 使用一键脚本安装命令 2.2向系统添加服务2.3 启动cpolar服务…

【名城优企游学】国轩高科,用数字化带来强劲发展动力

成立于2006 年5月,系中国动力电池产业最早进入资本市场的民族企业;2015年5月上市,股票代码SZ.002074,拥有新能源汽车动力锂电池、储能、输配电设备等业务板块,建有独立成熟的研发、采购、生产、销售体系。 它就是新能…

五分钟了解一下什么是「贪心算法 」‼️‼️‼️

五分钟了解一下什么是「贪心算法 」‼️‼️‼️ 1 概念 贪心的意思在于在作出选择时,每次都要选择对自身最为有利的结果,保证自身利益的最大化。贪心算法就是利用这种贪心思想而得出一种算法。 贪心算法作为五大算法之一,在数据结构中的应…

如何进行lidar和imu的外参标定

我们使用的lidar_align这个算法来进行标定。 1.下载源码 在ros工作空间下的src文件夹下运行这个命令。 git clone https://github.com/ethz-asl/lidar_align.gitsudo apt-get install libnlopt-devcd ..catkin_make 这里编译的时候会爆一些错误。我遇到的是: 这…

渗透测试成功的8个关键

渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析&#x…

考试中心|学习资料|学习情况|纯净无广|在线组卷刷题

土著刷题Plus专业版v1.2版本已全面对其个人版功能,完全满足学员培训/刷题考察全套流程,提供完整的服务流程。接下来将主要介绍一下这一版的新功能 考试中心 满足培训机构/刷题组织者考察刷题用户的管理需求,【围绕考试展开】,提供…

SQLite数据库使用时碰到的问题

背景 1、最近使用sqlite数据库,因为轻量,所以,不需要特别的部署服务器环境。 开发的平台使用的是Qt 碰到的问题 1、我在向数据库中插入字段的时候,少写了一个字段的内容,报这个错误 QSqlError("", "…

火焰原子吸收光谱法、容量法和电感耦合等离子体发射光谱法

声明 本文是学习GB-T 1871.5-2022 磷矿石和磷精矿中氧化镁含量的测定 火焰原子吸收光谱法、容量法和电感耦合等离子体发射光谱法. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件描述了在磷矿石和磷精矿中测定氧化镁含量的火焰原子吸收…