Print using IPP via HTTP or HTTPS

The Internet Printing Protocol (IPP) is a standard network protocol for remote printing as well as managing print jobs, media size, resolution, and so forth in distributed environments.

The idea behind the IPP is to define a protocol for end users to print over the Internet, provide users with the same printing controls and concepts that they use to print locally or to LAN-attached printers. There are two main components to IPP:

- Web-based printer management which offers the ability to administer, to connect to, and to view printers by using a Web browser.
- Internet printing which allows you to use the printer’s URL to connect to a printer.

In IPP, print jobs are sent using Hypertext Transfer Protocol (HTTP), the same protocol used to connect to web pages. Unlike other printing protocols, IPP also supports access control, authentication, and encryption, making it a much more capable and secure printing solution than older ones.

As IPP transfers are made using HTTP v. 1.1, once a connection is made, multiple commands (files) can be sent over a single TCP connection. However, by using HTTP/1.1, IPP faces criticism for its protocol overloading. This allegedly makes for a more complex and bloated protocol and implementation than necessary — for example the venerable lp protocol was extended to cover the same functionality.

Anyway, the advantage of implementing IPP on top of HTTP is in the fact that the latter protocol is already well-tested on the Internet as a method to transfer files, which enables reuse of proven, well-tested and debugged client and server code.

It is a design goal of IPP to not invent new security features when existing protocols can be used. For example, the original RFC suggested authorization be done for example via HTTP’s Digest access authentication mechanism or via SSL3. Encryption is not done by IPP itself either, but it may be handled by SSL/TLS protocol layer.

Because the service is using HTTP or HTTPS, this is typically port 80 or port 443. As IPP supports HTTPS traffic, communication can be encrypted, depending on the user’s Internet browser settings. IPP printing via HTTPS is offered in Windows XP and Windows Server 2003. Windows Vista and Windows Server 2008 also support IPP printing over RPC in Medium-Low security zone. IPP uses the client/server model, where the client resides in a PC or workstation and the server is embedded in a printer device or resides in a separate print server machine. The process is as follows:
Read the rest of this entry »

Using POP3 not SMTP to retrieve email

The Post Office Protocol version 3 (POP3) as defined in RFC1939 is an application-layer Internet standard protocol used by local e-mail clients to retrieve e-mail from a remote server over a TCP/IP connection. The protocol defines how the server responds to requests sent from an e-mail client.

A POP3 mail server receives e-mails and filters them into the appropriate user folders. The POP3 service makes e-mail messages available for download from a server, enabling a server to host e-mail accounts and provide basic e-mail access. When a user connects to the mail server to retrieve his mail, the messages are downloaded from mail server to the user’s hard disk. Virtually all modern e-mail clients and servers support this protocol.

POP3 works over a TCP/IP connection using TCP on network port 110. POP3 listens on this TCP port 110 for connections from e-mail clients, authenticates the client, and manages the connection with the client. The design of POP3 and its procedures supports end-users with intermittent connections (such as dial-up connections), allowing these users to retrieve e-mail when connected and then to view and manipulate the retrieved messages without needing to stay connected. Although most clients have an option to leave mail on server, e-mail clients using POP3 generally connect, retrieve all messages, store them on the user’s PC as new messages, delete them from the server, and then disconnect.
Read the rest of this entry »

Trouble shoot domain name issue using nslookup

nslookup is a computer program used in Windows and Unix to query Domain Name System (DNS) servers to find DNS details, including IP addresses of a particular computer, MX records for a domain and the NS servers of a domain. The name nslookup means “name server lookup”.

nslookup is also use as a command-line administrative tool for testing and troubleshooting DNS servers. In the very simple usage, if you enter a domain name, you get back the IP address to which it corresponds, and if you enter an IP number, then you get back the domain name to which it corresponds.

There are two modes available in nslookup: interactive and non-interactive. Interactive mode allows the user to query name servers for information about various hosts and domains or to print a list of hosts in a domain. Non-interactive mode is used to print just the name and requested information for a host or domain. Following is an example in using interactive mode of nslookup.

C:\>nslookup
Default Server: dns3.maxonline.com.sg
Address: 202.156.1.58

