Icp Proxy
Internet Cache Protocol – Wikipedia
The Internet Cache Protocol (ICP) is a UDP-based protocol used for coordinating web caches. Its purpose is to find out the most appropriate location to retrieve a requested object in the situation where multiple caches are in use at a single site. The ICP is to use the caches as efficiently as possible, and to minimize the number of remote requests to the originating server.
Operation[edit]
Hierarchically, a queried cache can either be a parent or a sibling.
Parents usually sit closer to the internet connection than the child. If a child cache cannot find an object, the query usually will be sent to the parent cache, which will fetch, cache, and pass on the request. Siblings are caches of equal hierarchical status, whose purpose is to distribute the load amongst the siblings.
When a request comes into one cache in a cluster of siblings, ICP is used to query the siblings for the object being requested. If the sibling has the object, it will usually be transferred from there, instead of being queried from the original server. This is often called a “near miss” — the object is not found in the cache (a “miss”) but is loaded from a nearby cache, instead of from a remote server.
The ICP protocol was designed to be lightweight in order to minimize round-trip time between caches. It is intended for unreliable but quick connections. This approach can reduce numbers of server retrievals, and also prevent the storage of multiple copies of an instance of data, but leads to the potential drawback of increased intercache communication, which can slow the system down. [1]
The ICP protocol is described in RFC 2186, its application to hierarchical web caching in RFC 2187.
Proxies[edit]
Web proxies that support ICP include:
CACHEbox
Cisco CacheEngine[2]
Cisco Content Engine
DeleGate[2]
Harvest project[2]
Traffic Server[2]
Mirror Image[2]
MOWS[2]
NetCache[2]
Netscape Proxy Server[2]
Novell BorderManager FastCache[2]
ProxySG
Squid[2]
SkyCache[2]
HTCP, designed as a successor to ICP, attempts to handle various problems found in ICP deployments.
ICP message structure[edit]
An ICP message consists of two sections:
Header
Data
Header:
Header length is fixed to 20 octets (five 32-bit words).
Data:
Data is of variable length, limited by the maximum ICP message size (including header) of 16, 384 octets.
The ICP header consists of 8 fields, with 2 optional fields. The fifth and sixth field is optional (pink background in table) and appropriately named “options” and “option data”.
ICP Header
Bit offset
Bits 0–7
8–15
16-31
0
Opcode
Version
Message Length
32
Request number
64
Options
96
Option Data
128
Sender Host Address
160+
References[edit]
^ Davison, Brian D. “A Web Caching Primer” (PDF). Retrieved 16 February 2014. publisher|IEEE
^ a b c d e f g h i j k Inter Cache Communication Protocols, Ingrid Melve
External links[edit]
RFC 2186 ICP version 2
RFC 2187 Application of ICP version 2
Using the Internet Cache Protocol (ICP) (Sun Java System …
The Internet Cache Protocol (ICP) is an object location protocol that
enables caches to communicate with one another. Caches can use ICP to send
queries and replies about the existence of cached URLs and about the best
locations from which to retrieve those URLs. In a typical ICP exchange, one
cache will send an ICP query about a particular URL to all neighboring caches.
Those caches will then send back ICP replies that indicate whether they contain
that URL. If the caches do not contain the URL, they send back miss. If they
do contain the URL, they send back hit.
Routing Through ICP Neighborhoods
ICP can be used for communication among proxies located in different
administrative domains. It enables a proxy cache in one administrative domain
to communicate with a proxy cache in another administrative domain. It is
effective for situations in which several proxy servers want to communicate,
but cannot all be configured from one master proxy as they are in a proxy
array. Figure 12–3 shows an ICP
exchange between proxies in different administrative domains.
The proxies that communicate with each other through ICP are called neighbors. You cannot have more than 64 neighbors in an ICP neighborhood.
The two types of neighbors in an ICP neighborhood are parents and siblings. Only parents can access the remote server if no other neighbors
have the requested URL. Your ICP neighborhood can have no parents or it can
have more than one parent. Any neighbor in an ICP neighborhood that is not a parent is considered a sibling. Siblings cannot retrieve
documents from remote servers unless the sibling is marked as the default
route for ICP, and ICP uses the default.
You
can use polling
rounds to determine the order in which neighbors receive queries.
A polling round is an ICP query cycle. For each neighbor, you must assign
a polling round. If you configure all neighbors to be in polling round one,
then all neighbors will be queried in one cycle at the same time. If you configure
some of the neighbors to be in polling round 2, then all of the neighbors
in polling round one are queried first and if none of them return a Hit, all
round two proxies will be queried. The maximum number of polling rounds is
two.
Since ICP parents are likely to be network bottlenecks, you can use
polling rounds to lighten their load. A common setup is to configure all siblings
to be in polling round one and all parents to be in polling round two. That
way, when the local proxy requests a URL, the request goes to all of the siblings
in the neighborhood first. If none of the siblings have the requested URL,
the request goes to the parent. If the parent does not have the URL, the URL
will retrieve it from a remote server.
Each neighbor in an ICP neighborhood must have at least one ICP server
running. If a neighbor does not have an ICP server running, it cannot answer
the ICP requests from their neighbors. Enabling ICP on your proxy server starts
the ICP server if it is not already running.
Figure 12–3 ICP ExchangeSetting Up ICP
This section provides details about setting up ICP. The general steps
required to set up ICP are:
(Optional) Add parents to your ICP neighborhood.
For
more information, see To Add Parent or Sibling Proxies to an ICP Neighborhood.
Add siblings to your ICP neighborhood.
For more
information, see To Add Parent or Sibling Proxies to an ICP Neighborhood.
Configure each neighbor in the ICP neighborhood.
more information, see To Edit a Configuration in an ICP Neighborhood.
Enable ICP.
For information, see To Enable ICP.
If your proxy has siblings or parents in its ICP neighborhood,
enable routing through an ICP neighborhood.
For more information,
see To Enable Routing Through an ICP Neighborhood.
To Add Parent or Sibling Proxies to an ICP Neighborhood
Access the Server Manager, and click the Caching tab.
Click the Configure ICP link.
The Configure ICP page
is displayed.
In the Parent List section of the page, click the Add button.
The ICP Parent page is displayed.
To add a parent proxy, click Add in the Parent List section
of the page.
To add a sibling proxy, click Add in the Sibling List section
The ICP Sibling page is displayed.
In the Machine Address field, type the IP address or host name
of the proxy you are adding to the ICP neighborhood.
In the ICP Port field, type the port number on which the proxy
will listen for ICP messages.
(Optional) In the Multicast Address field, type the multicast
address to which the parent listens. A multicast address is an IP address
to which multiple servers can listen.
Using a multicast address
enables a proxy to send one query to the network that all neighbors who are
listening to that multicast address can see. This technique eliminates the
need to send a query to each neighbor separately. Using multicast is optional.
Note –
Neighbors in different polling rounds should not listen to the
same multicast address.
In the TTL field, type the number of subnets that the multicast
message will be forwarded to.
If the TTL is set to 1, the multicast
message will only be forwarded to the local subnet. If the TTL is 2, the message
will go to all subnets that are one level away, and so on.
Multicast enables two unrelated neighbors to send ICP messages
to each other. Therefore, to prevent unrelated neighbors from receiving ICP
messages from the proxies in your ICP neighborhood, set a low TTL value in
the TTL field.
In the Proxy Port field, type the port for the proxy server on
the parent.
From the Polling Round drop-down list, choose the polling round
that you want the parent to be in. The default polling round is 1.
Click OK.
Click Restart Required.
The Apply Changes page is
displayed.
Click the Restart Proxy Server button to apply the changes.
To Edit a Configuration in an ICP Neighborhood
Select the Configure ICP link. The Configure ICP page is displayed.
Select the radio button next to the proxy you want to edit.
Click the Edit button.
Modify the appropriate information.
To Remove Proxies from an ICP Neighborhood
Select the radio button next to the proxy you want to remove.
Click the Delete button.
To Configure the Local Proxy Server in Your ICP Neighborhood
You need to configure each neighbor, or local proxy, in your ICP neighborhood.
Select the Configure ICP link.
The Configure ICP
page is displayed.
In the Binding Address field, type the IP address to which the
neighbor server will bind.
In the Port field, type the port number to which the neighbor
server will listen for ICP.
In the Multicast Address field, type the multicast address to
which the neighbor listens.
A multicast address is an IP address
to which multiple servers can listen. Using a multicast address enables a
proxy to send one query to the network that all neighbors who are listening
to that multicast address can see. This technique eliminates the need to send
a query to each neighbor separately.
If both a multicast address
and bind address are specified for the neighbor, the neighbor uses the bind
address to send replies and uses multicast to listen. If neither a bind address
or a multicast address is specified, the operating system will decide which
address to use to send the data.
In the Default Route field, type the name or IP address of the
proxy to which the neighbor should route a request when none of the neighboring
proxies respond with a hit.
If you type the word “origin”
into this field, or if you leave the field blank, the default route will be
to the origin server.
If you choose “first responding parent”
from the No Hit Behavior drop-down list, the route you type in the Default
Route field will have no effect. The proxy only uses this route if you choose
the default “no hit” behavior.
In the second Port field, type the port number of the default
route machine that you typed into the Default Route field.
From the On No Hits, Route Through drop-down list, select the
neighbor’s behavior when none of the siblings in the ICP neighborhood
have the requested URL in their caches.
The available options
are:
first responding parent. The
neighbor will retrieve the requested URL through the parent that first responds
with a miss
default route. The neighbor
will retrieve the requested URL through the machine specified in the Default
Route field
In the Server Count field, type the number of processes that will
service ICP requests.
In the Timeout field, type the maximum amount of time the neighbor
will wait for an ICP response in each round.
To Enable ICP
Access the Server Manager, and click the Preferences tab.
Click the Configure System Preferences link.
The
Configure System Preferences page is displayed.
Select the Yes radio button for ICP and Click OK.
To Enable Routing Through an ICP Neighborhood
You need to enable routing through an ICP neighborhood only if your
proxy has other siblings or parents in the ICP neighborhood. If your proxy
is a parent to another proxy and does not have any siblings or parents of
its own, then you need to enable ICP only for that proxy. You do not need
to enable routing through an ICP neighborhood.
Access the Server Manager, and click the Routing tab.
Click the Set Routing Preferences link.
The Set Routing
Preferences page is displayed.
Select the resource from the drop-down list or click the Regular
Expression button, type a regular expression, and click OK.
Select the radio button next to the Route Through option.
Select the checkbox next to ICP.
(Optional) To enable the client to retrieve a document directly
from the ICP neighbor that has the document instead of going through another
neighbor to get it, select the checkbox next to the Text Redirect option.
Caution – Redirect is not currently supported by any clients, so don’t
use the feature at this time.
Click the Restart Proxy Server button to apply the changes.
What is TCP/IP and How Does it Work? – TechTarget
By
Mary E. Shacklett,
Amy Novotny,
Senior Managing Editor
Kate Gerwig,
Editorial Director
What is TCP/IP?
TCP/IP stands for Transmission Control Protocol/Internet Protocol and is a suite of communication protocols used to interconnect network devices on the internet. TCP/IP is also used as a communications protocol in a private computer network (an intranet or extranet).
The entire IP suite — a set of rules and procedures — is commonly referred to as TCP/IP. TCP and IP are the two main protocols, though others are included in the suite. The TCP/IP protocol suite functions as an abstraction layer between internet applications and the routing and switching fabric.
TCP/IP specifies how data is exchanged over the internet by providing end-to-end communications that identify how it should be broken into packets, addressed, transmitted, routed and received at the destination. TCP/IP requires little central management and is designed to make networks reliable with the ability to recover automatically from the failure of any device on the network.
The two main protocols in the IP suite serve specific functions. TCP defines how applications can create channels of communication across a network. It also manages how a message is assembled into smaller packets before they are then transmitted over the internet and reassembled in the right order at the destination address.
IP defines how to address and route each packet to make sure it reaches the right destination. Each gateway computer on the network checks this IP address to determine where to forward the message.
A subnet mask tells a computer, or other network device, what portion of the IP address is used to represent the network and what part is used to represent hosts, or other computers, on the network.
Network address translation (NAT) is the virtualization of IP addresses. NAT helps improve security and decrease the number of IP addresses an organization needs.
Common TCP/IP protocols include the following:
Hypertext Transfer Protocol (HTTP) handles the communication between a web server and a web browser.
HTTP Secure handles secure communication between a web server and a web browser.
File Transfer Protocol handles transmission of files between computers.
How does TCP/IP work?
TCP/IP uses the client-server model of communication in which a user or machine (a client) is provided a service, like sending a webpage, by another computer (a server) in the network.
Collectively, the TCP/IP suite of protocols is classified as stateless, which means each client request is considered new because it is unrelated to previous requests. Being stateless frees up network paths so they can be used continuously.
The transport layer itself, however, is stateful. It transmits a single message, and its connection remains in place until all the packets in a message have been received and reassembled at the destination.
The TCP/IP model differs slightly from the seven-layer Open Systems Interconnection (OSI) networking model designed after it. The OSI reference model defines how applications can communicate over a network.
Why is TCP/IP important?
TCP/IP is nonproprietary and, as a result, is not controlled by any single company. Therefore, the IP suite can be modified easily. It is compatible with all operating systems (OSes), so it can communicate with any other system. The IP suite is also compatible with all types of computer hardware and networks.
TCP/IP is highly scalable and, as a routable protocol, can determine the most efficient path through the network. It is widely used in current internet architecture.
The 4 layers of the TCP/IP model
TCP/IP functionality is divided into four layers, each of which includes specific protocols:
The application layer provides applications with standardized data exchange. Its protocols include HTTP, FTP, Post Office Protocol 3, Simple Mail Transfer Protocol and Simple Network Management Protocol. At the application layer, the payload is the actual application data.
The transport layer is responsible for maintaining end-to-end communications across the network. TCP handles communications between hosts and provides flow control, multiplexing and reliability. The transport protocols include TCP and User Datagram Protocol, which is sometimes used instead of TCP for special purposes.
The network layer, also called the internet layer, deals with packets and connects independent networks to transport the packets across network boundaries. The network layer protocols are IP and Internet Control Message Protocol, which is used for error reporting.
The physical layer, also known as the network interface layer or data link layer, consists of protocols that operate only on a link — the network component that interconnects nodes or hosts in the network. The protocols in this lowest layer include Ethernet for local area networks and Address Resolution Protocol.
Uses of TCP/IP
TCP/IP can be used to provide remote login over the network for interactive file transfer to deliver email, to deliver webpages over the network and to remotely access a server host’s file system. Most broadly, it is used to represent how information changes form as it travels over a network from the concrete physical layer to the abstract application layer. It details the basic protocols, or methods of communication, at each layer as information passes through.
Pros and cons of TCP/IP
The advantages of using the TCP/IP model include the following:
helps establish a connection between different types of computers;
works independently of the OS;
supports many routing protocols;
uses client-server architecture that is highly scalable;
can be operated independently;
supports several routing protocols; and
is lightweight and doesn’t place unnecessary strain on a network or computer.
The disadvantages of TCP/IP include the following:
is complicated to set up and manage;
transport layer does not guarantee delivery of packets;
is not easy to replace protocols in TCP/IP;
does not clearly separate the concepts of services, interfaces and protocols, so it is not suitable for describing new technologies in new networks; and
is especially vulnerable to a synchronization attack, which is a type of denial-of-service attack in which a bad actor uses TCP/IP.
How are TCP/IP and IP different?
There are numerous differences between TCP/IP and IP. For example, IP is a low-level internet protocol that facilitates data communications over the internet. Its purpose is to deliver packets of data that consist of a header, which contains routing information, such as source and destination of the data, and the data payload itself.
IP is limited by the amount of data that it can send. The maximum size of a single IP data packet, which contains both the header and the data, is between 20 and 24 bytes long. This means that longer strings of data must be broken into multiple data packets that must be independently sent and then reorganized into the correct order after they are sent.
Since IP is strictly a data send/receive protocol, there is no built-in checking that verifies whether the data packets sent were actually received.
In contrast to IP, TCP/IP is a higher-level smart communications protocol that can do more things. TCP/IP still uses IP as a means of transporting data packets, but it also connects computers, applications, webpages and web servers. TCP understands holistically the entire streams of data that these assets require in order to operate, and it makes sure the entire volume of data needed is sent the first time. TCP also runs checks that ensure the data is delivered.
As it does its work, TCP can also control the size and flow rate of data. It ensures that networks are free of any congestion that could block the receipt of data.
An example is an application that wants to send a large amount of data over the internet. If the application only used IP, the data would have to be broken into multiple IP packets. This would require multiple requests to send and receive data, since IP requests are issued per packet.
With TCP, only a single request to send an entire data stream is needed; TCP handles the rest. Unlike IP, TCP can detect problems that arise in IP and request retransmission of any data packets that were lost. TCP can also reorganize packets so they get transmitted in the proper order — and it can minimize network congestion. TCP/IP makes data transfers over the internet easier.
TCP/IP model vs. OSI model
TCP/IP and OSI are the most widely used communication networking protocols. The main difference is that OSI is a conceptual model that is not practically used for communication. Rather, it defines how applications can communicate over a network. TCP/IP, on the other hand, is widely used to establish links and network interaction.
The TCP/IP protocols lay out standards on which the internet was created, while the OSI model provides guidelines on how communication has to be done. Therefore, TCP/IP is a more practical model.
The TCP/IP and OSI models have similarities and differences. The main similarity is in the way they are constructed as both use layers, although TCP/IP consists of just four layers, while the OSI model consists of the following seven layers:
Layer 7, the application layer, enables the user — software or human — to interact with the application or network when the user wants to read messages, transfer files or engage in other network-related activities.
Layer 6, the presentation layer, translates or formats data for the application layer based on the semantics or syntax that the app accepts.
Layer 5, the session layer, sets up, coordinates and terminates conversations between apps.
Layer 4, the transport layer, handles transferring data across a network and providing error-checking mechanisms and data flow controls.
Layer 3, the network layer, moves data into and through other networks.
Layer 2, the data link layer, handles problems that occur as a result of bit transmission errors.
Layer 1, the physical layer, transports data using electrical, mechanical or procedural interfaces.
The upper layer for both the TCP/IP model and the OSI model is the application layer. Although this layer performs the same tasks in each model, those tasks may vary depending on the data each receives.
The functions performed in each model are also similar because each uses a network layer and transport layer to operate. The TCP/IP and OSI models are each mostly used to transmit data packets. Although they will do so by different means and by different paths, they will still reach their destinations.
The similarities between the TCP/IP model and the OSI model include the following:
They are both logical models.
They define networking standards.
They divide the network communication process in layers.
They provide frameworks for creating and implementing networking standards and devices.
They enable one manufacturer to make devices and network components that can coexist and work with the devices and components made by other manufacturers.
The differences between the TCP/IP model and the OSI model include the following:
TCP/IP uses just one layer (application) to define the functionalities of the upper layers, while OSI uses three layers (application, presentation and session).
TCP/IP uses one layer (physical) to define the functionalities of the bottom layers, while OSI uses two layers (physical and data link).
The TCP/IP header size is 20 bytes, while the OSI header is 5 bytes.
TCP/IP is a protocol-oriented standard, whereas OSI is a generic model based on the functionalities of each layer.
TCP/IP follows a horizontal approach, while OSI follows a vertical approach.
In TCP/IP, the protocols were developed first, and then the model was developed. In OSI, the model was developed first, and then the protocols in each layer were developed.
TCP/IP helps establish a connection between different types of computers, whereas OSI helps standardize routers, switches, motherboards and other hardware.
The history of TCP/IP
The Defense Advanced Research Projects Agency, the research branch of the U. S. Department of Defense, created the TCP/IP model in the 1970s for use in ARPANET, a wide area network that preceded the internet. TCP/IP was originally designed for the Unix OS, and it has been built into all of the OSes that came after it.
The TCP/IP model and its related protocols are now maintained by the Internet Engineering Task Force.
This was last updated in July 2021
Continue Reading About TCP/IP
NVME-over-TCP brings super-fast flash over standard IP networks
Get to know NVMe protocol basics with these related terms
7 TCP/IP vulnerabilities and how to prevent them
12 common network protocols and their functions explained
Why Networking Needs An Upgrade
Dig Deeper on Network protocols and standards
Transmission Control Protocol (TCP)
By: Ben Lutkevich
NetBIOS (Network Basic Input/Output System)
By: Andrew Froehlich
Network layer
OSI model (Open Systems Interconnection)
By: Andrew Froehlich
Frequently Asked Questions about icp proxy
What is an ICP router?
The Internet Cache Protocol (ICP) is an object location protocol that enables caches to communicate with one another. … In a typical ICP exchange, one cache will send an ICP query about a particular URL to all neighboring caches.
What is ICP and IP?
TCP/IP stands for Transmission Control Protocol/Internet Protocol and is a suite of communication protocols used to interconnect network devices on the internet. … TCP and IP are the two main protocols, though others are included in the suite.
What is TCP and ICP?
As an indication of immediate network conditions between neighbor caches, ICP over a lightweight protocol such as UDP is better than one with the overhead of TCP. In addition to its use as an object location protocol, ICP messages can be used for cache selection.