arp协议属于哪一层_网络协议栈基本知识

697298739ebb5b1e62344504b02089b4.png

1、网络协议分层

按照分层的思想把网络协议栈进行分层主要有以下好处:

1.促进标准化工作,允许各个供应商进行开发

2.各层间相互独立,把网络操作分成低复杂单元

3.灵活性好,某一层变化不会影响到其它层

4.各层间通过一个接口在相邻层上下通信

OSI七层模型和TCP/IP五层模型的对比如下,我们现在用的是五层协议模型:

cb54583c30bc6d245fdaf8e38df3069b.png

2、PDU、封装和解封装

PDU(protocol data unit):每一层使用自己层的协议和别的系统的对应层相互通信,协议层的协议在对等层之间交换的信息叫协议数据单元

  1. 上层:message
  2. 传输层:segment
  3. 网络层:packet
  4. 数据链路层:frame
  5. 物理层:bit
  6. 封装:数据要通过网络进行传输,要从高层一层一层的向下传送,如果一个主机要传送数据到别的主机,先把数据装到一个特殊协议报头中,这个过程叫封装
  7. 封装分为:切片和加控制信息
  8. 解封装:上述的逆向过程

数据进入TCP/IP协议栈时的封装过程如下:

4b5b48293c75a97ee194abc5c910c995.png

数据进入TCP/IP协议栈时的解封装过程如下:

26ef7c7606c0a71520ba10ba99a873ec.png

3、以太帧和常见的报文格式

(1)以太网帧(Ethernet II Frame)

9dbc8d706da5a0e8c83fe6034cbad9cd.png
  1. D-MAC:目的MAC地址
  2. S-MAC:源MAC地址
  3. 类型域:表示帧里面上层协议数据的类型,0x0800代表IP协议帧,0x0806代表ARP协议帧
  4. CRC:帧校验

572bfb48a1095c38edd5a93c5c9dcc0d.png

(2)IP数据报

e8abf88e4d7b0a4f7c8c0ba4e362ef93.png
  1. 版本号:4代表IPv4,
  2. 头长度:报头的长度,值为4字节的倍数,故首部长度最大为60字节
  3. 服务类型:暂未使用
  4. 总长度:IP数据报的长度(报头区+数据区),单位为字节,故总长度最大为65535字节,但总长度不能超过最大传输单元MTU
  5. 标识:一个计数器,用来产生数据报的标识
  6. 标志:占3位,最低位MF,为1表示还有分片,中间为DF,为0,表示允许分片
  7. 片偏移:较长的分组在分片后,某片在原分组中的相对位置,单位为8字节
  8. TTL:生存时间,数据报可以经过的最大路由器数
  9. 上层协议标识:1:ICMP,2:IGMP、6:TCP、17:UDP等;

分片举例:

9f184755cea1b4fdbfa52e0a7fd14c6d.png

IP数据报解析:

b08f246ee668aa0f364c60691ed9fa17.png

(3)TCP数据报

538947c222629b957e833f225be6ced9.png

协议、源IP、源端口、目的IP、目的端口确定一个TCP连接

  1. 顺序号:TCP段所发送的数据部分第一个字节的序号
  2. 确认号:期望收到对方下次发送的数据的第一个字节的序号
  3. 头部长度:单位为4字节,因此TCP首部的最大长度为60字节
  4. 窗口大小:窗口通告值,发送方根据接收方的窗口告值调整窗口大小
  5. 紧急指针:指示紧急数据在报文段中的结束位置此时URG置位
  6. URG:表示紧急指针字段有效
  7. ACK:表示确认号字段有效
  8. PSH:表示当前报文需要推操作
  9. RST:置位表示复位TCP连接
  10. SYN:用于建立TCP连接时同步序列号
  11. FIN:用于释放TCP连接时标识发送方比特流结束

TCP报文解析:

9748351a25775f829e8723343e3ec388.png

(4)UDP数据包

bf71908e7befb45f654928fd3c1de6fd.png

497c3cba579407a3c034f59052bb96d4.png

常见协议对应的端口号:

UDP DHCP服务器端:67,DHCP客户端:68,DNS服务:53

TCP POP3(邮件接收协议):110,SMTP(邮件传输协议):25,HTTP服务:80

