#include <stdio.h>
//三层交换技术的类C语言描述
int main(int argc, char const *argv[])
{
char A = “源机器”;
char B = “目标机1”;
char C = “目标机2”;
char Gateway = “默认网关”;
char ThirdtranMachine = “第三层交换机”;
char ThirdModular = “第三层交换模块”;
char SecondtranModular = “第二层交换模块”;
//A和B通信,A和B在同一子网
if (“A的IP地址&子网掩码” == “B的IP地址&子网掩码”)
{
“A广播ARP请求”;
“B返回B的MAC地址”;
“A取得B的MAC地址”;
SecondtranModular = “A将B的MAC地址封包并转发数据”;
“SecondtranModular查找MAC地址表”;
if (“MAC地址表中存在B的MAC地址”)
{
“SecondtranModular发送数据包到B端口”;
}
}
//A和C通信,A和C不在同一子网
“A向Gateway广播ARP请求”;
if (“Gateway中存在C的MAC地址”)
{
“Gateway返回C的MAC地址给A”;
}
else
{
“ThirdModular向C广播ARP请求”;
“C收到ARP请求,并返回自己的MAC地址给ThirdModular”;
“ThirdModular保存C的MAC地址,并发送给A”;
“A得到C的MAC地址并将其封包”;
“A发送数据给SecondtranModular”;
“SecondtranModular将数据发送给C端口”;
}
return;
}