比telnet更强大的工具netcat

比telnet更强大的工具netcat

 

今天使用telnet发现如果远程的主机的端口没有开的情况下,就出现了等待的很长时间的问题,在我的linux的机器测试的结果是要等超过3分钟。有人说是10秒,显然不是。

而telnet的参数列表中根本就没有一个可以指定timeout的时间。

google发现还有一个和telnet功能很类似,但是功能是telnet的超集,我目前喜欢的2点是

  • 可以指定time
更多... “比telnet更强大的工具netcat”

PPP协议

PPP协议

 

定义

PPP = Point to Point Protocol

就是点对点协议,其实它确切的说不是一个协议,而是一个协议族

LCP = Link Control Protocol

PAP = PPP Authentication Procotol

MP = PPP Multilink Protcol

 

2个具象协议

PPPoE = PPP of Ethernet

PPPoA = PPP of ATM

 

主要用于机器之间通… 更多... “PPP协议”

raknet开源了

raknet开源了

 

今天看新闻发现raknet开源了,真是特大喜讯啊。之前有用过这个库,确实很好用,就是太贵了,上万块钱的license费啊,没想到今天可以免费使用了。本来想自己写一个类似的库,来扩平台的数据交换,然后用在自己的产品中,现在不用了,直接用现成的。

 

本人去到raknet驻扎的github查看,发现已经开源一个月了。raknet被放在非常知名的开源部署平台githu… 更多... “raknet开源了”

网络和主机字节顺序

这里介绍大端以及小端字节顺序,以及网络和主机字节顺序

不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序
最常见的有两种:
1. Little endian:将低序字节存储在起始地址
2. Big endian:将高序字节存储在起始地址

LE little-endian
最符合人的思维的字节序
地址低位存储值的低位
地址高位存储值的高位
怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说

更多... “网络和主机字节顺序”

linux下面为什么一个程序会依赖GLIBC不同的版本

使用ldd命令发现有时一个程序会依赖gblic的多个版本,

1. 不知道是什么原因造成?

2. 怎么在同一系统下面部署多个GLIBC来满足这样的程序。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

不依赖任何第三方库写一个网络嗅觉器(sniffer)

本篇文字旨在编写一个具备基本功能的网络嗅觉器,英文中有对应的词是sniffer,并且已经有一款商业软件名字就是sniffer,当然是收费的。

 

关于以第三方库来写网络嗅觉器,我会在后续的文章中提到。第三方库主要指的是pcap(linux版本)/WinPcap(windows版本)。

 

关于网络嗅觉器功能:

  1. 抓取进站包
  2. 抓取出战包
  3. 分析包中的内容

 

我们以linux为开发环境,使用… 更多... “不依赖任何第三方库写一个网络嗅觉器(sniffer)”

使用ping命令检测网络MTU

ping命令可以用来检测网络中的MTU的大小。但在windows下面和linux下面所使用的参数是不一样的。

其思想是发送一个非默认的大小的数据包,默认是56字节,并且指定不要进行分包。如果网络中传输的时候,需要分包就会通知调用者。

 

Windows

ping -f -l 1472  www.google.com

选项解释

-f: 表示不要分包

-l: 是小写的L,表示包的大小

 

Linux

p… 更多... “使用ping命令检测网络MTU”

MTU解读

MTU是Maximum Transmission Unit的缩写,中文对应解释为最大传输单元。就是网络中一次可以传输的最大包的大小。

在网络编程的过程中,大家经常会问这个值到底是多少?尤其是使用UDP(数据包方式)传输数据的时候,使用小于等于MTU大小,就可以避免发送出去的数据包被分包,这样避免了因分包导致的数据包的整个包的丢失。以TCP/IP的四层协议来看,MTU指的是那一层的参数呢?

答案是数据链路层更多... “MTU解读”

网卡如何接受和发送数据

网卡如何发送数据包:

IP报文可以看作一个包。

linux网卡驱动程序,将IP包添加14字节的MAC包头,构成MAC包。
MAC包中含有发送端和接收端的MAC地址信息。既然是驱动程序创建的MAC包头信息,当然可以随便输入地址信息的。主机伪装就是这么实现的。
驱动程序将MAC包拷贝到网卡芯片内部的缓冲区,就算完事了。有网卡芯片接手处理。
网卡芯片对MAC包,再次封装成物理帧,添加头部同步信息和CRC校验。然后
更多... “网卡如何接受和发送数据”

使用PCAP创建你的sniffer

利用pcap你可以截取你网卡的所有的包,创建你自己的网络嗅觉器(sniffer)

pcap是一个用C写的,基于BSD授权协议的,抓取网络包的工具。pcap代表是的packet capture,就是包截取。它有2个版本,unix-based的操作系统下面的libpcap和windows下面的winpcap。 有了这个包,你可以很轻松的截取你网卡的中所有数据包。像tcpdump, Wireshark, CA Ne… 更多... “使用PCAP创建你的sniffer”