欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网络:数据链路层 ARP ICMP ping命令 路由器 NAT网关 动态路由算法 OSPF BGP

程序员文章站 2022-03-05 13:35:12
...

1 数据链路层

  • 集线器hub:采取广播模式,会将数据发给所有的目标源,即没有大脑的交换机

  • 在物理层的数据内容基础上,最前面封装了【目的mac地址】【源mac地址】【类型】,即14字节以太网首部;最后面封装了【CRC】循环冗余检测,检测是否在发送过程中出现错误

    目的地址 源地址 帧类型 数据 CRC
    6字节 6 2 46~1500 4
    • 数据链路层解决收件人、发件人、错误检测
  • 交换机

    1)转发表:交换机会学习,记录每台机器的mac地址在哪个口,记录在转发表;由于机器的IP会变所有会更新


2 网络IP层

2.1 ARP协议

  • 已知IP地址,求MAC地址;Address Resolution Protocol

1)维护一张ARP表:IP和MAC地址的映射

arp -a #查看ARP表

2)ARP数据报文格式:28字节ARP请求/问答,op=1表示请求,op=2表示问答

以太网首部 硬件类型 协议类型 硬件地址长度 协议地址长度 op 发送端以太网地址 发送端IP地址 目的以太网地址 目的地址
14字节 2 2 1 1 2 6 4 6 4

2.2 ICMP协议

  • Internet Control Message Protocol;主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等

    1)ping命令和tracert命令:基于ICMP,ICMP是封装在IP包里面的,以下为IP数据报格式

4位版本 4位首部长度 8位服务类型(TOS) 16位总长度(字节数)
16位标识 3位标志 13位片偏移
8位生存时间(TTL) 8位协议 16位首部检验和
32位源IP地址
32位目的IP地址
选项(如果有)
数据

​ 2)ICMP报文:封装在IP包里面,作为侦察兵,以下不包括IP头部分为ICMP报文

IP头 类型TYPE(8位) 代码CODE(8位) 校验和(16位) 根据类型和代码不同而不同

​ 3)ping命令:主动请求TYPE=8,主动请求应答TYPE=0


2.3 路由器

  • 将多个区域网相连,每个区域网的出口叫网关Gateway,路由器有多个网口或网卡
  • 网关:三层转发设备,即MAC头和IP头取下来,根据自己的路由算法,选择另一个网口加上IP头和MAC头发出去,往往是一个路由器
  • 静态路由:路由器上配置一条一条的规则
#windows查看路由表
route print

#Linux查看路由表,有2种方式
route #内核的路由表
netstat -rn
  • 转发网关:源IP和目标IP没有变,只有每到一个新的区域网源MAC目标MAC在不断的变,直到找到目标IP为止

    下一跳:某个IP将这个IP地址转换为MAC放入MAC头

  • NAT网关:Network Address Translation

    • 目标IP即为对方的公网IP(国际身份),不能是对方的区域网IP(国内身份),会有一个映射表去映射到公网IP

    • 源IP 刚开始为本机的区域网IP(国内身份),网络包到达公网时,需 源IP 要把自己的国内身份改为国际身份,即改为自己区域网内的公网IP。即出国了,身份证需要换成护照了

#Linux下抓包
tcpdump
  • 桥接模式:将主机网卡与虚拟机的网卡利用虚拟网桥进行通信,公用同一个网卡;和主机是平级关系,无需虚拟网卡

3 应用层协议

3.1 动态路由算法

  • 距离矢量路由:distance vector routing,基于Bellman-Ford算法(最短路径算法)。例如应用层基于UDP的RIP路由协议,适用于小于15跳的小型网络

  • 好消息传得开,坏消息传得满

  • 每次发送需要发送整个全局路由表

  • 链路状态路由:link state routing,基于Dijkstra算法(最短路径算法)。

  • 只广播【更新的】或【改变的】网络拓扑。使得更新信息更小,节省带宽和CPu利用率

3.2 动态路由协议

  • OSPF协议:Open Shortest Path First,基于IP和链路状态路由算法,开放式最短路径有限

  • 主要应用于数据中心内部,用于路由决策,称为内部网关协议IGP

  • BGP协议:Border Gateway Protocol**,**基于TCP,边界网关协议;路径矢量路由升级版