HW数通IA笔记2-网络参考模型

2024-08-27 17:12

本文主要是介绍HW数通IA笔记2-网络参考模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

零、本章主要内容

一、应用和数据

二、网络参考模型与标准协议

2.2 TCP/IP参考模型

2.3 TCP/IP常见协议

2.3.1 应用层

2.3.2 传输层

2.3.3 网络层

2.3.4 数据链路层

2.3.5 物理层

2.4 常见的协议标准化组织

三、数据的通信过程


零、本章主要内容

1、理解数据的定义及传递过程

2、网络参考模型概念及优势

3、常见的标准协议

4、数据封装与解封装过程

一、应用和数据

应用的存在,是为了满足人们的各种需求,比如访问网页,在线游戏,在线视频等。 伴随着应用会有信息的产生。比如文本,图片,视

频等都是信息的不同呈现方式。

在计算机领域,数据是各种信息的载体。 数据传输大部分应用程序所产生的数据需要在不同的设备之间传递。

计算机只能识别0和1的组成的电子数据(digital data)。它不具备读取各种信息的能力,所以信息需要通过一定的规则翻译成数据。

而对人来说,我们不具备读取电子数据的能力,所以在读取信息的时候,需要将数据转成人能理解的信息。

对于一名网络工程师来说,需要更关注数据的端到端传递的过程。

问题:一个应用程序是否需要完成数据的产生到传递的整个过程呢?

二、网络参考模型与标准协议

2.1 OSI参考模型

OSI 模型(Open Systems Interconnection Model),由国际化标准组织ISO (The International Organization for Standardization ) 收录在

ISO 7489标准中并于1984年发布。

OSI参考模型又被称为七层模型,由下至上依次为:

物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性。

数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。

网络层:定义逻辑地址,供路由器确定路径,负责将数据从源网络传输到目的网络。

传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。

会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。

应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务。

2.2 TCP/IP参考模型

因为OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型。

TCP/IP模型在结构上与OSI模型类似,采用分层架构,同时层与层之间联系紧密。 TCP/IP标准参考模型将OSI中的数据链路层和物理层

合并为网络接入层,这种划分方式其实是有悖于现实协议制定情况的,故融合了TCP/IP标准模型和OSI模型的TCP/IP对等模型被提出,

后面的讲解也都将基于这种模型。

2.3 TCP/IP常见协议

2.3.1 应用层

        应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。

HTTP     80 (TCP) 超文本传输协议,提供浏览网页服务

Telnet     23 (TCP) 远程登陆协议,提供远程管理服务

FTP     20、21 (TCP) 文件传输协议,提供互联网文件资源共享服务

SMTP     25 (TCP) 简单邮件传输协议,提供互联网电子邮件服务

TFTP     69 (UDP) 简单文件传输协议,提供简单的文件传输服务

DNS  域名称解析服务,用于实现从主机域名到IP地址之间的转换。

2.3.2 传输层

        传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(Port to Port)的连接。 传输层的PDU被称为Segment(段)。

TCP (Transmission Control Protocol,传输控制协议) :一种面向连接的、可靠的传输层通信协议,由IETF的RFC 793定义。为应用

程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。

UDP(User Datagram Protocol,用户数据报协议):一种简单的无连接的传输层协议,由IETF的RFC 768定义。提供了无连接通信,

且不对传送数据包进行可靠性的保证。

问题:TCP相对UDP的安全性体现在哪里

2.3.2.1 三次握手:任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接。

TCP连接建立的详细过程如下: 由TCP连接发起方(图中PC1),发送第一个SYN位置1的TCP报文。初始序列号a为一个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0 ; 接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确认序列号为a+1; PC1接收到PC2发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时序列号为a+1,确认序列号为b+1。PC2收到之后,TCP双向连接建立。

2.3.2.2 TCP的序列号与确认序列号:TCP使用序列号和确认序列号字段实现数据的可靠和有序传输。

假设PC1要给PC2发送一段数据,传输过程如下: 1. PC1将全部待TCP发送的数据按照字节为单位编上号。假设第一个字节的编号为“a+1”,第二个字节的序号为“a+2”,依次类推。 2. PC1会把每一段数据的第一个字节的编号作为序列号(Sequence  number),然后将TCP报文发送出去。 3. PC2在收到PC1发送来的TCP报文后,需要给予确认同时请求下一段数据,如何确定下一段数据呢?序列号( a+1 )+载荷长度=下一段数据的第一个字节的序号(a+1+12) 4. PC1在收到PC2发送的TCP报文之后,发现确认序列号为“a+1+12” ,说明“a+1”到“a+12”这一段的数据已经被接受,需要从“a+1+12”开始发送。 为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认。

注意:

客户端使用的源端口一般随机分配,目标端口则由服务器的应用指定;

源端口号一般为系统中未使用的,且大于1023;

目的端口号为服务端开启的应用(服务)所侦听的端口,如HTTP缺省使用80。

2.3.2.3 窗口滑动机制:TCP通过滑动窗口机制来控制数据的传输速率。

2.3.2.4 四次挥手:当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源。

TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。

在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。

如图所示:

1. 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;

2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。

3. 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。

4. PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。

2.3.3 网络层

网络层 IP(Internet Protocol,互联网协议): 将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。网络层的PDU被称为Packet(包)。

IGMP(Internet Group Management Protocol,因特网组管理协议):负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

ICMP(Internet Control Message Protocol,网际报文控制协议):基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。

当采用IP作为网络层协议时,通信的双方都会被分配到一个“独一无二”的IP地址来标识自己。

IP地址可被写成32位的二进制整数值形式,但为了方便人们阅读和分析,它通常被写成点分十进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如192.168.1.1。

IP数据包的封装与转发: 网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。

