Blog Archive

TCP/IP and Storage Networking

1 - iSCSI v/s FCoE:

  • iSCSI: An IP-based storage networking standard to execute SCSI commands and enable data transfer between SCSI initiator and target. 
  • FCoE: Ability to encapsulate FC frames in Ethernet and then transport these FC frames over an Ethernet network.
Parameters iSCSI FCoE
Underlying network layers Uses Ethernet, IP, and TCP as the underlying network layers. Uses a new EtherType definition – Data Center Ethernet (DCE); it does not use TCP/IP. FCoE requires lossless Ethernet and it preserves the FC specification/constructs while running on the Ethernet. Since frame drop is not acceptable in FCoE, obviously TCP/IP wouldn’t work.
Network switches Uses traditional Ethernet switches. Uses switches that support datacenter bridging (DCB) protocol.
Adapters Uses NIC. Uses CNA to encapsulate FC frames in an Ethernet frame.
Frame Format An iSCSI frame includes Ethernet Header>IP>TCP>Data>CRC. FCoE is essentially the encapsulation of FC frames in Ethernet frames. Therefore, it includes Ethernet Header>FCoE Header>FC Header> FC Payload>CRC>EOF.



2 - SAN v/s NAS


Parameters SAN NAS
By definition SAN is a dedicated high-speed network that includes severs, VMs, switches, storage etc. A NAS device is essentially a File Server. A NAS device is made up of one or more HDDs, an OS, and Ethernet connection to the network. Examples: Network drives in Microsoft Windows.
How does it store and access data? Block-level data storage and access. Example: The specific location or a range of storage blocks is specified. Hey, give me access to block 1111 to 2222. You get all the data that is stored between these two blocks.   File level data storage and access. Example: Hey, NAS Server, give me file XYZ.
Used protocol FC, FCoE, iSCSI CIFS, NFS
Connectivity Typically uses Fibre Channel connectivity. Uses standard Ethernet connection.
How does the client OS look at it? It appears local to the client. It appears as a remote storage.

3 - Hypervisors:

  • Type 1 hypervisors: The hypervisor (a thin layer of code) sits on top of hardware (bare metal hypervisor). Once configured successfully, you can create VMs on the hypervisor. Examples are ESX, KVM, and Hyper-V. Hardware –> hypervisor –> VMs –> VM operating system –> applications
  • Type 2 hypervisors: The host OS sits on top of hardware and the hypervisor is configured on the OS. Since the hypervisor is now ready, you can proceed with the VM creation. Examples are Solaris Zones and VMware workstation. Hardware –> Host OS –> hypervisor –> VMs –> VM operating system –> applications

4 - Why is Hyper-V a type 1 hypervisor when it runs as a role on Windows Server 2012 R2?


While installing Win Server 2012 R2, you select the roles that you want to enable. For example, DHCP, DNS, Hyper-V etc. When you select Hyper-V role, the system automatically converts the host OS into a VM, and puts the hypervisor below. This VM is referred to as the parent partition in Hyper-V. Once the parent partition is available, you can create child partitions (VMs).    
  • The parent partition in Hyper-V consists of several components: VMI Provider, Virtual Machine Management Service, Kernel, Virtualization Service Provider (VSP).
  • The child partition consists of application, Kernel, and Virtualization Service Consumer (VSC) etc.

5 - Processors, CPUs, Core, and vCPU??


A motherboard (single-socket or multi-socket) can contain one or multiple physical processors (chips) respectively. Each physical processor/chip contains multiple cores. Each such core is seen by the Operating System as an independent CPU.

One step further: In virtualized environment, when you install the hypervisor, each physical CPU is further abstracted into virtual CPUs (vCPUs). Each vCPU divides the available CPU cycles for each core and as a result, multiple VMs can use the CPU time.

This is referred to as CPU scheduling/time sharing. Take a look at the following screenshot from a Windows 10 machine. You have one processor (socket), 2 cores (CPUs), and 4 logical processors (analogous for vCPU).              

The following diagram illustrates the relationship between a processor and its cores:



6 - More questions on networking

  • What is an interframe gap?
    9.6 microseconds of silence is needed to handle any clocking errors. That is, the transmitter waits for 9.6 microseconds before it sends another frame to the destination. Note that with faster networks, this value decreases. For example, its value is much lower in 100 GB Ethernet as compared to a standard 10 MBPS Ethernet.
  • What is MTU?
    The largest IP packet an Ethernet frame can contain. Its maximum value is 1500 bytes. Note that system adds some more bytes on top of it. For example, source and destination MAC addresses, CRC etc.
  • What is a jumbo frame?
    An Ethernet frame with a payload more than the standard MTU, which is 1500 bytes. Mostly, jumbo frames are 9000 bytes in size.
  • Why using jumbo frames improves the network performance?
    Because with more payload per frame (approximately 9000 bytes), your network switch is now able to process more data per frame, and as a result, it has fewer frames to process.
  • How does the Address Resolution Protocol (ARP) work?

    ARP takes care of IP address to MAC address mapping and it involves IP packets and frames. Each computer has two addresses – an IP address (32-bit) and a MAC address (48-bit).

    The IP address is essentially a logical address assigned dynamically by the DHCP. The IP address takes care of addressing at the Network layer. The MAC address, on the other hand, is hard-coded onto your computer's NIC, and it works at the Data Link layer.
    An IP packet has the IP addresses of the source and destination machines. Since we are using Ethernet for data transmission, we need to encapsulate this IP packet into an Ethernet frame. The Ethernet frame includes the MAC addresses of the source and destination machines.

    Let’s assume that a computer (A) wants to send data to another computer (B). So, it needs to know – (1) IP and (2) MAC address of the destination. The DNS helps to find out the IP address. The remaining component is MAC address of computer B. To get the MAC address of computer B, first the computer A sends an ARP request. It’s a broadcast and all the computers in the segment will receive this broadcast.
    An ARP request is essentially a way of broadcasting a message.
    Something like: Hi, My IP address is 1.2.3.4 and my MAC address is XXXXX. I am looking for the MAC address of the destination machine whose IP address is 11.22.3.44. The machine having 11.22.33.44 IP address will then reply with its MAC address. This is known as the ARP reply. The source machine (A) receives the response and finally gets the MAC address of the destination machine. The destination machine (B) will also update its ARP table with the MAC addresses of the source machine (A).

    After the successful completion of one ARP cycle (request and response), both the systems will update their respective ARP tables with each other’s IP and MAC addresses. Now computer A has everything (IP+MAC addresses) it needs to send the Ethernet frame to computer B. How does the ARP packet look like? It includes hardware type, protocol type, hardware address length, protocol address length, operation, sender hardware (MAC) address, target hardware (MAC) address, sender IP address, target IP address etc. An ARP will either be an ARP request (operation field's value is 1) or an ARP reply (operation field's value is 2)