Showing posts with label protocol. Show all posts
Showing posts with label protocol. Show all posts

Wednesday, May 14, 2014

IPX/SPX

IPX/SPX is a routable protocol and can be used for small and large networks. The following protocols are part of the IPX/SPX suite:


     SAP - Service Advertising Protocol packets are used by file and print servers to periodically advertise the address of the server and the services available. It works at the application, presentation, and session levels.

     NCP - NetWare Core Protocol provides for client/server interactions such as file and print sharing. It works at the application, presentation, and session levels.

     SPX - Sequenced Packet Exchange operates at the transport layer providing connection oriented communication on top of IPX.

     IPX - Internetwork Packet Exchange supports the transport and network layers of the OSI network model. Provides for network addressing and routing. It provides fast, unreliable, communication with network nodes using a connection less datagram service.

     RIP - Routing Information Protocol is the default routing protocol for IPX/SPX networks which operates at the network layer. A distance-vector algorithm is used to calculate the best route for a packet.

ODI - Open Data-link Interface operates at the data link layer allowing IPX to work with any network interface card. 

NetWare frame types



Novell NetWare 2.x and 3.x use Ethernet 802.3 as their default frame type. Novell NetWare 4.x networks use Ethernet 802.2 as their default frame type. If communication does not occur between two NetWare computers it is a good idea to check the netware versions of the two computers to be sure their frame types match. If the frame types do not match on an ethernet network, the computers cannot communicate.

Monday, March 17, 2014

Network Cabling

This section may be skipped by those more interested on the software aspects of networking or those
learning networking, but all readers should at some time be aware of the terminology used in this section
since they are used with regard to cabling. If this section is skipped by those learning networking, it
should be read later. This section should be read by those who plan to physically install their own
network.

Types of Transmission

1. Baseband - Data bits are defined by discrete signal changes.
2. Broadband - Uses analog signals to divide the cable into several channels with each channel at its
    own frequency. Each channel can only transmit one direction.

Physical media

1. Twisted pair - Wire is twisted to minimize crosstalk interference. It may be shielded or
    unshielded.

  • UTP-Unshielded Twisted Pair. Normally UTP contains 8 wires or 4 pair. 100 metermaximum length. 4-100 Mbps speed.
  • STP-Shielded twisted pair. 100 meter maximum length. 16-155 Mbps speed. Lowerelectrical interference than UTP.


2. Coaxial - Two conductors separated by insulation such as TV 75 ohm cable. Maximum length of 185 to       500 meters.

1. Thinnet - Thinnet uses a British Naval Connector (BNC) on each end. Thinnet is part of the RG-58 family of cable*. Maximum cable length is 185 meters. Transmission speed is 10Mbps. Thinnet cable should       have 50 ohms impedance and its terminator has 50 ohms impedance. A T or barrel connector has no impedance.

2. Thicknet - Half inch rigid cable. Maximum cable length is 500 meters. Transmission speed is 10Mbps. Expensive and is not commonly used. (RG-11 or RG-8). A vampire tap or piercing tap is used with a transceiver attached to connect computers to the cable. 100 connections may be made. The computer has an attachment unit interface (AUI) on its network card which is a 15 pin DB-15 connector. The computer is connected to the transceiver at the cable from its AUI on its network card using a drop cable.

Coax cable types:


  • RG-58 /U - 50 ohm, with a solid copper wire core.
  • RG-58 A/U* - 50 ohm, with a stranded wire core.
  • RG-58 C/U* - Military version of RG-58 A/U.
  • RG-59 - 75 ohm, for broadband transmission such as cable TV.
  • RG-62 - 93 ohm, primarily used for ArcNet.
  • RG-6 - Used for satellite cable (if you want to run a cable to a satellite!).
  • Only these are part of the IEEE specification for ethernet networks.

3. Fiber-optic - Data is transmitted using light rather than electrons. Usually there are two fibers, one for each direction. Cable length of 2 Kilometers. Speed from 100Mbps to 2Gbps. This is the most expensive and most difficult to install, but is not subject to interference. Two types of cables are:

1. Single mode cables for use with lasers.
2. Multimode cables for use with Light Emitting Diode (LED) drivers.

Cable Standards

The Electronic Industries Association and Telecommunications Industries Association (EIA/TIA) defined a standard called EIA/TIA 568 which is a commercial building wiring standard for UTP cable. It defines transmission speed and twists per foot.

