text:
Communication Networks/TCP and UDP Protocols/TCP

TCP
After going through the various layers of the Model, it’s time to have a look at the TCP protocol and to study its functionality. This section will help the reader to get to know about the concepts and characteristics of the TCP, and then gradually dive into the details of TCP like connection establishment/closing, communication in TCP and why the TCP protocol is called a reliable as well as an adaptive protocol. This section will end with a comparison between UDP and TCP followed by a nice exercise which would encourage readers to solve more and more problems.

Before writing this section, the information has been studied from varied sources like TCP guide, RFC's, tanenbaum book and the class notes.

What is TCP?

In theory, a transport layer protocol could be a very simple software routine, but the TCP protocol cannot be called simple. Why use a transport layer which is as complex as TCP? The most important reason depends on IP's unreliability. In fact all the layers below TCP are unreliable and deliver the datagram hop-by-hop. The IP layer delivers the datagram hop-by-hop and does not guarantee delivery of a datagram; it is a connectionless system. IP simply handles the routing of datagrams; and if problems occur, IP discards the packet without a second thought, generating an error message back to the sender in the process. The task of ascertaining the status of the datagrams sent over a network and handling the resending of information if parts have been discarded falls to TCP.

Most users think of TCP and IP as a tightly knit pair, but TCP can be, and frequently is, used with other transport protocols.

For example, TCP or parts of it are used in the File Transfer Protocol (FTP) and the Simple Mail Transfer Protocol (SMTP), both of which do not use IP.

The Transmission Control Protocol provides a considerable number of services to the IP layer and the upper layers. Most importantly, it provides a connection-oriented protocol to the upper layers that enable an application to be sure that a datagram sent out over the network was received in its entirety. In this role, TCP acts as a message-validation protocol providing reliable communications. If a datagram is corrupted or lost, it is usually TCP (not the applications in the higher layers) that handles the retransmission.

'''TCP is not a piece of software. It is a communications protocol.'''

TCP manages the flow of datagrams from the higher layers, as well as incoming datagrams from the IP layer. It has to ensure that priorities and security are respected. TCP must be capable of handling the termination of an application above it that was expecting incoming datagrams, as well as failures in the lower layers. TCP also must maintain a state table of all data streams in and out of the TCP layer. The isolation of these services in a separate layer enables applications to be designed without regard to flow control or message reliability. Without the TCP layer, each application would have to implement the services themselves, which is a waste of resources.

TCP resides in the transport layer, positioned above IP but below the upper layers and their applications, as shown in the Figure below. TCP resides only on devices that actually process datagrams, ensuring that the datagram has gone from the source to target machines. It does not reside on a device that simply routes datagrams, so there is no TCP layer in a gateway. This makes sense, because on a gateway the datagram has no need to go higher in the layered model than the IP layer.

Figure 1: TCP providing reliable End-to-End communication

Because TCP is a connection-oriented protocol responsible for ensuring the transfer of a datagram from the source to destination machine (end-to-end communications), TCP must receive communications messages from the destination machine to acknowledge receipt of the datagram. The term virtual circuit is usually used to refer to the handshaking that goes on between the two end machines, most of which are simple acknowledgment messages (either confirmation of receipt or a failure code) and datagram sequence numbers. It is analogous to a telephone conversation; someone initiates it by ringing a number which is answered, a two-way conversation takes place, and finally someone ends the conversation. A socket pair identifies both ends of a connection, i.e. the virtual circuit. It may be recalled that the socket consists of the IP address and the port number to identify the location. The Servers use well-known port numbers (< 1000) for standardized services (Listen). Numbers over 1024 are available for users to use freely. Port numbers for some of the standard services are given in the table below.

Byte stream or Message Stream?

Well, the message boundaries are not preserved end to end in the TCP. For example, if the sending process does four 512-byte writes to a TCP stream, these data may be delivered to the receiving process as four 512-byte chunks, two 1024-byte chunks, one 2048-byte chunk, or some other way. There is no way for the receiver to detect the unit(s) in which the data were written. A TCP entity accepts user data streams from local processes, breaks them up into pieces not exceeding 64 KB (in practice, often 1460 data bytes in order to fit in a single Ethernet frame with the IP and TCP headers), and sends each piece as a separate IP datagram. When datagrams containing TCP data arrive at a machine, they are given to the TCP entity, which reconstructs the original byte streams. For simplicity, we will sometimes use just TCP to mean the TCP transport entity (a piece of software) or the TCP protocol (a set of rules). From the context it will be clear which is meant. For example, in The user gives TCP the data, the TCP transport entity is clearly intended. The IP layer gives no guarantee that datagrams will be delivered properly, so it is up to TCP to time out and retransmit them as need be. Datagrams that do arrive may well do so in the wrong order; it is also up to TCP to reassemble them into messages in the proper sequence. In short, TCP must furnish the reliability that most users want and that IP does not provide.

Characteristics of TCP

TCP provides a communication channel between processes on each host system. The channel is reliable, full-duplex, and streaming. To achieve this functionality, the TCP drivers break up the session data stream into discrete segments, and attach a TCP header to each segment. An IP header is attached to this TCP packet, and the composite packet is then passed to the network for delivery. This TCP header has numerous fields that are used to support the intended TCP functionality. TCP has the following functional characteristics:

Unicast protocol : TCP is based on a unicast network model, and supports data exchange between precisely two parties. It does not support broadcast or multicast network models.

Connection state : Rather than impose a state within the network to support the connection, TCP uses synchronized state between the two endpoints. This synchronized state is set up as part of an initial connection process, so TCP can be regarded as a connection-oriented protocol. Much of the protocol design is intended to ensure that each local state transition is communicated to, and acknowledged by, the remote party.

Reliable : Reliability implies that the stream of octets passed to the TCP driver at one end of the connection will be transmitted across the network so that the stream is presented to the remote process as the same sequence of octets, in the same order as that generated by the sender. This implies that the protocol detects when segments of the data stream have been discarded by the network, reordered, duplicated, or corrupted. Where necessary, the sender will retransmit damaged segments so as to allow the receiver to reconstruct the original data stream. This implies that a TCP sender must maintain a local copy of all transmitted data until it receives an indication that the receiver has completed an accurate transfer of the data.

Full duplex : TCP is a full-duplex protocol; it allows both parties to send and receive data within the context of the single TCP connection.

Streaming : Although TCP uses a packet structure for network transmission, TCP is a true streaming protocol, and application-level network operations are not transparent. Some protocols explicitly encapsulate each application transaction; for every write, there must be a matching read. In this manner, the application-derived segmentation of the data stream into a logical record structure is preserved across the network. TCP does not preserve such an implicit structure imposed on the data stream, so that there is no pairing between write and read operations within the network protocol. For example, a TCP application may write three data blocks in sequence into the network connection, which may be collected by the remote reader in a single read operation. The size of the data blocks (segments) used in a TCP session is negotiated at the start of the session. The sender attempts to use the largest segment size it can for the data transfer, within the constraints of the maximum segment size of the receiver, the maximum segment size of the configured sender, and the maximum supportable non-fragmented packet size of the network path (path Maximum Transmission Unit [MTU]). The path MTU is refreshed periodically to adjust to any changes that may occur within the network while the TCP connection is active.

Rate adaptation : TCP is also a rate-adaptive protocol, in that the rate of data transfer is intended to adapt to the prevailing load conditions within the network and adapt to the processing capacity of the receiver. There is no predetermined TCP data-transfer rate; if the network and the receiver both have additional available capacity, a TCP sender will attempt to inject more data into the network to take up this available space. Conversely, if there is congestion, a TCP sender will reduce its sending rate to allow the network to recover. This adaptation function attempts to achieve the highest possible data-transfer rate without triggering consistent data loss.

TCP Header structure
TCP segments are sent as Internet datagrams. The Internet Protocol header carries several information fields, including the source and destination host addresses. A TCP header follows the Internet header, supplying information specific to the TCP protocol. This division allows for the existence of host level protocols other than TCP.

0                  1                   2                   3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 * Source Port         |       Destination Port        |
 * Sequence Number                       |
 * Acknowledgment Number                     |
 * Data |          |U|A|P|R|S|F|                               |
 * Offset| Reserved |R|C|S|S|Y|I|            Window             |
 * |          |G|K|H|T|N|N|                               |
 * Checksum           |         Urgent Pointer        |
 * Options                   |    Padding    |
 * data                             |

TCP Header Format

Note that one tick mark represents one bit position.

Source Port: 16 bits The source port number.

Destination Port: 16 bits The destination port number.

Sequence Number: 32 bit The sequence number of the first data octet in this segment (except when SYN is present). If SYN is present the sequence number is the initial sequence number (ISN) and the first data octet is ISN+1.

Acknowledgment Number: 32 bits If the ACK control bit is set this field contains the value of the next sequence number the sender of the segment is expecting to receive. Once a connection is established this is always sent.

Data Offset: 4 bits The number of 32 bit words in the TCP Header. This indicates where the data begins. The TCP header (even one including options) is an integral number of 32 bits long.

Reserved: 6 bits Reserved for future use. Must be zero.

Control Bits: 6 bits (from left to right):

URG: Urgent Pointer field significant

ACK: Acknowledgment field significant

PSH: Push Function

RST: Reset the connection

SYN: Synchronize sequence numbers

FIN: No more data from sender

Window: 16 bits The number of data octets beginning with the one indicated in the acknowledgment field which the sender of this segment is willing to accept.

Checksum: 16 bits The checksum field is the 16 bit one's complement of the one's complement sum of all 16 bit words in the header and text. If a segment contains an odd number of header and text octets to be checksummed, the last octet is padded on the right with zeros to form a 16 bit word for checksum purposes. The pad is not transmitted as part of the segment. While computing the checksum, the checksum field itself is replaced with zeros.

The checksum also covers a 96 bit pseudo header conceptually prefixed to the TCP header. This pseudo header contains the Source Address, the Destination Address, the Protocol, and TCP length. This gives the TCP protection against misrouted segments. This information is carried in the Internet Protocol and is transferred across the TCP/Network interface in the arguments or results of calls by the TCP on the IP. The TCP Length is the TCP header length plus the data length in octets (this is not an explicitly transmitted quantity, but is computed), and it does not count the 12 octets of the pseudo header.

