网络基础
网络数据传输方式
一层一层的打包 然后一层一层的解析
- 发送者的数据从应用层到传输层 会增加TCP Header (端口)
- 然后到网络层 会增加IP header (IP地址)
- 然后到链路层 会增加以太网 Header (MAC地址) 通过传输介质到接收者
- 以太网发现有个 以太网的Header 就把这个包给对应的MAC地址
- 然后传到网络层 IP协议解析这个包 找到对应的IP地址 发送过去
- 然后传到传输层 解析到端口 传给对应端口的应用
以太网
网卡和MAC地址
MAC地址: 00-05-5D-E8-0F-A3
交换机就是根据MAC地址转发数据的
- 电脑通过网卡连接网络
- 每块网卡有个厂商设定的MAC地址(又称物理地址)
- 这个地址是设备的唯一标识
- 网卡的MAC地址可以通过驱动改变(只要在同一个链路里面没有相同的话不会有影响)
以太网的Header
- 目标MAC地址(6字节)
- 源MAC地址(6字节)
- 类型 (2字节)
- 数据(46~1500字节)
- FCS(4字节,帧检验序列)
IP协议
IP地址
- 又32位二进制数组成
- 分为网络标识和主机标识两部分
- 子网掩码确定了32位里面哪些是主机标识哪些是网络标识
1为网络标识,0为主机标识
路由控制
在同一个网络下的数据传输:
- 应用层192.168.0.1 给 192.168.0.1 发送信息
- 传输层 增加TCP Header 记录端口: from 80 to 80
- 网络层 增加IP Header 记录ip: from 192.168.0.1 to 192.168.0.2
- 以太网 增加以太网 Header from 00-05-5D-E8-A3 to ???
这个时候以太网知道发送者的MAC地址,同时在MAC地址表记录下来,但是不知道接收者192.168.0.2 的MAC地址 - 这时候会发一个ARP广播 对应的信息有发送者的ip和MAC地址接收者的IP地址和MAC(FFFFFF)
- 交换机收到目标MAC地址为FFFFFF 会发送一个广播给连接交换机的所有电脑 查询对目标IP对应电脑MAC地址
- 当目标电脑收到信息以后会将MAC地址告诉发送者,同时也会经过交换机,交换机会在MAC地址表记录下来
- 知道目标的MAC地址以后就可以将MAC地址补到之前缺失的MAC地址上
- 最后一层层解析数据就到了192.168.0.2的电脑上
网络之间的数据传输
- 将出数据从192.168.0.1 发送给 172.6.0.1 因为ip不是在同一个网段所以会发送给网关(192.168.0.254)
- 但是不知道网关的MAC地址,所以会发起ARP查询
- 然后收到网关的ARP响应,将MAC地址补上并且把数据发送给网关192.168.0.254)
- 网关收到192.168.0.1发来的数据,发现目标的IP地址也不是自己,然后查询路由表得知自己应该发送给路由器B 也就是192.168.1.254
- 然后再次发起ARP查询 找到192.168.1.254 MAC地址 并发送给过去
- 直到发送到路由器C,路由器C查询他自己的路由表发现,这个网段是自己直连的,然后查询ARP缓存里面有没有IP对应的MAC地址,只要172.6.0.1往外面发过数据,那么他的MAC地址就会被缓存下来,如果没有发送过那就发起ARP广播查询172.6.0.1MAC地址,拿到地址以后将目标的MAC地址更改为172.6.0.1MAC地址,将数据发送过去。
- 经过网络层和传输层172.6.0.1拿到最终数据
IP分片和重组
- 不同的网络上最大传输单元(MTU)的大小是不一样的
- IP协议这是网络的上层封装,它对此进行了抽象
- 路径发现MTU会在发送数据帧超过网络MTU时自动调整并重发数据
- IP报文由路由器进行分片,目标主机进行重组
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 chenMing!