Category Speed                                  Notes
1      None                               Used for old telephone systems
2      4Mps
3      10Mps                            The minimum category for data networks
4      16Mps
5      100Mps                          Cat 5 network cable, used by most networks today
6                                             Data patch,Two pair with foil and braided shield
7                                             Undefined
8                                             Flat cable for under carpets with two twisted pair
9                                             Plenum cable with two twisted pair. It is safe if you're having a fire.

The maximum transmission length is 100 meters. This cable is susceptible to interference.

STP

Shielded twisted pair has a maximum cable length of 100 meters (328 feet). Data rate from 16 to 155 Mbps. Cables require special connectors for grounding but this cabling method resists electrical interference and is less susceptible to eavesdropping. Costs more than UTP or Thinnet, but not as much as Thicknet or Fiber-optic.

Terms

  • Attenuation - Signal loss due to impedance.
  • Bandwidth - Indicates the amount of data that can be sent in a time period. Measured in Mbpswhich is one million bits per second.
  • Impedance - The amount of resistance to the transmission device.
  • Interference - Electromagnetic Interference (EMI). Crosstalk - When wires pick upelectromagnetic signals from nearby wires also carrying signals.
  • Plenum - Space above a false ceiling in an office area where heat ducts and cables may be run.Plenum cabling is special fire resistant cabling required for use in these areas due to fire hazards.
  • Shielding - Used to minimize interference.

Thursday, March 6, 2014

User Datagram Protocol

User Datagram Protocol (UDP) supports the network at the transport layer. User Datagram Protocol (UDP) is an unreliable connection-less protocol and is defined by RFC 768 and 1122. It is a datagram service. There is no guarantee that the data will reach its destination. UDP is meant to provide serivce
with very little transmission overhead. It adds very little to IP datapackets except for some error checking and port direction (Remember, UDP encapsulates IP packets). The following protocols or services use UDP:
  •  DNS
  •  SNMP
  •  BOOTP
  •  TFTP
  •  NFS
  •  RPC
  •  RIP 

UDP Message Format 

The UDP header includes:
 
1. Source port number (16 bits) - An optional field
2. Destination port number (16 bits)
3. UDP length (16 bits)
4. UDP checksum (16 bits)
 
This is followed by data. The UDP checksum includes UDP data, not just the header as with IP message formats. For UDP and TCP checksum calculation a 12 byte pseudo header is included which contains some fields form the IP message header. This header is not transmitted as part of UDP or TCP, but is only used to help compute the checksum as a means of being sure that the data has arrived at the correct IP address. This is the TCP/UDP pseudo header:
 
1. Source IP address (32 bits)
2. Destination IP address (32 bits)
3. blank filler(0) (8 bits)
4. Protocol (8 bits)
5. UDP length (16 bits)

Thursday, February 13, 2014

Transmission Control Protocol

Transmission Control Protocol (TCP) supports the network at the transport layer. Transmission Control
Protocol (TCP) provides a reliable connection oriented service. Connection oriented means both the
client and server must open the connection before data is sent. TCP is defined by RFC 793 and 1122.
TCP provides:
  • End to end reliability.
  • Data packet re sequencing.
  • Flow control.
TCP relies on the IP service at the network layer to deliver data to the host. Since IP is not reliable with regard to message quality or delivery, TCP must make provisions to be sure messages are delivered on time and correctly (Federal Express?).

TCP Message Format

The format of the TCP header is as follows:
 
1. Source port number (16 bits)
 
2. Destination port number (16 bits)
 
3. Sequence number (32 bits) - The byte in the data stream that the first byte of this packet
represents.
 
4. Acknowledgement number (32 bits) - Contains the next sequence number that the sender of the
acknowledgement expects to receive which is the sequence number plus 1 (plus the number of
bytes received in the last message?). This number is used only if the ACK flag is on.
 
5. Header length (4 bits) - The length of the header in 32 bit words, required since the options field
is variable in length.
 
6. Reserved (6 bits)
 
7. URG (1 bit) - The urgent pointer is valid.
 
8. ACK (1 bit) - Makes the acknowledgement number valid.
 
9. PSH (1 bit) - High priority data for the application.
 
10. RST (1 bit) - Reset the connection.
 
11. SYN (1 bit) - Turned on when a connection is being established and the sequence number field
will contain the initial sequence number chosen by this host for this connection.
 
12. FIN (1 bit) - The sender is done sending data.
 
