linux网络编程实验报告以太网ARP(linux网络配置实验报告)

http://www.itjxue.com  2023-02-09 20:08  来源:未知  点击次数: 

Linux进程通信实验报告

一、实验目的:

进一步认识并发(并行)执行的概念,区别顺序执行和并发(并行)执行。

分析进程争用临界资源的现象,学习解决进程排斥的方法。

二、实验环境:

一台至少具有256MB内存的计算机,并安装Red Hat Linux 9的Linux操作系统。

三、实验内容:

1. 预备知识

fork函数调用:创建一个新进程。

getpid函数调用:获得一个进程的pid。

lockf系统的调用:在进程同步控制中为进程加锁。

2. 编写一段程序(程序名为fork1.c),使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和字符“c”。试观察记录屏幕上的显示结果,并分析原因。

(1)进入Linux操作系统。

(2)打开终端。进入vi编译器。

(3)输入源程序代码。

(4)按Esc键,进入命令模式后,输入“: wq文件名”就可以运行该程序了。

Linux内核-arp协议

从ip_finish_output2到dev_queue_xmit路径:

arp协议:

(1).硬件类型:

硬件地址类型,该字段值一般为ARPHRD_ETHER,表示以太网。

(2).协议类型:

表示三层地址使用的协议,该字段值一般为ETH_P_IP,表示IP协议

(3)硬件地址长度,以太网MAC地址就是6;

(4)协议地址长度,IP地址就是4;

(5)操作码

常见的有四种,arp请求,arp相应,rarp请求,rarp相应。

(6)发送方硬件地址与IP地址,(7)目标硬件地址与目标IP地址。

arp头数据结构:

arp模块的初始化函数为arp_init(),这个函数在ipv4协议栈的初始化函数inet_init()中被调用。

1.初始化arp表arp_tbl;

2.注册arp协议类型;

3.建立arp相关proc文件,/proc/net/arp;

4.注册通知事件

一个neigh_table对应一种邻居协议,IPv4就是arp协议。用来存储于邻居协议相关的参数、功能函数、邻居项散列表等。

一个neighbour对应一个邻居项,就是一个arp条目

邻居项函数指针表,实现三层和二层的dev_queue_xmit()之间的跳转。

用来存储统计信息,一个结构实例对应一个网络设备上的一种邻居协议。

注册arp报文类型 :dev_add_pack(arp_packet_type);

就是把arp_packet_type添加到ptype_base哈希表中。

注册新通知事件的时候,在已经注册和UP的设备上,会调用一次这个通知事件。

设备事件类型:

创建一个邻居项,并将其添加到散列表上,返回指向该邻居项的指针。

tbl:待创建的邻居项所属的邻居表,即arp_tbl;

pkey:三层协议地址(IP地址)

dev:输出设备

want_ref:??

创建邻居项

1.设置邻居项的类型

2.设置邻居项的ops指针

3.设置邻居项的output函数指针

调用dst_link_failure()函数向三层报告错误,当邻居项缓存中还有未发送的报文,而该邻居却无法访问时被调用。不懂。

用来发送arp请求,在邻居项状态定时器处理函数中被调用。

neigh:arp请求的目的邻居项

skb:缓存在该邻居项中的待发送报文,用来获取该skb的源ip地址。

将得到的硬件源、目的地址,IP源、目的地址等作为参数,调用arp_send()函数创建一个arp报文并将其输出。

创建及发送arp报文

创建arp报文,填充字段。

发送arp报文

用来从二层接收并处理一个arp报文。这个函数中就是做了一些参数检查,然后调用arp_process()函数。

neigh_event_ns

neigh_update

这个函数的作用就是更新邻居项硬件地址和状态。分支比较多。

neigh_update_notify

代理arp(proxy arp),通常像路由器这样的设备才使用,用来代替处于另一个网段的主机回答本网段主机的arp请求。

感觉代码ARP好像没啥用呀。

网络主机发包的一般过程:

1.当目的IP和自己在同一网段时,直接arp请求该目的IP的MAC。

2.当目的IP和自己不再同一网段时,arp请求默认网关的MAC。

当主机没有默认网关的时候,arp请求别的网段的报文,到达路由器后,本来路由器是要隔离广播的,把这个arp请求报文给丢弃,这样就没法通信了。当路由器开启arp proxy后,路由器发现请求的目的IP在其他网段,就自己给主机回复一个arp响应报文,这样源主机就把路由器的MAC当成目的IP主机对应的MAC,可以通信了。这样可能会造成主机arp表中,多个IP地址都对应于路由器的同一个MAC地址。