Urgent Pointer: 16 bits This field communicates the current value of the urgent pointer as a positive offset from the sequence number in this segment. The urgent pointer points to the sequence number of the octet following the urgent data. This field is only be interpreted in segments with the URG control bit set.

Options: variable Options may occupy space at the end of the TCP header and are a multiple of 8 bits in length. All options are included in the checksum. An option may begin on any octet boundary. There are two cases for the format of an option:

Case 1: A single octet of option-kind.

Case 2: An octet of option-kind, an octet of option-length, and the actual option-data octets. The option-length counts the two octets of option-kind and option-length as well as the option-data octets. Note that the list of options may be shorter than the data offset field might imply. The content of the header beyond the End-of-Option option must be header padding (i.e., zero).

A TCP must implement all options

Ethereal Capture

The TCP packet can be viewed using Ethereal capture. One such TCP packet is captured and shown below. See that the ACK-flag and PUSH-flag are set to '1' in it.

Communication in TCP
Before TCP can be employed for any actually useful purpose—that is, sending data—a connection must be set up between the two devices that wish to communicate. This process, usually called connection establishment, involves an exchange of messages that transitions both devices from their initial connection state (CLOSED) to the normal operating state (ESTABLISHED).

Connection Establishment Functions

The connection establishment process actually accomplishes several things as it creates a connection suitable for data exchange:

Contact and Communication:  The client and server make contact with each other and establish communication by sending each other messages. The server usually doesn’t even know what client it will be talking to before this point, so it discovers this during connection establishment.

Sequence Number Synchronization:  Each device lets the other know what initial sequence number it wants to use for its first transmission.

Parameter Exchange:  Certain parameters that control the operation of the TCP connection are exchanged by the two devices.

Control Messages Used for Connection Establishment: SYN and ACK

TCP uses control messages to manage the process of contact and communication. There aren't, however, any special TCP control message types; all TCP messages use the same segment format. A set of control flags in the TCP header indicates whether a segment is being used for control purposes or just to carry data. Following flags are altered while using control messages.

SYN:  This bit indicates that the segment is being used to initialize a connection. SYN stands for synchronize, in reference to the sequence number synchronization I mentioned above.

ACK:  This bit indicates that the device sending the segment is conveying an acknowledgment for a message it has received (such as a SYN).

Normal Connection Establishment: The "Three Way Handshake"

To establish a connection, each device must send a SYN and receive an ACK for it from the other device. Thus, conceptually, four control messages need to be passed between the devices. However, it's inefficient to send a SYN and an ACK in separate messages when one could communicate both simultaneously. Thus, in the normal sequence of events in connection establishment, one of the SYNs and one of the ACKs is sent together by setting both of the relevant bits (a message sometimes called a SYN+ACK). This makes a total of three messages, and for this reason the connection procedure is called a three-way handshake.

Key Concept: The normal process of establishing a connection between a TCP client and server involves three steps: the client sends a SYN message; the server sends message that combines an ACK for the client’s SYN and contains the server’s SYN; and then the client sends an ACK for the server’s SYN. This is called the TCP three-way handshake.

A connection progresses through a series of states during its lifetime.

The states are: LISTEN, SYN-SENT, SYN-RECEIVED,ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT, and the fictional state CLOSED. CLOSED is fictional because it represents the state when there is no TCB, and therefore, no connection. Briefly the meanings of the states are:

LISTEN - represents waiting for a connection request from any remote TCP and port.

SYN-SENT - represents waiting for a matching connection request after having sent a connection request.

SYN-RECEIVED - represents waiting for a confirming connection request acknowledgment after having both received and sent a connection request.

ESTABLISHED - represents an open connection, data received can be delivered to the user. The normal state for the data transfer phase of the connection.

FIN-WAIT-1 - represents waiting for a connection termination request from the remote TCP, or an acknowledgment of the connection termination request previously sent.

FIN-WAIT-2 - represents waiting for a connection termination request from the remote TCP.

CLOSE-WAIT - represents waiting for a connection termination request from the local user.

CLOSING - represents waiting for a connection termination request acknowledgment from the remote TCP.

LAST-ACK - represents waiting for an acknowledgment of the connection termination request previously sent to the remote TCP (which includes an acknowledgment of its connection termination request).

TIME-WAIT - represents waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request.

CLOSED - represents no connection state at all.

A TCP connection progresses from one state to another in response to events. The events are the user calls, OPEN, SEND, RECEIVE, CLOSE, ABORT, and STATUS; the incoming segments, particularly those containing the SYN, ACK, RST and FIN flags; and timeouts.

The state diagram in figure 6 illustrates only state changes, together with the causing events and resulting actions, but addresses neither error conditions nor actions which are not connected with state changes. In a later section, more detail is offered with respect to the reaction of the TCP to events.

Key Concept: If one device setting up a TCP connection sends a SYN and then receives a SYN from the other one before its SYN is acknowledged, the two devices perform a simultaneous open, which consists of the exchange of two independent SYN and ACK message sets. The end result is the same as the conventional three-way handshake, but the process of getting to the ESTABLISHED state is different. The possibility of collision normally occurs in Peer-2-Peer connection.

Buffer management When the Sender(assume client in our case) has a connection to establish, the packet comes to the Transmission Buffer. The packet should have some sequence number attached to it. This sender chooses the sequence number to minimize the risk of using the already used sequence number. The client sends the packet with that sequence number and data along with the packet length field. The server on receiving the packet sends ACK of the next expected sequence number. It also sends the SYN with it’s own sequence number.

The client on receiving both the messages ( SYN as well as ACK), sends ACK to the receiver with the next expected sequence number from the Receiver. Thus, the sequence number are established between the Client and Server. Now, they are ready for the data transfer. Even while sending the data, same concept of the sequence number is followed.

TCP transmission Policy

The window management in TCP is not directly tied to acknowledgements as it is in most data link protocols. For example, suppose the receiver has a 4096-byte buffer, as shown in Figure below. If the sender transmits a 2048-byte segment that is correctly received, the receiver will acknowledge the segment. However, since it now has only 2048 bytes of buffer space (until the application removes some data from the buffer), it will advertise a window of 2048 starting at the next byte expected.

Now the sender transmits another 2048 bytes, which are acknowledged, but the advertised window is 0. The sender must stop until the application process on the receiving host has removed some data from the buffer, at which time TCP can advertise a larger window.

When the window is 0, the sender may not normally send segments, with two exceptions. First, urgent data may be sent, for example, to allow the user to kill the process running on the remote machine. Second, the sender may send a 1-byte segment to make the receiver reannounce the next byte expected and window size. The TCP standard explicitly provides this option to prevent deadlock if a window announcement ever gets lost.

Senders are not required to transmit data as soon as they come in from the application. Neither are receivers required to send acknowledgements as soon as possible. When the first 2 KB of data came in, TCP, knowing that it had a 4-KB window available, would have been completely correct in just buffering the data until another 2 KB came in, to be able to transmit a segment with a 4-KB payload. This freedom can be exploited to improve performance.

Consider a telnet connection to an interactive editor that reacts on every keystroke. In the worst case, when a character arrives at the sending TCP entity, TCP creates a 21-byte TCP segment, which it gives to IP to send as a 41-byte IP datagram. At the receiving side, TCP immediately sends a 40-byte acknowledgment (20 bytes of TCP header and 20 bytes of IP header). Later, when the editor has read the byte, TCP sends a window update, moving the window 1 byte to the right. This packet is also 40 bytes. Finally, when the editor has processed the character, it echoes the character as a 41-byte packet. In all, 162 bytes of bandwidth are used and four segments are sent for each character typed. When bandwidth is scarce, this method of doing business is not desirable.

One approach that many TCP implementations use to optimize this situation is to delay acknowledgments and window updates for 500 msec in the hope of acquiring some data on which to hitch a free ride. Assuming the editor echoes within 500 msec, only one 41-byte packet now need be sent back to the remote user, cutting the packet count and bandwidth usage in half. Although this rule reduces the load placed on the network by the receiver, the sender is still operating inefficiently by sending 41-byte packets containing 1 byte of data. A way to reduce this usage is known as Nagle's algorithm (Nagle, 1984). What Nagle suggested is simple: when data come into the sender one byte at a time, just send the first byte and buffer all the rest until the outstanding byte is acknowledged. Then send all the buffered characters in one TCP segment and start buffering again until they are all acknowledged. If the user is typing quickly and the network is slow, a substantial number of characters may go in each segment, greatly reducing the bandwidth used. The algorithm additionally allows a new packet to be sent if enough data have trickled in to fill half the window or a maximum segment.

Nagle's algorithm is widely used by TCP implementations, but there are times when it is better to disable it. In particular, when an X Windows application is being run over the Internet, mouse movements have to be sent to the remote computer. (The X Window system is the windowing system used on most UNIX systems.) Gathering them up to send in bursts makes the mouse cursor move erratically, which makes for unhappy users.

Another problem that can degrade TCP performance is the silly window syndrome. This problem occurs when data are passed to the sending TCP entity in large blocks, but an interactive application on the receiving side reads data 1 byte at a time. To see the problem, look at the figure below. Initially, the TCP buffer on the receiving side is full and the sender knows this (i.e., has a window of size 0). Then the interactive application reads one character from the TCP stream. This action makes the receiving TCP happy, so it sends a window update to the sender saying that it is all right to send 1 byte. The sender obliges and sends 1 byte. The buffer is now full, so the receiver acknowledges the 1-byte segment but sets the window to 0. This behavior can go on forever.

Clark's solution is to prevent the receiver from sending a window update for 1 byte. Instead it is forced to wait until it has a decent amount of space available and advertise that instead. Specifically, the receiver should not send a window update until it can handle the maximum segment size it advertised when the connection was established or until its buffer is half empty, whichever is smaller.