13. Window size (16 bits) - The maximum number of bytes that the receiver will to accept.
 
14. TCP checksum (16 bits) - Calculated over the TCP header, data, and TCP pseudo header.
 
15. Urgent pointer (16 bits) - It is only valid if the URG bit is set. The urgent mode is a way to
transmit emergency data to the other side of the connection. It must be added to the sequence
number field of the segment to generate the sequence number of the last byte of urgent data.

16. Options (variable length)
The header is followed by data. TCP data is full duplex.

Sunday, February 2, 2014

Internet Protocol

Internet Protocol (IP) provides support at the network layer of the OSI model. All transport protocol data packets such as UDP or TCP are encapsulated in IP data packets to be carried from one host to another. IP is a connection-less unreliable service meaning there is no guarantee that the data will reach the intended host. The datagrams may be damaged upon arrival, out of order, or not arrive at all (Sounds like some mail services, doesn't it?). Therefore the layers above IP such as TCP are responsible for being sure correct data is delivered. IP provides for:

●     Addressing.
●     Type of service specification.
●     Fragmentation and re-assembly.
●     Security.

IP Message Format

IP is defined by RFC 791.

1.  Version (4 bits) - The IP protocol version, currently 4 or 6. 
2.  Header length (4 bits) - The number of 32 bit words in the header 
3.  Type of service (TOS) (8 bits) - Only 4 bits are used which are minimize delay, maximize throughput, maximize reliability, and minimize monetary cost. Only one of these bits can be on. If all bits are off, the service is normal. Some networks allow a set precedences to control priority of messages the bits are as follows:

❍     Bits 0-2 - Precedence.
  ■     111 - Network Control 
  ■     110 - Internetwork Control 
  ■     101 - CRITIC/ECP 
  ■     100 - Flash Override 
  ■     011 - Flash 
  ■     010 - Immediate 
  ■     001 - Priority 
  ■     000 - Routine 
❍     Bit 3 - A value of 0 means normal delay. A value of 1 means low delay. 
❍     Bit 4 - Sets throughput. A value of 0 means normal and a 1 means high throughput. 
❍     Bit 5 - A value of 0 means normal reliability and a 1 means high reliability. 
❍     Bit 6-7 are reserved for future use.

4.  Total length of the IP data message in bytes (16 bits) 
5.  Identification (16 bits) - Uniquely identifies each datagram. This is used to re-assemble the datagram. Each fragment of the datagram contains this same unique number. 
6.  flags (3 bits) - One bit is the more fragments bit

  •  Bit 0 - reserved. 
  •  Bit 1 - The fragment bit. A value of 0 means the packet may be fragmented while a 1 means it cannot be fragmented. If this value is set and the packet needs further fragmentation, an ICMP error message is generated. 
  • Bit 2 - This value is set on all fragments except the last one since a value of 0 means this is the last fragment.

7.  Fragment offset (13 bits) - The offset in 8 byte units of this fragment from the beginning of the original datagram. 
8.  Time to live (TTL) (8 bits) - Limits the number of routers the datagram can pass through. Usually set to 32 or 64. Every time the datagram passes through a router this value is decremented by a value of one or more. This is to keep the datagram from circulating in an infinite loop forever. 
9.  Protocol (8 bits) - It identifies which protocol is encapsulated in the next data area. This is may be one or more of TCP(6), UDP(17), ICMP(1), IGMP(2), or OSPF(89). A list of these protocols and  their associated numbers may be found in the /etc/protocols file on Unix or Linux systems. 
10.  Header checksum (16 bits) - For the IP header, not including the options and data. 
11.  Source IP address (32 bits) - The IP address of the card sending the data. 
12.  Destination IP address (32 bits) - The IP address of the network card the data is intended for. 
13.  Options - Options are: 
❍     Security and handling restrictions
❍     Record route - Each router records its IP address 
❍     Time stamp - Each router records its IP address and time 
❍     Loose source routing - Specifies a set of IP addresses the datagram must go through. 
❍     Strict source routing - The datagram can go through only the IP addresses specified. 
14.  Data - Encapsulated hardware data such as ethernet data.
 
The message order of bits transmitted is 0-7, then 8-15, in network byte order. Fragmentation is handled at the IP network layer and the messages are reassembled when they reach their final destination. If one fragment of a datagram is lost, the entire datagram must be retransmitted. This is why fragmentation is avoided by TCP. The data on the last line, item 14, is ethernet data, or data depending on the type of physical network.

Friday, January 17, 2014

Address Resolution Protocol

ARP and RARP Address Translation

Address Resolution Protocol (ARP) provides a completely different function to the network than Reverse Address Resolution Protocol (RARP). ARP is used to resolve the ethernet address of a NIC from an IP address in order to construct an ethernet packet around an IP data packet. This must happen in order to send any data across the network. Reverse address resolution protocol (RARP) is used for diskless computers to determine their IP address using the network.

Address Resolution Protocol (ARP)

In an earlier section, there was an example where a chat program was written to communicate between
two servers. To send data, the user (Tom) would type text into a dialog box, hit send and the following
happened:

1. The program passed Tom's typed text in a buffer, to the socket.
2. The data was put inside a TCP data packet with a TCP header added to the data. This header
    contained a source and destination port number along with some other information and a
    checksum.
3. The TCP packet was be placed inside an IP data packet with a source and destination IP address
    along with some other data for network management.
4. The IP data packet was placed inside an ethernet data packet. This data packet includes the
    destination and source address of the network interface cards (NIC) on the two computers. The
    address here is the hardware address of the respective cards and is called the MAC address.
5. The ethernet packet was transmitted over the network line.
6. With a direct connection between the two computers, the network interface card on the intended
     machine, recognized its address and grabbed the data.
7. The IP data packet was extracted from the ethernet data packet.
8. The TCP data packet was extracted from the IP data packet.
9. The data was extracted from the TCP packet and the program displayed the retrieved data (text) in
     the text display window for the intended recipient to read.

In step 4 above, the IP data was going to be placed inside an ethernet data packet, but the computer
constructing the packet does not have the ethernet address of the recipient's computer. The computer that is sending the data, in order to create the ethernet part of the packet, must get the ethernet hardware (MAC) address of the computer with the intended IP address. This must be accomplished before the ethernet packet can be constructed. The ethernet device driver software on the receiving computer is not programmed to look at IP addresses encased in the ethernet packet. If it did, the protocols could not be independent and changes to one would affect the other. This is where address resolution protocol (ARP) is used. Tom's computer sends a network broadcast asking the computer that has the recipient's IP address to send it's ethernet address. This is done by broadcasting. The ethernet destination is set with all bits on so all ethernet cards on the network will receive the data packet. The ARP message consists of an ethernet header and ARP packet. The ethernet header contains:

1. A 6 byte ethernet destination address.
2. A 6 byte ethernet source address.
3. A 2 byte frame type. The frame type is 0806 hexadecimal for ARP and 8035 for RARP

The encapsulated ARP data packet contains the following:

1. Type of hardware address (2 bytes). 1=ethernet.
2. Type of protocol address being mapped( 2 bytes). 0800H (hexadecimal) = IP address.
3. Byte size of the hardware address (1 byte). 6
4. Byte size of the protocol address (1 byte). 4
5. Type of operation. 1 = ARP request, 2=ARP reply, 3=RARP request, 4=RARP reply.
6. The sender's ethernet address (6 bytes)
7. The sender's IP address (4 bytes)
8. The recipient's ethernet address (6 bytes)
9. The recipient's IP address (4 bytes)

When the ARP reply is sent, the recipient's ethernet address is left blank.

In order to increase the efficiency of the network and not tie up bandwidth doing ARP broadcasting, each computer keeps a table of IP addresses and matching ethernet addresses in memory. This is called ARP cache. Before sending a broadcast, the sending computer will check to see if the information is in it's ARP cache. If it is it will complete the ethernet data packet without an ARP broadcast. Each entry normally lasts 20 minutes after it is created. RFC 1122 specifies that it should be possible to configure the ARP cache timeout value on the host. To examine the cache on a Windows, UNIX, or Linux computer type "arp -a".

If the receiving host is on another network, the sending computer will go through its route table and determine the correct router (A router should be between two or more networks) to send to, and it will substitute the ethernet address of the router in the ethernet message. The encased IP address will still have the intended IP address. When the router gets the message, it looks at the IP data to tell where to send the data next. If the recipient is on a network the router is connected to, it will do the ARP resolution either using it's ARP buffer cache or broadcasting.

Reverse Address Resolution Protocol (RARP)

As mentioned earlier, reverse address resolution protocol (RARP) is used for diskless computers to determine their IP address using the network. The RARP message format is very similar to the ARP format. When the booting computer sends the broadcast ARP request, it places its own hardware address in both the sending and receiving fields in the encapsulated ARP data packet. The RARP server will fill in the correct sending and receiving IP addresses in its response to the message. This way the booting computer will know its IP address when it gets the message from the RARP server.

Sunday, December 29, 2013

Network Protocol Levels

You should be aware of the fact, that when talking about networking you will hear the word "protocol" all the
time. This is because protocols are sets of standards that define all operations within a network. They define how various operations are to be performed. They may even define how devices outside the network can interact with the network. Protocols define everything from basic networking data structures, to higher level application programs. They define various services and utility programs. Protocols operate at many layers of the network models described below. There are protocols considered to be transport protocols such as TCP and UDP. Other protocols work at the network layer of the OSI network model shown below, and some protocols work at several of the network layers.

RFCs

Protocols are outlined in Request for Comments (RFCs). At the end of this document is a list of protocols and associated RFC numbers.Protocols. Although RFCs define protocols not all RFCs define protocols but may define other requirements for the internet such as RFC 1543 which provides information about the preparation of RFCs. The following RFCs are very central to the TCP/IP protocol.

  • RFC 1122 - Defines host requirements of the TCP/IP suite of protocols covering the link, network (IP), and transport (TCP, UDP) layers.
  • RFC 1123 - The companion RFC to 1122 covering requirements for internet hosts at the application layer
  • RFC 1812 - Defines requirements for internet gateways which are IPv4 routers

Network Models

There are several network models which you may hear about but the one you will hear about most is the ISO network model described below. You should realize, however that there are others such as
  • The internet layered protocol
  • The TCP/IP 4 layered protocol
  • The Microsoft networking protocol
If you don't like any of these models, feel free to invent your own along with your own networking scheme of
course, and add it to the list above. You can call it "The MyName Protocol". Ever wonder why networking can be so complex and confusing? Welcome to the world of free enterprise!

The ISO Network Model Standard

The International Standards Organization (ISO) has defined a standard called the Open Systems Interconnection (OSI) reference model. This is a seven layer architecture listed below. Each layer is considered to be responsible for a different part of the communications. This concept was developed to accommodate changes in technology. The layers are arranged here from the lower levels starting with the physical (hardware) to the higher levels.

1. Physical Layer - The actual hardware.
2. Data Link Layer - Data transfer method (802x ethernet). Puts data in frames and ensures error free
transmission. Also controls the timing of the network transmission. Adds frame type, address, and error
control information. IEEE divided this layer into the two following sublayers.
  •  Logical Link control (LLC) - Maintains the Link between two computers by establishing Service Access Points (SAPs) which are a series of interface points. IEEE 802.2.
  • Media Access Control (MAC) - Used to coordinate the sending of data between computers. The 802.3, 4, 5, and 12 standards apply to this layer. If you hear someone talking about the MAC address of a network card, they are referring to the hardware address of the card.
3. Network Layer - IP network protocol. Routes messages using the best path available.
4. Transport Layer - TCP, UDP. Ensures properly sequenced and error free transmission.
5. Session Layer - The user's interface to the network. Determines when the session is begun or opened, how long it is used, and when it is closed. Controls the transmission of data during the session. Supports security and name lookup enabling computers to locate each other.
6. Presentation Layer - ASCII or EBCDEC data syntax. Makes the type of data transparent to the layers
around it. Used to translate date to computer specific format such as byte ordering. It may include compression. It prepares the data, either for the network or the application depending on the direction it is
going.
7. Application Layer - Provides services software applications need. Provides the ability for user applications to interact with the network.
 
Many protocol stacks overlap the borders of the seven layer model by operating at multiple layers of the model. File Transport Protocol (FTP) and telnet both work at the application, presentation, and the session layers.

The Internet, TCP/IP, DOD Model

This model is sometimes called the DOD model since it was designed for the department of defense It is also
called the TCP/IP four layer protocol, or the internet protocol. It has the following layers:

1. Link - Device driver and interface card which maps to the data link and physical layer of the OSI model.
2. Network - Corresponds to the network layer of the OSI model and includes the IP, ICMP, and IGMP
protocols.
3. Transport - Corresponds to the transport layer and includes the TCP and UDP protocols.
4. Application - Corresponds to the OSI Session, Presentation and Application layers and includes FTP,
Telnet, ping, Rlogin, rsh, TFTP, SMTP, SNMP, DNS, your program, etc.

Please note the four layer TCP/IP protocol. Each layer has a set of data that it generates.

1. The Link layer corresponds to the hardware, including the device driver and interface card. The link layer
has data packets associated with it depending on the type of network being used such as ARCnet, Token
ring or ethernet. In our case, we will be talking about ethernet.

2. The network layer manages the movement of packets around the network and includes IP, ICMP, and
IGMP. It is responsible for making sure that packages reach their destinations, and if they don't, reporting
errors.

3. The transport layer is the mechanism used for two computers to exchange data with regards to software.
The two types of protocols that are the transport mechanisms are TCP and UDP. There are also other typesof protocols for systems other than TCP/IP but we will talk about TCP and UDP in this document.

4. The application layer refers to networking protocols that are used to support various services such as FTP, Telnet, BOOTP, etc. Note here to avoid confusion, that the application layer is generally referring to
protocols such as FTP, telnet, ping, and other programs designed for specific purposes which are governed
by a specific set of protocols defined with RFC's (request for comments). However a program that you
may write can define its own data structure to send between your client and server program so long as the
program you run on both the client and server machine understand your protocol. For example when your
program opens a socket to another machine, it is using TCP protocol, but the data you send depends on
how you structure it.

Data Encapsulation, a Critical concept to be understood

When starting with protocols that work at the upper layers of the network models, each set of data is wrapped inside the next lower layer protocol, similar to wrapping letters inside an envelope. The application creates the data, then the transport layer wraps that data inside its format, then the network layer wraps the data, and finally the link (ethernet) layer encapsulates the data and transmits it.
To continue, you should understand the definition of a client and server with regards to networking. If you are a server, you will provide services to a client, in much the same way as a private investigator would provide services to their clients. A client will contact the server, and ask for service, which the server will t are many clients, a server must be constantly ready to receive client requests, even though it may already be working with other clients. Usually the client program will operate on one computer, while the server program will operate on another computer, although programs can be written to be both a client and a server.

Lets say you write a client chat program and a server chat program to be used by two people to send messages between their machines. You run the server program on machine B, and the client program on machine A. Tom is on machine A and George is on machine B. George's machine is always ready to be contacted, but cannot initiate a contact. Therefore if George wants to talk to Tom, he cannot, until Tom contacts him. Tom, of course can initiate contact at any time. Now you decide to solve the problem and merge the functionality of the two programs into one, so both parties may contact the other. This program is now a client/server program which operates both as a client and a server. You write your code so when one side initiates contact, he will get a dialog box, and a dialog box will pop up on the other side. At the time contact is initiated, a socket is opened between the two machines and a virtual connection is established. The program will let the user (Tom) type text into the dialog window, and hit send. When the user hits send, roughly the following will happen.

1. Your program will pass Tom's typed text in a buffer, to the socket. This happens on machine A.
2. The underlying software (Code in a library called by a function your program used to send the data) supporting the socket puts the data inside a TCP data packet. This means that a TCP header will be          added to the data. This header contains a source and destination port number along with some other information
and a checksum. Deamon programs (Daemon definition at the bottom of this page) may also work at this
level to sort packages based on port number (hence the TCP wrapper program in UNIX and Linux).
3. The TCP packet will be placed inside an IP data packet with a source and destination IP address along  with some other data for network management. This may be done by a combination of your library  function, the operating system and supporting programs.
4. The IP data packet is placed inside an ethernet data packet. This data packet includes the destination and source address of the network interface cards (NIC) on the two computers. The address here is the   hardware address of the respective cards and is called the MAC address.
5. The ethernet packet is transmitted over the network line.
6. Assuming there is a direct connection between the two computers, the network interface card on machine
B, will recognize its MAC address and grab the data.
7. The IP data packet will be extracted from the ethernet data packet. A combination of deamons and the
operating system will perform this operation.
8. The TCP data packet will be extracted from the IP data packet. A combination of deamons, the operating
system, and libraries called by your program will perform this function.
9. The data will be extracted from the TCP packet. Your program will then display the retrieved data (text) in the text display window for George to read.

Be aware that for the sake of simplicity, we are excluding details such as error management, routing, and
identifying the hardware address of the NIC on the computer intended to receive the data. Also we are not
mentioning the possible rejection of service based on a packet's port number or sender's IP address.

A deamon program is a program that runs in the background on a computer operating system. It is used to
perform various tasks including server functions. It is usually started when the operating system is booted, but a user or administrator may be able to start or stop a daemon at any time.