> ifreetuition.com
Server: dns3.maxonline.com.sg
Address: 202.156.1.58

Non-authoritative answer:
Name: ifreetuition.com
Address: 74.220.215.82

Read the rest of this entry »

Study of ARP using Wireshark

Wireshark is a very useful tool for the study of network protocol!

In my previous post on ARP, we have learned some basic about the ARP protocol. Let’s look more detail into the ARP request packet in this post.

When the MAC address for a next hop device is not found in the local ARP cache, a broadcast is sent out on the network, with a special format called the ARP request. The following diagram shows an example of an ARP request packet captured using Wireshark.

As shown in the diagram, the ARP packet is contained directly in an Ethernet packet and does not have an IP header. On Ethernet networks, these packets use an EtherType of 0×0806 as indicated in the Packet Details Pane of Wireshark.

As Ethernet protocol specification only assigns a single type value to ARP, an Ethernet frame that contains an ARP request or ARP response message will have the same type indicated. As such, the receiver must examine the Opcode field in the ARP packet to determine whether it is a ARP request or ARP response message.
Read the rest of this entry »

ICMP report network error

ICMP or Internet Control Message Protocol is one of the most important network protocols in TCP/IP protocol suite. The Internet Protocol is not designed to be absolutely reliable. As such, ICMP is designed to be used by networked computers‘ operating systems to send error messages to show that a requested service is not available or that a PC or router could not be reached.

In a TCP/IP network, every router on the network that forwards an IP datagram has to decrement the time to live (TTL) field of the IP header by one. When the TTL field reaches 0, an ICMP TTL exceeded in transit message is sent back to the source of the datagram. This attribute is utilized by many commonly used network utilities like traceroute and ping.

Basically, the traceroute command is implemented by sending UDP datagrams with specially set IP TTL header fields. When ICMP TTL reach 0 in transit, an ICMP “Destination unreachable” messages is generated. In the case of ping utility, it is implemented using the ICMP “Echo request” and “Echo reply” messages. In the following ping test example, the output of ping tells us that network connectivity to www.google.com is working. It also tells us the time each packet took to return.

C:\>ping www.google.com

Pinging www.l.google.com [216.239.61.104] with 32 bytes of data:

Reply from 216.239.61.104: bytes=32 time=13ms TTL=246
Reply from 216.239.61.104: bytes=32 time=11ms TTL=246
Reply from 216.239.61.104: bytes=32 time=12ms TTL=246
Reply from 216.239.61.104: bytes=32 time=10ms TTL=246

Ping statistics for 216.239.61.104:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 13ms, Average = 11ms

Read the rest of this entry »

ARP resolves MAC address from IP address

A PC in an Ethernet network can communicate with another PC, if only it knows the Ethernet address (MAC address) of that PC. Address Resolution Protocol (ARP) is a network protocol uses to translate a PC’s IP address to physical (hardware) address. From OSI model point of view, ARP belongs to the OSI data link layer (Layer 2).

When a PC to resolve a given IP address to Ethernet address, an ARP request packet is broadcasted to the whole network. This ARP request packet contains the source MAC address, the source IP address and the destination IP address. Every PC in the local network receives this packet - whether it is connected to a hub or switch as this is a broadcast packet. This ARP request is then processed by all the PCs in the network and the PC with the specified destination IP address will send an ARP reply packet to the originating host with its MAC and IP address.

ARP maintains the mapping between IP address and MAC address in a table in memory called ARP cache. To display the current ARP entries, execute arp command with “-a” option.

C:\arp -a

Interface: 202.156.207.116 — 0×2
Internet Address Physical Address Type
202.156.200.1 00-30-b8-c7-d9-90 dynamic

Read the rest of this entry »

Switch as Intelligent Hub

In an Ethernet network, every client, server and network device is wired to a hub or switch. However, what is the different between hub and switch?

In a word: intelligence. Answer this in short sentence: Hub versus Switch - Shared versus dedicated channels!

