Windows Internals - Network

2018-03-22  本文已影响51人  我是柯南

NDIS

1. Definition

[Wikipidia] The Network Driver Interface Specification is an application programming interface (API) for network interface cards (NICs).

image

网络驱动接口规范,为网络接口卡制定出标准的 API 接口,NDIS 提供一个函数库,这个函数库既可以被 MAC (Medium Access Controller) 驱动调用,也可以被高层协议(TCP/IP)驱动调用,这使得 MAC 驱动和协议驱动的开发不用关心具体的网卡类型,面对相同的接口。它最早由 Microsoft 和 3Com 联合开发的,伴随着 Windows 7 发行的版本是 NDIS 6.20。

NDIS 函数库位置位于目录 %SystemRoot%\Windows\WinSxS ,如下图,会存在几个不同的版本。

image.png

WinSxS (Side by Side)目录的作用,XP 时代的 dll hell 问题使得从 Windows 7 时代开始有了这个目录,用于存放同一个库的不同版本,以便于不同的应用程序能够使用自己特定的版本。从而向前兼容了几乎所有的历史应用程序。

image.png

2. NDIS Drivers Features

3. Remote NDIS

到目前为止 Windows 只支持 USB 类型的 RNDIS。


image.png

QoS

通常情况下,IP 网络流量的分发基于 first-come first-served 原则。应用程序无法控制他们的网络消息的优先级,所以应用程序的行为会受到突发网路行为的影响。但对于一些实时应用(ERP,Video Conference, Audio Conference etc.)来说,这样不一致的网络行为(时而低延迟、时而高延迟、时而高带宽、时而底带宽)会导致应用的用户体验无法得到满足。

IEEE 802.1P 标准就是为了保证服务质量而提出的一个标准,它规定了 QoS的包格式以及 OSI 2层设备(交换机、路由器)如何响应这些包格式。

Windows 通过基于策略的 QoS 实现来支持 QoS,基于应用、源地址、目标地址、源端口、目标端口等条件提供优先的带宽保证从而保证网络性能的一致性。

Policy-based QoS Architecture


image.png

qWAVE Architecture


image.png

Remote Access

客户端通过连接到 Remote Access Server 存取网络资源(文件,打印机,网络服务等等),行为上就像是客户端直接物理连接到 Server 所在网络一样。Windows 提供两种类型的 Remote Access:

Active Directory

AD 是 Windows 上的 LDAP (Lightweight Directory Access RF4510) 的一个实现,本质上讲, AD 是一个数据库,其中存储了网络中的各种资源(用户账号,密码,访问策略,组织架构等等)。对象的存储结构类似注册表的树形结构。

Kerberos
Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

image.png

Network Load Balancing

Windows 服务器版本都包含有网络负载均衡服务,底层是基于 NDIS lightweight filter 技术实现(如下图),网络服务均衡支持最多32台主机组成集群,每个主机有自己单独的IP地址,同一个集群中的主机维护唯一的一个虚拟IP地址,客户端请求通过虚拟IP地址发送到所有集群主机,但一个请求有且只有一个主机进行响应。


image.png

硬件负载均衡方案

F5 硬件设备,价格昂贵

软件负载均衡方案

nginx + keepalive (高可用)

image.png image.png

haproxy

Network Access Protection

对于网络管理员来说一个最困难的挑战就是要时刻确保通过VPN连接到公司网络的所有计算机都符合健康策略,而要确保这点是非常难得。

NAP提供了一种机制,帮助管理员来达成这样的目的,如果接入的计算机没有达到健康要求,会将该计算机做隔离处理,在隔离状态下的计算机无法访问组织内的大部分资源,只能访问一些更新服务器资源,从而下载更新确保计算机满足健康要求,完成后再次接入网络即可访问所有分配的资源。

image.png

Direct Access

image.png
上一篇 下一篇

猜你喜欢

热点阅读