Service Management Facility ( SMF ) is a feature of the Solaris operating system as of version 10 and OpenSolaris -descendant illumos with its illumos distributions , that creates a supported, unified model for services and service management on each Solaris or illumos system and replaces init.d scripts. SMF introduces:
72-492: All these capabilities are made possible by treating Services as "first class objects". That is, they are more than just user-executed software to the OS. They can be defined to have special states that allow finer control and permit monitoring and probing for diagnosing software failures, rather than having the administrator or dedicated "restarter" modules kill and restart the service as before. Services are software objects that provide
144-566: A computer network much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system. NFS is an open IETF standard defined in a Request for Comments (RFC), allowing anyone to implement the protocol. Sun used version 1 only for in-house experimental purposes. When the development team added substantial changes to NFS version 1 and released it outside of Sun, they decided to release
216-435: A retransmission timeout (RTO) that is based on the estimated round-trip time (RTT) between the sender and receiver, as well as the variance in this round-trip time. There are subtleties in the estimation of RTT. For example, senders must be careful when calculating RTT samples for retransmitted packets; typically they use Karn's Algorithm or TCP timestamps. These individual RTT samples are then averaged over time to create
288-460: A transport-layer protocol began increasing. While several vendors had already added support for NFS Version 2 with TCP as a transport, Sun Microsystems added support for TCP as a transport for NFS at the same time it added support for Version 3. Using TCP as a transport made using NFS over a WAN more feasible, and allowed the use of larger read and write transfer sizes beyond the 8 KB limit imposed by User Datagram Protocol . WebNFS
360-470: A FIN packet, which the other end acknowledges with an ACK. Therefore, a typical tear-down requires a pair of FIN and ACK segments from each TCP endpoint. After the side that sent the first FIN has responded with the final ACK, it waits for a timeout before finally closing the connection, during which time the local port is unavailable for new connections; this state lets the TCP client resend the final acknowledgment to
432-514: A PC sends data to a smartphone that is slowly processing received data, the smartphone must be able to regulate the data flow so as not to be overwhelmed. TCP uses a sliding window flow control protocol. In each TCP segment, the receiver specifies in the receive window field the amount of additionally received data (in bytes) that it is willing to buffer for the connection. The sending host can send only up to that amount of data before it must wait for an acknowledgment and receive window update from
504-460: A TCP header creating a TCP segment. The TCP segment is then encapsulated into an Internet Protocol (IP) datagram, and exchanged with peers. The term TCP packet appears in both informal and formal usage, whereas in more precise terminology segment refers to the TCP protocol data unit (PDU), datagram to the IP PDU, and frame to the data link layer PDU: Processes transmit data by calling on
576-429: A TCP segment is retransmitted, it retains the same sequence number as the original delivery attempt. This conflation of delivery and logical data ordering means that, when acknowledgment is received after a retransmission, the sender cannot tell whether the original transmission or the retransmission is being acknowledged, the so-called retransmission ambiguity . TCP incurs complexity due to retransmission ambiguity. If
648-451: A connection before entering the data transfer phase. After data transfer is completed, the connection termination closes the connection and releases all allocated resources. A TCP connection is managed by an operating system through a resource that represents the local end-point for communications, the Internet socket . During the lifetime of a TCP connection, the local end-point undergoes
720-414: A defined service executable. One can have many instances of a defined service, such as multiple webservers listening on different ports referencing different WWW root directories. Network File System (protocol) Network File System ( NFS ) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over
792-548: A direct participant in the exact location of file data and to avoid solitary interaction with one NFS server when moving data. In addition to pNFS, NFSv4.1 provides: Transmission Control Protocol The Transmission Control Protocol ( TCP ) is one of the main protocols of the Internet protocol suite . It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore,
SECTION 10
#1732870129096864-473: A good RTT estimate will be produced—eventually—by waiting until there is an unambiguous acknowledgment before adjusting the RTO. After spurious retransmissions, however, it may take significant time before such an unambiguous acknowledgment arrives, degrading performance in the interim. TCP timestamps also resolve the retransmission ambiguity problem in setting the RTO, though they do not necessarily improve
936-449: A half-duplex close sequence. If the host actively closes a connection, while still having unread incoming data available, the host sends the signal RST (losing any received data) instead of FIN. This assures that a TCP application is aware there was a data loss. A connection can be in a half-open state, in which case one side has terminated the connection, but the other has not. The side that has terminated can no longer send any data into
1008-418: A header that includes (among other data) the destination IP address . When the client program on the destination computer receives them, the TCP software in the transport layer re-assembles the segments and ensures they are correctly ordered and error-free as it streams the file contents to the receiving application. Transmission Control Protocol accepts data from a data stream, divides it into chunks, and adds
1080-419: A method of separating the filesystem meta-data from file data location; it goes beyond the simple name/data separation by striping the data amongst a set of data servers. This differs from the traditional NFS server which holds the names of files and their data under the single umbrella of the server. Some products are multi-node NFS servers, but the participation of the client in separation of meta-data and data
1152-459: A modular implementation, reflected in a simple protocol. By February 1986, implementations were demonstrated for operating systems such as System V release 2, DOS , and VAX/VMS using Eunice . NFSv2 only allows the first 2 GB of a file to be read due to 32-bit limitations. Version 3 (RFC 1813, June 1995) added: The first NFS Version 3 proposal within Sun Microsystems
1224-451: A sender to assume an unacknowledged packet to be lost after sufficient time elapses (i.e., determining the RTO time). Retransmission ambiguity can lead a sender's estimate of RTT to be imprecise. In an environment with variable RTTs, spurious timeouts can occur: if the RTT is under-estimated, then the RTO fires and triggers a needless retransmit and slow-start. After a spurious retransmission, when
1296-489: A sequence number by the receiver of data to tell the sender that data has been received to the specified byte. ACKs do not imply that the data has been delivered to the application, they merely signify that it is now the receiver's responsibility to deliver the data. Reliability is achieved by the sender detecting lost data and retransmitting it. TCP uses two primary techniques to identify loss. Retransmission timeout (RTO) and duplicate cumulative acknowledgments (DupAcks). When
1368-481: A series of state changes: Before a client attempts to connect with a server, the server must first bind to and listen at a port to open it up for connections: this is called a passive open. Once the passive open is established, a client may establish a connection by initiating an active open using the three-way (or 3-step) handshake: Steps 1 and 2 establish and acknowledge the sequence number for one direction (client to server). Steps 2 and 3 establish and acknowledge
1440-630: A set of capabilities to other software. For example, a webserver provides HTTP service to web browsers. Other services include NFS for sharing files on a network, DHCP for dynamic IP address assignment, and Secure Shell for remote logins. Even higher level functions can be services, such as specific databases for e-commerce, finance, manufacturing control, etc. Typically, services are automatically started at boot up, long-lived, have common states (e.g. running, not running), relationship & dependencies (Sendmail service depends on Naming service, which depends on Networking services), and are critical to
1512-505: A similar agreement to give ISOC change control over NFS, although writing the contract carefully to exclude NFS version 2 and version 3. Instead, ISOC gained the right to add new versions to the NFS protocol, which resulted in IETF specifying NFS version 4 in 2003. By the 21st century, neither DFS nor AFS had achieved any major commercial success as compared to SMB or NFS. IBM, which had formerly acquired
SECTION 20
#17328701290961584-407: A single segment (say segment number 100) in a stream is lost, then the receiver cannot acknowledge packets above that segment number (100) because it uses cumulative ACKs. Hence the receiver acknowledges packet 99 again on the receipt of another data packet. This duplicate acknowledgement is used as a signal for packet loss. That is, if the sender receives three duplicate acknowledgments, it retransmits
1656-424: A smoothed round trip time (SRTT) using Jacobson's algorithm . This SRTT value is what is used as the round-trip time estimate. Enhancing TCP to reliably handle loss, minimize errors, manage congestion and go fast in very high-speed environments are ongoing areas of research and standards development. As a result, there are a number of TCP congestion avoidance algorithm variations. The maximum segment size (MSS)
1728-487: Is connection-oriented , meaning that sender and receiver firstly need to establish a connection based on agreed parameters; they do this through three-way handshake procedure. The server must be listening (passive open) for connection requests from clients before a connection is established. Three-way handshake (active open), retransmission , and error detection adds to reliability but lengthens latency . Applications that do not require reliable data stream service may use
1800-504: Is available in some enterprise solutions as VMware ESXi . NFS version 4.2 (RFC 7862) was published in November 2016 with new features including: server-side clone and copy, application I/O advise, sparse files, space reservation, application data block (ADB), labeled NFS with sec_label that accommodates any MAC security system, and two new operations for pNFS (LAYOUTERROR and LAYOUTSTATS). One big advantage of NFSv4 over its predecessors
1872-487: Is available on: During the development of the ONC protocol (called SunRPC at the time), only Apollo's Network Computing System (NCS) offered comparable functionality. Two competing groups developed over fundamental differences in the two remote procedure call systems. Arguments focused on the method for data-encoding — ONC's External Data Representation (XDR) always rendered integers in big-endian order, even if both peers of
1944-429: Is limited. The NFSv4.1 pNFS server is a set of server resources or components; these are assumed to be controlled by the meta-data server. The pNFS client still accesses one meta-data server for traversal or interaction with the namespace; when the client moves data to and from the server it may directly interact with the set of data servers belonging to the pNFS server collection. The NFSv4.1 client can be enabled to be
2016-401: Is one consistent interface to ease administration. There has been no traditional definition or constraint of what a service is, making administration difficult. With SMF, each service can have a set of defined states, allowing admins to control services in a consistent way based on their state. Instances: a service is a collection of configurations. An instance is a running execution of
2088-437: Is that only one UDP or TCP port, 2049, is used to run the service, which simplifies using the protocol across firewalls. WebNFS , an extension to Version 2 and Version 3, allows NFS to integrate more easily into Web-browsers and to enable operation through firewalls. In 2007 Sun Microsystems open-sourced their client-side WebNFS implementation. Various side-band protocols have become associated with NFS. Note: NFS
2160-453: Is the largest amount of data, specified in bytes, that TCP is willing to receive in a single segment. For best performance, the MSS should be set small enough to avoid IP fragmentation , which can lead to packet loss and excessive retransmissions. To accomplish this, typically the MSS is announced by each side using the MSS option when the TCP connection is established. The option value is derived from
2232-557: Is used in PPP or the Ethernet frame. However, introduction of errors in packets between CRC-protected hops is common and the 16-bit TCP checksum catches most of these. TCP uses an end-to-end flow control protocol to avoid having the sender send data too fast for the TCP receiver to receive and process it reliably. Having a mechanism for flow control is essential in an environment where machines of diverse network speeds communicate. For example, if
Service Management Facility - Misplaced Pages Continue
2304-708: The Distributed Computing Environment (DCE) and the DCE Distributed File System (DFS) over Sun/ONC RPC and NFS. DFS used DCE as the RPC, and DFS derived from the Andrew File System (AFS); DCE itself derived from a suite of technologies, including Apollo's NCS and Kerberos . Sun Microsystems and the Internet Society (ISOC) reached an agreement to cede "change control" of ONC RPC so that
2376-613: The Internet Engineering Task Force (IETF) after Sun Microsystems handed over the development of the NFS protocols. NFS version 4.1 (RFC 5661, January 2010; revised in RFC 8881, August 2020) aims to provide protocol support to take advantage of clustered server deployments including the ability to provide scalable parallel access to files distributed among multiple servers (pNFS extension). Version 4.1 includes Session trunking mechanism (Also known as NFS Multipathing) and
2448-613: The Internet Protocol Suite . The following Internet Experiment Note (IEN) documents describe the evolution of TCP into the modern version: TCP was standardized in January 1980 as RFC 761 . In 2004, Vint Cerf and Bob Kahn received the Turing Award for their foundational work on TCP/IP. The Transmission Control Protocol provides a communication service at an intermediate level between an application program and
2520-539: The Open Software Foundation (OSF) in 1988. Ironically, Sun and AT&T had formerly competed over Sun's NFS versus AT&T's Remote File System (RFS), and the quick adoption of NFS over RFS by Digital Equipment, HP, IBM, and many other computer vendors tipped the majority of users in favor of NFS. NFS interoperability was aided by events called "Connectathons" starting in 1986 that allowed vendor-neutral testing of implementations with each other. OSF adopted
2592-567: The Real-time Transport Protocol (RTP) operating over the User Datagram Protocol (UDP) are usually recommended instead. TCP is a reliable byte stream delivery service that guarantees that all bytes received will be identical and in the same order as those sent. Since packet transfer by many networks is not reliable, TCP achieves this using a technique known as positive acknowledgment with re-transmission . This requires
2664-539: The User Datagram Protocol (UDP) instead, which provides a connectionless datagram service that prioritizes time over reliability. TCP employs network congestion avoidance . However, there are vulnerabilities in TCP, including denial of service , connection hijacking , TCP veto, and reset attack . In May 1974, Vint Cerf and Bob Kahn described an internetworking protocol for sharing resources using packet switching among network nodes. The authors had been working with Gérard Le Lann to incorporate concepts from
2736-546: The User Datagram Protocol : TCP uses a sequence number to identify each byte of data. The sequence number identifies the order of the bytes sent from each computer so that the data can be reconstructed in order, regardless of any out-of-order delivery that may occur. The sequence number of the first byte is chosen by the transmitter for the first packet, which is flagged SYN. This number can be arbitrary, and should, in fact, be unpredictable to defend against TCP sequence prediction attacks . Acknowledgments (ACKs) are sent with
2808-527: The World Wide Web (WWW), email, File Transfer Protocol , Secure Shell , peer-to-peer file sharing , and streaming media . TCP is optimized for accurate delivery rather than timely delivery and can incur relatively long delays (on the order of seconds) while waiting for out-of-order messages or re-transmissions of lost messages. Therefore, it is not particularly suitable for real-time applications such as voice over IP . For such applications, protocols like
2880-596: The French CYCLADES project into the new network. The specification of the resulting protocol, RFC 675 ( Specification of Internet Transmission Control Program ), was written by Vint Cerf, Yogen Dalal , and Carl Sunshine, and published in December 1974. It contains the first attested use of the term internet , as a shorthand for internetwork . The Transmission Control Program incorporated both connection-oriented links and datagram services between hosts. In version 4,
2952-607: The ISOC's engineering-standards body, the Internet Engineering Task Force (IETF), could publish standards documents (RFCs) related to ONC RPC protocols and could extend ONC RPC. OSF attempted to make DCE RPC an IETF standard, but ultimately proved unwilling to give up change control. Later, the IETF chose to extend ONC RPC by adding a new authentication flavor based on Generic Security Services Application Program Interface (GSSAPI), RPCSEC GSS , to meet IETF requirements that protocol standards have adequate security. Later, Sun and ISOC reached
Service Management Facility - Misplaced Pages Continue
3024-501: The Internet Protocol. It provides host-to-host connectivity at the transport layer of the Internet model . An application does not need to know the particular mechanisms for sending data via a link to another host, such as the required IP fragmentation to accommodate the maximum transmission unit of the transmission medium. At the transport layer, TCP handles all handshaking and transmission details and presents an abstraction of
3096-453: The RTT estimate. Sequence numbers allow receivers to discard duplicate packets and properly sequence out-of-order packets. Acknowledgments allow senders to determine when to retransmit lost packets. To assure correctness a checksum field is included; see § Checksum computation for details. The TCP checksum is a weak check by modern standards and is normally paired with a CRC integrity check at layer 2 , below both TCP and IP, such as
3168-415: The TCP and passing buffers of data as arguments. The TCP packages the data from these buffers into segments and calls on the internet module [e.g. IP] to transmit each segment to the destination TCP. A TCP segment consists of a segment header and a data section. The segment header contains 10 mandatory fields, and an optional extension field ( Options , pink background in table). The data section follows
3240-463: The TCP implementation must perform a lookup on this table to find the destination process. Each entry in the table is known as a Transmission Control Block or TCB. It contains information about the endpoints (IP and port), status of the connection, running data about the packets that are being exchanged and buffers for sending and receiving data. The number of sessions in the server side is limited only by memory and can grow as new connections arrive, but
3312-404: The TCP sender attempts recovery by sending a small packet so that the receiver responds by sending another acknowledgment containing the new window size. If a receiver is processing incoming data in small increments, it may repeatedly advertise a small receive window. This is referred to as the silly window syndrome , since it is inefficient to send only a few bytes of data in a TCP segment, given
3384-519: The acknowledgments for the original transmissions arrive, the sender may believe them to be acknowledging the retransmission and conclude, incorrectly, that segments sent between the original transmission and retransmission have been lost, causing further needless retransmissions to the extent that the link truly becomes congested; selective acknowledgement can reduce this effect. RFC 6298 specifies that implementations must not use retransmitted segments when estimating RTT. Karn's algorithm ensures that
3456-522: The classic RTO discussed below). The time based loss detection algorithm called Recent Acknowledgment (RACK) has been adopted as the default algorithm in Linux and Windows. When a sender transmits a segment, it initializes a timer with a conservative estimate of the arrival time of the acknowledgment. The segment is retransmitted if the timer expires, with a new timeout threshold of twice the previous value, resulting in exponential backoff behavior. Typically,
3528-607: The client must allocate an ephemeral port before sending the first SYN to the server. This port remains allocated during the whole conversation and effectively limits the number of outgoing connections from each of the client's IP addresses. If an application fails to properly close unrequired connections, a client can run out of resources and become unable to establish new TCP connections, even from other applications. Both endpoints must also allocate space for unacknowledged packets and received (but unread) data. The Transmission Control Protocol differs in several key features compared to
3600-724: The connection had little-endian machine-architectures, whereas NCS's method attempted to avoid byte-swap whenever two peers shared a common endianness in their machine-architectures. An industry-group called the Network Computing Forum formed (March 1987) in an (ultimately unsuccessful) attempt to reconcile the two network-computing environments. In 1987, Sun and AT&T announced they would jointly develop AT&T's UNIX System V Release 4. This caused many of AT&T's other licensees of UNIX System to become concerned that this would put Sun in an advantaged position, and ultimately led to Digital Equipment, HP, IBM, and others forming
3672-407: The connection, but the other side can. The terminating side should continue reading the data until the other side terminates as well. Most implementations allocate an entry in a table that maps a session to a running operating system process. Because TCP packets do not include a session identifier, both endpoints identify the session using the client's address and port. Whenever a packet is received,
SECTION 50
#17328701290963744-484: The dedicated function of the server. In versions of Solaris prior to Solaris 10, and in UNIX in general, services are configured in text files, with startup files in the /etc/rc.d/ directory trees, and configuration data in files such as /etc/ inittab and /etc/inetd.conf. A typical system could have dozens of configuration files, and configuration could involve various methods, including editing shell scripts . With SMF, there
3816-546: The entire suite is commonly referred to as TCP/IP . TCP provides reliable , ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network. Major internet applications such as the World Wide Web , email, remote administration , and file transfer rely on TCP, which is part of the Transport layer of the TCP/IP suite. SSL/TLS often runs on top of TCP. TCP
3888-473: The header and is the payload data carried for the application. The length of the data section is not specified in the segment header; it can be calculated by subtracting the combined length of the segment header and IP header from the total IP datagram length specified in the IP header. TCP protocol operations may be divided into three phases. Connection establishment is a multi-step handshake process that establishes
3960-407: The individual units of data transmission that a message is divided into for efficient routing through the network. For example, when an HTML file is sent from a web server, the TCP software layer of that server divides the file into segments and forwards them individually to the internet layer in the network stack . The internet layer software encapsulates each TCP segment into an IP packet by adding
4032-513: The initial timer value is smoothed RTT + max ( G , 4 × RTT variation ) {\displaystyle {\text{smoothed RTT}}+\max(G,4\times {\text{RTT variation}})} , where G {\displaystyle G} is the clock granularity. This guards against excessive transmission traffic due to faulty or malicious actors, such as man-in-the-middle denial of service attackers . Accurate RTT estimates are important for loss recovery, as it allows
4104-464: The lack of acknowledgments, are used by senders to infer network conditions between the TCP sender and receiver. Coupled with timers, TCP senders and receivers can alter the behavior of the flow of data. This is more generally referred to as congestion control or congestion avoidance. Modern implementations of TCP contain four intertwined algorithms: slow start , congestion avoidance , fast retransmit , and fast recovery . In addition, senders employ
4176-417: The last unacknowledged packet. A threshold of three is used because the network may reorder segments causing duplicate acknowledgements. This threshold has been demonstrated to avoid spurious retransmissions due to reordering. Some TCP implementations use selective acknowledgements (SACKs) to provide explicit feedback about the segments that have been received. This greatly improves TCP's ability to retransmit
4248-542: The monolithic Transmission Control Program was divided into a modular architecture consisting of the Transmission Control Protocol and the Internet Protocol . This resulted in a networking model that became known informally as TCP/IP , although formally it was variously referred to as the DoD internet architecture model ( DoD model for short) or DARPA model . Later, it became the part of, and synonymous with,
4320-442: The network connection to the application typically through a network socket interface. At the lower levels of the protocol stack, due to network congestion , traffic load balancing , or unpredictable network behavior, IP packets may be lost , duplicated, or delivered out of order . TCP detects these problems, requests re-transmission of lost data, rearranges out-of-order data and even helps minimize network congestion to reduce
4392-535: The new version as v2, so that version interoperation and RPC version fallback could be tested. Version 2 of the protocol (defined in RFC 1094, March 1989) originally operated only over User Datagram Protocol (UDP). Its designers meant to keep the server side stateless , with locking (for example) implemented outside of the core protocol. People involved in the creation of NFS version 2 include Russel Sandberg , Bob Lyon , Bill Joy , Steve Kleiman , and others. The Virtual File System interface allows
SECTION 60
#17328701290964464-407: The occurrence of the other problems. If the data still remains undelivered, the source is notified of this failure. Once the TCP receiver has reassembled the sequence of octets originally transmitted, it passes them to the receiving application. Thus, TCP abstracts the application's communication from the underlying networking details. TCP is used extensively by many internet applications, including
4536-456: The primary commercial vendor of DFS and AFS, Transarc , donated most of the AFS source code to the free software community in 2000. The OpenAFS project lives on. In early 2005, IBM announced end of sales for AFS and DFS. In January, 2010, Panasas proposed an NFSv4.1 based on their Parallel NFS (pNFS) technology claiming to improve data-access parallelism capability. The NFSv4.1 protocol defines
4608-418: The receiver to respond with an acknowledgment message as it receives the data. The sender keeps a record of each packet it sends and maintains a timer from when the packet was sent. The sender re-transmits a packet if the timer expires before receiving the acknowledgment. The timer is needed in case a packet gets lost or corrupted. While IP handles actual delivery of the data, TCP keeps track of segments –
4680-407: The receiving host. When a receiver advertises a window size of 0, the sender stops sending data and starts its persist timer . The persist timer is used to protect TCP from a deadlock situation that could arise if a subsequent window size update from the receiver is lost, and the sender cannot send more data until receiving a new window size update from the receiver. When the persist timer expires,
4752-504: The relatively large overhead of the TCP header. The final main aspect of TCP is congestion control . TCP uses a number of mechanisms to achieve high performance and avoid congestive collapse , a gridlock situation where network performance is severely degraded. These mechanisms control the rate of data entering the network, keeping the data flow below a rate that would trigger collapse. They also yield an approximately max-min fair allocation between flows. Acknowledgments for data sent, or
4824-676: The right segments. Retransmission ambiguity can cause spurious fast retransmissions and congestion avoidance if there is reordering beyond the duplicate acknowledgment threshold. In the last two decades more packet reordering has been observed over the Internet which led TCP implementations, such as the one in the Linux Kernel to adopt heuristic methods to scale the duplicate acknowledgment threshold. Recently, there have been efforts to completely phase out dupack based fast-retransmissions and replace them with timer based ones. (Not to be confused with
4896-404: The sequence number for the other direction (server to client). Following the completion of these steps, both the client and server have received acknowledgments and a full-duplex communication is established. The connection termination phase uses a four-way handshake, with each side of the connection terminating independently. When an endpoint wishes to stop its half of the connection, it transmits
4968-631: The server in case the ACK is lost in transit. The time duration is implementation-dependent, but some common values are 30 seconds, 1 minute, and 2 minutes. After the timeout, the client enters the CLOSED state and the local port becomes available for new connections. It is also possible to terminate the connection by a 3-way handshake, when host A sends a FIN and host B replies with a FIN & ACK (combining two steps into one) and host A replies with an ACK. Some operating systems, such as Linux and HP-UX , implement
5040-419: The starting point. Both of those changes have later been incorporated into NFSv4. Version 4 (RFC 3010, December 2000; revised in RFC 3530, April 2003 and again in RFC 7530, March 2015), influenced by Andrew File System (AFS) and Server Message Block (SMB), includes performance improvements, mandates strong security, and introduces a stateful protocol. Version 4 became the first version developed with
5112-484: Was an extension to NFSv2 and NFSv3 allowing it to function behind restrictive firewalls without the complexity of Portmap and MOUNT protocols. WebNFS had a fixed TCP/UDP port number (2049), and instead of requiring the client to contact the MOUNT RPC service to determine the initial filehandle of every filesystem, it introduced the concept of a public filehandle (null for NFSv2, zero-length for NFSv3) which could be used as
5184-509: Was created not long after the release of NFS Version 2. The principal motivation was an attempt to mitigate the performance issue of the synchronous write operation in NFS Version ;2. By July 1992, implementation practice had solved many shortcomings of NFS Version 2, leaving only lack of large file support (64-bit file sizes and offsets) a pressing issue. At the time of introduction of Version 3, vendor support for TCP as
#95904