传输的,为什么要使用udp?Linux Traceroute为何选择UDP传输? (linux traceroute是udp)

传输的,为什么要使用UDP?Linux Traceroute为何选择UDP传输?

网络传输中有很多种协议可供选择,其中最常见的就是TCP和UDP协议。TCP协议是一种面向连接的协议,它提供了可靠的数据传输,并且保证数据的有序性。而UDP协议则是一种面向无连接的协议,它提供了较为简单的数据传输,没有连接建立的过程,也不保证数据的可靠性和有序性。显然,二者各有优缺点,并且有适用场景的区别。本篇文章将和大家一起探究为什么在某些情况下需要使用UDP协议,以及为什么Linux Traceroute选择UDP协议进行传输。

先来看看为什么在一些情况下需要使用UDP协议。UDP协议不保证数据传输的可靠性和有序性,那么在哪些情况下可靠性和有序性并不是必须的呢?

UDP协议适用于实时传输的场景。比如,音视频的传输,对于这些实时的数据,即使出现了丢包或者数据的延迟,也不会对用户造成太大的影响。因为,它们的延迟时间很短,一些无关紧要的数据被丢弃后,用户很快就会获得下一个数据包,而且数据包之间的顺序可能不那么重要。此外,对于一些发送数据请求时,一次请求只需要返回一次响应的情况,也可以使用UDP协议。比如,DNS查询服务。

接下来,我们来看看为什么Linux Traceroute选择UDP协议进行传输。Traceroute是一种网络诊断工具,能够在Internet的IP网络中按照逐跳原理追踪数据的传输路线。Traceroute的原理是利用数据包中ICMP协议的Time to Live(TTL)字段来实现。具体来说,Traceroute会向目的地址发送首个TTL值为1的UDP数据报,并监听这个数据报是否能够到达目的地。如果数据报传输到了一个中转设备就会将TTL值减1,并将TTL值减少后的数据报再次发送。这样一直进行下去,直到到达目的地,目的地址返回ICMP不可达的数据包,或者一定时间内没有收到回复,Traceroute就会结束。它的输出结果就是每个中转设备的IP地址和响应时间。

现在,我们来探索一下为什么Traceroute使用UDP协议进行传输,而不是TCP协议。

Traceroute需要的是数据包到达目的地的情况下才能得到正确的路由信息。而TCP协议是面向连接的协议,它需要建立连接的过程,而建立连接的过程可能会被路由中的某些设备阻塞,这就会影响到Traceroute的准确性。

Traceroute需要的是数据包能够从一个节点到达下一个节点,在中间的路由节点不能拦截UDP数据包,否则就达不到Traceroute的目的。而TCP协议是面向流的,数据包是按照有序的方式传递的,并且TCP协议在传递数据之前会先进行三次握手,路由节点可以利用这个过程拦截TCP数据包和TCP连接。而UDP协议则没有这个问题,路由节点无法拦截UDP数据包。

为了确保Traceroute的执行效率,UDP是更合适的选择。在Traceroute中,需要对所有经过的数据包进行时间戳的记录和分析,UDP协议能够更快速地实现这个操作。

综上所述,UDP协议在一些实时传输的场景下有其优势,同时在Traceroute工具中,也是更为适用的选择。但是UDP协议并不是理想的协议,对于确保数据可靠性和有序性要求极高的场景,TCP协议还是更好的选择。

相关问题拓展阅读:

RedHat Linux里trace使用的什么协议

还是使用的ICMP协议,因为ICMP协议是IP的上层协议,而IP包含有TTL字段,而且trace主要是为了发现路由信息。工作原理如下:

当你输入一个trace route命令,traceroute发送一份ttl(存活时间)为1的数据报文给目的主机,当到之一个路由器的时候,路由器会将它的ttl值减1,如减1后ttl=0就瞎明蠢丢掉该包,然后发一个表示超时的磨陪包回来.那样,我们就获得了到达之一个路由器的地址和时间(往返时间/2得到单程时间);然后,发一个ttl为2的包,那么就会停在途中的第2个路由器槐裤那里,同样也得到第2个路由器的时间…如此一直到到达目的地,traceroute会收到一个端口不可达信息,它计算收到这个信息所用时间,从而计算出到达目的主机所用时间。在traceroute运行过程中,它会依次显示经过的每一个路由器。

Kali Linux下信息搜集工具(命令)使用总结

WHOIS是一个标准的互联网协议,可用于搜集网络注册、注册域名、IP地址和自治系统的信息

例:whois baidu.com

更多参数参考帮助文档:whois –help

向DNS服务器查询主机的ip地址,默认使用/etc/resolv.conf里的DNS服务器;也可在指令尾部直接添加DNS服务器

默认情况下host指令会搜索域名的A记录、AAAA记录和MX记录,如需查询全部DNS记录,可使用选项-a

例:

host还可进行域传输,使用-l选项

进行DNS查询,仅返回该域的A记录,如需查询全部记录,可以将type设置为any

例:

该程序将收集的DNS信息分为:主机ip地址、该域的DNS服务器、该域的MX记录

例:dnsenum baidu.com

功能槐碰很强大,除上之外:

它能通过谷歌搜索其他的域名和子域名

可使用字典对子域名进行爆破,kali里收录了dnsenum自带的字典文件(dns.txt),该字典可以测试1480个子域名;另外嗨哟一个dns-big.txt字典,可以测试266930个子域名

可对C类网段进行whois查询并计算其网络范围

可对网段进行反向查询

采用多线程技术,可进行并发查询