可以使用arping命令发送指定IP的arp请求报文。

写完了发现这个老妹写的arp代理文章蛮好的,不过她好像是转载的。

linux多网卡添加arp

linux多网卡添加arp,就是把arp_packet_type添加到ptype_base哈希表中。注册新通知事件的时候,在已经注册和UP的设备上,会调用一次这个通知事件。设备事件类型:创建一个邻居项,并将其添加到散列表上,返回指向该邻居项的指针。

linux系统arp问题

这个简单, 通过tcpdump抓包获取攻击的IP地址, 然后使用防火墙锁定就行了, 不过这是一个编程的过程, 稍微复杂哦

低于这种攻击, 还是有效的

请楼主看一下my网名吧?这个问题可以帮助搞定一下的哦

Linux实验报告 第八章

linux实验报告

第八章?

帮助命令

? 内建命令????? 通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中 解析内部命令shell不需要创建子进程,执行命令速度比外部快

外部命令? ? ? ? Linux 系统中的实用程序部分? 在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存

一个是天生自带的天赋技能,一个是后天得来附加技能。我们可以使用 type 命令来区分命令是内建的还是外部的

帮助命令的使用

1,help命令?

若环境中没有help命令,可以进入bash中内置该命令

若实验环境是 zsh,而 zsh 中内置并没有 help 命令,我们可以进入 bash 中,在 bash 中内置有该命令

使用? help ls????????

help 命令是用于显示 shell 内建命令的简要帮助信息

help 命令只能用于显示内建命令的帮助信息

外部命令的话基本上都有一个参数--help

2,man 命令

man 没有内建与外部命令的区分,因为 man 工具是显示系统手册页中的内容

3,info命令

如果man现实的信息都还不够,可以使用info

telnetnslookuppingftp分别用来测试什么

、ping命令

ping (Packet Internet Groper),

ping命令通常用来作为网络可用性的检查。ping命令可以对一个网络地址发送测试数据包,看该网络地址是否有响应并统计响应时间,以此测试网络。

1、按Win+R输入cmd,回车,然后打开DOS命令界面

在这里插入图片描述

2、输入ping /? ,列出ping的相关参数命令使用

在这里插入图片描述用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]

[-r count] [-s count] [[-j host-list] | [-k host-list]]