Furthermore, the sender can also help by not sending tiny segments. Instead, it should try to wait until it has accumulated enough space in the window to send a full segment or at least one containing half of the receiver's buffer size (which it must estimate from the pattern of window updates it has received in the past).

Nagle's algorithm and Clark's solution to the silly window syndrome are complementary. Nagle was trying to solve the problem caused by the sending application delivering data to TCP a byte at a time. Clark was trying to solve the problem of the receiving application sucking the data up from TCP a byte at a time. Both solutions are valid and can work together. The goal is for the sender not to send small segments and the receiver not to ask for them.

The receiving TCP can go further in improving performance than just doing window updates in large units. Like the sending TCP, it can also buffer data, so it can block a READ request from the application until it has a large chunk of data to provide. Doing this reduces the number of calls to TCP, and hence the overhead. Of course, it also increases the response time, but for noninteractive applications like file transfer, efficiency may be more important than response time to individual requests. Another receiver issue is what to do with out-of-order segments. They can be kept or discarded, at the receiver's discretion. Of course, acknowledgments can be sent only when all the data up to the byte acknowledged have been received. If the receiver gets segments 0, 1, 2, 4, 5, 6, and 7, it can acknowledge everything up to and including the last byte in segment 2. When the sender times out, it then retransmits segment 3. If the receiver has buffered segments 4 through 7, upon receipt of segment 3 it can acknowledge all bytes up to the end of segment 7.

Explained Example: Connection Establishment and Termination
Establishing a Connection

A connection can be established between two machines only if a connection between the two sockets does not exist, both machines agree to the connection, and both machines have adequate TCP resources to service the connection. If any of these conditions are not met, the connection cannot be made. The acceptance of connections can be triggered by an application or a system administration routine.

When a connection is established, it is given certain properties that are valid until the connection is closed. Typically, these will be a precedence value and a security value. These settings are agreed upon by the two applications when the connection is in the process of being established.

In most cases, a connection is expected by two applications, so they issue either active or passive open requests. Figure below shows a flow diagram for a TCP open. The process begins with Machine A's TCP receiving a request for a connection from its ULP, to which it sends an active open primitive to Machine B. The segment that is constructed will have the SYN flag set on (set to 1) and will have a sequence number assigned. The diagram shows this with the notation SYN SEQ 50 indicating that the SYN flag is on and the sequence number (Initial Send Sequence number or ISS) is 50. (Any number could have been chosen.)

The application on Machine B will have issued a passive open instruction to its TCP. When the SYN SEQ 50 segment is received, Machine B's TCP will send an acknowledgment back to Machine A with the sequence number of 51. Machine B will also set an Initial Send Sequence number of its own. The diagram shows this message as ACK 51; SYN 200 indicating that the message is an acknowledgment with sequence number 51, it has the SYN flag set, and has an ISS of 200.

Upon receipt, Machine A sends back its own acknowledgment message with the sequence number set to 201. This is ACK 201 in the diagram. Then, having opened and acknowledged the connection, Machine A and Machine B both send connection open messages through the ULP to the requesting applications.

It is not necessary for the remote machine to have a passive open instruction, as mentioned earlier. In this case, the sending machine provides both the sending and receiving socket numbers, as well as precedence, security, and timeout values. It is common for two applications to request an active open at the same time. This is resolved quite easily, although it does involve a little more network traffic.

Data Transfer

Transferring information is straightforward, as shown in Figure below. For each block of data received by Machine A's TCP from the ULP, TCP encapsulates it and sends it to Machine B with an increasing sequence number. After Machine B receives the message, it acknowledges it with a segment acknowledgment that increments the next sequence number (and hence indicates that it received everything up to that sequence number). Figure shows the transfer of only one segment of information - one each way.

The TCP data transport service actually embodies six different subservices:

Full duplex: Enables both ends of a connection to transmit at any time, even simultaneously.

Timeliness: The use of timers ensures that data is transmitted within a reasonable amount of time.

Ordered: Data sent from one application will be received in the same order at the other end. This occurs despite the fact that the datagrams may be received out of order through IP, as TCP reassembles the message in the correct order before passing it up to the higher layers.

Labeled: All connections have an agreed-upon precedence and security value.

Controlled flow: TCP can regulate the flow of information through the use of buffers and window limits.

Error correction: Checksums ensure that data is free of errors (within the checksum algorithm's limits).

Closing Connections

To close a connection, one of the TCPs receives a close primitive from the ULP and issues a message with the FIN flag set on. This is shown in Figure 8. In the figure, Machine A's TCP sends the request to close the connection to Machine B with the next sequence number. Machine B will then send back an acknowledgment of the request and its next sequence number. Following this, Machine B sends the close message through its ULP to the application and waits for the application to acknowledge the closure. This step is not strictly necessary; TCP can close the connection without the application's approval, but a well-behaved system would inform the application of the change in state.

After receiving approval to close the connection from the application (or after the request has timed out), Machine B's TCP sends a segment back to Machine A with the FIN flag set. Finally, Machine A acknowledges the closure and the connection is terminated.

An abrupt termination of a connection can happen when one side shuts down the socket. This can be done without any notice to the other machine and without regard to any information in transit between the two. Aside from sudden shutdowns caused by malfunctions or power outages, abrupt termination can be initiated by a user, an application, or a system monitoring routine that judges the connection worthy of termination. The other end of the connection may not realise an abrupt termination has occurred until it attempts to send a message and the timer expires.

To keep track of all the connections, TCP uses a connection table. Each existing connection has an entry in the table that shows information about the end-to-end connection. The layout of the TCP connection table is shown below-

The meaning of each column is as follows:

State: The state of the connection (closed, closing, listening, waiting, and so on).

Local address: The IP address for the connection. When in a listening state, this will set to 0.0.0.0.

Local port: The local port number.

Remote address: The remote's IP address.

Remote port: The port number of the remote connection.

TCP Retransmission and Timeout
We know that the TCP does provide reliable data transfer. But, how does it know when to retransmit the packet already transmitted. It is true that the receiver does acknowledges the received packets with the next expected sequence number. But what if sender does not receive any ACK.

Consider the following two scenarios:

ACK not received: In this case the receiver does transmit the cumulative ACK, but this frame gets lost somewhere in the middle. Sender normally waits for this cumulative ACK before flushing the sent packets from its buffer. But for that it has to develop some mechanism by which the sender can take some action if the ACK is not received for too long time. The mechanism used for this purpose here is the timer. The TCP sets a timer as soon as it transfers the packet. If before the time-out the ACK comes, then the TCP flushes those packets from it’s buffer to create a space. If the ACK does not arrive before the time-out, then in this case the TCP retransmits the packet again. But from where this time-out interval is chosen. Well we will be seeing the procedure to find out this shortly.

Duplicate ACK received: In this case the receiver sends the ACK more than one time to the sender for the same packet received. But, ever guessed how can this happen. Well, such things may happen due to network problem sometimes, but if receiver does receive ACK more than 2-3 times there is some sort of meaning attached to this problem. All this problem starts from the receiver side. Receiver keeps on sending ACK to the received frames. This ACK is of the cumulative nature. It means that the receiver is having a buffer with it. The algorithm used for sending cumulative ACK can depend on amount of buffer area filled or left or it may depend upon the timer. Normally, timer is set so that after specific interval of time, receiver sends the cumulative ACK. But what if the sender rate is very high. In this case the receiver buffer becomes full & after that it looses capacity to store any more packets from the sender side. In this case receiver keeps on sending the duplicate ACK, meaning that the buffer is full and no more packets after that have been accepted. This message helps the sender to control the flow rate.

This whole process makes TCP a adaptive flow control protocol. Means that in case of congestion TCP adapts it’s flow rate. More on this will be presented in the Congestion control topic. Also there is no thing like the negative ACK in the TCP. Above two scenario’s convey the proper message to the sender about the state of the receiver. Let’s now concentrate on how the TCP chooses the time-out-interval.

Choosing the Time out interval:

The timer is chosen based on the time a packet takes to complete a round-trip from a sender to the receiver. This round trip time is called as the RTT. But the conditions i.e. the RTT cannot remain same always. In fact RTT greatly varies with the time. So some average quantity is to be included into the calculation of the time-out interval. The following process is followed.

1.	Average RTT is calculated based on the previous results.(Running average)

2.	For that particular time RTT is measured and this value depends on the conditions & the congestion in a network at that time.(Measured)

3.	To calculate a time out interval: 0.8*(Running avg. ) + (1- 0.8)*(Measured) The value 0.8 may be changed as required but it has to be less than 1.

4.	To arrive at more accurate result this procedure may be repeated many times.

Thus, we have now arrived at the average value a packet takes to make a round trip. In order to choose a time-out interval, this value needs to be multiplied by some factor so as to create some leeway.

5.	Thus,

Time-out interval = 2*(value arrived in 4th step)

If we go on plotting a graph for the running average and a measured value at that particular time we see that the running average value remains almost constant and the measured value fluctuates more. Below is the graph drawn for both the values. This explains why a running average is multiplied by a value greater than value used for multiplying a measured time.

Comparison: TCP and UDP
The User Datagram Protocol (UDP) and Transmission Control Protocol (TCP) are the “siblings” of the transport layer in the TCP/IP protocol suite. They perform the same role, providing an interface between applications and the data-moving capabilities of the Internet Protocol (IP), but they do it in very different ways. The two protocols thus provide choice to higher-layer protocols, allowing each to select the appropriate one depending on its needs.

Below is the table which helps illustrate the most important basic attributes of both protocols and how they contrast with each other:

Exercise Questions
The exercise questions here include the assignment questions along with the solutions. This will help students to grab the concept of TCP and would encourage them to go for more exercise questions from the Kurose and the Tanenbaum book.

1) UDP and TCP use 1’s complement for their checksums. Suppose you have the following three 8-bit bytes: 01010101, 01110000, 01001100. What is the 1’s complement of the sum of these 8-bit bytes? (Note that although UDP and TCP use 16-bit words in computing the checksum, for this problem you are being asked to consider 8-bit summands.) Show all work. Why is it that UDP takes the 1’s complement of the sum; that is, why not just use the sum? With the 1’s complement scheme, how does the receiver detect errors? Is it possible that a 1-bit error will go undetected? How about a 2-bit error?

