目录
编辑
一,以太网简介
二,以太网通信的过程
为什么不用IP地址?
过程
MAC帧
MAC帧的字段介绍
ARP协议
传输过程的一些问题
RARP协议
提高效率
三,其他问题
ARP诈骗问题
URL解析过程
一,以太网简介
以太网不是一个真正的网络,而是一个局域网标准。并且,以太网是局域网通信当中应用最广的协议,其次还有令牌环网和无线LAN。
二,以太网通信的过程
以太网协议是局域网通信的协议,局域网通信的过程使用MAC地址来找到这台局域网内唯一的主机然后再进行两台主机的通信。
为什么不用IP地址?
在局域网内,主机的IP地址也是唯一的。但是,为什么还要用MAC地址来标识唯一的一台主机呢?因为IP地址是用于网络层的,而MAC地址则是在数据链路层使用的。
过程
当我们的主机发起请求后,这个请求便会穿过应用层,传输层,网络层,然后到达数据链路层。然后在数据链路层便会封装两份报头ARP请求报头,MAC帧。封装完这两个报头以后,这个数据包才能被数据链路层发送到指定的主机上。
MAC帧
MAC帧是个啥?其实MAC帧是数据链路层的一个基本单位。MAC帧的图示如下:
通过这样一个MAC帧的封装我们便可以保证数据在共享的网络当中正确的进行传输。
MAC帧的字段介绍
-
源地址和目的地址:这两个地址标识的是主机的硬件地址,也就是网卡地址,这是在计算机出厂时就被设定了的,并且是唯一的。
-
类型字段:三种类型
-
0800:IP协议
-
0806:ARP协议
-
8035:RARP协议
-
-
数据:数据部分包含上层协议的报头+有效载荷(HTTP ,TCP,IP)
-
协议末端校验码:CRC校验码
-
ARP协议
在数据链路层,ARP协议在MAC帧的上一层:
所以在封装MAC帧时,首先是要先封装一层ARP协议。ARP协议的协议字段如下:
字段详解
在知道ARP协议和MAC帧以后,便可以大致的知道数据链路层所做的事情。
1,首先,我们要先形成一个ARP应答报文,这个时候op的值是1表示一个请求报文。
2,构建报文时,我们知道目标主机的IP但是不知道MAC地址。所以这个在封装MAC帧时,以太网目的地址填的是FF:FF:FF:FF:FF:FF表示一个广播地址。
3,填入一个广播地址后,每一台主机便需要在链路层收到这个报文时先查看op的值。如果op的值是1,链路层便知道这是一个请求报文需要比对的是IP地址所以这个报文便会被向上交付。当我们的网络层收到这个报文时比对IP地址。如果是这台主机的那就留下向上交付,如果不是那就发往下一台主机。一直到找到目标主机为止。
--------------------------------------------------------------------------------------------------------------------------------
4,在接收端收到这个请求报文以后,接收端便会构建响应报文。这个时候op字段被设置为2。并且此时我是知道发送端的MAC地址的。所以也将接收端的MAC地址填入。
5,响应报文被发送后,其它主机收到后便会在链路层先查看报文的op值,在知道报文的op值是2时便会在数据链路层比对MAC地址。如果比对不上就会直接丢弃发送到下一个主机上继续比对。直到比对成功,向上交付报文。
传输过程的一些问题
1,吃瓜群众
网络是一个共享资源,在局域网中发送的报文其实是被很多主机收到的。只是其它的主机在接收到这个报文时丢弃了这段报文。只有目标主机才会向上交付这段报文。
2,抓包问题
在在网卡里面,有一个模式叫做混合模式。当一台主机的网卡被改为混合模式时,这台主机便可以将不属于自己的响应报文向上交付。这个便是抓包,这也是抓包软件的原理。
3,临界资源
在网络通信的过程中,如果多台主机同时通信便会造成数据碰撞的问题。造成网络的堵塞,所以当网络要通信时往往在一个时刻内只允许两台主机进行通信。所以,网络其实就是一个临界资源。如何实现这样的模式呢?
1,以太网:在以太网当中有一个碰撞检测算法,当发生数据碰撞时便会停止发送数据。
2,令牌环网:只有争夺到令牌的主机才有发送数据的权力。并且这个令牌是在局域网通信当中均匀的流动的。
RARP协议
-
RARP协议
-
协议:反向转换协议
-
作用:再某些情况下只知道MAC地址,便可以通过RARP协议来推导IP地址。
-
使用过程:在不知道IP地址的情况下,我们可以发送一个RARP广播报文到网络当中请求对方告知。
-
形势:这种方式请求IP报文有安全性问题,现在已经逐渐减少使用并被DHCP等协议逐渐替代。
-
提高效率
在网络通信时,要找到对方的MAC地址第一步首先是去查找ARP缓存表。只有在这个缓存表内没有对方的MAC地址时,才会在MAC地址处填上全F的字段。
ARP缓存表
查看:arp -a
有了这个缓存表便可以快速的找到目标主机的MAC地址,不必再一个一个主机的尝试比对。当然,这个ARP缓存表的有效时长一般是20分钟。
三,其他问题
ARP诈骗问题
问题描述:利用局域网通信过程中的发送主机不知道接收端主机的MAC地址需要发送报文去获取目标主机的MAC地址的漏洞,在这个请求报文在网络当中发送的过程截取并修改,让发送主机的ARP缓存表内填入错误的MAC地址。从而在后续的发送消息的过程中让发送端主机的消息发送到我的这台主机上,从而实现监听和窃取数据。
URL解析过程
1,DNS解析
在网络通信的过程中,虽然是通过ip地址和端口号来找到全网唯一的一台主机上的唯一的一个进程来实现网络通信的。但是,在大部分情况下我们使用浏览器时我们使用的都是域名。比如:
www.baidu.com
www.jd.com
但是,我们本质还是在使用ip地址+端口号来实现网络通信的。所以,我们需要将域名解析变成对应的ip地址的形式。这个解析的过程便是使用DNS解析来实现的。
2,DNS解析过程
在浏览器上输入一个域名以后,便会开始域名解析的过程。
1,先查看本地的DNS缓存表,查看是否有对应域名的ip地址。
2,如果没有便会向DNS服务器发送一个递归的DNS查询请求,开始不断地查询直到查找到对应域名的IP地址并返回。
3,当然,这个查询的过程是有结束的,一直会查询到根DNS服务器。
3,URL解析过程
在浏览器输入一个URL以后,首先会进行DNS解析。然后,便会开始构建http/https报文。然后这个报文会向下传输到传输层。在传输层选择TCP或者UDP协议,添加相应的报头。然后再往下传输进入到网络层添加ip报头,再经过数据链路层添加数据链路层的协议。然后这个报文才能够发送到对应的主机上。