TTL

什么是TTL? 就是用来记录IP数据包从发出经过了多少路由! TTL占8bit,所以它的最大值就是255;每当数据包经过一个路由器时,TTL的值就会减1,当为0时,就把这个数据包给丢弃。较老的系统的TTL初始化值为15或32,现在一般的为255。 为什么需要TTL? 为了防止IP数据包在选路时无休止的在网络中流动。 Traceroute成功利用了TTL *Traceroute*:路由探测工具,用它可以知道从源地址到目的地址需要经过哪些路由器 *使用方法*:Traceroute 域名 / IP,你使用的时候可能会看到很多的 ‘*‘,这是正常的,因为国内的网络环境有很多都是隐蔽的。 *原理*: 我们现在可以猜想一下Traceroute程序的操作过程。它发送一份TTL字段为1的IP数据报给目的主机。处理这份数据报的第一个路由器将TTL值减1,丢弃该数据报,并发回一份超时ICMP报文。这样就得到了该路径中的第一个路由器的地址。然后Traceroute程序发送一份TTL值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机。但是目的主机哪怕接收到TTL值为1的IP数据报,也不会丢弃该数据报并产生一份超时ICMP报文,这是因为数据报已经到达其最终目的地。 *那么我们该如何判断是否已经到达目的主机了呢*? Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误的ICMP报文。这样,Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。 看到这儿,是不是觉得Traceroute有点老奸巨猾呢?没错,就是的!……

阅读全文

arp协议

什么是ARP协议? 协议都是电脑之间先约定好的一些规则而已! ARP协议是干嘛的? 将IP地址转换为MAC地址! 为什么需要ARP协议? 首先,我们的清楚,电脑之间进行的通信是依靠MAC地址来通信的。就说你必须知道对方主机的MAC地址(MAC地址才是唯一的),然后你才能给它发送信息,然后它的网卡收到信息过后才能进行处理。但是我们一般都不记MAC地址,退而求其次,我们记得是IP地址;再退一步我们就是记得 域名 了,比如说 www.google.com。 域名---->IP地址---->MAC地址,域名到IP地址我们是通过DNS来完成的(不明白DNS的可以参考 xianyuLuo的这篇文章。而从IP地址到MAC地址,我们用的就是arp。 ARP协议的工作过程 当主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存),如果查询的IP-MAC值对不存在,那么主机就向网络发送一个ARP协议广播包,这个广播包里面就有待查询的IP地址,而直接收到这份广播的包的所有主机都会查询自己的IP地址,如果收到广播包的某一个主机发现自己符合条件,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的主机,而广播主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。发送广播的主机就会用新的ARP缓存数据准备好数据链路层的的数据包发送工作。 arp缓存表例子 windows下执行”arp -a”命令: linux下执行”arp -a”命令: 技术交流可加QQ群:774332965……

阅读全文

DNS解析

什么是DNS解析? 就是把域名转换为IP地址的一个过程 为什么需要DNS解析? 以前都是靠 /etc/hosts 文件来解析域名的,每解析一个域名就需要在文件里面添加一条对应记录。后来由于互联网的迅速发展,域名已经数不胜数了。如果这个时候还是一条一条记录的写在/etc/hosts 文件里面的话,那这个文件估计就超级大了。于是就有了DNS解析,由DNS服务器来解析域名。 DNS域名解析过程有两种方法:递归解析、迭代解析 递归解析: 递归解析就相当于你把这件事情交给第三个人去做,不管他怎么做,反正最后把域名对应的IP地址交给你就是了。而这第三个人就是DNS服务器,这也是我们生活中用的比较多的一种方法。一般用的就是电信的 114.114.114.114 迭代解析: 迭代解析就是你自己去找。 全球的根域名服务器一共有13台,你自己去一级一级的找下去,最终找到自己想解析的域名。 例子: 解析 www.……

阅读全文

cache和buffer的区别

Cache:高速缓存 Buffer:高速缓冲 相同之处:都是用于解决不同主件速度不匹配的问题。 Cache:是用于解决CPU和内存的速度不匹配的。因为CPU每次都是从内存当中提取数据,而且CPU的速度远远高于内存的速度,CPU从内存读取数据时就会等待很长的时间;Cache就保存着CPU刚刚使用过的数据或者经常用到的数据,这时CPU从Cache中提取数据就会快很多,这样减少了CPU的等待时间,提升了系统性能。 所以说Cache是位于 CPU和内存 之间的容量较小但速度很快的存储器。 Buffer:主要是用于解决速度不同的设备之间的传输问题。一般会用在磁盘之间;比如一个USB2.0的磁盘要拷贝文件到一个USB3.0的磁盘,很明显3.0的速度要远比2.0的快得多,如果3.0的一直去读取2.0的数据的话,那这样就会浪费它的速度优势;所以可以先把存储速度慢的数据先放到Buffer里面,当达到一定程度时,存储速度快的就从Buffer里面将数据取出来;这样便可以大大的提高利用率。 所以说Buffer是位于存储速度不同步的设备之间的一个缓冲区。 技术交流可加QQ群:774332965 微信订阅号同步:时下IT……

阅读全文