前言
这是我在字节第六届前端青训营的学习第七篇笔记
今天要讲的是关于TCP/IP五层协议中网络层的IP协议部分
TCP/IP五层协议
3. 网络层
昨天我们讲到了网络层中关于IP地址和子网掩码的一些知识和概念,今天我们接着讲关于IP协议发送数据的方式
那了解了IP地址和子网掩码之后,IP协议是如何发送数据的?
协议规定,IP协议使用IP数据包进行发送数据。
IP数据包同样把数据分为了两部分,head和data,并且在发送数据的时候,直接用IP数据包直接装载以太网的data部分。
| 以太网头 | IP头 | Data |
|---|
head:长度为 20 到 600 字节
data:最长为 65515 字节
而以太网数据包的“数据” 部分,最长只有 1500 字节,因此,如果IP数据包超过了 1500 字节,它就需要分割成几个以太网数据包,分开发送了。
我们昨天还讲过,以太网的头是包含了本机的 MAC 地址和目标 MAC 地址的,那如何查找目标 MAC 地址呢?
前辈们弄了一个叫 ARP 协议的东西专门来解析目标 MAC 地址。它是如何工作的?首先,它是数据链路层的东西,在我们发送一个数据包的时候是包含着对方的 IP 地址的。
例如我
(172.13.4.58)想发送一条数据给女朋友(172.13.4.90),首先,我得先拿到女朋友的MAC地址才可以通信。此时,我们会先计算一下我和女朋友是否在一个子网内(子网掩码),在一个子网内,直接广播发送一个数据包
本机Mac | 本机IP | 目标MAC | 目标IP |
|---|---|---|---|
| fa:16:3e:61:b9:67 | 192.168.0.174 | ff:ff:ff:ff:ff:ff | 192.168.0.45 |
子网内的计算机发现了这个包之后会返回一个数据包并且带有 MAC 地址,这样就通过 IP 地址找到了目标主机的 MAC 地址,接下来就可以进行数据传输了。
不在一个子网内,单纯的用广播就不行了,因为广播只是针对自己内网而言。那怎么办,此时会把数据包发给网关,由网关发给其它路由,这样在整个万维网里就可以找到你想要的那个计算机的 MAC 地址了。
总结
ARP就是通过IP 地址来查找MAC 地址的一套固定协议,它是数据链路层的内容。- 网络层的意义:定义了子网, 区分各个局域网
- IP 地址:网络地址
- 子网掩码:计算是否是同一个子网