Solution: 01010101 + 01110000 + 11000101 = 110001010

One's complement of 10001010 = Checksum = 01110101.

''At the receiver end, the 3 messages and checksum are added together to detect an error. Sum should always contain only binary 1. If the sum contains 0 term, receiver knows that there is an error. Receiver will detect 1-bit error. But this may not always be the case with 2-bit error as two different bits may change but the sum may still be same.''

2) Answer true or false to the following questions and briefly justify your answer: a)	With the SR protocol, it is possible for the sender to receive an ACK for a packet that falls outside of its current window.

''True. Consider a scenario where a first packet sent by sender doesn't receive ACK as the timer goes down. So it will send the packet again. In that time the ACK of first packet is received. so the sender empties it's buffer and fills buffer with new packect. In the meantime, the ACK of second frame may be received. So ACK can be received even if the packet falls outside the current window.''

b)	With GBN, it is possible for the sender to receive an ACK for a packet that falls outside of its current window.

''True. Same argument provided for (a) holds here.''

c)	The alternating bit protocol is the same as the SR protocol with a sender and receiver window size of 1.

''True. Alternating bit protocol deals with the 0 & 1 as an alternating ACK. Here, the accumulative ACK is not possible as ACK needs to be sent after each packet is received. So SR protocol starts behaving as Alternating bit protocol.''

d)	 The alternating bit protocol is the same as the GBN protocol with a sender and receiver window size of 1.

''True. Same argument holds here.''

3)Consider the TCP positions for estimating RTT. Suppose that a=0.1 Let sample   RTT1 be the most recent sample RTT, Let sample RTT2  be the next most recent sample RTT, and so on.

a)	For a given TCP connection, suppose four acknowledgments have been returned with corresponding sample RTTs Sample RTT4, SampleRTT3, SampleRTT2, SampleRTT1. Express EstimatedRTT in terms of four sample RTTs. b) Generalize your formula for n sample RTTs.

c) For the formula in part (b) let n approach infinity. Comment on why this averaging procedure is called an exponential moving average.

Solution: a)

EstimatedRTT1 = SampleRTT1

EstimatedRTT2 = (1-a)EstimatedRTT1 + aSampleRTT2 = (1-a)SampleRTT1 + aSampleRTT2

EstimatedRTT3 = (1-a)EstimatedRTT2 + aSampleRTT3 = (1-a)2SampleRTT1 + (1-a)aSampleRTT2 + aSampleRTT3''

EstimatedRTT4 = (1-a)EstimatedRTT3 + aSampleRTT4 = (1-a)3SampleRTT1 + (1-a)2aSampleRTT2 + (1-a)aSampleRTT3 + aSampleRTT4

b)

''EstimatedRTTn = (1-a)(n-1)SampleRTT1 + (1-a)(n-2)aSampleRTT2 + (1-a)(n-3)aSampleRTT3 +... (1-a)aSampleRTTn-1 + aSampleRTTn''

4) We have seen from text that TCP waits until it has received three duplicate ACKs before performing a fast retransmit. Why do you think that TCP designers chose not to perform a fast retransmit after the first duplicate ACK for a segment is received?

''Solution: Suppose a sender sends 3 consecutive packets 1,2 & 3. As soon as a receiver receives 1, it sends ACK for it. Suppose if instead of 2 receiver receives 3 due to reordering. As receiver hasn't received 2, it again sends ACK for 1. So the sender has received 2nd ACK for 1. Still it continues waiting. Now when the receiver receives 2, it sends ACK 2 & then 3. So it is always safe to wait for more than 2 ACK's before re-transmitting packet.''

5) Why do you think TCP avoids measuring the SampleRTT for retransmitted segments?

''Solution: Let's look at what could wrong if TCP measures SampleRTT for a retransmitted segment. Suppose the source sends packet P1, the timer for P1 expires, and the source then sends P2, a new copy of the same packet. Further suppose the source measures SampleRTT for P2 (the retransmitted packet). Finally suppose that shortly after transmitting P2 an acknowledgment for P1 arrives. The source will mistakenly take this acknowledgment as an acknowledgment for P2 and calculate an incorrect value of SampleRTT.''


text:
Communication Networks/TCP and UDP Protocols/Congestion Control

Congestion
Introduction

Congestion occurs when the source sends more packets than the destination can handle. When this congestion occurs performance will degrade. Congestion occurs when these buffers gets filled on the destination side. The packets are normally temporarily stored in the buffers of the source and the destination before forwarding it to their upper layers.

What is Congestion?

Let us assume we are watching the destination. If the source sends more number of packets than the destination buffer can handle, then this congestion occurs. When congestion occurs, the destination has only two options with the arriving packets, to drop it or keep it. If the destination drops the new arriving packets and keeps the old packets then this mechanism is called `Y’ model. If the destination drops the old packets and fills them with new packet, then this mechanism is called Milk model. In both the cases packets are dropped. Two common ways to detect congestion are timeout and duplicate acknowledgement.

Congestion control

Congestion control can be used to calculate the amount of data the sender can send to the destination on the network. Determining the amount of data is not easy, as the bandwidth changes from time to time, the connections get connected and disconnected. Based on these factors the sender should be able to adjust the traffic. TCP congestion control algorithms are used to detect and control congestion. The following are the congestion algorithms we will be discussing.
 * Additive Increase/ Multiplicative Decrease.
 * Slow Start
 * Congestion Avoidance
 * Fast Retransmit
 * Fast recovery

Additive Increase / Multiplicative Decrease

This algorithm is used on the sender side of the network. The congestion window SSIZE is the amount of data the sender can send into the network before receiving the ACK. Advertised window RSIZE is the amount of data the receiver side can receive on the network. The TCP source set the congestion window based on the level of congestion on the network. This is done by decreasing the congestion window when the congestion increases and increases the congestion window if the congestion decreases. This mechanism is commonly called as Additive Increase/ Multiplicative Decrease.

The source determines the congestion based on packet loss. The packet loss is determined when the timeout happens. The source waits until the timeout time for the acknowledge to arrive. In normal cases packets are not lost, so the source assumes congestion has occurred when timeout happens. Whenever the timeout happens the source sets the SSIZE to half of the previous value. This mechanism is called Multiplicative Decrease. If timeout happens continuously, the window size is decreased until the size becomes 1. This is because the minimum value for congestion window is 1. When the sender determines that congestion has not happened, it increases the congestion window by one. This increase happens after every successful ACK received by the sender as shown below.

Slow start

The main disadvantage in the Additive Increase/ Multiplicative Decrease method is the sender decreases the congestion by half when it detects congestion and increase only by one for each successful ACK received. If the window size is large and/or the congestion window size is increased from 1, then we waste many congestion windows. The slow start algorithm is used to solve this problem of increment by one. The SSIZE is the amount of data the sender can send into the network before receiving the ACK. RSIZE is the amount of data the receiver side can receive on the network. The SSTHOLD is the slow start threshold used to control the amount of data flow on the network. The slow start algorithm is used when the SSIZE is less than the threshold SSTHOLD. In the beginning the sender does not know how much data to send. It has to find how much data to send. Initially the SSIZE much be less than or equal to 2*SMSS bytes and must not be more than 2 segments. As the packets are sent the SSIZE is increased exponentially until SSIZE become greater than SSTHOLD or when congestion is detected.

When the sender detects congestion, then it decreases the congestion window by half of the previous value. Again, the slow start algorithm is used for increasing the congestion window. Congestion avoidance

The SIZE is the amount of data the sender can send into the network before receiving the ACK. RSIZE is the amount of data the receiver side can receive on the network. The SSTHOLD is the slow start threshold used to control the amount of data flow on the network. The congestion avoidance algorithm is used when the SSIZE is greater than the threshold SSTHOLD. As the packets are sent the SSIZE is increased by one full size segment per roundtrip rime. This continues until congestion is detected.

Fast retransmission

Both the above three algorithms use timeout for detecting the congestion. The disadvantage here is the sender need to wait for the timeout to happen. To improve the congestion detection the sender uses duplicate ACK. Every time a packet arrives at the receiving side, the receiver sends an ACK to the sender. When a packet arrives out of order at the receiving side, TCP cannot yet acknowledge the data the packet contains because the earlier packet has not yet arrived. The receiver sends the same ACK which it sent last time resulting in duplicate ACK. This is illustrated below.

From the senders point of view Duplicate ACKs can arise from number of network problems. The sender cannot assume the packet sent was lost, the Duplicate ACKs may be triggered by reorder the segments, Replication of the ACK or segment. So the sender waits for 3 duplicate ACKs to determine the packet loss. TCP performs a retransmission of what appears to be the missing segment, without waiting for the retransmission timer to expire.

Fast recovery

Fast recovery algorithm governs the transmission of new data until a non-duplicate ACK arrives. The  reason for not performing slow start is that the receipt of the   duplicate ACKs not only indicates that a segment has been lost, but   also that segments are most likely leaving the network The fast retransmit and fast recovery algorithms are usually  implemented together as follows. 1.	When the third duplicate ACK is received, set STHOLD no more than STHOLD = max (FlightSize / 2, 2*SMSS), where FlightSize is the amount of outstanding data in the network 2.	Retransmit the lost segment and set SSIZE to STHOLD plus 3*SMSS. This artificially "inflates" the congestion window by the number of segments (three) that have left the network and which the receiver has buffered. 3.	For each additional duplicate ACK received, increment SSIZE by SMSS. This artificially inflates the congestion window in order to reflect the additional segment that has left the network. 4.	Transmit a segment, if allowed by the new value of SSIZE and the receiver's advertised window. 5.	When the next ACK arrives that acknowledges new data, set SSIZE to STHOLD (the value set in step 1). This is termed "deflating" the window. This ACK should be the acknowledgment elicited by the retransmission from step 1, one RTT after the retransmission (though it may arrive sooner in the presence of significant out-of-order delivery of data segments at the receiver). Additionally, this ACK should acknowledge all the intermediate segments sent between the lost segment and the receipt of the third duplicate ACK, if none of these were lost.

FAQ

What causes this congestion? Congestion occurs when the source sends more packets than the destination can handle. When this congestion occurs performance will degrade. Congestion occurs when these buffers gets filled on the destination side. The packets are normally temporarily stored in the buffers of the source and the destination before forwarding it to their upper layers. Let us assume we are watching the destination. If the source sends more number of packets than the destination buffer can handle, then this congestion occurs.

What happens when congestion occurs? When congestion occurs, the destination has only two options with the arriving packets, to drop it or keep it. If the destination drops the new arriving packets and keeps the old packets then this mechanism is called `Y’ model. If the destination drops the old packets and fills them with new packet, then this mechanism is called Milk model. In both the cases packets are dropped

