Network Protocol Stack E6
Total application of Ethernet technology leads to redundancy of protocols TCP, UDP, IP. But Ethernet MAC-addresses are plain which impedes their usage in world-wide networks. This paper describes E6 Addressing Scheme and Network Architecture which uses uniform E6 address with the length of 6 octets and hierarchic structure.[1] E6 addresses are put into the MAC-addresses fields of Ethernet frame as well as used at the application level. Ethernet LLC facilities are employed for guaranteed delivery of information.
Historical Notes
In heterogeneous networks TCP/IP protocols played their uniting part based on the mapping of IP-addresses into physical addresses of various technologies. Moreover, while physical networks were unreliable and did not provide facilities of guaranteed delivery, TCP played its central part in the reliable delivery of information over unreliable channels. The cost of this approach is overhead caused by TCP/UDP and IP headers, slow algorithms of TCP sliding window, inevitable expense of resources for mapping of addresses (ARP, RARP for IPoverEthernet ).
The lack of IP-addresses caused the development of NAT and IPv6 standards. NAT facilities are widely used but lead to expenses caused by additional mapping of IP-addresses. IPv6 is too cumbersome which hampers its practical usage.
IEEE tries to overcome the limitations of scale for Ethernet networks caused by plain MAC-address structure with its new standards IEEE 802.1ah (Provider Backbone Bridge). The solution is based on duplicate pairs of customer and backbone MAC-addresses and additional mapping of addresses. Such an incremental approach could require triple pairs of MAC-addresses in future. Recently, Ethernet-adaptors and interfaces of Ethernet switches allow the substitution of the vendor MAC-address by an arbitrary MAC-address which creates conditions for new addressing schemes development.
Motivation
Ethernet technology becomes a universal networking technology. It dominates in LAN sector. With 10Gbit/s standards it is widely spread as backbone in campus and metropolitan networks. It replaces STM within backbones of providers with "Ethernet over DWDM" solutions. It ejects xDSL in access networks with "Ethernet for last mile" standards. Moreover, wireless WiFi and WiMAX technologies use the same frame formats.
All the conditions are achieved for the creation of homogeneous world-wide networks completely based on Ethernet technology. And really most of Internet interfaces are Ethernet interfaces at the present time. So the delivery of packets could be done using a pair of MAC-addresses only but each MAC-address should be listed in the routing (switching) table of a device which put the limitation to the network scale.
The lack of IP-addresses is still urgent because IPv6 is not widespread as a practical solution. Sliding widow algorithms of TCP are too slow for real-time application while fast Ethernet LLC2 facilities are unemployed in the standard encapsulation of IP over Ethernet. VoIP applications generate small packets but their delivery in guaranteed time is complicated by packets overhead with TCP and IP headers.
The IEEE solution of Provider Backbone Bridges (PBB) devised for Ethernet scalability adds new pairs of plain backbone B-MAC addresses to the frame header. It saves the existing IP-MAC mapping and brings additional mappings of B-MAC and C-MAC addresses which delays frames processing on the edge of backbone and expands frames headers.
E6-address Structure
E6-address is a uniform network address with the length of 6 octets and hierarchical structure. Subnet Mask (as the number of bits of E6 network address) E6-address (the same as IP CIDR address) consists of E6 network address (E6NWA) and E6 host address (E6HA). The length of the NWA is variable and given by the Subnet Mask.
The same as IP CIDR addresses E6-addresses allow subnetworking and define a hierarchy of subnets which employ aggregation of E6 host and subnet addresses for the reduction of routers address table size. The following notation of E6-address is used:
x.x.x.x.x.x
where x denotes an octet of information. The Subnet Mask is represented by the number of bits; a slash is used as a separator:
x.x.x.x.x.x/m
The same as for IP addresses an address with all the bits of E6 Host field equal to zero is considered as E6 Network address and with all the bits equal to unit - as E6 Broadcast address. Examples:
1.2.3.4.5.6/40, 10.125.236.17.193.25/36 - host addresses; 1.2.3.4.5.0/40, 10.125.236.17.192.0/36 - network addresses; 1.2.3.4.5.255/40, 10.125.236.17.207.255/36 - broadcast addresses.
The length of 6 octets allows the substituting E6-address instead of MAC-address into the corresponding fields of Ethernet frame which brings the hierarchic organization to Ethernet networks. Moreover, the length of 6 octets allows the extension of the address space in 2^14 times in the comparison with IP-addresses (14 because 2 first bits are reserved for broadcast and group addresses by Ethernet standards).
E6-addresses Usage
It is proposed to use E6-addresses as a uniform network address:
- On application level instead of IP-addresses.
- On Ethernet data-link and physical levels instead of Ethernet MAC-addresses.
Thus, at the source host, the pair of E6 source and destination addresses is passed unchanged from an application via corresponding operating system kernel modules into Ethernet frames which are delivered within the network to the destination host.
Interfaces of Applications
All the TCP/IP applications can be adopted into E6 networks. The only change is the recompilation of applications with expansion of the address fields from 4 octets (for IP-addresses) to 6 octets (for E6-addresses). The rest of the application interface is saved unchanged. IP DNS is transformed into E6 DNS with the only difference of 6 octets E6 addresses usage. The system of domain names could be saved unchanged so the transition to E6 networks is imperceptible (transparent) for the customers who use domain names only.
Interfaces with Ethernet Hardware
E6 addresses are assigned directly to Ethernet interfaces instead of vendor MAC- addresses so at the network periphery usual Ethernet switches can be employed for the delivery of frames. But for the efficient delivery of frames within E6 networks it is proposed the organization of hierarchic E6 subnets and the usage of special E6 switching routers (E6SR). At the first stage, the existing system of IP- addresses can be adopted completely into the last 4 octets of E6 addresses with a special value of the first 2 octets, for instance, 1.0.
Notes on Implementation of E6 Architecture
First of all E6 stack should be implemented within kernels of operating systems: Unix (Linux), Windows etc. The implementation of E6DNS is very advisable. Then TCP/IP applications should be recompiled regarding new protocol and address family (PF_E6 and AF_E6 respectively) usage. Since all the application interfaces of UDP and TCP (DGRAM and STREAM modes respectively) are saved, the only difference comparing PF_INET and AF_INET is the expansion of address field length from 4 to 6 octets.
As the result E6 applications can work within switched Ethernet in parallel among other protocols. Hosts (and routers) which do not support E6 will drop the corresponding frames. But the full benefits of E6 networking are not reached yet since usual Ethernet switches process E6 addresses in the same way as plain MAC addresses. Simple switched Ethernet can not be expanded into a world-wide network since the plain addresses overflow address tables as far as each individual address should be listed in address table.
Full advantages of E6 networks as well as the possibility of world-wide networks construction are reached at E6SR implementation. The simplest variant of E6SR implementation is the usage of a few Ethernet interfaces within a host and special flag E6_FORWARDING (an analog to IP_FOWARDING) within its operating system. So E6_FORWARDING features should be added to E6 stack. But the performance of a general purpose operating system could not compete with specialized backbone devices (routers, switches). So, hardware implementation of E6SR is advisable.
Implementation
OS Linux socket is a generalized inter-process communication channel, which is represented as a file descriptor. As a rule, sockets are used for communication between processes running on different computers. To provide communication between two puke na malaki, they have to support the same style and protocol of interaction.
The implementation of stack E6 via OS Linux sockets is described in .[2]
References
- ↑ Zaitsev D.A., Bolshakov S.I. E6 Addressing Scheme and Network Architecture, Journal of Advanced Computer Science and Technology, 1 (1) (2012) 18-31.
- ↑ Zaitsev D.A., Kharsun M.A. Implementing Stack E6 via OS Linux Sockets, Journal of Advanced Computer Science and Technology, 1 (3) (2012) 116-133.