Technically hubs operate at the layer one (Physical Layer) of the OSI model. When a computer sends data on the network it sends it in packets. Each packet is labeled with a Source and Destination address, known as MAC address. Hub does not inspect traffic quality or verify packet integrity. Its job is very simple: When it receives a packet of data at one of its ports from a PC on the network, it transmits the packet to all of its ports and, thus, to all of the other PCs on the network. Every computer connected to the hub “sees” everything that every other computer on the hub sees. The total bandwidth is shared among the computers. This is a highly in-efficient use of your network bandwidth. However, there is no processing delay created by the hub because the hub, by definition, does no processing.

All network data a hub receives on one port will be immediately transmitted out all the other ports. If two or more PCs on the network try to send packets at the same time a collision is said to occur. As such each computer must take it’s turn before sending data. This is called half-duplex.
Read the rest of this entry »

Protocol Data Unit (PDU) - Process of Network Data Encapsulation

Within the layer in the OSI Reference Model, the communication between layers higher than layer one is logical; the only hardware connection is at the physical layer. Communication take the form of some sort of message that is sent between corresponding software elements on two or more devices.

Since these messages are the mechanism for communicating information between protocols, they are most generally called protocol data units (PDUs).

In order for a protocol to communicate, it must pass down its PDU to the next lower layer for transmission. Lower layers in OSI model are said to provide services to the layers immediately above them. One of the services each layer provides is this function: to handle and manage data received from the layer above.

At any particular layer N, a PDU is a complete message that implements the protocol at that layer. However, when this “layer N PDU” is passed down to layer N-1, it becomes the data that the layer N-1 protocol is supposed to service. This layer N protocol data unit (PDU) is refered to as the layer N-1 service data unit (SDU).

The application or higher layer understands the structure of the data in the SDU, but the lower layer at the interface does not; it treats it as payload, undertaking to get it to the same interface at the destination. The job of layer N-1 is to transport this SDU, which it does in turn by placing the layer N SDU into its own PDU format, preceding the SDU with its own headers and appending footers as necessary. In this process, the entire contents of the higher-layer message are encapsulated as the data payload of the message at the lower layer. This process is called data encapsulation and takes place at each layer of the OSI reference model.

Layer N-1 will subsequently pass the PDU down to the next lower layer, where it is treated as a layer N-2 SDU. Layer N-2 creates a layer N-2 PDU containing the layer N-1 SDU and layer N-2’s headers and footers. This process will continue, all the way down to the physical layer. In the theoretical model, what you end up with is a message at layer 1 that consists of application-layer data that is encapsulated with headers and/or footers from each of layers 7 through 2.
Read the rest of this entry »

Network Protocol as Rule for Computer Communication

In computing, a protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing devices.

Modern network systems are made up of a variety of different systems running on many different platforms. In order for computers on these platforms to exchange information, there must be a preexisting agreement as to how the information will be structured and how each side will send and receive it.

Network engineers have written rules for communication that must be strictly followed for successful host-to-host communication. These include mechanisms for devices to identify and make connections with each other, as well as formatting rules that specify how data is packaged into messages sent and received. These rules apply to different layers of sophistication such as which physical connections to use, how hosts listen, how to interrupt, how to say good-bye, and in short how to communicate, what language to use and many others.

Some protocols also support message acknowledgment and data compression designed for reliable and/or high-performance network communication. Without a protocol, a transmitting computer, for example, could be sending its data in 32-bit packets while the receiving computer might expect the data in 8-bit packets.

A network protocol can also be defined as the rules or common language that governing the syntax, semantics, and synchronization of communication between network devices. Protocols may be implemented by hardware, software, or a combination of the two. At the lowest level, a protocol defines the behavior of a hardware connection.
Read the rest of this entry »

OSI Seven Layer Network Reference Model - Addressing and Example

The OSI (Open Systems Interconnection) Seven Layer Network Reference Model is the basic for learning network infrastructure. It is an abstract description of computer network protocol design.

From top to bottom, the name of the layers are Application, Presentation, Session, Transport, Network, Data-Link, and Physical Layers.

Each layer provides services to the layer above it and receives services from the layer below it. For example, network layer (layer 3) will provide service for transport layer (layer 4) and receive service from layer 2, which is the data link layer.

The original Internet TCP/IP protocol specifications defined a four layer model (application, transport, network and physical).
Read the rest of this entry »