中间经过的网络设备(如路由器),会维护一张指导IP报文转发的“地图”——路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。

IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。

除了IP协议外,网络层中还有如OSPF、IS-IS、BGP等各种路由协议帮助路由器建立路由表,ICMP帮忙进行网络的控制和状态诊断。

2.3.4 数据链路层

数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。以太网

(Ethernet)是最常见的数据链路层协议。

数据链路层向网络层提供“段内通信”。 负责组帧、物理编址、差错控制等功能。

常见的数据链路层协议有:以太网、PPPoE、PPP等。

以太网是一种广播式数据链路层协议,支持多点接入。 个人电脑的网络接口遵循的就是以太网标准。 一般情况下,一个广播域对应着一个IP网段。

MAC (Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址。MAC地址由48比特(6个字节)长,12位的16进制数字组成。例如:48-A4-72-1C-8F-4F MAC用于在一个IP网段内,寻址找到具体的物理设备。 工作在数据链路层的设备。例如以太网交换机,会维护一张MAC地址表,用于指导数据帧转发。

ARP (Address Resolution Protocol)地址解析协议: 根据已知的IP地址解析获得其对应的MAC地址。ARP(Address Resolution

Protocol,地址解析协议)是根据IP地址获取数据链路层地址的一个TCP/IP协议。

ARP是IPv4中必不可少的一种协议,它的主要功能是:

将IP地址解析为MAC地址;

维护IP地址与MAC地址的映射关系的缓存,即ARP表项;

实现网段内重复IP地址的检测。

ARP工作原理

网络设备一般都有一个ARP缓存(ARP Cache)。ARP缓存用来存放IP地址和MAC地址的关联信息。

在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的ARP表项,则直接采用该表项中的MAC地址来封装帧,然后将

帧发送出去。如果缓存表中不存在相应信息,则通过发送ARP Request报文来获得它。

学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内(缺省:180s),设备可以直接从这个表中查

找目的MAC地址来进行数据封装,而无需进行ARP查询。过了这段有效期,ARP表项会被自动删除。

如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址。然后将数据发送给网关。最后网关再把数据转发给目的设备。如下图示例:

主机1的ARP缓存表中不存在主机2的MAC地址,所以主机1会发送ARP Request来获取目的MAC地址。

ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机1的MAC地址。

此时,由于主机1不知道主机2的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。 ARP Request报文中包含发送端MAC

地址、发送端IP地址、目的端MAC地址、目的端IP地址,其中目的端MAC地址的值为0。

ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP Request报文。

所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响

应该ARP Request报文。如果匹配,则该主机会将ARP请求报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中,

然后通过ARP Reply报文进行响应。

主机2会向主机1回应ARP Reply报文。 ARP Reply报文中的发送端IP地址是主机2自己的IP地址,目的端IP地址是主机1的IP地址,目的

端MAC地址是主机1的MAC地址,发送端MAC地址是自己的MAC地址,同时操作类型被设置为Reply。 ARP Reply报文通过单播传

送。        

主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段与自身的IP地址是否匹配。如果匹配,ARP报文中的发送端MAC地址和

发送端IP地址会被记录到主机1的ARP缓存表中。

2.3.5 物理层

数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。 物理层的PDU被称为比特流(Bitstream)。 

物理层位于模型的最底层: 负责比特流在介质上的传输。 规范了线缆、针脚、电压、接口等物理特性规范。 常见的传输介质有:双绞线、光纤、电磁波等。

物理层常见传输介质有

双绞线:当今以太网最常见的传输介质

按照抗电磁干扰能力还可以分为: STP-屏蔽双绞线 UTP-非屏蔽双绞线 光纤传输

按照功能部件可分为: 光纤:光传输介质,简单的说,就是一根玻璃纤维,用于约束光传输的通道。 光模块:将电信号与光信号互转的

器件,产生光信号。 串口电缆在WAN(Wide Area Network,广域网)中大规模使用

根据WAN线路类型不同,串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM接口、POS接口、CE1/PRI接口等。

无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出去,移动终端的无线网卡将电磁波解调,得到

数据,完成从无线路由器到移动终端的数据传输。

2.4 常见的协议标准化组织

IETF(Internet Engineering Task Force) 负责开发和推广互联网协议(特别是构成TCP/IP协议族的协议)的志愿组织,通过RFC发布新的

或者取代老的协议标准。

IEEE(Institute of Electrical and Electronics Engineers) IEEE制定了全世界电子、电气和计算机科学领域30%左右的标准,比较知名的有

IEEE802.3(Ethernet)、IEEE802.11(WiFi)等。

ISO(International Organization for Standardization) 在制定计算机网络标准方面,ISO是起着重大作用的国际组织,如OSI模型,定义于

ISO/IEC 7498-1。

三、数据的通信过程

假设你正在通过网页浏览器访问华为官网,当你输入完网址,敲下回车后,计算机内部会发生下列事情:

1. IE浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装(图中DATA还应包括HTTP头部,此处省略) 。

2. HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块。

3. TCP模块给应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口等)。此时的PDU被称作Segment(段)。

4. 在IPv4网络中,TCP模块会将封装好的Segment传递给网络层的IPv4模块(若在IPv6环境,会交给IPv6模块进行处理)。

5. IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时的PDU被称为Packet(包)。

6. 由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将Packet交由数据链路层的Ethernet模块(例如以太网卡)处理。

7. Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应的Ethernet头部信息和FCS帧尾,此时的PDU被称为Frame(帧)。

8. 在Ethernet模块封装完毕之后,会将数据传递到物理层。

9. 根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波(无线)信号等。 10. 转换完成的信号在网络中开始传递。

一般情况下:

网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的“交换”操作。

网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的“路由”操作。 

这篇关于HW数通IA笔记2-网络参考模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112272

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个