《云数据中心网络与SDN:技术架构与实现》——1.12.3 STT
1.12.3 STT
STT(Stateless Transport Tunnel,RFC Draft)是Nicira提出的数据中心虚拟化技术,是一种MACinTCP的隧道,其封装格式如图1-38所示。之所以设计STT,是因为希望利用网卡的TSO(TCP Segment Offload)功能在隧道两端进行分片以支持巨型帧的传输,提高端到端的通信效率。
虽然用到了TCP头,但是STT修改了里面的Seq字段和Ack字段的含义,不再用于重传和滑动窗口,是一种无状态的隧道。准确地说,STT使用的是一种类TCP的Header,只是为了伪装成TCP段来进行TSO。Src Port可用来做ECMP,DST Port为7471Ack用来标识STT帧,Seq的高16位用于标识STT帧的长度,低16位用于标识当前帧的偏移量。STT帧被分片后,各片的Ack和Seq的高16位均相同,而Seq的低16位各不相同,隧道出口设备上的网卡用之进行分片重组。TCP Flag和Urgent Pointer都不再具有意义。Version现为0,Flags标识了内层数据的类型与相关信息,L4 Offset标识了STT帧的末位到内层数据Layer 4(TCP/UDP)的偏移量,MSS为最大的分片长度,PCP为传输优先级,VLAN ID用于与VLAN网络互通,租户标识为64位的VN Context。STT的外层的报头可以为IPv4或者IPv6。
图1-38 STT封装格式
和NvGRE一样,STT也没有规定地址学习机制,同样要配合SDN控制器完成转发。STT支持与VLAN Trunk的互通,不支持伪广播,也没有内生的MTU发现机制,RFC中建议了对DSCP和ECN的支持。
STT有一个致命的缺陷——它的TCP是无连接的,并不进行三次握手,也没有对于状态的维护。虽然网卡做TSO时不关心这个问题,但防火墙、负载均衡器这些盒子可就不买账了,因此STT在实际部署时会受到很大的限制。Nicira被VMware收购后,STT在NSX中(在4.1节中会详细介绍)只被用来做Hyper-Hyper的隧道,打通物理网络还是要用VxLAN。在NSX最新的版本NSX-T中,STT已经被Geneve所取代,STT在IETF中Draft的状态也成了Expired,STT就此成为历史,不过其独特的技术思路还是给Geneve提供了一些借鉴。
- 点赞
- 收藏
- 关注作者
评论(0)