How do you detect congestion? Two common ways to detect congestion are timeout and duplicate acknowledgement.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Guitar/Barre Chords

Barre chords are chords that involve using one finger, usually your first finger, to press all the strings down at once on a single fret. Barring turns your first finger into a movable capo. You can then use your remaining three fingers to play open chord shapes, but in any position on the fretboard. Not all open chord shapes are easy to play with a barre, but once you have learned barring techniques, your chord vocabulary will increase and you will be able to play all along the fretboard.

Initially, barre chords are much more difficult to play than open chords. Before being able to play a barre chord, you first must train your hand be able to barre the fretboard. To do this, you take your first finger and press it lightly against the strings (applying no pressure) so that the finger covers all the strings along the same fret. Keep increasing the pressure until all the strings can be heard to sound clearly. A common mistake for beginners is to barre with full pressure which leads to hand fatigue. By lightly touching the strings and increasing the pressure in small increments, you will find that the pressure you need to apply to make the strings sound is much less than you imagine. Your thumb should be directly behind your first finger on the neck for full support. To illustrate the concept of a barre, compare the difference between the open strings (where the nut acts like a "zero" barre) and the full barre at the third fret.

Six String Barre Chord
A six string barre chord is a chord in which all the strings are being played. It can be compared to E chords, because, since the guitar is tuned to E, it effectively is an open barre chord. (you can view all open chords as a form of barre chords, which do not require you to press all the 6 strings somewhere [ because you use the open strings - 0 - hence their name ]. Let us examine the form of a major six string barre chord, in this case G, along with the major E chord:

Five String Barre Chords
The same principles hold for five string barre chords, except instead of using the E chord shape, the A chord is used. Additionally, it should be emphasised that only five strings are played, which means that the low E string should not be allowed to sound.

title: Guitar/Barre Chords


text:
User:Hdgcfcf~enwikibooks

I am a guy, with a funny name,  But working for Wikibooks is my game.  I work hard and long nights,  When everyone is sleeping and there are no lights.

Darn it...

I forget the rest of my song.

title: User:Hdgcfcf~enwikibooks


text:
OpenGL Programming/Advanced/GLSL

Variables
Variables can be passed into GLSL like position and color, but other custom variables are available. Those that change within a glBegin/glEnd pair are called "attributes"; those that are not are called "uniform". After creating a GLSL program, one gets handles to the variables using GLint glGetAttribLocation(GLuint program, char *name) or GLint glGetUniformLocation(GLuint program, char *name) The result of this call is then used to set the value of the corresponding variable. Depending on the number of degrees of freedom, one uses void glUniform1f(GLint location, GLfloat value) void glUniform2f(GLint location, GLfloat value1, GLfloat value2) void glUniform3f(GLint location, GLfloat value1, GLfloat value2, GLfloat value3) void glUniform4f(GLint location, GLfloat value1, GLfloat value2, GLfloat value3, GLfloat value4) or alternately, GLint glUniform{1,2,3,4}fv(GLint location, GLsizei count, GLfloat *v)

For example, in GLSL you might have uniform float time; void main(void) { ... then in C/C++ you could say: GLint time = glGetUniformLocation(myProgram, "time" ... glUniform1f(time, 10.3);

title: OpenGL Programming/Advanced/GLSL


text:
Hebrew/Aleph-Bet/6

 Aleph-Bet Lesson 6 —

Welcome to the sixth lesson of the Hebrew alphabet! In this lesson you will learn three new Hebrew letters -, and  and two new niqqud symbols - ħataf-pataħ and ħataf-qamats.

Letters
After reviewing the first nine letters and learning another three, you've already learned more than half the alphabet! Just 10 letters to go.

Now the next three letters:

Gimmel
The third letter in the Hebrew alphabet is Gimmel. It makes the "g" sound (IPA: /g/, "g" as in "give").

Zayin
The seventh letter in the Hebrew alphabet is Zayin. It makes the "z" sound (IPA: /z/, "z" as in "zoo").

Ħet
The eighth letter in the Hebrew alphabet is Ħet. You must have seen the names of vowels like ħiriq, pataħ and ħolam, and have been thinking: "What is that strange letter?". Well, that letter is called Ħet, and is transliterated in the WikiBook as Ħħ. This is to distinguish between it and Khaf, a letter you will later learn. The traditional sound this letter makes is marked in the International Phonetic Alphabet (IPA) and the Maltese language as well as many Semitic transliterations as ħ, which is the phoneme we used. Most Israelis, however, pronounce it the same as Khaf.

Now what is that sound? This sound is called voiceless uvular fricative - same as Resh only that you don't use your vocal cords (IPA: /χ/, "ch" as in German "Bach", in Dutch "acht"). A similar sound is perhaps more familiar to English speakers, the voiceless velar fricative (IPA: /x/, e.g. Spanish "j" as in "rojo").

Vowels
We have learned that Shva can either mean the end of a syllable or stand for the "ə" sound. However, the Shva Na‘ (ə) can't be put in guttural letters. What if one wants to make the "ħə" sound? The "hə" sound? The "ə" sound? For that purpose, three special reduced vowels, known as ħataf ("interrupted") have been devised. In this lesson we're going to learn the first two:

Ħataf-Pataħ
The Shva and Pataħ under the Ħet are the ħataf-pataħ.

It produces the "a" sound (IPA: /a/, "a" as in "spa").

Ħataf-Qamats
The Shva and Qamats under the Ħet are the ħataf-qamats.

It produces the "o" sound (IPA: /o/, "o" as in "gore").

Words
ani I anaħnu we  oniyyah ship (feminine, singular) ħag holiday (masculine, singular) ħaver friend (masculine, singular) zaħal caterpillar (masculine, singular) ħalah chalah, traditional Jewish bread made on the Sabbath and other festivities (feminine, singular) gezer carrot (masculine, singular)

Summary
In this lesson, you've learned: Practice what you've learned in the exercises.
 * The letters Gimmel, Zayin and Ħet.
 * The niqqud symbols ħataf-pataħ and ħataf-qamats.
 * The words and.

Next lesson: Aleph-Bet 7 >>>

title: Hebrew/Aleph-Bet/6


text:
Cookbook:Green Bean Casserole

| Midwestern cuisine

Green bean casserole was invented in 1955 by the Campbell Soup Company. It has since become a popular Thanksgiving side dish in the United States.

Ingredients

 * 8 cups cooked green beans
 * 1 cup milk
 * 2 ⅔ cups canned French fried onions, divided into 2 equal portions
 * ¼ teaspoon ground black pepper
 * 2 cans (21 ounces) cream of mushroom soup
 * 2 teaspoons soy sauce

Procedure

 * 1) Preheat oven to 350°F (175°C).
 * 2) Stir together beans, milk, ½ of onions, pepper, soup, and soy sauce in a 3-quart casserole dish.
 * 3) Bake until hot, about 25 minutes.
 * 4) Sprinkle top with rest of onions.
 * 5) Bake another 5 minutes.

Notes, tips, and variations

 * Cream of mushroom soup may be regular or reduced sodium.
 * Other cream soups such as cream of onion or potato may be used.
 * If you love cheese, substitute ½ cup shredded cheese for the soy sauce.
 * ½ cup of chopped red bell peppers will make it very colorful.

title: Cookbook:Green Bean Casserole


text:
User talk:Kylu

__NOINDEX__

On an extended wikibreak. If you want to leave a note and have any chance of my seeing it, please do so at my meta talkpage instead. Thanks. Kylu (talk) 03:12, 23 August 2009 (UTC)

title: User talk:Kylu


text:
Guitar/The Basics

The guitar is, and has always been, a social instrument. In all its forms, it has always been a portable, multi-stringed instrument made for public hearing. Even today, there's nothing better than hanging out with some friends and being able to strum a few songs on the guitar. And if you've just bought your first guitar, then you're in luck: you can play literally hundreds of popular songs by learning just a handful of chords. But playing the guitar is more than just struggling through a half-recognizable version of some song, it also requires good technique. In this section, you will learn the basics of how to hold the guitar, use a pick, and other important fundamental techniques.

Never forget that instruction books are not a replacement for playing with other guitarists, or learning from a teacher, who are excellent sources of information and inspiration.

Also, this section, as with most guitar manuals, is written with right handed players in mind. Left-handed players may simply reverse the instructions as appropriate.

Holding The Guitar
The guitar can be played in many positions, but some positions are clearly more efficient than others. The choice of position is personal, but clear guidelines exist. Some basic considerations in determining a chosen playing position include:

 * the physical stability of the instrument
 * ensuring the freedom of both hands such that they have thorough access to the instrument and can meet all technical demands without having to support the instrument
 * elimination of general muscular tension in the assumed body position. While it is natural for a beginner to experience fatigue in the muscles of his hands and arms, you must be careful to sit straight and not cause damage to your spine and waist. If you do experience pain in those regions it is possible that the position is harmful and must be changed to prevent damage.

Many beginners try and turn the guitar towards themselves, so they can look down at the frets and soundhole. Curling the guitar towards yourself in such a way actually makes it more difficult to fret the strings efficiently, because you have to curl your wrist more. This tension can be harmful. Beginners are also often inclined to put their elbow too high or low, which leads to cramping. Ideally your arm and shoulder should be relaxed.

