作者:Matherslll_493 | 来源:互联网 | 2023-09-14 12:02
ISO/OSI参考模型
传输数据单位PDU
应用层:APDU,应用层与应用程序界面沟通,已达到展示给用户的目的。
表示层:PPDU,对网络传输的数据进行变换,使得多个主机之间传送的消息能够互相理解,包括数据的压缩、加密、格式转换等
会话层:SPDU,管理主机之间会话过程,包括会话建立、终止和会话过程中的管理
传输层:segment,跟数据链路层一样可以提供可靠的数据传输服务,它检测IP层(路由器)出现的丢包,然后产生一个重传请求,能够将乱序收到的数据包重新排序
网络层:package,负责将各个子网之间的数据进行路由选择,分组和重组
数据链路层:frame,对物理层的bit流进行数据成帧。提供可靠的数据传输服务,实现无差错数据传输
物理层:bit流,不对数据进行任何的假定和解释,它不知道数据是做什么的
理想模型:七层模型
图片来自http://www.ha97.com/3215.html
OSI和邮件发送的比喻
事实模型:tcp/ip四层模型
通信的基础是遵循一致的协议
路由器用来连接多个网络,中间可能经过很多路由器
对等通信
虚电路,就好像应用层直接对话
tcp/ip协议栈,因为实际的数据流就好像后进先出的概念
封装
通过封装对等端能够认识他从而能够解析
加上头部
解封(分用)
去掉各个头部
以太网帧的格式
crc用于校验
1. 地址
对链路层来说它并不识别ip地址(逻辑地址),只能识别mac地址(物理地址)
IP->MAC 地址解析(ARP协议)
MAC->IP 反向地址解析(RARP协议)
2. 类型
存在3种数据报文,IP数据报,ARP请求/应答,RARP请求/应答
ARP协议,RARP协议我们把它们归并到链路层,实际上应该是介于IP层和链路层之间的协议
根据以太网帧的类型链路层决定把数据报传递给ARP协议,RARP协议还是上层的网络层
ICMP协议,IGMP协议也是介于IP层与传输层之间,根据IP头部信息中的协议类型决定到底是传输给ICMP协议,IGMP协议还是上层的传输层协议(tcp,udp)
ICMP协议
用于传递差错信息、时间、回显、网络信息等控制数据
ip->mac地址解析,可能ip并不存在
A要进行数据的封装,要得到B的mac地址,如果它经过网络路由器轮转最终无法得到对方的mac地址的时候就会出错,出错就需要将这个差错信息返回给源端,这时候反馈的过程就将数据封装成ICMP协议的格式通知给源端。
PING程序就是将数据封装成ICMP协议进行实现的
ARP-地址解析协议
当主机A要向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查找有无主机B的IP地址。如果有,就在ARP高速缓存中查出其对应的硬件地址,再把其硬件地址写入到MAC帧,然后通过局域网把该MAC帧发往此硬件地址。
如果主机高速缓存中没有则运行ARP按照以下步骤查找出主机B的硬件地址。
(1)ARP进程在本局域网上广播发送一个ARP请求分组如下:
(2)本局域网上所有的主机上运行的ARP进程都收到此ARP请求分组。
(3)主机B在ARP分组中见到自己的IP地址就向A发送ARP响应分组,并写入自己的硬件地址,相应分组是普通的单播。
(4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
(5)另外,当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为委托ARP或ARP代理(ARP Proxy)。
ARP缓存表采用老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
参考:
OSI与邮件收发的比喻
OSI七层协议模型、TCP/IP四层模型学习笔记
计算机网络--ARP地址解析协议详解