[-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

1

2

3

1

2

3

一般使用,例如:

ping -t 常ping,检查电脑网络是否掉包

ctrl+c停止ping

在这里插入图片描述

在这里插入图片描述

3、ping命令详细介绍

-t :Ping 指定的计算机直到中断。

-a :将地址解析为计算机名。

-n count :发送 count 指定的 ECHO 数据包数。默认值为 4。

-l size :发送包含由 size 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。

-f :在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。

-i ttl :将"生存时间"字段设置为 ttl 指定的值。

-v tos :将"服务类型"字段设置为 tos 指定的值。

-r count :在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。

-s count :指定 count 指定的跃点数的时间戳。

-j host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。

-k host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。

-w timeout :指定超时间隔,单位为毫秒。

destination-list :指定要 ping 的远程计算机。

二、tracert命令

tracert为trace router的缩写。主要作用:测试目标端口是否开启以及路由之间的交互

按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。

1、输入tracert /? ,列出tracert的相关参数命令使用

在这里插入图片描述

2、使用方法:

例如:tracert -d ip地址或者网址域名

在这里插入图片描述在这里插入图片描述

-d:不解析主机名。

-h:指定最大TTL的数值。

-j:设定松散源地址路由列表。

-w:用于设置UDP报文的超时时间,单位为毫秒。

host:指定目的主机的域名或IP地址。

三、telnet命令

1、Telnet是常用的远程控制Web服务器的方法,主要作用:测试网络端口是否开启

首先需要打开telnetl服务,否则运行命令将会报错

在这里插入图片描述

2、输入telnet/? ,列出telnet的相关参数命令使用

在这里插入图片描述

3、例如:

测试window远程的3389端口:

例如:telnet 172.168.11.22. 3389 ip地址任意选择

在这里插入图片描述

结果:标明3389端口未开启

在这里插入图片描述

四、nslookup命令

nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题

1、输入nslookup/? ,列出nslookup的相关参数命令使用

在这里插入图片描述

2、例如:解析百度网址的域名ip地址

在这里插入图片描述

以上命令:

仅供参考使用

点击阅读全文

打开CSDN APP,看更多技术内容

网络测试常用命令_每天一个水煮蛋的博客_网络测试命令

1.利用ipconfig命令获取本地网络信息 ipconfig命令是调试计算机网络的常用命令,通常大家使用它显示计算机中网络适配器的IP地址、子网掩码及默认网关。ipconfig/all命令显示所有网络适配器(网卡、拨号连接等)的完整TCP/IP配置信息。与ipconfig...

继续访问

常用网络测试命令【转载】_dingding45的博客

了解基本网络测试命令 轻松应对网络管理中的故障 本文网址:复制 作为一般的互联网使用者,网络突如其来的故障使我们感到很头痛,不仅影响我们的使用,还会带来不必要的损失,所以简单的了解一下基本的网络测试命...

继续访问

常用网络测试命令——ping命令

ping命令的详细介绍

继续访问

关于网络测试的5个命令

2019独角兽企业重金招聘Python工程师标准 ...

继续访问

最新发布 常见网络测试命令使用【windows】就这几个就够用了

常见网络测试命令使用【windows】就这几个就够用了 tcping:查看目的主机ip的端口号是否开发(推荐用这个测试端口) 这个需要安装,安装简单,自己下载,里面有安装说明

继续访问

必须学会的几个网络测试命令

必须学会的几个网络测试命令了解和掌握下面几个命令将会有助于您更快地检测到网络故障所在,从而节省时间,提高效率。PingPing是测试网络联接状况以及信息包发送和接收状况非常有用的工具,是网络测试最 常用的命令。Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机是否与目标主机(地址)联通。如果执行Ping不成

继续访问

一、网络测试命令——命令行

一、如何查看IP地址 首先,开始——运行——cmd进入命令行窗口 或者 win+R——cmd进入命令行窗口 ipconfig #查看IP地址基本信息 ipconfig /all #查看IP地址详细信息 二、测试网络连通性 ping 目标IP地址 #测试网络连通性,有去有回即为可通信成功 ping -t 目标IP地址 #一直ping目标IP ping -n 数字 目标IP地址 #修改ping包的数量 ping -l 数字 目标IP地址 #修改...

继续访问

检测网络端口命令

在windows命令下 telnet iP地址 端口便可知道此端口shi

继续访问

2021-05-04

实训2 利用常见的网络命令获取网络信息 实验目的 掌握常见网络命令使用方法。 学习使用网络命令嗅探网络信息。 学习使用网络命令判断和处理网络问题。 实验准备及注意事项 1.装有Windows操作系统的计算机若干,已连入局域网。 2.部分实验可能需要将系统防火墙和杀毒软件关闭,远程连接和文件共享开启。 实验背景 随着基于图形用户界面应用程序的普及,普通用户已逐渐淡忘了DOS时代只能依靠输入命令同计算机交互的方式。但是命令行依然有它独特的价值,而Windows命令行中也提供了

继续访问

实验五 常见网络测试命令使用

实验五 常见网络测试命令使用 1.实验目的 掌握一些常见命令的使用;命令的含义和相关的操作; 2.实验内容 1、掌握 ipconfig 命令的含义; 2、掌握 ping 命令的含义; 3、理解 Netstat 命令的含义与应用; 4、理解 tracert 命令的含义与应用; 5、理解 nslookup 命令的含义与应用; 6、理解 ARP 命令的含义与应用; 7、理解 Telnet 的含义与应用; 3.实验原理 (准确描述所选实验项目的理论依据或算法原理) 1、 、 ipc..

继续访问

常用的几个测试网络连接的命令

记录几个常用的测试网络连接的dos命令。 ping tracert netstat ipconfig/all 1.ping命令是用来测试网络之间是否能够连通以及网络之间的传输速度。例:测试网卡,TCP/IP协议是否可用,如果发送的数据包数目等于接收的数据包数目(也就是本机能够接收到目的地址发送的数据包),就证明网卡正常,TCP/IP协议可用。 127.0.0.1是本地回环地址,也就是本机地址( 自

继续访问

telnet命令及测试网络端口的几种方法

1、常见的用法: telnet IP port 如:telnet 192.168.1.10 80 端口,如果端口没有开启监听则会显示连接失败。 若端口有开启监听,telnet端口是通的会显示一个白色的光标并闪烁,如下图: 2、Linux下其余几种测试方法: echo /dev/tcp/IP/port //无显示就正常 ssh -v -p port root@IP //refused则不通 wget IP:port //refused则...

继续访问

利用常见的网络命令获取网络信息

利用常见的网络命令获取网络信息 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录利用常见的网络命令获取网络信息前言一、利用ipconfig命令获取本地网络信息二、实训步骤1.ipconfig/all命令获取本地网络信息2.ping命令获取远程网络信息3.其他常用网络命令 前言 随着基于图形用户界面应用程序的普及,普通用户已逐渐淡忘了DOS时代只能依靠输入命令同计算机交互的方式。但是命令行依然有它独特的价值,而Windows命令行中也提供了一些实用工具,尤其适用于判断和处理系统

继续访问

常见网络检测命令

traceroute是?来检测发出数据包的主机到?标主机之间所经过的?关数量的?具。traceroute的原理是试图以最?的TTL(存活时间)发出检测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。发送数据包的大小默认为38字节。因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP;回声请求消息给目的地并报告是否收到所希望的ICMPecho(ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。......

继续访问

网络常见的 9 大命令,非常实用!

公众号关注“GitHubDaily”设为 “星标”,每天教你学编程!作者:陈鸣来自:.ping 命令ping 是个使用频率极高的实用程序,主要...

继续访问

在Linux上测试网络的命令之二----基础网络命令(ssh\scp\wget)

telnet 使用TELNET协议远程登录。 ping 测试主机之间网络的连通性。 该网址有ping、telnet的用法 ssh 使用SSH加密协议远程登录。 scp 全拼secure copy,用于不同主机之间复制文件。 wget 命令行下载文件。 ssh 使用SSH加密协议远程...

继续访问

计算机cmd测试命令,常见CMD网络诊断命令

在维修电脑的时候,我们可以利用一些简单的CAM命令来查看当前网络的一些状态。操作方法 ,在开始中找到运行框,输入cmd,打开批处理窗口。输入CMD命令按回车键。1 Ping命令ping IP地址 -t用于测试此电脑到目标IP地址的数据连通性和传输速度。比如测试百度到本机的网络是否正常。ping IP地址 -a用于将IP地址解析为计算机名。ping IP地址- w该命令用于指定测试网络连通时要等待的...

继续访问

网络测试常用指令

Ping Ping是网络诊断工具,Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:ping空格IP地址。该命令还可以加许多参数使用,具体是键入ping按回车即可看到详细说明。 Ping(Packet Internet Groper),因特...

继续访问

常用网络测试命令

常用网络测试命令应用 一、ping Ping是测试网络联接状况以及信息包发送和接收状况非常有用的工具,网络测试最常用的命令。Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和主机是否与目标主机(地址)联通 Ping不成功可以预测故障:网线故障,网络适配器配置,IP地址不正确。 Ping成功网络仍不通,很可能网络系统的软件配置方面有问题,Pin...

继续访问

【linux 检测端口的命令】curl、netstat和nc命令

linux 检测端口的命令参考背景检测端口的命令curl 端口正常并能连通curl 端口未正常打开telnetnc安装nc命令nc 命令参数nc使用 参考 背景 由于进程在运行时,有时候会出现,进行依然存

继续访问

热门推荐 9个常用网络命令

ICMP的应用举例:1.ping;4.tracert1.pingping用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断tcp/ip参数是否设置得正确以及运行是否正常。ping是一个测试程序,如果ping运行正确,你大体上就可以排除网络访问层、网卡、modem的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。按照缺省设置,windows上运行的...

继续访问

PacketTracer使用及网络测试命令

PacketTracer使用及网络命令一、网络测试命令1.ping2.Tracert3.pathping4.ipconfig:5.netstat6.arp一、网络测试命令实验1.ipconfig2.ping3.tracert4.netstat5.arp一、PacketTracer使用初步1.2.3.4.思考题: 提示:以下是本篇文章正文内容,下面案例可供参考 一、网络测试命令 1.ping 检查两台计算机之间的网络是否连通。 使用方法:ping Dest_IP 参数 常用参数解释: ?-t 连续向目

继续访问

网络测试命令

(责任编辑:IT教学网)

更多

推荐微信营销文章