资源简介
南京大学计算机网络实验四:静态路由编程实验,C实现。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define PACKET_SIZE 4096
#define MAX_WAIT_TIME 5
#define MAX_NO_PACKETS 10000
#define MAX_ARP_SIZE 100
char *addr[2];
char sendpacket[PACKET_SIZE];
char recvpacket[PACKET_SIZE];
int sockfddatalen = 56;
int nsend = 0 nreceived = 0;
double temp_rtt[MAX_NO_PACKETS];
double all_time = 0;
double min = 0;
double max = 0;
double avg = 0;
double mdev = 0;
char local_mac[18];
struct sockaddr_ll dest_addr;
struct sockaddr_in from;
struct timeval tvrecv;
struct timeval tval;
pid_t pid;
struct arp_table_item
{
char ip_addr[16];
char mac_addr[18];
}arp_table[MAX_ARP_SIZE];
int arp_item_index=0;
void statistics(int sig);
void send_packet(char *dest);
void recv_packet(char *dest);
void computer_rtt(void);
void tv_sub(struct timeval *outstruct timeval *in);
int pack(char *dest);
int unpack(char *bufint len);
unsigned short cal_checksum(unsigned short *addrint len);
void init_arp()
{
FILE *fp=fopen(“arp_table““r“);
if(!fp)
{
printf(“can‘t open arp_table!\n“);
exit(0);
}
fscanf(fp“%s“arp_table[0].ip_addr);
fscanf(fp“%s“arp_table[0].mac_addr);
++arp_item_index;
while(!feof(fp))
{
fscanf(fp“%s“arp_table[arp_item_index].ip_addr);
fscanf(fp“%s“arp_table[arp_item_index].mac_addr);
++arp_item_index;
}
}
init_device()
{
FILE *fp=fopen(“device““r“);
if(!fp)
{
printf(“can‘t open the device!\n“);
exit(0);
}
fscanf(fp“%s“local_mac);
fscanf(fp“%s“local_mac);
}
/*计算rtt最小、大值,平均值,算术平均数差*/
void computer_rtt()
{
double sum_avg = 0;
int i;
min = max = temp_rtt[0];
avg = all_time/nreceived;
for(i=0; i if(temp_rtt[i] < min)
min = temp_rtt[i];
else if(temp_rtt[i] > max)
max = temp_rtt[i];
if((temp_rtt[i]-avg) < 0)
sum_avg += avg - temp_rtt[i];
else
sum_avg += temp_rtt[i] - avg;
}
mdev = sum_avg/nreceived;
}
/****统计数据函数****/
void statistics(int sig)
{
computer_rtt(); //计算rtt
printf(“\n------ %s ping statistics ------\n“addr[0]);
printf(“%d packets transmitted%d received%d%% packet losstime %.f ms\n“
nsendnreceived(nsend-nreceived)/nsend*100all_time);
printf(“rtt min/avg/max/mdev = %.3f/%.3f/%.3f/%.3f ms\n“
minavgmaxmdev);
close(sockfd);
exit(1);
}
/****检验和算法****/
unsigned short cal_chksum(unsigned short *addrint len)
{
int nleft = len;
int sum = 0;
unsigned short *w = addr;
unsigned sh
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-05-01 08:55 static-route-master\
文件 600 2017-05-01 08:55 static-route-master\README.md
目录 0 2017-05-01 08:55 static-route-master\report\
文件 580253 2017-05-01 08:55 static-route-master\report\lab4_151220055(李晓霖).pdf
目录 0 2017-05-01 08:55 static-route-master\source code\
目录 0 2017-05-01 08:55 static-route-master\source code\configuration.file\
文件 30 2017-05-01 08:55 static-route-master\source code\configuration.file\arp_table
文件 24 2017-05-01 08:55 static-route-master\source code\configuration.file\device
文件 86 2017-05-01 08:55 static-route-master\source code\configuration.file\route_info
目录 0 2017-05-01 08:55 static-route-master\source code\source.c\
文件 11114 2017-05-01 08:55 static-route-master\source code\source.c\p1.c
文件 2488 2017-05-01 08:55 static-route-master\source code\source.c\p2.c
文件 7383 2017-05-01 08:55 static-route-master\source code\source.c\r.c
相关资源
- 04741计算机网络原理知识点整理.docx(
- 校园网络规划与设计课程设计
- SOCKET 网络编程 计算机网络 作业 客户
- 计算机网络课程设计—ARQ协议模拟实
- 计算机网络第五版 严伟
- 计算机网络(第6版)谢希仁教学课件
- 2020年东南大学920考研真题(最新)
- 计算机网络自顶向下方法答案(第六
- 湖南大学操作系统实验报告
- 计算机网络管理员国家职业标准
- 计算机网络精讲视频教程
- 湖南大学计算机组成与原理实验已完
- 计算机网络 第7版 谢希仁 高清完美书
- 暨南大学考博试题计算机应用技术答
- 计算机网络(第5版)(Computer Networ
- 计算机网络课程设计 小型企业的
- 北航研究生计网实验报告.rar
- 计算机网络校园网课程设计
- 计算机网络24分游戏课设完整版
- 2018东南大学考研-计算机初试复试汇总
- 计算机网络(谢仁希第五版)课后答
- 计算机网络课程设计—设计一个校园
- 电子商务总结中南大学 刘伟PPT精简版
- 计算机网络第六版 教学视屏 网盘
- 计算机网络第7版谢希仁复习题完整版
- 东南大学数字图像处理期末复习
- 计算机网络讲义-陈鸣
- 东北大学计算机网络期末试题+答案
- 计算机网络打作业实现QQ.zip
- 哈尔滨工业大学深圳 高级计算机网络
评论
共有 条评论