网络参考模型

简介: OSI参考模型

OSI参考模型

应用层

对应用程序提供接口。

表示层

进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解。

会话层

在通信双方之间建立、管理和终止会话。

传输层

建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等。

网络层

定义逻辑地址;实现数据从源到目的地的转发。

数据链路层

将分组数据封装成帧;在数据链路上实现数据的点到点、或点到多点方式的直接通信;差错检测。

物理层

在媒介上传输比特流;提供机械的和电气的规约

TCP/IP参考模型

应用层

主机到主机层

英特网层

网络接入层

TCP/IP标准参考模型将OSI中的数据链路层和物理层合并为网络接入层,这种划分方式 其实是有悖于现实协议制定情况的,故融合了TCP/IP标准模型和OSI模型的TCP/IP对等模型被提出,后面的讲解也都将基于这种模型。

TCP/IP对等模型

应用层

传输层

网络层

数据链路层

物理层

TCP/IP常见协议

应用层PDU:数据

Telnet、FTP、TFTP、SNMP、HTTP、SMTP、DNS、DHCP

Telnet:提供远程登录服务的标准协议。

HTTP(超文本传输协议):用来访问在网页服务器上的各种页面。

FTP(文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上,采用C/S结构。

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

传输层PDU:数据段

TCP(传输控制协议):为应用程序提供面向连接的通信服务。 ——传数据前必须要建立连接,很可靠,但耗费时间。

UDP:为应用程序提供面向无连接的,且不对传送数据包进行可靠性的保证。 ——传数据不需要建立连接,不可靠,但速度很快。

比如:发送微信,主播直播,都是用到UDP协议。

TCP和UDP端口号:

客户端使用的源端口一般是随机分配的,为系统中未使用的,且大于1023;目标端口则由服务器的应用指定(比如HTTP:80;FTP:21)

TCP的建立和断开: ——三次握手和四次挥手

网络层PDU:数据包

IP、ICMP、IGMP

IP(互联网协议):将传输层的数据封装成数据包,完成源到目的的转发,提供无连接的、不可靠的服务。

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

ICMP(网际报文控制协议):基于IP协议在网络中发送控制消息,提供可能发生的问题反馈。

数据链路层PDU:数据帧

PPP、PPPoE、Ethernet

PPP(点对点协议):一种点对点模式的数据链路层协议,多用于广域网。

PPPoE(以太网承载PPP协议):PPPoE提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能。常见的应用有家庭宽带拨号上网。

Ethernet(以太网协议):一种多路访问广播型数据链路层协议,是当前应用最广泛的局域网技术。

以太网与MAC地址

以太网是一种广播式数据链路层协议,支持多点接入。

个人电脑的网络接口遵循的就是以太网标准。

一般情况下,一个广播域对应着一个IP网段。

MAC地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址。

MAC用于在一个IP网段内,寻址找到具体的物理设备。

工作在数据链路层的设备。例如以太网交换机,会维护一张MAC地址表,用于指导数据帧转发。

物理层PDU:比特流

数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。

负责比特流在介质上的传输。

传输介质:双绞线、光纤

ARP(地址解析协议):

根据已知IP地址获得对应的MAC地址。

ARP的主要功能:

  • 将IP地址解析为MAC地址
  • 维护IP地址与MAC地址的映射关系的缓存,即ARP表项
  • 实现网段内重复IP地址的检测

那,知道IP地址,为什么还要知道MAC地址呢? 答:数据从主机A发给主机B时,要经过应用层,传输层,网络层,到数据链路层时,需要MAC地址封装数据包。没有MAC地址封装不了。

ARP工作原理   ARP缓存表会过期,有效期是180s

例如:AR1pingAR2,在ping通之前,首先AR1会发一个ARP报文,免费ARP。因为没有AR2的MAC地址,不能完成数据链路层的封装,用广播包去问广播域内谁有AR2的MAC的地址告诉AR1,然后AR2收到之后,我有MAC地址,就会以单播方式发给AR1

数据链路层通过对上层类型字段判断上层协议(网络层)承载的是何种协议(可以抓包,发ping包)

1、0x0806是ARP协议

0x0800是IP协议

如果是网络层根据上层协议号判断上层协议(传输层)承载的是何种协议

1、协议号为1,代表ICMP协议

2、协议号为89,代表OSPF协议

传输层根据上层端口号判断上层协议(应用层)承载的是何种协议

1、HTTP是80

2、FTP是21

数据通信过程

比如在访问华为官网,输入网址,敲下回车后,计算机是这样处理的:

  1. 浏览器(应用程序)调用HTTP协议,完成应用层数据的封装。此时PDU为数据。
  2. HTTP依靠传输层的TCP进行可靠传输,并添加上TCP头部信息,包括源端口、目的端口,此时PDU为数据段。
  3. 在IPv4网络中,TCP会将封装好的数据段传递给网络层,并由网络层完成封装,此时PDU为数据包。
  4. 由于使用了Ethernet作为数据链路层协议,在网络层完成封装后,会交由数据链路层处理(例如以太网卡)。
  5. 数据链路层在收到数据包之后,会添加上相应的头部和尾部,此时PDU为数据帧。
  6. 添加完之后,会传递给物理层,物理层根据物理介质不同,将数字信号转换成电信号,光信号或者无线信号。
  7. 然后信号将在网络中开始传递。

数据封装解封装的过程

https://www.zhihu.com/answer/2634307664

数据封装的过程

数据的封装过程为:原始数据→数据段→数据包→数据帧→比特流

  • 应用层:原始数据被转换成二进制数据
  • 传输层:数据被打上传输层头部比如TCP头部,封装成Segment 数据段。此步关键信息是端口号。
  • 网络层:会给数据打上IP头部,封装成Packet数据包,此步关键信息是源目ip地址。
  • 数据链路层 :会给数据打上帧头部,封装成Frame数据帧,头部中关键信息是源目MAC地址。
  • 物理层:在网线或者光纤上将二进制数据封装成高低电频信号或者光信号
  • 数据帧最终在物理层上(双绞线光纤跳线)上以电信号或光信号进行传播转发。
  • 这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装

数据解封装的过程:

数据的解封装过程为:比特流→数据帧→数据包→数据段→原始数据

  • 物理层:将数据转换成二进制数据,然后将数据送到数据链路层。
  • 数据链路层:先查看MAC地址,是自己的MAC地址就会保留,不是就会丢弃。然后再将数据帧的帧头去掉,校验type字段,查看上层(网络层)使用的是何种协议。再将数据发送到网络层。
  • 网络层: 先查看IP地址,是自己的ip地址就会保留,不是就会丢弃。然后再去掉ip头部,校验协议号Portocol,查看上层(传输层)使用的是何种协议,再将数据发送到传输层。
  • 传输层:校验端口号,然后再给到应用层。
  • 应用层:将二进制数据转换为原始数据

每层添加的头部信息都包含了源目端口号、源目IP地址、源目MAC地址。所以在解封装的过程中提到:查看MAC地址与IP地址是否是自己的,实际上查看的就是添加的头部信息中的目的端口号、目的IP地址、目的MAC地址。

PDU协议数据单元

应用层 PDU数据

传输层 PDU数据段

网络层 PDU数据包

数据链路层 PDU数据帧

MAC地址组成部分:1、OUI;2、ser序列号

MAC地址一共48bit,6个字节 ——一个字节=8bit,采用16进制,所以会存在字母A-F(MAC地址是不会出现大于F的)

TCP/IP常见协议

应用层:Telnet FTP SMTP(25) SNMP HTTP DNS DHCP

传输层:TCP UDP

网络层:IP ICMP IGMP

数据链路层: PPPoE PPP Ethernet

相关文章
|
12天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
12天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
29天前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Keras构建一个简单的神经网络模型
使用Keras构建一个简单的神经网络模型
|
6天前
|
机器学习/深度学习 搜索推荐 算法
基于深度学习神经网络协同过滤模型(NCF)的图书推荐系统
登录注册 热门图书 图书分类 图书推荐 借阅图书 购物图书 个人中心 可视化大屏 后台管理
1318 0
基于深度学习神经网络协同过滤模型(NCF)的图书推荐系统
|
12天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】27.卷积神经网络之VGG11模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】27.卷积神经网络之VGG11模型介绍及其Pytorch实现【含完整代码】
|
12天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】25.卷积神经网络之LeNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】25.卷积神经网络之LeNet模型介绍及其Pytorch实现【含完整代码】
YOLOv8打印模型结构配置信息并查看网络模型详细参数:参数量、计算量(GFLOPS)
YOLOv8打印模型结构配置信息并查看网络模型详细参数:参数量、计算量(GFLOPS)
|
12天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】29.卷积神经网络之GoogLeNet模型介绍及用Pytorch实现GoogLeNet模型【含完整代码】
【从零开始学习深度学习】29.卷积神经网络之GoogLeNet模型介绍及用Pytorch实现GoogLeNet模型【含完整代码】
|
12天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】16. Pytorch中神经网络模型的构造方法:Module、Sequential、ModuleList、ModuleDict的区别
【从零开始学习深度学习】16. Pytorch中神经网络模型的构造方法:Module、Sequential、ModuleList、ModuleDict的区别
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习基础之经典神经网络模型
深度学习模型来源于神经系统层次化结构特性,主要机制是层层递进,逐层抽象,主要应用于计算机视觉(computer vision,CV)和自然语言处理(Natural language processing,NLP)。
30 1

热门文章

最新文章