51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2032|回复: 0

[转贴] 网络协议的工作原理

[复制链接]

该用户从未签到

发表于 2019-3-28 15:34:35 | 显示全部楼层 |阅读模式
本帖最后由 八戒你干嘛 于 2019-3-28 15:37 编辑

ARP协议工作原理

    ARP这个协议的作用是:当源主机知道目的主机的IP地址而不知道对方的MAC地址的话可以使用ARP这个广播协议来获得对方的MAC地址,获得硬件地址的原因是主机通信是通过MAC地址来实现的。
这是以太网中的ARP报文格式。
      (1):以太网目的地址:是硬件地址,包含六个字节的地址。例如: 00 1f 3c d1 b6 7d 。
      (2):以太网源地址:  是发出给ARP包的主机地址。格式与目的地址相同 。
      (3):以太帧类型: 用来表明上层协议的类型,如果是ARP协议的话就为:0806 。
      以上者三部分为数据链路层中以太帧的首部格式,其实在以太帧的尾部还有一个字段(图中未标出)是:
      (4):帧检查序列:用于对数据帧中数据的差错检查的 。
如图所示的ARP帧结构中:
      硬件类型:如果是以太网则硬件类型为:0001 。
      协议类型:这里一般写的是:0800 表示IP类型,ARP是IP协议族中的一个。
      硬件地址长度:指的是MAC地址的长度,长度为6 单位是字节 。
      协议地址产度:如果是IP4则这个值为4,单位是字节 。
      op为操作符:如果为1则为请求包;如果为2则为回应包。
这里假设源主机为:A ,目的主机为:B 。其请求和回应这个都不变。
如果是请求包的话:
      以太网首部的目的MAC地址为:FF:FF:FF:FF:FF:FF表示广播包。
      ARP字段中的目的主机MAC地址字段为:00:00:00:00:00:00(十六进制表示) 起到填充的作用。
      op操作符字段为:0001
如果是回应包的话:  
     以太网首部的目的MAC地址为:源主机的MAC地址。
     ARP字段中的源主机MAC地址字段为:目的主机的MAC地址。
     op操作符字段为:0002。   


一次完整的ARP欺骗

A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA

B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB

C的地址为:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC
A和C之间进行通讯.但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成C了。同时,B同样向C发送一个ARP应答,应答包中发送方IP地址四192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本来应该是AA-AA-AA-AA-AA-AA),当C收到B伪造的ARP应答,也会更新本地ARP缓存(C也被欺骗了),这时B就伪装成了A。这样主机A和C都被主机B欺骗,A和C之间通讯的数据都经过了B。主机B完全可以知道他们之间说的什么:)。这就是典型的ARP欺骗过程。
掐断A 与 c的通讯,实现原理:b 向A 发送一条ARP 数据包,内容为:c的地址是00:00:00:00:00:00 (一个错误的地址),那么A 此后向c发的数据包都会发到00,而这个地址是错误的,所以通讯中断了,但是要注意了,这里只是A --> c 中断了,c --> A 没有中断,所以这个叫单向欺骗。
掐断c与A 的通讯,实现原理和第一条一样,如果和第一条一起发,那么A 和c 的通讯就完全中断了,即:A <-- ×--> c.
嗅探A 与c 的通讯,实现原理:b 向A 发送一条ARP 数据包,内容为:c的地址是AA:BB:CC: DD:EE:FF (b自己的地址),也就是说,b 对 A 说:我才是c,于是A 把向c发送的数据都发给b 了,b得到数据后就可以为所欲为了,可以直接丢弃,那么通讯中断,也可以再次转发给c,那么又形成回路,B当了个中间人,监视A 和c 的通讯.此时你就可以用CAIN等任何抓包工具进行本地嗅探了.


DHCP协议工作原理

