Spring 2012
Bachelor of Science in Information Technology (BScIT) – Semester 3
BT0076 – TCP/IP – 4 Credits (Book ID: B0965)
Assignment Set – 1 (60 Marks)
1.What do you mean by RFC? Explain its significance.
Ans.- Requests for Comments (RFCs):- The standards for TCP/IP are published in a series of documents called Requests for Comments (RFCs). RFCs describe the internal workings of the Internet. TCP/IP standards are always published as RFCs, although not all RFCs specify standards. Some RFCs provide informational, experimental, or historical information only. An RFC begins as an Internet draft, which is typically developed by one or more authors in an IETF working group. An IETF working group is a group of individuals that has a specific charter for an area of technology in the TCP/IP protocol suite
2. Clearly differentiate between PVC and SVC.
Ans.- PVC (Permanent Virtual Circuit):- PVC is a virtual circuit which is available permanently. It is a type of virtual circuit where the end points do not signal the circuit. The virtual circuit values are manual. The route through the network, link-by-link is also manual. If the equipment happens to fail, the PVC also fails, and the physical network has to re-route. The permanent virtual circuit is an efficient circuit for hosts which have to communicate frequently like ATMs.
SVC (Switched Virtual Circuit):- SVC has to re-establish the connection every time the data has to be sent. It is a circuit established by UNI. It is basically a demand connection; the connection is initiated by the user. When the switch fails, the SVC fails, and the connection needs to be re-established.
3. Discuss various OPTIONS used by IP.
Ans.- An IP implementation is not required to be capable of generating options ina datagram. However, all IP implementations are required to be able to processdatagrams containing options. The Options field is variable in length (there canbe zero or more options). There are two option formats.
The format for each is dependent on the value of the option number found in thefirst octet:
A type octet, a length octet, and one or more option data octets, as illustratedin below figure.
IP: A type byte, length byte, and one or more option data bytes.
The type byte has the same structure in both cases, as illustrated in below Fig
Where:
fc (Flag copy): This field indicates whether (1) or not (0) the option field iscopied when the datagram is fragmented.
class: The option class is a 2-bit unsigned integer:
0: Control
1: Reserved
2: Debugging and measurement
3: Reserved
option number: The option number is a 5-bit unsigned integer:
0: End of option list. It has a class of 0, the fc bit is set to zero, and it has no length byte or data. That is, the option list is terminated by a X'00' byte. It is only required if the IP header length (which is a multiple of 4 bytes) does not match the actual length of the options.
1: No operation. It has a class of 0, the fc bit is not set, and there is no length byte or data. It can be used to align fields in the datagram.
2: Security. It has a class of 0, the fc bit is set, and there is a length bytewith a value of 11 and 8 bytes of data). It is used for security information needed by U.S.
3: Loose source routing. It has a class of 0, the fc bit is set, and there is avariable length data field.
4: Internet time stamp. It has a class of 2, the fc bit is not set, and there isa variable length data field. The total length can be up to 40 bytes. We discuss this option in more detail later.
7: Record route. It has a class of 0, the fc bit is not set, and there is a variable length data field.
8: Stream ID. It has a class of 0, the fc bit is set, and there is a length bytewith a value of 4 and one data byte. It is used with the SATNET system.
9: Strict source routing. It has a class of 0, the fc bit is set, and there is avariable length data field. We discuss this option in more detail later.
4. Differentiate between well known and ephemeral ports.
Ans.- Well-known ports belong to standard servers, for example, Telnet uses port23. Well-known port numbers range between 1 and 1023 (prior to 1992, the range between 256 and 1023 was used for UNIX-specific servers). Well-known port numbers are typically odd, because early systems using the port concept required an odd/even pair of ports for duplex operations. Most servers require only a single port. Exceptions are the BOOTP server, which uses two: 67 and 68 and the FTP server, which uses two: 20 and 21. The well-known ports are controlled and assigned by the Internet Assigned Number Authority (IANA) and on most systems can only be used by system processes or by programs executed by privileged users. Well-known ports allow clients to find servers without configuration information. The well-known port numbers are defined in STD 2 – Assigned Internet Numbers.
Some clients do not need well-known port numbers because they initiate communication with servers, and the port number they are using is contained in the UDP/TCP datagrams sent to the server. Each client process is allocated a port number, for as long as it needs, by the host on which it is running. Ephemeral port numbers have values greater than 1023, normally in the range of 1024 to 65535. Ephemeral ports are not controlled by IANA and can be used by ordinary user-developed programs on most systems. Confusion, due to two different applications trying to use the same port numbers on one host, is avoided by writing those applications to request an available port from TCP/IP. Because this port number is dynamically assigned, it can differ from one invocation of an application to the next. UDP, TCP and ISO TP-4 all use the same port principle. To the best possible extent, the same port numbers are used for the same services on top of UDP, TCP and ISO TP-4.
5. Explain the DNS message format.
Ans.- All messages in the Domain Name System protocol use a single format. This format is shown in given figure.
This frame is sent by the resolver to the name server. Only the header and the question section are used to form the query. Replies and forwarding of the query use the same frame, but with more sections filled in (the answer/authority/additional sections).
Header Format: The header section is always present and has a fixed length of 12bytes. The other sections are of variable length. ID: A 16-bit identifier assigned by the program. This identifier is copied in the corresponding reply from the name server and can be used for differentiation of responses when multiple queries are outstanding at the same time.
Where:
QR Flag identifying a query (0) or a response(1).
Op code 4-bit field specifying the kind of query:
0 Standard query (QUERY)
1 Inverse query (IQUERY)
2 Server status request (STATUS)
Other values are reserved for future use:
AA: Authoritative answer flag. If set in a response, this flag specifies that the responding name server is an authority for the domain name sent in the query.
TC: Truncation flag. Set if message was longer than permitted on the physical channel.
RD: Recursion desired flag. This bit signals to the name server that recursive resolution is asked for. The bit is copied to the response.
RA: Recursion available flag. Indicates whether the name server supports recursive resolution.
Zero: 3 bits reserved for future use. Must be zero.
Rcode: 4-bit response code. Possible values are:
0 No error.
1 Format error. The server was unable to interpret the message.
2 Server failure. The message was not processed because of a problem with the server.
3 Name error. The domain name in the query does not exist. This is only valid if the AA bit is set in the response.
4 Not implemented. The requested type of query is not implemented by name server.
5 Refused. The server refuses to respond for policy reasons. Other values are reserved for future use.
QDcount: An unsigned 16-bit integer specifying the number of entries in the question section.
ANcount: An unsigned 16-bit integer specifying the number of RRs in the answer section.
NScount: An unsigned 16-bit integer specifying the number of name server RRs in the authority section.
ARcount: An unsigned 16-bit integer specifying the number of RRs in the additional records section.
6. Explain the principle of operation of REXEC protocol.
Ans.-Remote Execution Command Daemon (REXECD) is a server that allows the execution of jobs submitted from a remote host over the TCP/IP network. The client uses the REXEC or Remote Shell Protocol (RSH) command to transfer the job across to the server. Any standard output or error output is sent back to the client for display or further processing.
Principle of Operation:- REXECD is a server (or daemon). It handles commands issued by foreign hosts and transfers orders to subordinate virtual machines for job execution. The daemon performs automatic login and user authentication when a user ID and password are entered. The REXEC command is used to define the user ID, password, host address, and the process to be started on the remote host. However, RSH does not require you to send a user name and password; it uses a host access file instead. Both server and client are linked over the TCP/IP network. REXEC uses TCP port 512 and RSH uses TCP port514. See below figure for more details
7. Explain various operations performed by the user with FTP.
Ans.- When using FTP, the user performs some or all of the following operations:
· Connect to a remote host
· Navigate and manipulate the directory structure.
· List files available for transfer.
· Define the transfer mode, transfer type and data structure.
· Transfer data to or from the remote host.
· Disconnect from the remote host.
Connecting to a remote host to execute a file transfer, the user begins by logging in to the remote host. This is only the primary method of implementing security within the FTP model. Additional security can be provided using SSL and TLS. Conversely, this authentication can be bypassed using anonymous FTP . There are four commands that are used:
Open: Selects the remote host and initiates the login session.
User: Identifies the remote user ID.
Pass: Authenticates the user.
Site: Sends information to the foreign host that is used to provide services specific to that host.
Navigating the directory structure:-After a user has been authenticated and logged on to the server, that user can navigate through the directory structure of the remote host in order to locate the file desired for retrieval, or locate the directory into which a local file will be transferred. The user can also navigate the directory structure of the client
’s host. After the correct local and remote directories have been accessed, users can display the contents of the remote directory. The subcommands that perform these functions are as follows:
cd: Changes the directory on the remote host: A path name can be specified, but must conform to the directory structure of the remote host. In most implementations,
cd .. will move one directory up within the directory structure.
Lcd: Changes the directory on the local host. Similar to the cd command, a pathname can be specified but must conform to the directory structure of the local host.
Ls: Lists the contents of the remote directory. The list generated by this command is treated as data, and therefore, this command requires the use of a data connection. This command is intended to create output readable by human users.
Dir: Lists the contents of the remote directory. Similar to the ls command, the list generated by dir is treated as data and requires the use of a data connection. This command is intended to create output readable by programs.
Controlling the data transfer:-Transferring data between dissimilar systems often requires transformations of the data as part of the transfer process. The user has to decide on three aspects of the data handling:
· The way the bits will be moved from one place to another
· The different representations of data on the system’s architecture
· The file structure in which the data is to be stored
Each of these is controlled by a subcommand:
Mode: Specifies whether the file is treated as having a record structure in a byte stream format:
B: This specifies block mode is to be used. This indicates that the logical record boundaries of the file are preserved.
S: This specifies that stream mode is to be used, meaning that the file is treated as a byte stream. This is the default and provides more efficient transfer but might not produce the desired results when working with a record-based file system.
Type: Specifies the character sets used in translating and representing the data:
A: Indicates that both hosts are ASCII-based, or that if one is ASCII-based and the other is EBCDIC-based, that ASCII-EBCDIC translation must be performed. On many implementations, this can be invoked by issuing the ASCII command, which the PI translates into the type A Command.
E: Indicates that both hosts use an EBCDIC data representation. On many implementations, this can be invoked by issuing the EBCDIC command, which the PI translates into the type E command.
8. Discuss the format of SMTP mail header.
Ans.- SMTP is based on end-to-end delivery: An SMTP client contacts the destination host’s SMTP server directly, on well-known port 25, to deliver the mail. It keeps the mail item being transmitted until it has been successfully copied to the recipient’s SMTP. This is different from the store-and-forward principle that is common in many mailing systems, where the mail item can pass through a number of intermediate hosts in the same network on its way to the destination and where successful transmission from the sender only indicates that the mail item has reached the first intermediate hop. In various implementations, it is possible to exchange mail between the TCP/IP SMTP mailing system and the locally used mailing systems. These applications are called mail gateways or mail bridges. Sending mail through a mail gateway can alter the end-to-end delivery specification, because SMTP only guarantees delivery to the mail-gateway host, not to the real destination host located beyond the TCP/IP network. When a mail gateway is used, the SMTP end-to-end transmission is host-to-gateway, gateway-to host, or gateway-to-gateway; the behavior beyond the gateway is not defined by SMTP.
In SMTP, each message has:
A header, or envelope,the structure of which is strictly defined by RFC 2822 The mail header is terminated by a null line (that is, a line with nothing preceding the <CRLF> sequence).
Contents:Everything after the null (or blank) line is the message body, which is a sequence of lines containing ASCII characters (that is, characters with a value less than 128 decimal). As usual, the client SMTP (referred to as the sending SMTP) is the entity that initiates the session, and the server (referred to as the receiving SMTP) is the one that responds to the session request. Because the client SMTP frequently can also act as a server for a user mailing program, it is often simpler to refer to the client as the sender SMTP and to the server as the receiver SMTP
9. With aid of a neat block diagram explain the structure of a web browser.
Ans.- Generally, a browser is referred to as an application that provides access to a Web server. Depending on the implementation, browser capabilities and thus structures vary. A Web browser, at a minimum, consists of an Hypertext Markup Language (HTML) interpreter and HTTP client that is used to retrieve HTML Web pages. Besides this basic requirement, many browsers also support FTP, NNTP, e-mail (POP and SMTP clients), among other features, with an easy-to-manage graphical interface. Above figure illustrates a basic Web browser structure. As with many other Internet facilities, the Web uses a client/server processing model. The Web browser is the client component. Examples of Web browsers include Mozilla Firefox, Netscape Navigator, and Microsoft Internet Explorer® Web browsers are responsible for formatting and displaying information, interacting with the user, and invoking external functions, such as Telnet, or external viewers for data types that Web browsers do not directly support. Web browsers have become the “universal client” for the GUI workstation environment, in much the same way that the ability to emulate popular terminals such as the DEC VT100 or IBM 3270 allows connectivity and access to character-based applications on a wide variety of computers. Web browsers are widely available for all popular GUI workstation platforms and are inexpensive.
10. Differentiate between getNextRequest and getBulkRequest taking an appropriate example.
Ans.- The SNMP manager, also referred to as a Network Management Station (NMS),provides a user interface through which network administrators can monitor and manage their network. The manager fulfills the role of a client in the client/server model and is available in a variety of formats including command-line interfaces, graphical user interface (GUI) applications, and fully automated applications. The SNMP manager is responsible for issuing requests to the SNMP agent. These requests can be queries to obtain the value of an MIB object, or they can be requests to set the value of an MIB object. SNMP managers also can listen for notifications or alerts, called traps, generatedby components in the SNMP community An SNMP manager can make the followingtypes of requests to the SNMP agent: getRequest: Requests that the agent return thevalue of the specified object. getNextRequest: Requests that the agent return the firstvalid value following the specified object. For example, assume a get Next is executed for if Type (1.3.6.1.2.1.2.2.1.3). Assuming the first valid instance of ifType is fType.1(1.3.6.1.2.1.2.2.1.3.1), this is the value that the SNMP agent will return. getBulkRequest: Performs the same function as the get request, but allows themanager to query more than one object per request. This is only valid using theSNMPv2c security model . setRequest: Requests that the SNMP agent set the value of the specified object.Walk: Implements a series of getNext requests such that an entire sequence of objectsis returned to the manager. In each iteration of the getNext series, the last objectreturned becomes the next object on which a getNext is executed. The walk ends whenan object is returned that is beyond the scope of the request. An example of this isprovided in Fig. 10.6. Note that the walk request is not architected in the SNMPcommunication that occurs between the SNMP manager and SNMP agent. Instead, it isa convention widely used by most SNMP managers.
Spring 2012
Bachelor of Science in Information Technology (BScIT) – Semester 3
BT0076 – TCP/IP – 4 Credits (Book ID: B0965)
Assignment Set – 2 (60 Marks)
1.Briefly discuss the functions of transport layer.
Ans.- Transport layer accepts data from session layer breaks it into packets and delivers these packets to the network layer. It is the responsibility of transport layer to guarantee successful arrival of data at the destination device. It provides an end-to-end dialog that is the transport layer at the source device directly communicates with transport layer at destination device. Message headers and control messages are used for this purpose. It separates the upper layers from the low level details of data transmissionand makes sure an efficient delivery. OSI model provides connection-oriented service at transport layer.
It is responsible for the determination of the type of service that is to be provided to the upper layer. Normally it transmits packets in the same order in which they are sent however it can also facilitate the transmission of isolated messages. There is no surety that these isolated messages are delivered to the destination devices in case of broadcast networks and they will be in the same order as were sent from the source.
If the network layer do not provide adequate services for the data transmission. Data loss due to poor network management is handled by using transport layer. It checks for any packets that are lost or damaged along the way
It is responsible for the determination of the type of service that is to be provided to the upper layer. Normally it transmits packets in the same order in which they are sent however it can also facilitate the transmission of isolated messages. There is no surety that these isolated messages are delivered to the destination devices in case of broadcast networks and they will be in the same order as were sent from the source.
If the network layer do not provide adequate services for the data transmission. Data loss due to poor network management is handled by using transport layer. It checks for any packets that are lost or damaged along the way
2.Explain the purpose of NCP in PPP.
Ans.- The Network Control Protocol (NCP) phase in the PPP link connection process is used for establishing and configuring different network-layer protocols such as IP, IPX or AppleTalk.
After a NCP has reached the Opened state, PPP will carry the corresponding network-layer protocol packets. Any supported network-layer protocol packets received when the corresponding NCP is not in the Opened state MUST be silently discarded.
During this phase, link traffic consists of any possible combination of LCP, NCP, and network-layer protocol packets.
The most common layer 3 protocol negotiated is IP. The routers exchange IP Control Protocol (IPCP) messages negotiating options specific to the protocol. The corresponding network control protocol for IPv6 is IPv6CP.
IPCP negotiates two options: compression and IP address assignments. However, IPCP is also used to pass network related information such as primary and backup Windows Name Service (WINS) and Domain Name System (DNS) servers.
There are a large number of proposed standard protocols, which specify the operation of PPP over different kinds of point-to-point links. Each has a status of elective. Point-to-point circuits in the form of asynchronous and synchronous lines have long been the mainstay for data communications. In the TCP/IP world, the de facto standard SLIP protocol has served admirably in this area, and is still in widespread use for dial-up TCP/IP connections. However, SLIP has a number of drawbacks that are addressed by the Point-to-Point Protocol. PPP has three main components:
• A method for encapsulating datagrams over serial links.
• A Link Control Protocol (LCP) for establishing, configuring, and testing the data-link connection.
• A family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols.
3. What is fragmentation? Explain its significance.
Ans.- When an IP datagram travels from one host to another, it can pass through different physical networks. Each physical network has a maximum frame size. This is called the maximum transmission unit (MTU). It limits the length of a datagram that can be placed in one physical frame. IP implements a process to fragment datagrams exceeding the MTU. The process creates a set of datagrams within the maximum size. The receiving host reassembles the
original datagram. IP requires that each link support a minimum MTU of 68 octets. This is the sum of the maximum IP header length (60 octets) and the minimum possible length of data in a non-final fragment (8 octets). If any network provides a lower value than this, fragmentation and reassembly must be implemented in the network interface layer. This must be transparent to IP. IP implementations are not required to handle unfragmented datagrams larger than 576 bytes. In practice, most implementations will accommodate larger values.
An unfragmented datagram has an all-zero fragmentation information field. That is, the more fragments flag bit is zero and the fragment offset is zero. The following steps fragment the datagram:
1. The DF flag bit is checked to see if fragmentation is allowed. If the bit is set, the datagram will be discarded and an ICMP error returned to the originator.
2. Based on the MTU value, the data field is split into two or more parts. All newly created data portions must have a length that is a multiple of 8 octets, with the exception of the last data portion.
3. Each data portion is placed in an IP datagram. The headers of these datagrams are minor modifications of the original:
The more fragments flag bit is set in all fragments except the last.
The fragment offset field in each is set to the location this data portion occupied in the original datagram,relative to the beginning of the original unfragmented datagram. The offset is measured in 8-octet units.
If options were included in the original datagram, the high order bit of the option type byte determines if this information is copied to all fragment datagrams or only the first datagram. For example, source route options are copied in all fragments.
– The header length field of the new datagram is set.
– The total length field of the new datagram is set.
– The header checksum field is re-calculated.
4. Each of these fragmented datagrams is now forwarded as a normal IP datagram. IP handles each fragment independently. The fragments can traverse different routers to the intended destination. They can be subject to further fragmentation if they pass through networks specifying a smaller MTU. At the destination host, the data is reassembled into the original datagram. The identification field set by the sending host is used together with the source and destination IP addresses in the datagram. Fragmentation does not alter this field. In order to reassemble the fragments, the receiving host allocates a storage buffer when the first fragment arrives. The host also starts a timer. When subsequent fragments of the datagram arrive, the data is copied into the buffer storage at the location indicated by the fragment offset field. When all fragments have arrived, the complete original unfragmented datagram is restored. Processing continues as for unfragmented datagrams. If the timer is exceeded and fragments remain outstanding,the datagram is discarded. The initial value of this timer is called the IP datagram time to live (TTL) value.It is implementation-dependent. Some implementations allow it to be configured. The netstat command can be used on some IP hosts to list the details of fragmentation.
4.What Is a Socket? Give an example.
Ans.- The socket interface is one of several application programming interfaces to the communication protocols. Designed to be a generic communication programming interface, socket APIs were first introduced by Berkeley Software Distribution (BSD). Although it has not been standardized, Berkeley socket API has become a de facto industry standard abstraction for network TCP/IP socket implementation. Consider the following terminologies:
· A socket is a special type of file handle, which is used by a process to request network services from the operating system.
· A socket address is the triple: <protocol, local-address, local port>
For example, in the TCP/IP (version 4) suite:
<tcp, 192.168.14.234, 8080>
· A conversation is the communication link between two processes.
· An association is the 5-tuple that completely specifies the two processes that comprise a connection:
<protocol, local-address, local-port, foreign-address, foreign-port>
In the TCP/IP (version 4) suite, the following could be a valid association:
<tcp, 192.168.14.234, 1500, 192.168.44, 22>
· A half-association is either one of the following, which each specify half of a connection:
<protocol, local-address, local-process>
Or:
<protocol, foreign-address, foreign-process>
The half-association is also called a socket or a transport address. That is, a socket is an endpoint for communication that can be named and addressed in a network. Two processes communicate through TCP sockets. The socket model provides a process with a full-duplex byte stream connection to another process. The application need not concern itself with the management of this stream; these facilities are provided by TCP. TCP uses the same port principle as UDP to provide multiplexing. Like UDP, TCP uses well-known and ephemeral ports. Each side of a TCP connection has a socket that can be identified by the triple <TCP, IP address, port number>. If two processes are communicating over TCP, they have a logical connection that is uniquely identifiable by the two sockets involved, that is, by the combination <TCP, local IP address, local port, remote IP address, remote port>. Server processes are able to manage multiple conversations through a single port.
5. Differentiate between FQDN and PQDN.
Ans.- FQDN:- A fully qualified domain name (FQDN) is the complete domain name for a specific computer, or host, on the Internet. The FQDN consists of two parts: the hostname and the domain name. For example, an FQDN for a hypothetical mail server might be
PQDN:- If a label is not terminated by a null string, it is called a partially qualified domain name (PQDN). A PQDN starts from a node, but it does not reach the root. It is used when the name to be resolved belongs to the same site as the client. Here the resolver can supply the missing part, called suffix, to create an FQDN.
mymail.somecollege.edu
. The hostname is mymail
, and the host is located within the domain somecollege.edu
.PQDN:- If a label is not terminated by a null string, it is called a partially qualified domain name (PQDN). A PQDN starts from a node, but it does not reach the root. It is used when the name to be resolved belongs to the same site as the client. Here the resolver can supply the missing part, called suffix, to create an FQDN.
6. What do you mean by option negotiation explain with example?
Ans.- All of the DO/DONT/WILL/WONT stuff above only serves to enable or disable an option. Some options are only either off or on, in which case the negotiation above is sufficient. An example would be the binary transmission option, TRANSMIT-BINARY. Others require that after they are enabled, the client and server exchange parameters to control how the option works. For example, the TERMINAL-TYPE option requires some way for the client to send the server the name of the terminal.
Telnet allows the client and server to send an arbitrary amount of data related to the option using a process called option subnegotiation. A device begins this process by sending a special sequence of Telnet protocol commands and data. First the command SB is sent, followed by the option number and parameters as defined by the particular option; the end of the subnegotiation data is marked by the protocol command SE. Of course, both SB and SE must be preceded by the Interpret As Command (IAC) command byte.
Telnet allows the client and server to send an arbitrary amount of data related to the option using a process called option subnegotiation. A device begins this process by sending a special sequence of Telnet protocol commands and data. First the command SB is sent, followed by the option number and parameters as defined by the particular option; the end of the subnegotiation data is marked by the protocol command SE. Of course, both SB and SE must be preceded by the Interpret As Command (IAC) command byte.
7.Discuss FTP proxy transfer through firewall.
Ans.- FTP provides the ability for a client to have data transferred from one FTP server to another FTP server. Several justifications for such a transfer exist, including:
· To transfer data from one host to another when direct access to the two hosts are not possible.
· To bypass a slow client connection.
· To bypass a firewall restriction.
· To reduce the amount of traffic within the client’s network
The process of setting up a proxy transfer begins with the use of a proxy open command. Any FTP command can then be sent to the proxy server by preceding the command with proxy. For example, executing the dir command lists the files on the primary FTP server. Executing the proxy dir command lists the files on the proxy server. The proxy get and proxy put commands can then be used to transfer data between the two hosts.
1. The FTP client opens a connection and logs on to the FTP server A.
2. The FTP client issues a proxy open command, and a new control connection is established with FTP server B.
3. The FTP client then issues a proxy get command (though this can also be a proxy put).
4. A data connection is established between server A and server B. Following data connection establishment, the data flows from server B to server A.
8.Explain various steps involved in SMTP Mail Transaction flow.
Ans.- Although mail commands and replies are rigidly defined, the exchange can easily be followed in Fig. 8.2. All exchanged commands, replies, and data are text lines delimited by a <CRLF>. All replies have a numeric code at the beginning of the line. The steps of this flow are:
1. The sender SMTP establishes a TCP connection with the destination SMTP and then waits for the server to send a 220 Service ready message or a 421 Service not available message when the destination is temporarily unable to proceed.
2. HELO (HELO is an abbreviation for hello) is sent, to which the receiver will identify itself by sending back its domain name. The sender-SMTP can use this to verify that it contacted the right destination SMTP. The sender SMTP can substitute an EHLO command in place of the HELO command. A receiver SMTP that does not support service extensions will respond with a 500 Syntax Error, command unrecognized message. The sender SMTP then retries with HELO, or if it cannot transmit the message without one or more service extensions, it sends a QUIT message. If a receiver-SMTP supports service extensions, it responds with a multiline 250 OK message, which includes a list of service extensions that it supports.
3. The sender now initiates the start of a mail transaction by sending a MAIL command to the receiver. This command contains the reverse-path that can be used to report errors. Note that a path can be more than just the user mailbox@host domain name pair. In addition, it can contain a list of routing hosts. Examples of this are when we pass a mail bridge, or when explicit routing information is provided in the destination address. If accepted, the receiver replies with a 250 OK.
4. The second step of the actual mail exchange consists of providing the server SMTP with the destinations for the message. There can be more than one recipient. This is done by sending one or more RCPTTO:<forward-path> commands. Each of them will receive a reply 250 OK if the destination is known to the server, or a 550 No such user here if it is not.
5. When all RCPT commands are sent, the sender issues a DATA command to notify the receiver that the message contents will follow. The server replies with 354 Start mail input, end with <CRLF>.<CRLF>. Note the ending sequence that the sender should use to terminate the message data.
6. The client now sends the data line by line, ending with the 5-character sequence <CRLF>.<CRLF> line, upon which the receiver will acknowledge with a 250 OK, or an appropriate error message if anything went wrong.
7. At this juncture, the client now has several possible actions:
If the client has no more messages to send, it can end the connection with a QUIT command, which will be answered with a 221 Service closing transmission channel reply.
If the sender has no more messages to send, but is ready to receive messages (if any) from the other side, it can issue the TURN command. The two SMTPs now switch their role of sender/receiver, and the sender (previously the receiver) can now send messages by starting with step 3.
If the sender has another message to send, it returns to step 3 and sends a new MAIL command. We provide a textual scenario in following Figure.
9. Discuss various HTTP protocol parameters.
Ans.- Protocol parameters: We provide some of the HTTP protocol parameters here.
HTTP version: HTTP uses a <major>.<minor> numbering scheme to indicate the versions of the protocol. The furthermost connection is performed according to the protocol versioning policy. The <major> number is incremented when there are significant changes in protocol, such as changing a message format. The <minor> number is incremented when the changes do not affect the message format. The version of HTTP messages is sent by an HTTP-Version field in the first line of the message. The HTTP-Version field is in the following format: HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
Uniform Resource Identifiers (URIs): Uniform Resource Identifiers are generally referred to as WWW addresses and a combination of Uniform Resource Locators (URLs) and Uniform Resource Names (URNs). In fact, URIs are strings that indicate the location and name of the source on the server.
HTTP URL: The HTTP URL scheme enables you to locate network resources through the HTTP protocol. It is based on the URI Generic Syntax and described in RFC 3986. The general syntax of a URL scheme is: HTTP_URL = "http" "//" host [ ":" port ] [ abs_path ]. The port number is optional. If it is not specified, the default value is 80.
10. with example, explain how OIDs are assigned to managed objects?
Ans.- A managed object not only has to be described but identified, too. This is done using the ASN.1 object identifier (OID). The object identifier reserves a set of numbers for different groups. Each object is identified by a string of numbers indicating the hierarchy to which it belongs. Referring back to the example of ifType, this object has an OID of 1.3.6.1.2.1.2.2.1.3. This can initially be broken into two parts:
ifEntry: 1.3.6.1.2.1.2.2.1
ifType 3 :Note that the terms ifType, 1.3.6.1.2.1.2.2.1.3, and ifEntry.3 are functionally interchangeable. However, ifType’s OID can be further broken down as follows:
ifTable: 1.3.6.1.2.1.2.2
ifEntry 1
ifType 3
Again, the terms ifType, 1.3.6.1.2.1.2.2.1.3, ifTable.1.3, and ifEntry.3 are all functionally interchangeable. The OID can continue to be broken down because each digit has a specific meaning. The significance of each digit adheres to the following rules:
Ø The first digit defines the node administrator:
1 for ISO
2 2 for CCITT
3 3 for the joint ISO-CCITT
Ø The possible values for the second digit are determined by the first digit. In this case, the ISO node administrator defines 3 for use by other organizations.
Ø The third digit’s potential values again depend on the first and second digits. But if the first two digits are 1.3, 6 is defined for the use of the U.S. Department of Defense.
Ø In the fourth group, the Department of Defense has not indicated how it will manage its group, so the Internet community assumed 1 for its own.
Ø The fifth group was approved by IAB to be:
1 for the use of OSI directory in the Internet
2 for object identification for management purposes
3 for object identification for experimental purposes
4 for object identification for private use
This if further illustrated in following figure, which shows a mapping of how the OID number for ifType is determined.
No comments:
Post a Comment