It may take a beginner several weeks until holding the guitar feels comfortable and natural. By using efficient hand positions and not straining, the muscles in the arm and hands will get stronger. If you ever feel pain you should immediately stop and ascertain the cause of pain before continuing. Sometimes discomfort is due merely to fatigue and a period of rest will be all that is required.

Classical Style
Sit up straight on a chair or stool, with your left foot on a footrest approximately 10-20 cm in height. Place the waist of your guitar on your left thigh. Rest your right forearm on the top front edge of the guitar's lower bout so that it is comfortable and allows you to easily strum the strings over the soundhole. The guitar headstock should approximately be at head level, which corresponds to an inclination of the guitar neck of about 45 degrees. Your left hand should be presented to the guitar neck and fretboard such that the thumb is behind the neck and all three segments of the fingers are forward of the edge of the fingerboard. Shoulders should be level and relaxed, and it helps to be leaning forward slightly. Most people should feel comfortable and able to stay in this position with little effort. If you cannot, something may not be right. As an alternative to using a footstool, you can use some sort of guitar support between your left leg and guitar. This also allows for good alignment of the spine and an efficient playing posture.

With your left hand, put your thumb so that it is behind the second fret. This is the most comfortable area for playing open chords. Your thumb should not extend over the edge of the fretboard and touch the E string.

Electric Guitar
Many rock performers hold the electric guitar lower than the classical position. The neck is held horizontally, rather than at a 45 degree angle. This allows bends to be more easily achieved and also allow the same hand angle to be maintained when moving up the neck through box positions. playing in extremely high fret positions is also facilitated by this angle as the left hand twist to accommodate playing in the cutaway in a way that would be straining and more difficult in the classical position.

Lapsteel or Hawaiian guitar
With these styles, the guitar is played horizontally, so the frets and strings point upwards. Some skilled players can fret notes and play chords by pressing down on the strings, but more often these guitars are played with a slide.

Standing
If you have a guitar strap, available from any guitar store for a few dollars, then you can also learn to play standing. This is useful if you plan on playing in a band. If you have a heavy guitar a broad guitar strap is often more comfortable than a thin strap. To attach a strap, there should be a hole in each end that you can put over two pins, usually fitted on the endblock of the guitar and where the neck meets the body. Many acoustic guitars only have one pin on the end block, and straps must be attached under the strings above the nut on the headstock. However, this sometimes makes it difficult for keep the guitar at an optimum height and can cause shoulder strain. You can usually install a second pin where the neck meets the body, but you should be careful or you might damage (and devalue) your guitar.

With the strap attached to the guitar, sling it so that it hangs around your neck on your left shoulder. You can usually adjust the height of the guitar, but the exact method depends on each strap. The length of the strap depends on your preferences, but you can use the same guidelines in found in the previous section. Some professionals have their guitar hanging down at their knees, and others keep it under their shoulders. Neither of these extremes are recommended for a beginner.

Using the Picking Hand
Please see the Picking and Plucking section for more information.

Much of the "feel" of a guitar style comes from the way the strings are hit. Since there are many different techniques, and often they defy explanation, it is difficult to explain all but the most basic techniques. How a player hits the strings is something they must discover for themselves.

In order to advance with the guitar, it is very important to properly use your picking, or impact hand. This should almost always be your dominant hand, so if you are right handed, you would use your right hand for your picking hand, and vice versa for left handed people. This hand should always be loose, because if it is not, the strings can sound clunky.

Your hand should "float" at a comfortable height above the sound hole, and you should be keeping your wrist straight or slightly bent. You should always be ready for movement in either direction, and your wrist should not touch the strings as you are strumming (unless you are doing some sort of muting technique). You can use your fourth finger to brace against your guitar, but this is considered bad in the long term; this is like a crutch, and you are limiting the potential you can get from practicing with your whole arm. For example, even though the brace will let you pick notes faster, it sometimes limit your ability to play complex rhythms using chords. While it might be good to practice using your fourth finger for a brace sometimes, you will become a better guitar player if you don't brace yourself like that.

It doesn't matter if you are using a pick or just your fingernails, whenever your impact hand hits the strings, the type of hit can be changed based on the tension of your upper finger joints. This is the area to pay attention, because slight variations in pressure and speed can make distinctly different sounds.

Fingers
The fingers can be used in two main ways, through finger picking or strumming through chords like using a pick. There are several styles of finger picking, such as Travis picking, where you only use the thumb and first finger, and other styles where you use three, four or all five fingers.

Using a Pick
Hold the pick in between your first finger and your thumb. Don't pinch it, hold it firm but loose, with the pick flat in between the side of your first finger and the bottom of your thumb. Your thumb should be in line with the first segment of the first finger, with the pick firmly (but not tightly) between. When you pick, your wrist should be loose, and the main motion comes from your wrist for picking on one string, and you should use the Elbow for crossing strings. Similarly, when you strum, make sure to use your forearm and not your wrist for strength. Your wrist should be loose enough, but controlled, and the power should come from your forearm.

It is helpful to imagine the pick like a small bird between your thumb and finger; you do not want it to fly away, and you do not want to crush it.

Using the Fretboard
The most important things to remember when playing are to keep your hand loose, avoid unnecessary movements and finger spreading, and not to smother the strings. Having good flexibility in your hand is one thing, but trying to reach too far can be exhausting. Keep your fingers tight together, but not cramped. In general, when playing acoustic instruments you should always use the tips of your left hand fingers and not the pads to press the strings. If you use the pads, you risk muffling the sound coming from adjacent strings, which may be required to be heard. The greater sustaining properties of electric guitars often requires that such strings be damped so this rule does not always apply. Ideally your left elbow should be extended from your body, and your left hand should curl in towards your body. Your fingers should be like little hammers hitting down on the strings, and this way you will use the tips to push the strings down into the frets.

Regardless of where you are playing on the fretboard, you always have to make sure that you're pressing down in the best spot to get the best sound. You should always be fretting down the string slightly behind the fret of the note you want to play. Press the string down firmly to the fretboard, close to the metal fret. If the finger is too far away from the fret, then the pressure is not sufficient to press the string down completely on the frets, and the note will buzz. If you are pressing too close to the fret you will sometimes accidentally play a note too high. You'll have to practice to get the right amount of pressure to use and the right distance at which to hold your arm. Be careful on how you hold strings

Chords
Please see the Chords section for more information

A chord is defined as three or more different notes sounded at the same time. Ability to play chords is a basic requirement of most guitar music. There are many different types of chords, and each type has its own sound. Other things about the guitar affect how a chord sounds.

Generally, playing chords involves pressing several (and sometimes all) of the strings down on the frets. Sometimes this can be very tough for beginners until their muscles develop. Often a beginner will find that when playing a chord, not all the strings are being pressed down properly, and some strings sound dead. It is important to make sure that all the strings ring out, which can be tested by picking up and down a chord, and adjust your fingers when needed. It doesn't matter how fast or loud you can play, if your chords are not fretted properly you will sound terrible.

Some players use their thumbs to play the low E string. They do this by turning their fretting hand slightly out and squeezing the thumb down on the string. Players with long thumbs can play on the low E and A strings. This technique compromises efficient left hand function as the wrist and hand have to undertake significant re-adjustment in order present the thumb to the string in such a manner and then to return the hand to its standard presentation. Additionally the tips of the fingers can no longer be presented vertically to the strings. The technique is not recommended for beginners who wish to maximise their technical abilities.

Your hand is in a different position depending on whether you are playing an open chord or a barre chord.

Melody
When a player is first starting out, it is not their ability to make melodies causing problems, it is a lack of skill in their hands. Many people can whistle or hum a melody, but have difficulty translating that to the fretboard. Learning the sound of different intervals between notes takes time and patience.

The best way to learn how to carry a melody on the guitar is simply to keep practicing. Unfortunately there is no secret to being a good player, you simply have to practice and learn for yourself. This is good though, because even if there was some secret, if everyone did the same thing, then all the music would sound the same. For general advice about learning about melody, see the Lead Guitar and Rhythm Guitar page

Coordinating Your Hands
Truly great guitar playing comes from the unison of the left and right hand. Unless both hands are connecting with the strings at the proper time, your playing will sound sloppy. So it is very important to start out slow and work your way up to playing faster.

What's Next?
Now that you have some basic control over the guitar, you're ready to start playing. A good place to begin is by exploring some of the other styles and techniques listed on the main page. The most important thing to remember is that you become a good player by practising properly, and accurately. It is always better to learn and practice a piece slowly, and then increase your speed as your increase your skill and comfort, rather than struggling through it a few times and just considering it "learned".

title: Guitar/The Basics


text:
Biblical Studies/Christianity/The Church of Jesus Christ of Latter-day Saints

Table of Contents

 * 1) /The Gospel of Jesus Christ/
 * 2) /The Great Apostasy/
 * 3) /Joseph Smith/
 * 4) /Prophets and Apostles/
 * 5) /Scriptures/
 * 6) /Priesthood/
 * 7) /Relief Society/
 * 8) /Families/
 * 9) /Temples/
 * 10) /Tithing/
 * 11) /Law of Chastity/
 * 12) /Temporal Welfare/
 * 13) /Missionary Work/
 * 14) /Church Service/
 * 15) /Church Buildings/
 * 16) /Church Meetings/


text:
Biblical Studies/Christianity/The Church of Jesus Christ of Latter-day Saints/The Gospel of Jesus Christ

The Gospel of Jesus Christ
The Church of Jesus Christ of Latter-day Saints teaches that the gospel was the same gospel from the time of Adam through to today, all of it the gospel of Jesus Christ. Old testament prophets made animal sacrifices as a symbol of the sacrifice that Jesus Christ would make with his atonement.

In the meridian of time, Jesus Christ taught and lived his gospel. His mortal ministry ended with his death. His apostles continued to teach his gospel until they too were killed. This resulted in a falling away from the truth, or apostasy.

In 1820, 14-year-old Joseph Smith prayed to know which church he should join. In answer to his prayer, God the Father and Jesus Christ appeared to Joseph and told him to join none of them. He was directed to retore the gospel of Jesus Christ to the earth. This he did as well as translating more scripture and becoming the first prophet of this, the final dispensation.

