网络基础-五层协议/网络通信

1.网络协议的层次体系结构

 

 

2.五层架构

  1. 物理层:二进制比特流
  2. 数据链路层
    • MAC,即网卡(物理地址),ip可与子网掩码计算是否为同一网段,并且可以计算出该网段有多少个ip
    • 二三层之间,有arp表,arp会保留MAC地址和IP地址
    • vlan,即虚拟局域网;一般是对同一网段进行划分(但也有特殊情况,一个vlan包括多个网段)
    • 作用:
    • 当网段太大,为方便管理,可划分为多个vlan
    • 避免广播风暴,用来分割广播域
    • vlan的划分方式:
    • 根据交换机端口划分
    • 根据mac地址划分
    • 根据网络层划分
    • 根据IP组播划分
  1. 网络层:寻址,即:IP 【网关地址 即 IP地址】;网关地址是整个网段的出入口地址
  2. 传输层:TCP、UDP协议 ,根据端口交给应用层
  3. 应用层:常见协议有DNS、HTTP、HTTPS、SMTP等

 

发送端 5 -》4 -》3 -》2 -》1:每层加入对应的首部(尾部)

接收端 1 -》2 -》3-》4 -》5: 每层剥去对应的首部(尾部)

 

 

 

3.创建新网卡、添加IP段、设置路由

  • 查看所有虚拟网络的命名空间
    • ip netns list
  • 创建net-test的网络命名空间
    • ip add net-test
  • 给网卡bond0.75添加子网卡ipvlan-test1
    • ip link add ipvlan-test1 link bond0.715 type ipvlan mode l2
  • 查看网卡
    • ip link show
  • 将子网卡ipvlan-test1加入到虚拟网络空间net-test里
    • ip link set ipvlan-test1 netns net-test
  • 进入net-test的命名空间
    • ip netns exec net-test bash
  • 将网卡重命名为eth0
    • ip link set ipvlan-test1 name eth0
  • 给网卡添加网段
    • ip addr add 10.120.24.89/24 dev eth0
  • 启用eth0网卡
    • ip link set eth0 up
  • 为网卡添加路由
    • ip route add default via 10.120.31.247 mtu 1500 advmss 1460
  • 删除命名空间
    • ip netns delete net-test

 

上述命令中

  1. ip link 都是对网卡的操作
  2. 10.120.24.89/24 中的 24 表示子网掩码的二进制24个1,8个0(ipv4子网掩码32位,由连续的1和连续的0组成)
  3.  

     

其中10.120.24.89的二进制为:00001010 01111000 00011000 01011001

子网掩码为:11111111 11111111 11111111 00000000

ip与掩码作“与”运算为:00001010 01111000 00011000 00000000

所以网络地址(子网号)为:10.120.24.0

 

而24的网段ip个数为256,10.120.24.255为广播地址,所以有效ip段为10.120.24.1~10.120.24.254

 

ip段与子网掩码对照表:https://wenku.baidu.com/view/e9da13ff3d1ec5da50e2524de518964bce84d228.html

 

4.两台机器间通信

 

 

1、主机A和主机B在同一个二层网络中,直接走二层交换

 

 

主机A查看自己的ARP缓存,检查是否有主机B的IP到MAC的映射,如果有映射,(构造报文:目的IP为主机B的IP,源IP为主机A的IP,目的MAC为主机B的MAC,源MAC为主机A的MAC)将报文发送给交换机C,交换机C进行MAC地址表学习,将主机A的MAC和报文入端口号记录下来,然后交换机C查看自己的MAC转发表,检查是否有主机B的MAC到端口的映射,如果有映射,获取对应的端口,将报文从此端口转发出去,报文到达主机B。如果交换机C没有主机B的MAC转发表映射,采用洪泛的形式广播报文,主机B收到报文后向主机A回复,交换机C进行MAC表学习,将主机B的MAC和报文入端口号记录下来。

如果主机A没有主机B的ARP映射,主机A需要发送ARP请求,以获取主机B的MAC,将报文发往交换机C,交换机C采用洪泛的形式广播报文,主机B收到广播报文后,在自己的ARP缓存表中写入主机A的IP到MAC的映射,将自己的MAC封装到ARP回复报文中,单播给主机A,主机A获取到主机B的MAC后,在自己的ARP缓存表中写入主机B的IP到MAC的映射,构造报文发送给主机B,过程同上。

主机B向主机A回复报文的过程类似。

 

2、主机A和主机B不在同一个网络中,走三层路由

 

 

主机A查看自己的ARP缓存表,检查是否有路由器E的IP到MAC的映射,如果有映射,获取路由器E的MAC,构造报文(目的IP为主机B的IP,源IP为主机A的IP,目的MAC为路由器E的MAC,源MAC为主机A的MAC)将报文通过交换机C发往路由器E,过程同上。

如果主机A没有路由器E的IP到MAC的映射,需要发送ARP请求,获取路由器E的MAC,过程同上。路由器E收到主机A的报文后,剥离报文的MAC帧头,查询路由表,发现目标主机B所在的网络是直连的,查看自己的ARP缓存表,如果有主机B的IP到MAC的映射关系,获取主机B的MAC,封装报文MAC帧头,目的MAC为主机B的MAC,源MAC为路由器E的MAC,将报文通过交换机D发往主机B,如果路由器E没有主机B的IP到MAC的映射关系,需要发送ARP请求,获取主机B的MAC,过程同上。

 

 

posted @ 2022-06-30 09:48  Shadow.Yin  Views(466)  Comments(0Edit  收藏  举报