DHCP协议的工作原理
根据客户端是否第一次登录网络,DHCP的工作形式会有所不同。 第一次登录的时候:
1寻找 Server
当 DHCP客户端第一次登录网络的时候,也就是客户发现本机上没有任何IP数据设定,它会向网络发出一个 DHCPDISCOVER 封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为 0.0.0.0 ,而目的地址则为 255.255.255.255 ,然后再附上 DHCPdiscover 的信息,向网络进行广播。
在 Windows 的预设情形下,DHCPdiscover 的等待时间预设为 1 秒,也就是当客户端将第一个 DHCPdiscover 封包送出去之后,在 1 秒之内没有得到响应的话,就会进行第二次 DHCPdiscover 广播。若一直得不到响应的情况下,客户端一共会有四次 DHCPdiscover 广播(包括第一次在内),除了第一次会等待 1 秒之外,其余三次的等待时间分别是 9、13、16 秒。如果都没有得到 DHCP服务器的响应,客户端则会显示错误信息,宣告 DHCPdiscover 的失败。之后,基于使用者的选择,系统会继续在 5 分钟之后再重复一次 DHCPdiscover 的过程。
2提供IP租用地址
当DHCP协议服务器监听到客户端发出的 DHCPdiscover 广播后,它会从那些还没有租出的地址范围内,选择最前面的空置IP,连同其它TCP/IP设定,响应给客户端一个DHCPOFFER封包。
由于客户端在开始的时候还没有IP地址,所以在其 DHCPdiscover 封包内会带有其 MAC 地址信息,并且有一个 XID 编号来辨别该封包,DHCP服务器响应的 DHCPoffer 封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCPoffer 封包会包含一个租约期限的信息。
3接受IP租约
如果客户端收到网络上多台DHCP协议服务器的响应,只会挑选其中一个 DHCPoffer 而已(通常是最先抵达的那个),并且会向网络发送一个DHCPrequest广播封包,告诉所有 DHCP服务器它将指定接受哪一台服务器提供的IP地址。
同时,客户端还会向网络发送一个 ARP 封包,查询网络上面有没有其它机器使用该IP地址;如果发现该IP已经被占用,客户端则会送出一个 DHCPDECLIENT 封包给 DHCP服务器,拒绝接受其 DHCPoffer ,并重新发送 DHCPdiscover 信息。
事实上,并不是所有 DHCP客户端都会无条件接受 DHCP服务器的 offer ,尤其这些主机安装有其它TCP/IP相关的客户软件。客户端也可以用 DHCPrequest 向服务器提出 DHCP选择,而这些选择会以不同的号码填写在 DHCPOption Field 里面: 换一句话说,在 DHCP服务器上面的设定,未必是客户端全都接受,客户端可以保留自己的一些TCP/IP设定。而主动权永远在客户端这边。


交换机工作原理

网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。
交换机是根据网桥的原理发展起来的,学习交换机先认识两个概念:
1冲突域
冲突域是数据必然发送到的区域。
HUB是无智能的信号驱动器,有入必出,整个由HUB组成的网络是一个冲突域。
交换机的一个接口下的网络是一个冲突域,所以交换机可以隔离冲突域。
2广播域
广播数据时可以发送到的区域是一个广播域。
交换机和集线器对广播帧是透明的,所以用交换机和HUB组成的网络是一个广播域。
路由器的一个接口下的网络是一个广播域。所以路由器可以隔离广播域。
3工作原理
地址表
端口地址表记录了端口下包含主机的MAC地址。端口地址表是交换机上电后自动建立的,
保存在RAM中,并且自动维护。
交换机隔离冲突域的原理是根据其端口地址表和转发决策决定的。
4转发决策
交换机的转发决策有三种操作:丢弃、转发和扩散。
丢弃:当本端口下的主机访问已知本端口下的主机时丢弃。
转发:当某端口下的主机访问已知某端口下的主机时转发。
扩散:当某端口下的主机访问未知端口下的主机时要扩散。
每个操作都要记录下发包端的MAC地址,以备其它主机的访问。
生存期
路由器工作原理

