0
$\begingroup$

Here is an excerpt from Andrew S. Tanenbaum, Computer Networks, 5th edition, Chapter 5 (The Network layer), Page 455:

[Fifth, processes on the Internet are not required to use TCP or UDP. If a user on machine A decides to use some new transport protocol to talk to a user on machine B (for example, for a multimedia application), introduction of a NAT box will cause the application to fail because the NAT box will not be able to locate the TCP Source port correctly.]

My question is: in this context. what does "processes" mean? Is it a process of data exchange between routers? And why are processes on the internet not required to use TCP or UDP? Isn't it a part of IP protocol and thus it will be used on the internet?

$\endgroup$
1
$\begingroup$

In this context, a process is a normal computer application process, e.g., as defined in wikipedia:

a process is the instance of a computer program that is being executed by one or many threads. It contains the program code and its activity. Depending on the operating system (OS), a process may be made up of multiple threads of execution that execute instructions concurrently

So, as Tanenbaum points out, a process that wishes to communicate over the Internet, need not use TCP or UDP. In fact, there are other transport protocols besides TCP or UDP, although those two are the most common. See wikipedia on transport protocols for other transport protocols like SCTP and DCCP. NAT boxes that need a TCP source port to work, would not be able to properly work with other transport protocols. I think Tanenbaum gives the example of a multimedia application, because the requirements can be quite different, e.g., for real-time multimedia, where there is yet another transport protocol combination, RTP/UDP/IP (Realtime Transport Protocol over UDP, then over IP) that is better suited for multimedia traffic than TCP/IP.

Why do we hear the phrase TCP/IP so often? Because we hear that, we may get confused and think like you thought, that TCP was "part of" IP. Actually, TCP and IP are separately protocols on different layers of the protocol stack (transport layer and network layer, respectively). However, in the Internet, TCP is so commonly used, that people started saying TCP/IP, for communications using TCP over IP.

| cite | improve this answer | |
$\endgroup$
0
$\begingroup$

In this context a process is like a process on your computer, like a webbrowser.

No IP is a separate lower layer under TCP and UDP. You can send raw IP packets from your PC and have them arrive on the other side of the world through the existing internet infrastructure (assuming relevant firewall rules allow them through). The IP header has byte to specify which next protocol is being used. Currently just over half are assigned to protocols. Only 2 of the assignments are for TCP and UDP.

The TCP and UDP layers add 2-byte port numbers to let multiple listening processes on the same IP address differentiate which process the packet is meant for. TCP additionally adds connection semantics with resend for lost packets.

| cite | improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.