Linux内核工程导论——网络:内核特性
2015-09-11 22:29
260 查看
网络特性
QoS and/orfair queueing
IP层以下
802.1d以太网桥
802.1Q/802.1ad VLAN Support
ANSI/IEEE 802.2 LLC type 2支持
MPLS
DANH ("Doubly attached node implementing HSR")
Switch
Open Vswitch其他网络层以上网络协议
CCITT X.25 Packet Layer
LAPB Data LinkDCCP
IETF提出的用来取代UDP的协议。SCTP
用来取代TCP的RDS
在Infiniband, iWARP,或TCP网络上提供可靠的,顺序的服务的传输协议。TIPC
在高可信度网络中(例如自己的动态集群网络服务器),TCP的耗费太大,爱立信提出的新的可靠数据传输服务。与SCTP定位类似。其他网络体系
ATM
IP over ATMLAN模拟
RFC1483/2684桥支持
DECnet
这是一种协议族。与IP对应的网络层协议是DRP:DECnet Routing Protocol,与TCP对应的传输层是NSP: Network Service Protocol。不像TCP/IP族,DECnet协议族在传输层之上还有会话层SCP: Session Control Protocol和网络管理层MOP:Maintenance Operation Protocol。是早期与TCP/IP竞争的协议族,但最终被TCP/IP协议族完全击败。IPX/SPX
这是另一种协议族。IPX与IP功能类似,SPX与TCP功能类似。这个协议族中没有与UDP类似的协议。这个协议族目前仍有很多用户,主要原因是在LAN环境中,传输层SPX的效率比TCP高。这套协议最早是novell在dos上实现的,Windows将smb/Netbios构建在IPX/SPX之上。另外,NCP也是类似的广泛使用的网络文件与打印共享协议。不过近期,无论是NetBios还是NCP都已经支持TCP/IP协议族。所以IPX/SPX的可取代性越来越高,应用就越来越少。
Phone Network protocol (PhoNet)
6LoWPAN
AppleTalk
802.15.4
Data Center Bridging (DCB)
multi-hop ad-hoc mesh networks
受控网络
PPP、PPPoE、PPTP、L2TP
PPP是个数据链路层协议,能控制上层通信的使能、加密和计费。例如未经过PPP认证的网络,IP数据包是发送不了的。PPP改进自SLIP,由于是数据链路层协议,其并不关心网络层是IP协议还是IPX、还是Appletalk协议。PPP的过程分为链接建立和网络两部分。链接建立可以认证,网络部分是认证完成后协商如何加密传输上层的数据。
PPP协议是点对点的,换句话说,PPP协议没有寻址功能。但是实际的网络环境中,没有寻址功能是基本没用的。所以人们在PPP的外面封了一层以太网的头部,供最开始的时候节点向ISP建立PPP连接寻址用。这种网络叫做PPPoE。
以太网的寻址无法经过路由器,虽然有了以太网编址让ISP可以一个服务端服务多个客户端,但是无法经过路由器的缺点也得让ISP必须把认证服务器在物理上与用户放的很近。因此就诞生了新的需求,是否可以将PPP认证服务器放到网络的任何地方?这就必然用到网络层在因特网上寻址的能力和传输层的传输能力。PPTP就是如此,其认证过程使用TCP(在PPP连接建立前,前端路由器只放行路由到认证服务器的数据包),其网络过程使用IP上的GRE封装。
随着PPTP的使用,发现与TCP/IP协议族绑定的缺点是无法使用在其他网络中。所以L2TP诞生了。其不依赖于任何的网络层和传输层,只要网络层能够路由数据包,传输则由L2TP协议本身完成。还有一个改进就是PPTP一条链路只能有一个会话,但是L2TP可以有多个,因此一台PC使用多个L2TP应用就成为可能(例如多个窗口同时远程登录)。
PPP状态迁移图
l Dead:用于表示物理层状态。当物理层准备好(例如载波检测或者管理员配置)时,将从此阶段切换到Establish阶段,并向LCP自动机发送一个UP信号。当连接结束时(例如将猫拔出),将回到本阶段。这个阶段时用来表示物理层的连通性。
l Establish:在本阶段,LCP使用进行网络参数协商,并建立连接。挡在Network和Authenticate阶段收到LCP Configure-Request 将回到Establish阶段。如果接下来需要认证阶段,则本阶段必须协商认证的方式。
l Authenticate:建立连接后,立即进入认证阶段。认证阶段只允许特定的数据包通过,当认证通过时将进入Network阶段,失败则进入Terminate阶段。本阶段可选。
l Network:完成上述步骤后,网络中的每一层都调用NCP协议进行每层的网络配置。当NCP进入open状态后,所有的网络包就可以在已经建立的链路上通行了。
l Terminate:本阶段只接受LCP数据包,以LCP发送终止数据包开始。本阶段由LCP沟通关闭连接。并进入dead阶段。
认证方式
PAP为基本的两次握手认证,口令为明文的方式传输。拨号用户发送用户名和密码到接入服务器,接入服务器通过RADIUS协议到RADIUS服务器上查看是否有此用户,口令是否正确,然后发送相应的响应。
CHAP为三次握手认证,口令为密文传输,在认证过程和网络通信过程会周期性的发送认证。CHAP拨号用户发送用户名到接入服务器,接入服务器发送随机产生的报文交给拨号用户,拨号用户用自己的口令用MD5(可选)算法进行加密,传回密文,接入服务器从RADIUS服务器取得的用户口感另和随机报文用MD5算法加密,比较二者的密文,根据比较的结果返回失败或成功的响应。
RADIUS
受控网络访问中有个很重要的概念是AAA(authentication, authorization and accounting)。本质上是在网络中设置一台服务器,任何希望连接网络的设备都要经过这台服务器验证密码,授权和计费。看似简单的3个功能却有其实现上复杂的一面。为了支持这些功能,RADIUS协议定义了很多数据包格式,用来与希望得到认证授权的主机通信。此外,安全规则设计,代理转发,跨网络认证等考量也增加了RADIUS的复杂度。虽然实现上复杂,却在原理上非常简单。
xfrm、netfilter
多个ip
其他网络功能
bonding
RxRPC
远程过程调用socket,+-------------+
| Application |
+-------------+
| XDR | Presentation
+-------------+
| RxRPC | Session
+-------------+
| UDP | Transport
+-------------+
这是在UDP之上构建的一个可靠传输协议。当然协议的设计并不依赖于UDP,只是目前只在UDP上实现。参与者之间维护多条虚链接。在RxRPC上的每个数据传送都是一次调用,模拟的适用场景是大规模的分布式的远程过程调用。
CAIF
"CommunicationCPU to Application CPU Interface" (CAIF)Ceph
rdma
Netlink
相关文章推荐
- Linux socket 初步
- android wifi 无线调试
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- Linux VS Unix:Linux欲一统天下 Unix不死