路由器(Router):工作在OSI第三层(网络层)上、肯有连接不同类型网络的能力并能够选择数据传送路径的网络设备。
路由器有三个特征:工作在网络层上、能够连接不同类型的网络、能够选择数据传的路径。它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。  
交换机和路由器之间有什么区别?

(1)工作层次不同
最初的交换机是工作在OSI/RM开放体系结构的数据链路层(第二层),而路由器一开始设计工作在OSI模型的网络层。由于交换机工作在OSI的第二层(数据链路层),所以它的工作原理比较简单,而路由器工作在OSI的第三层(网络层),可以得到更多的协议信息,路由器可以做出更加智能的转发决策。
(2)数据转发所依据的对象不同
交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。而路由器则是利用不同网络的ID号(即IP地址)来确定数据转发的地址。IP地址是在软件中实现的,描述的是设备所在的网络,有时这些第三层的地址也称为协议地址或者网络地址。MAC地址通常是硬件自带的,由网卡生产商来分配的,而且已经固化到了网卡中去,一般来说是不可更改的。而IP地址则通常由网络管理员或系统自动分配。


(3)传统的交换机只能分割冲突域,不能分割广播域;而路由器可以分割广播域。由交换机连接的网段仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,在某些情况会导致通信拥护和安全漏洞。连接到路由器上的网段会被分配成不同的广播域,广播数据不会穿过路由器。

虽然第三层以上交换机具有VLAN功能,也可以分割广播域,但是各子广播域之间是不能通信交流的,它们之间的交流仍然需要路由器。

(4)路由器提供了防火墙的服务,它仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和求知目标网络数据包的传送,从而可以防止广播风暴。

IP广播(群发):指集线器在发送数据给下层设备时,不分原数据来自何处,将所得数据发给每一个端口,如果其中有端口需要来源的数据,就会处于接收状态,而不需要的端口就处于拒绝状态。


举个例子来说:在网内时,当客户端A发送数据包给客户端B时,集线器便将来自A的数据包群发给每一个端口,此时B就处于接收状态,其它端口则处于拒绝状态;在网外也如此,当客户端A发送域名“www.163.com”时,通过集线器,然后经过DNS域名解析把IP地址(202.108.36.172)发回给集线器。此时,集线器便群发给所有接入的端口,需要此地址的机器便处于接收状态(客户端A处于接收状态),不需要则处于拒绝状态。


这应该是最简单的一个名词了,也可以理解为Hub的工作频率,比如工作频率为33MHz的Hub,那么在单位时间内Hub能做什么事呢?上面在解释共享型的时候已经举了个例子,但是有一点在这需要解释的是,比如我们有的时候会看到A在向B发送数据的“同时”,C也在向D传送数据,这看起来似乎有点矛盾,也确实是这样,那为什么会看起来2者同时在进行呢?因为A在第一个单位时间内发送数据给B的时候,由于广播的原因,B、C、D在第一个单位时间内会同时接受广播,但是C,D会从第2个单位时间开始拒绝接收A发来的数据,因为C和D已经判断出这些数据不是他们需要的数据。而且在第2个单位时间的时候C也发送一个数据广播,A,B,D都接受,但是只有D会接收这些数据。这些操作只用2到3个单位时间,但是我们却很难察觉到,感觉上就是在同时“进行”一样。

SSL 协议

(1)SSL协议实现的安全机制包括:

l              数据传输的机密性:利用对称密钥算法对传输的数据进行加密。

l              身份验证机制:基于证书利用数字签名方法对服务器和客户端进行身份验证,其中客户端的身份验证是可选的。

l             消息完整性验证:消息传输过程中使用MAC算法来检验消息的完整性。

对称密钥算法和MAC算法要求通信双方具有相同的密钥,否则解密或MAC值验证将失败。因此,要建立加密通道或验证消息完整性,必须先在通信双方部署一致的密钥。


回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-3-29 17:56 , Processed in 0.066263 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表