Fourteen prophets have followed Joseph Smith, up until Gordon B Hinckley, today (Oct 2006). They each have been designated as the Lord's mouthpiece to the world and presidents of The Church of Jesus Christ of Latter-day Saints.

Throughout this history, the gospel of Jesus Christ has been the same. It's central figure, savior, and leader is Jesus Christ. Before the time of Christ, the gospel looked forward to the ministry of Christ. After the time of Christ, the gospel looks back on his mortal ministry and forward to the time of his second coming.

Next: ../The Great Apostasy/


text: The Church of Jesus Christ of Latter-day Saints


text:
Biblical Studies/Christianity/The Church of Jesus Christ of Latter-day Saints/The Great Apostasy

The Great Apostasy
The Lord Jesus Christ implemented his gospel while he was on the earth in the meridian of time. Then there came a falling away, or an apostasy. The apostle Paul prophesied of this Great Apostasy. Regarding the second coming of the Savior, he said, "Let no man deceive you by any means: for [that day shall not come], except there come a falling away first, and that man of sin be revealed, the son of perdition;" (2 Thessalonians 2:3). There would be a falling away, but God would not forget his people. There would be a restoration.

Next: ../Joseph Smith/


text:
User:Trondtr

I am Trond Trosterud, a Norwegian linguist, specialised in morphology and language technology for Uralic languages.

My personal home page is here, and my main wikipedia user page is on the Nynorsk Wikipedia, cf. also my user page on the English Wikipedia.

title: User:Trondtr


text:
Biblical Studies/Christianity/The Church of Jesus Christ of Latter-day Saints/Joseph Smith

Joseph Smith
In 1820, Joseph Smith Jr. was a 14-year-old boy in upstate New York. There was a great excitement in the area about religion. Young Joseph attended their meetings "as often as occasion would permit." He had a hard time determining which sect he should join, however. They all interpreted the Bible so differently that he lost all hope of answering the question by an appeal to the Bible.

One day, while reading his bible, he came across a passage in James 1:5, which reads, "If any of you lack wisdom, let him ask of God, that giveth to all men liberally, and upbraideth not; and it shall be given him."

Joseph decided to do as the scripture directed and ask God. On a spring morning in 1820, he went to a grove of trees near his home and asked God in prayer for a forgiveness of sins. In answer to his prayer, God the Father and Jesus Christ appeared to him. He asked the personages "which of all the sects was right" and was told that none of them contained a fullness of the gospel. Joseph was to restore the Church of Jesus Christ to the earth as it had been in the time of Jesus' ministry. On April 6, 1830, the Church of Jesus Christ of Latter-day Saints was formally organized, and from that time the fullness of the gospel of Jesus Christ has been restored to the earth.

Next: ../Prophets and Apostles/


text:
Biblical Studies/Christianity/The Church of Jesus Christ of Latter-day Saints/Prophets and Apostles

Prophets and Apostles
Prophets such as Noah, Enoch, Abraham, Moses, Isaiah, and Elijah can be found throughout the Old Testament. The president of The Church of Jesus Christ of Latter-day Saints is the Lord's prophet today. He has two counselors. The three of them make up The First Presidency of the church. There have been 14 church presidents (as of Oct 2006) since Joseph Smith, the first prophet, in 1830.

When Jesus came to earth, he called twelve apostles to work with him. Today's church also has twelve apostles. The church has both The First Presidency and The Quorum of Twelve Apostles in the top levels of its church leadership. They meet regularly to discuss church business. This is so that the church can be "built upon the foundation of the apostles and prophets, Jesus Christ himself being the chief corner [stone]" (Ephesians 2:20).

Next: ../Scriptures/


text:
Cookbook:Liver

The largest and one of the most important organs, liver has immense nutritional value, providing, that is, that it comes from a fairly young animal. Because liver acts as a clearing house for substances that enter the body, it tends to store and absorb unwanted chemicals, medicines and hormones that an animal might be fed. Naturally, the older the animal the greater the accumulation of these unwanted substances, which, according to some, offset liver's nutritional value. For this very reason, many people choose the more expensive calf's liver over beef liver. There are several ways to distinguish between the two. The color of beef liver is reddish-brown, compared to the paler pinkish-brown of calf's liver. Liver from a mature animal also has a stronger odor and flavor than that from a youngster. Additionally, it will be less tender.

Besides beef and calf's, the most common animal livers used in cookery are lamb, pork, poultry and goose. The latter used mainly to produce Pâté de foie gras. The strongest-flavored and least tender of the livers is pork, while poultry livers are the most mild and tender of the lot.

All livers are usually available fresh — beef and chicken livers may also be purchased frozen (though the quality of frozen liver is considerably lower than that of fresh). Look for liver that has a bright color and moist (not slick) surface. It should have a fresh, clean smell. Refrigerate loosely wrapped for no more than a day.

Liver can be prepared in a variety of ways though quick sautéing is the most popular. Many recipes call for the liver to be cleansed by covering it with milk for an hour and then rinsing the milk off, this removes the sometimes bitter taste. Liver toughens quickly with overcooking.

Liver is rich in iron, protein and vitamin A.

title: Cookbook:Liver


text:
Cookbook:Pumpkin Seed

Edible pumpkin seeds (also called pepitas) are a popular ingredient in Mexican cooking. With their white hull removed, they are a medium-dark green and have a deliciously delicate flavor, which is even better when the seeds are roasted and salted.

Pepitas are sold salted, roasted and raw, and with or without hulls. They are a great healthy snack and rich in vitamin b. They're available in health-food stores and an increasing number of supermarkets worldwide.

Pumpkin seeds also provide the basis for pumpkin seed oil, which is growing in popularity. The oil has a lovely dark green color and is a valuable nutty tasting flavoring for salads.

Pumpkin seeds are occasionally served as a snack during autumn holidays like Halloween or Thanksgiving. Often they are prepared by separation from orange pumpkin flesh, mixture with a generally salty sauce (Worcestershire sauce, for example), even distribution on a baking sheet, and oven-heating at a relatively low temperature for a long period of time.

How to Bake

 * 1) First cut open the pumpkin. Use your fingers to separate the pumpkin guts from the seeds. Do not rinse the seeds in order to retain their flavor.
 * 2) Pre-heat the oven to 375. Line a baking sheet with non-stick foil. Toss the pumpkin seeds in olive oil, butter or cooking spray and spread the pumpkin seeds evenly over the tinfoil. Sprinkle the pumpkin seeds with salt, garlic powder, onion powder, cayenne pepper, or your choice of seasoning.
 * 3) Bake for 1/2 an hour or until golden brown. Toss every ten minutes or so in order to make them bake evenly. Let them cool before eating.

title: Cookbook:Pumpkin Seed


text:
Cookbook:Yeast

| Basic foodstuffs | Leavening Agent Yeast is a living, microscopic, single-cell organism that, as it grows, converts its food (through a process known as fermentation) into alcohol and carbon dioxide. This trait is what endears yeast to wine makers, brew masters, and bread bakers, and they are often used in the production of alcoholic beverages and in the baking industry. Yeasts can be found on some plants and flowers, on the surface of skins, as well as in the intestinal tract of warm-blooded species

Uses
In the making of wine and beer, the manufacture of alcohol by baker's yeast is desired and necessary for the final product, and carbon dioxide is what makes beer and champagne effervescent.

The art of bread-making needs the carbon dioxide produced by yeast in order for certain doughs to rise and expand, becoming lighter and fluffier in consistency. To multiply and grow, all yeast needs is the right environment, which includes moisture, food (in the form of sugar or starch) with warm, nurturing temperatures 21–29.5 °C (70–85 °F) best, and with 26–27 °C (79–81 °F) optimal. Within those temperature ranges, warmer temperatures result in faster fermentations, and cooler temperatures in slower ones for both sourdough and baker's yeast breads. As the yeast consumes the sugar and starch in the dough it produces small pockets of carbon dioxide. As the dough bakes, the carbon dioxide expands, and gives the bread its airy texture.

Types of Yeast
The three yeast types commercially available are baker's yeast, brewer's yeast and nutritional yeast. Baker's yeast, as the name implies, is the type used as a leavening agent.

Baker's Yeast
Baker's yeast is categorised into three basic types — dry yeast, compressed fresh yeast, and yeast starters.

Dry yeast is widely available in at least two forms, active dry yeast and quick-rising, of which the latter takes about half as long to leaven bread. They may be used interchangeably (with adjustments in rising time) and both are available in 1/4-ounce envelopes. Dry yeast may be purchased in 4-ounce jars, larger 1 and 2 lb packages, or in bulk at some health-food stores. It should be stored in a cool, dry place, but can also be refrigerated or frozen. It should always be at room temperature before being dissolved in liquid. Properly stored, it's reliable when used by the expiration date, which should be stamped on the envelope or jar label.

 * Active dry yeast is in the form of tiny, dehydrated granules. The yeast cells are alive but dormant because of the lack of moisture.  When mixed with a warm liquid (40° to 46°C / 105° to 115°F), the cells once again become active.  One package of active dry yeast is equal to 1.8 teaspoons dry yeast or 1 cake of compressed fresh yeast.

 * Instant yeast is a form of dry yeast similar to active dry, but the granule size is slightly smaller. It has a useful property, it doesn't need to be pre-dissolved with warm water thus it may be mixed into dry flour before adding water.

 * Osmotolerant yeast is also supplied in the form of dry instant yeast, although it is a little more difficult to obtain. It is used as an alternative to increasing the inoculation in doughs that contain a lot of sugar which otherwise causes sluggish or arrested growth.

Compressed fresh yeast, which comes in tiny, square cakes of about 17g, is moist and extremely perishable. It must be refrigerated and used within a week or two, or by the date indicated on the package. One cake of fresh yeast can be substituted for one 1/4-oz envelope of dry yeast. In the United States, the use of compressed fresh yeast has been mostly replaced by the more longer-lasting active dry yeast. According to Stanley Cauvain who wrote Bread Making: Improving Quality, fresh yeast should never exceed 2.5% of the flour weight to avoid an undesirable yeast flavor in the baked product.