TCP FTP:数据传输为20,控制命令传输为21,Telnet:23

端口号范围为:1~65535,1~1024为熟知端口号,1025~65535称为动态端口

(5)ARP协议

ARP(Address Resolution Protocol)地址解析协议,是根据 IP 地址获取物理 MAC 地址的一个 TCP/IP 协议。

ARP 高速缓冲表:用来记录 IP 和 主机 MAC 地址的对应关系。会不断更新。

功能:通过目标设备的 IP 地址,查询目标设备的 MAC 地址,同时维护 ARP 高速缓冲表,以保证通信的顺利进行。

ARP分组格式

5972ef5157597ddbecd6447b5079c16e.png
  • 硬件类型:以太网为1
  • 协议类型:网络层协议类型,IP协议为0x0800
  • OP:操作码,ARP请求为1,ARP应答为2

003e01a1115afe29e3a77d4d41cfa67e.png

(6)ICMP协议

ICMP 是 "Internet Control Message Protocol"(网络控制报文协议)的缩写,用于在 IP 主机、路由器之间传递控制消息。

控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。

ICMP 层区分不是很明显,一般划分在 IP 层中,通过 IP 包来封装ICMP数据 ,在实际传输中数据包的格式一般都是 IP 包 + ICMP包的格式

ICMP包格式:

49ed1b0419a7b3c4ce4bdd425b55ae35.png

代码:用来表示ICMP报文类型的少数参数,

例如:代码值为0,表示网络不可达;代码值为1,表示主机不可达

0b11c2d87c5013659fb246029a09b6fd.png

3cf9427d0e22b57f83e0791ac1b9303e.png

(7)DNS协议简介

DNS(Domain Name System):域名系统,将域名和IP地址相互映射的一个分布式数据库

采用Client/Sever工作模式

DNS 协议运行在 UDP 协议之上,使用端口号 53

过程图解

7966e3f9c063f0f2a38a7b2653d7ca40.png

(8)DHCP协议简介

  1. DHCP(Dynamic Host Configuration Protocol):
  2. 动态主机配置协议采用Client/Sever工作模式
  3. 为主机提供配置参数、自动分配可重复利用的网络地址
  4. DHCP 协议运行在 UDP 协议之上,
  5. 服务器端口号 67,客户端口号68

4、ping演示

Ping命令是为了检查网络的连接状况而使用的网络工具之一,用来检测数据包到达目的主机的可能性。

原理:使用ICMP协议的回送请求、回送应答。客户端发送回送请求给服务器,服务器返回一个ICMP回应应答。

Ping过程图解:

325e0e843fe5dce3ceefc0ea6af3466d.png
  1. 首先开发板要解析百度的域名,获取到百度主机的 IP 地址,涉及到 DNS 协议,传输层用的是 UDP 协议
  2. DNS 主机利用 UDP 协议,回复百度的 IP 地址给开发板。
  3. 现在开发板要发送 Ping 请求包给百度主机,但是发现百度主机 IP 地址与自己不在同一网段,因此要发送 Ping 请求包给默认网关。
  4. 要发送给默认网关的时候,忽然发现并没有默认网关对应的 MAC 地址,因此发送一个 ARP 广播包,如果交换机存储了默认网关的 MAC 地址,就直接告诉开发板默认网关的 MAC 地址,否则就会向所有端口发送ARP广播,直到路由1收到了报文后,立即响应,单播自己的 MAC 地址给开发板。这样开发板就可以把 Ping 包发送给默认网关(路由1)了。
  5. 然后路由1 经过路由协议,经过一个个路由的转发,最后发送到了百度的主机上。百度主机检测到 IP 是自己的 IP,接收并处理 Ping 请求,接着百度主机发送一个 Ping 回应报文给开发板。

5、TCP客户端服务器通信演示

TCP(传输控制协议):提供一种面向连接的、可靠的传输层协议(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。

TCP三次握手过程:

f50d95a788da7c84403eeeb3680641d1.png

TCP四次挥手过程:

0dc46ec08dab8ed82d174ca24d023021.png

ps:IT技术、架构、职场、有意思的事儿,请关注我的公众号360linker

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页