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

news2024/11/15 13:52:40

目录

零、本章主要内容

一、应用和数据

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

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. 转换完成的信号在网络中开始传递。

一般情况下:

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

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

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

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

相关文章

高级MySQL数据库备份脚本

高级MySQL数据库备份脚本 主要功能项目构成credentials.txtsettings.confmysql-dump.sh SFTP备份配置:生成 SSH 密钥对将公钥复制到 SFTP 服务器测试无密码登录 邮件发送配置安装插件sendmail、mailx修改mail配置获取邮箱授权码 如何执行备份执行备份脚本计划每日的…

【数据结构-前缀异或和】力扣1371. 每个元音包含偶数次的最长子字符串

给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。 示例 1: 输入&…

PyCharm 自定义字体大小

常用编程软件自定义字体大全首页 文章目录 前言具体操作1. 打开设置对话框2. 设置编辑器字体3. 选择外观字体 前言 PyCharm 自定义字体大小,统一设置为 JetBrains Mono 具体操作 【File】>【Settings...】>【Editor】>【Font】 统一设置为字体样式 JetB…

JVM上篇:内存与垃圾回收篇-13-垃圾回收器

笔记来源:尚硅谷 JVM 全套教程,百万播放,全网巅峰(宋红康详解 java 虚拟机) 文章目录 13. 垃圾回收器13.1. GC 分类与性能指标13.1.1. 垃圾回收器概述13.1.2. 垃圾收集器分类13.1.3. 评估 GC 的性能指标吞吐量暂停时间…

X86架构(五)——栈操作与寻址操作

我们先采用 X86架构(四) 所学知识,在显示器上显示 123...100 ;代码清单7-1;文件名:c07_mbr.asm;文件说明:硬盘主引导扇区代码;创建日期:2011-4-13 18:02jmp near __startmessage db 123...100 __start:mov ax, 0x7c0 ;数据段基…

APP封装安装配置参考说明

APP封装安装配置参考说明 一, 环境准备 宝塔环境 nginx php5.6 mysql5.6 java-openjdk1.8 apktool 1,安装 nginx,php,mysql自行安装 java-openjdk1.8 安装 推荐使用命令行安装 1.1 yum install java-1.8.0-openjdk1.2 yum install -y java-1.8.0-openjdk-devel1.3 设置…

Intellij Idea + Git 完美实战!

环境准备 使用前需要安装一个远程的 Git 仓库和本地的 Git 客户端。由于IDEA中的Git插件需要依赖本地Git客户端,所以需要进行如下配置: 如果本地已有项目,直接通过如下操作,即可在远程自动创建仓库并关联 1. 克隆远程仓库代码&am…

halcon4

图像采集助手-Image Aequisition 1.配置相机IP 和巨型帧等 2.通过海康MVS软件 找到 对应halcon 版本 3. 找到对应halcon版本的 海康相机文件 4.找到Halocn文件目录 粘贴上图文件 通过halcon 助手 -Image Aequisition -自动检测 -找到MVision接口 连接相机 采集图像 实时…

一句话概括TMMi的每个PA

TMMi(Test Maturity Model Integration,测试成熟度模型集成)是一个由TMMi基金会开发的非商业化的测试成熟度模型,是对CMMI模型的一个补充。它可以帮助组织使测试过程从未管理的状态进化为已管理、已定义、已测量和优化的状态。 T…

网站建设完成后,视频类网站如何做seo

视频类网站的SEO优化是一个综合性的工作,涉及从内容优化、技术优化到外部链接建设等多个方面。由于视频类网站主要提供的是视频内容,其SEO优化不仅需要关注常规的网页优化技巧,还需要考虑视频特有的元素和用户行为模式。以下是针对视频类网站…

Xilinx高速接口之GTP

简介 开坑计划中,主要参考ug482 主要讲解结构以及原语 以及时钟路由和一些其他的 GTP_COMMON还好,需要设置的不多,原语也短, GTP_CHANNEL需要设置的东西真多,原语也长 还好有官方参考例程以及自动生成的原语例化 不然…

0基础学习Python路径(31)logging模块

Python logging 模块定义了为应用程序和库实现灵活的事件日志记录的函数和类。 程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、警告等信息输出,Python 的 logging 模块提供了标准的日志接…

OpenCV绘图函数(4)绘制轮廓线的函数drawContours()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 函数会在图像中绘制轮廓线&#xff0c;如果 thickness ≥ 0&#xff0c;则绘制轮廓线&#xff1b;如果 thickness < 0&#xff0c;则填充由轮…

【JLINK】RTT Viewer 的使用

​​​​​​ 一、使用说明 1.1 查找 RTT 缓冲区的开始位置 echo off if exist .\Debug\%PRJ_NAME%.map (findstr /C:" _SEGGER_RTT" .\Debug\%PRJ_NAME%.map rem findstr /C:" __StackTop " .\Debug\%PRJ_NAME%.map rem findstr /C:" Reset_Handle…

从欧拉公式的美到旋转位置编码RoPE

也许你在某些场合听说过欧拉公式&#xff0c;也许你干脆对数学不感冒。机缘巧合下&#xff0c;你点开了这篇文章&#xff0c;大致浏览了下然后关闭&#xff0c;继续为自己的工作学习忙碌。这不妨碍你暂停忙碌的脚步&#xff0c;欣赏她的美。 若干年后&#xff0c;你应该不曾记得…

Java基础(2)- Java环境

目录 一、jvm和跨平台 二、JDK 和 JRE 三、JDK的下载和安装 四、配置环境变量 一、jvm和跨平台 1.jvm&#xff08;Java虚拟机&#xff09;类似于翻译官&#xff1a;java运行程序的假想计算机&#xff0c;主要运行java程序。 2.跨平台&#xff1a;指不同操作系统。 3.关系…

网上买大流量卡要问哪些问题?几个常见的问与答!

大家都比较关注的几个常见的流量卡问题&#xff0c;答案来喽&#xff01; 这几个问题特别适合刚刚接触流量卡的朋友&#xff0c;如果你在购买流量卡时不知道该了解什么&#xff0c;该向商家问什么的时候&#xff0c;不妨问问这几个问题吧&#xff0c;接下来&#xff0c;这篇文…

python 实现square root平方根算法

square root平方根算法介绍 计算平方根&#xff08;Square Root&#xff09;的算法有多种&#xff0c;这里介绍几种常见的方法&#xff1a; 牛顿迭代法&#xff08;Newton’s Method&#xff09; 牛顿迭代法是一种在实数域和复数域上近似求解方程的方法。对于平方根问题&…

home kit认证

在当今快节奏的生活中&#xff0c;智能家居技术正不断改变我们的居住体验。home kit 将这一领域提升到了全新的高度。它不仅让智能家居设备的管理变得更为简单直观&#xff0c;还通过高水平的安全性和互操作性&#xff0c;为用户提供了无缝的体验。 一、什么是home kit home k…

CentOS7将yum源更换为国内源保姆级教程

在 CentOS 7 系统中更改 YUM 源到国内源可以显著提高软件包的下载速度&#xff0c;因为国内源服务器通常距离中国大陆用户更近。以下是一个详细的步骤来完成这一操作&#xff1a; 步骤 1: 备份原有配置 首先&#xff0c;备份原系统中的 yum 配置文件以防万一&#xff1a; BA…