A method to control the rising time of any yeast leavened dough is to increase or decrease the inoculation, which is expressed as a percentage of the flour weight. Yeast is portioned by weight, although approximate volumetric substitutions are commonly used. For home bakers, because of the small amount of yeast used to make a single loaf of bread, a scale with an accuracy of 1/100th to 1/1000th g is needed. Multipliers may be applied to either the yeast percentage or weight to adjust for fresh, active dry, or instant yeasts, which are otherwise generally interchangeable with each other, however, there are times when a specific yeast type is desired.

In order to keep the rising time roughly equivalent: to use active dry yeast instead of fresh yeast, multiply fresh yeast by about 42%; to use instant yeast instead of fresh yeast, multiply fresh yeast by about 31.5%. To use instant yeast instead of active dry yeast, multiply active dry yeast by 75%. To convert in the other directions, divide instead.

All baker's yeast should be given a test called proofing to make sure it's still alive. To proof yeast, dissolve it in warm water and add a pinch of sugar. Set the mixture aside in a warm place for 5 to 10 minutes. If it begins to swell and foam, the yeast is alive, active and capable of leavening bread. If this yeast is then used in a dough, it is a type of yeast starter.

Yeast starters are not actually a form of yeast, but instead indicate a wide variety of processes whereby a small amount of yeast is used to inoculate water mixed with a food source such as malt or flour or other sources of sugar or sugars (saccharides). Both bread bakers and brewers use yeast starters: these are basically techniques of growing larger amounts of the freshest, pure yeasts from a smaller inoculation. Baker's techniques may include the growing of yeast as a beer brewer might, and historically did before the mass production of baker's yeast, but today usually refers to what are called sponges, mixtures of water and flour of various hydrations inoculated with an unusually small amount of baker's yeast. These are carefully managed with temperature over time and, beyond their yeast multiplication effect, also are practiced for their beneficial enzymatic effects on the starch and protein matrix, all leading to improved flavor and other desirable characteristics in the baked product.

Brewer's Yeast
Brewer's yeasts are special non-leavening yeasts used in beer making. Because it's a rich source of B vitamins, brewer's yeast is also used as a food supplement. It's available in health-food stores. Brewer's yeasts are also marketed in specialty beer making equipment shops, with different strains used for different beers. Top-fermenting yeasts are able to produce a bigger alcohol level and need higher temperatures during the production process. Hence, they produce sweeter and ale-type beers. Bottom-fermenting yeasts, on the other hand, are able to ferment more sugars and need lower temperatures during the production process. These kinds of yeasts are used to produce lager-beers rather than ale-type beers. Historically, top-fermenting beer yeast was also used for leavening bread.

Nutritional Yeast
Nutritional yeast, similar to brewer's yeast, is a nutritional supplement popular with vegans and the health conscious, who use it as an ingredient in recipes or simply as a condiment. It is a deactivated yeast, usually Saccharomyces cerevisiae.

It is a source of protein and vitamins, especially the B-complex vitamins. It is also naturally low in fat and sodium. Some brands of nutritional yeast, though not all, are fortified with vitamin B12. The vitamin B12 is produced separately from bacteria and then added to the yeast.

Nutritional yeast has a strong flavour that is described as nutty, cheesy, or creamy, which makes it popular as an ingredient in cheese substitutes. It is often used by vegans in place of Parmesan cheese. Another popular use is as a topping for popcorn. Some movie theatres offer it along with salt or cayenne pepper as a popcorn condiment.

It is commercially available in the form of flakes, or as a yellow powder similar in texture to cornmeal, and can be found in the bulk aisle of most natural food stores. In Australia it is sometimes sold as "savoury yeast flakes." In Canada it has been known to be called "good tasting yeast."

Nutritional yeast is different from yeast extract, which has a very strong flavour and comes in the form of a dark brown paste. Other species of yeast are used for making beer, wine, and bread.

History
Wild yeast spores are constantly floating in the air and landing on uncovered foods and liquids. No one's sure when these wild spores first interacted with foods but it's known that the Egyptians used yeast as a leavening agent more than 5,000 years ago. Wine and other fermented beverages were made for millennia before that. Today, scientists have been able to isolate and identify the various yeasts that are best for wine making, beer making and baking.

title: Cookbook:Yeast


text:
Cookbook:Spaghetti Squash

Also called vegetable spaghetti, this creamy-yellow, watermelon-shaped winter squash was so named because of its flesh, which, when cooked, separates into yellow-gold spaghetti-like strands.

Averaging from 4 to 8 pounds, spaghetti squash are available year-round with a peak season from early fall through winter. Choose squash that are hard and smooth with an even pale yellow color. Avoid greenish squash (a sign of immaturity) and those with bruised or damaged spots.

Store uncut spaghetti squash at room temperature for up to 3 weeks. After the whole squash is cooked, the rather bland-tasting strands can be removed from the shell and served with sauce, like pasta. They can also be served as part of a casserole or cold as a salad ingredient.

The skin is very tough and should generally not be eaten.

Procedure
Spaghetti squash is easily cooked using an oven, microwave, stove top, or slow cooker.

Quick baked spaghetti squash
Cleaning out the seeds while it's raw keeps them from polluting the rest of it, using a microwave oven to steam the flesh loose speeds up the process, while baking in a conventional oven adds a delicious toasted flavor:

Slice squash in half lengthwise, scoop out seeds and fibers, pierce flesh with fork (taking care not to penetrate shell.)

Preheat oven to 350°F.

Pour 1/4 cup of water into each half and cover tightly with polyethylene plastic wrap, microwave each half separately for 8 minutes on high.

Remove plastic and pour out water (otherwise the squash will be too soggy after baking,) rake flesh from shell into loose strings with a fork and add desired flavorings (butter, maple syrup, etc…)

Place halves onto pan or cookie sheet and bake for about an hour or until some of the strings at the top and the edges of the shell begin to be toasted black and brown. Scoop stringy flesh out of shells and serve.

Bake in Oven

 * Pierce the whole shell several times with a large fork or skewer and place in baking dish
 * Cook squash in a preheated 375°F (190°C) oven for approximately 1 hour or until flesh is tender

Microwave

 * Cut the squash in half, lengthwise
 * Remove the seeds
 * Place squash with the open side up in a microwave dish using 1/4 cup of water
 * Cover with plastic wrap and cook on high for 10 to 12 minutes, depending on size of squash

Stove (Boiling|Boil)

 * Heat a pot of water large enough to hold the whole squash
 * When the water is boiling, drop in the squash and cook for 20 to 30 minutes, depending on its size
 * When a fork goes easily into the flesh, the squash is done

Slow cooker (Crock pot)

 * Place the spaghetti squash in the slow cooker, and add 2 cups of water
 * Pierce the whole shell several times with a large fork or skewer
 * Cover and cook on low for 8 to 9 hours
 * Stand squash covered for 5 minutes and, using a fork, comb out the strands

title: Cookbook:Spaghetti Squash


text:
Cookbook:Sunflower Seeds

Sunflower seeds, sunflower kernels or sunflower hearts are the hulled fruit of the common sunflower (Helianthus annuus). The seeds sold for food usually have striped hulls.

They are available in the shell or hulled, raw (dried) or roasted. Roasted sunflower seeds may be plain or have salt or other flavorings added.

Sunflower seeds may be ground into sunflower butter and used as a substitute for peanut butter in settings where peanut allergies are an issue.

title: Cookbook:Sunflower Seeds


text:
The Cold War/The Berlin Airlift

The Western powers and the USSR emerged victorious out of World War Two and agreed to divide Germany and the capital, Berlin (which was in the Soviet zone) between them into four zones. However, they disagreed over how the country should be run.

The Western powers (Britain, France and the USA) wanted to help rebuild the German economy and infrastructure and get it back on its feet as soon as possible, whereas Stalin hand, wanted compensation and reparations to be paid for the damage done to the Soviet Union during the war. He also wanted to ensure that Germany would never again be able to invade the USSR.

The Soviets transported factory machinery and other goods back to the Soviet Union, from East Germany, and when Harry Truman, the US president, refused to let the Western zones of Germany pay reparations to the USSR, Stalin reacted by putting a communist government in the Soviet zone.

A New Currency
In June 1948, a new currency, the Deutschmark, was introduced in the Western zones and in West Berlin to help tackle inflation and bring back prosperity to the nation. However, the Soviets viewed this as a threat and were frightened that this would bring the whole of Berlin, and therefore the whole of the Soviet zone under Western, capitalist influence.

Berlin Blockade
The USSR responded by closing all rail, road and canal links carrying vital supplies from the Western half of Germany into West Berlin in an attempt to starve the people of West Berlin and force the Western powers out of Berlin. However, the Western powers responded by airlifting the much-needed supplies into Tegel and Tempelhof Airports, in West Berlin. This came to be known as the "Berlin Airlift", and lasted for almost a year, from 28th June 1948 until 11th May 1949.

A total of 278, 228 flights were made in and out of Berlin, by USAF, RAF and civilian planes delivering over two million tons of supplies, including food, clothing, medicine, coal and building supplies. Stalin eventually realised that the West was determined to hold on to the city and, on the 11th May 1949, he lifted the blockade, and supplies were once again allowed in overland.

The Consequences
The West realized that it was impossible to work with the USSR to run post-war Germany and, on 23 May 1949, they decided to merge their zones into a new and separate, democratic state called the Federal Republic of Germany (West Germany). The Soviet Union responded four months later by turning their zone into a communist state called the German Democratic Republic (East Germany).

Germany and the city of Berlin remained a divided country for the next 41 years until the end of the Cold War, when, in 1990, it was re-unified.

title: The Cold War/The Berlin Airlift


title: User:Mechton/Sandbox6


title: User:Mechton/Sandbox5


text:
Category:Leavening agents

hy:Կատեգորիա:Թթխմորային ազդակներ

title: Category:Leavening agents