参数解释-f dns.txt 指定字典文件,可以换成 dns-big.txt 也可以自定义字典-dnsserver 8.8.8.8 指定dns服务器,一般可以直接使用目标dns服务器,(PS:8.8.8.8 是一个IP地址,是岁明郑Google提供的免费dns服务器的IP地址,另一个是:8.8.4.4)-o output.txt 结果在 output.txt文档里

例:dnsenum -f dns.txt baidu.com

DNS枚举工具,可通过多项技术查找目标的ip地址和主机名,他会通过本机使用的DNS服务器查找使用个目标域的DNS服务器;也可以进行暴力破解子域名

特点是能针对不连续的ip空间和主机名称进行测试

该工具也是个神器,详细用法参考帮助

例:查找学校域名的有关信息

DMitry(Deepmagic Information Gathering Tool)是一个一体化的信息收集工具。它可以用来收集以下信息:

参数:

例:

网络路由信息可以帮助测试人员了解自己的主机到目标主机之间的网络通信路径,进而理解目标主机的网络情况,保护目标主机的防火墙信息,往往也暗藏在路由信息里

1、tcptraceroute

tcptraceroute是traceroute的补充,传统的traceroute程序在其发送的UDP或ICMP echo数据包中,设置有特定的TTL标志位。它把TTL值从1开始递增,直到数据包到达目标主机为止,而tcptraceroute则是使用tcp数据包进行测试,它利用TCP SYN(握手请求)数据包进行路由信息探测;

其有较高的通过率

常用选项

-i 指定接口,网络接口

-f 起初第几跳开始,比如5,开始显示第5跳的结果

-l traceroute包的长度

-q 查询的数字号

-t tos

-m 更大的TTL

-s 源地址,如果服务器有两乎颂块网卡,就可以采用指定-s的源地址路由,在所有的tracert/traceroute都 有这样的基本功能

-w等待的时间

示例1:通过traceroute和tcptraceroute进行对比:

可以直接看到结果的差别,也可以使用nslookup验证一下:

tcptraceroute最终到达了目的地,而traceroute 没有到达目的地。

2、tctrace

通过向目标主机发送TCP SYN数据包来获取相关信息

使用命令:tctrace -i -d

指网卡接口,指被测试的目标主机

例:tctrace -i eth0 -d

www.baidu.com

8、dnsdict6

枚举ipv6的子域名,自带的字典可测试798个子域名,参数和使用可以参考帮助

本文由 mdnice 多平台发布

linux——网络命令

##Ctrl+D:在目录下敲击该命令,作用是退出当前用户。

##Ctrl+D:在命令mail、write等命令中敲击该命令,作用是退出当前命令。

1.write

语法:write 用户名

功能:给用户发信息,以Ctrl+D保存结束; 即时通信

2.wall(write all)

    语法:wall

    功能:发广播信息(给所有用户发信息); 回车键结束命令

3.ping

    语法:ping IP地址

    功能:测试网络连通性

    -c 次数:指定发送次数

   携帆 -s 字节:指定探测包的大小

4.ifconfig(interface configure)

    语法:ifconfig(或者ifconfig 网卡地址 IP地址 )

    功能:查看和设置网卡信息     

    inet6: IPv6地址目前不生效

5.mail

    语法:mail

    功能:查看或者发送电子邮件   ##输入邮件内容时,删除键为 ctrl+backspace

6.last

    语法:last

    功能:显示当前与过去登入系统的用户信息

7.lastlog

    语法:lastlog

    功能:显示所有用户最后登录时间

8.traceroute

    语法:traceroute

    功能:显示发出数据包的主机到目标主机之间的网关数量

     ## 星号*** 可能是防火墙封掉了ICMP的返回信息,所以得不到数据包返回数据

9.netstat

    语法:netstat   

    功能:显示网络相关信息

    -a:列出所有网络状态,包括Socket程序

    -c 秒数:指定每隔几秒刷新一次网络状态

    -n:使用IP地址和端口号显示,不是用域名和服务名

    -p:显示PID和程序名

    -t:显示使用TCP协议端口的链接状况

    -u:显示使用UDP协议端口的链接状况

    -l:加显示监听状态的链接

    -r:显示路由表

    “tuln”选项:查看本机开启的端口,只能查看监听状态的链接。

    1) Proto:网络连接的协议,一般就是 TCP 协议或者 UDP 协议。

    2) Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。

    3) Send-Q:表示从本机困巧发送,对方还没有收到的数据,依然在本地的缓冲中,不具备 ACK 标志的数据包。

    4) Local Address:本机的 IP 地址和端口号。

    5) ForeignAddress:远程主机的 IP 地址和端口号。

    6) State:状态。常见的状态主要有以下几种。

LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听。

ESTABLISHED:已经建立连接的状态。如果使用”-I”选项,则看不到已经建立连接的状态。

SYN_SENT:SYN 发起包,就是主动发起连接的数据包。

SYN_RECV:接收到主动连接的数据包。

FIN_WAIT1:正在中断的连接。

FIN_WAIT2:已经中断的连接,但是正在等待对方主机辩尺雹进行确认。

TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。

CLOSED:套接字没有被使用。

最常用的是LISTEN和ESTABLISHED

10.numtui

    语法:numtui

    功能:配置网络——centos7独有的功能

11.mount

    语法:mount 设备文件名 挂载点

linux traceroute是udp的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux traceroute是udp,传输的,为什么要使用udp?Linux Traceroute为何选择UDP传输?,RedHat Linux里trace使用的什么协议,Kali Linux下信息搜集工具(命令)使用总结,linux——网络命令的信息别忘了在本站进行查找喔。


数据运维技术 » 传输的,为什么要使用udp?Linux Traceroute为何选择UDP传输? (linux traceroute是udp)