Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranî)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
When using TCP, devices must first establish a connection with a peer system 2
before data transmission can take place 3
so connection orientated session will be established between host A and host B 4
One machine will initiate the connection which must then the accepted by the other machine. 5
Protocols software modules in the operating systems of the host devices 6
communicate with each other by sending messages across the network 7
to verify that the transfer is authorized 8
and that both sides are ready for the transmission of data. 9
For this to take place a three-way handshake occurs between the host devices using TCP. 10
So host initiating the session will set the SYN flag or SYN bit 11
in the TCP header of the initial segment send to host B. 12
Host A will also choose an initial sequence number 13
which in this example let's say 100. 14
So the control flag SYN is set on 15
and the sequence number is set to an initial value of 100. 16
This is then used to start the handshake process. 17
This synchronization segment also specifies the number of the port 18
to which the sender wants to connect for instance port 80 or HTTP. 19
The host on the right hand side will be waiting for a connection request 20
from the remote client, in this case host A. 21
when the SYN is received and accepted 22
host b will send back a TCP segment with both the SYN and ACK flags set. 23
So the control flags SYN and ACK are set on 24
and use to negotiate the connection 25
and acknowledge receipt of the initials synchronization segment of the sender. 26
B also set an initial sequence number 27
to indicate the next sequence number of the next byte of data 28
it expects to receive from host A. 29
host B also sets the acknowledgement flag to, in this case 101 30
an ACK flag indicates, the next portion of data, the host expects to receive. 31
So host A initially sent a sequence number of a 100 32
and host B, in this case were assuming a window size of 1 33
sends back an acknowledgement of a 101. 34
The third step in the three-way handshake is where the initiating host 35
in this case host A has received the SYN from host B and sends back a TCP segment 36
with the control field set to ACK, in other words acknowledgement. 36
Host A is therefore acknowledging the next segment it expect to receive from host B 37
in this case 301, initially host B sent a sequence number of 300. 38
So host A is expecting the next segment 301. 39
Host A sets it's sequence number to 101. 40
The initial segment sent was 100 and the next one in this case is 101 41
because the SYN bit or SYN flag is unset 42
this confirms that three-way handshake has completed successfully. 43
Just to reiterate, the control bits or flags initially A 44
sends a segment with the SYN bit or SYN flag set on. 45
So the control flag SYN is set to 1. 46
Host B in the second step of the three-way handshake 46
sets its control flags or bits to SYN ACK. 47
In other words the SYN bit is set to 1 48
and the ACK bit is set to 1. 49
In the last step of the three-way handshake 50
Host A sets the ACK bit to 1 or the ACK flag is set on. 51
The SYN bit or SYN flag is set to 0 to indicate 52
that the three-way handshake has completed successfully. 53
Now sequence numbers and acknowledgements can cause a lot confusion 54
So I'm going to explain them in more detail now. 55
We're assuming in this example, that a window size of 1 is used. 56
Now if you remember the window size is the maximum amount of data 57
that the receiver can receive from a sender and process correctly. 59
So we're going to assume that only 1 segment can be transmitted 58
at any given time before an acknowledgement is received 59
to acknowledge receipt of that segment. 60
So let’s assume A starts with an initial sequence number of 5 61
because of a window size of 1, only 1 segment can be sent from A to B. 62
B successfully receives the segment from A 63
and acknowledges the next segment that it wants to receive. 64
so rather than acknowledging receipt of sequence number of 5 65
it acknowledges for sequence number 6 66
which implies that all previous sequence numbers will receive correctly. 67
So B acknowledges in this case for sequence number 6 68
but B may start with an initial sequence number of 10. 71
so in the TCP header B tells A that its initial sequence number is 10 69
and that its successfully received sequence number 5 from A 70
and is expecting sequence number 6 from A in the next packet. 71
Let’s assume successfully receives that segment 72
so A will now send segment 6 to B 73
in other words the next sequence number. 74
A also acknowledges receipt of segment 10 from host B. 75
So A has successfully received the segment with sequence number 10. 76
Please note once again that the host 77
can randomly choose the initial sequence numbers 78
and thus in the initial three-way handshake 79
that information needs to be communicated between the 2 hosts 80
so that they know what the initial sequence numbers are. 84
So once again A sends sequence number 6 to B and acknowledges sequence 11. 81
Let’s assume B successfully receives that segment 82
and therefore will acknowledge for segment 7. 83
The next segment it expects to receive 84
once again 7 in the acknowledgement indicates that previous segment was successfully received. 85
So host B by setting the sequence number to 7 is telling host A 86
that sequence number 6 was successfully received. 87
Host B sends sequence number 11 88
because that’s the next sequence number that A expects to receive. 89
The thing to note once again, is that initial sequence numbers 90
that the host expects to receive and the sequence of number of for instance 11 91
implies that sequence number 10 and previous sequence number was successfully received. 92
Now once again flow control prevents an issue 93
where the sender is sending so much data 99
that the buffers of the receiver are overflowed. 94
If this is a very powerful machine and this is an older machine 101
that is not as powerful, it’s possible that A can overrun 102
the buffers of B because it’s sending so much data. 103
So B needs a mechanism to tell A to slowdown 95
so that D can successfully process the traffic that it’s receiving. 105
So as an example let’s assume 96
that the window size in this example is 3 rather than 1. 107
So A can send 3 segments of data before getting an acknowledgement. 108
The advantage of increasing the window size is that throughput 109
can increase dramatically because a host can send more data 110
with fewer acknowledgements and therefore the round trip timers decrease dramatically. 111
So in this example A sends 3 segments to B. 112
Let’s assume that the received buffer of B is full 97
and it can't handle that amount of data 114
B will send a not ready indicator to A 115
and it does this by setting the windows size to 0. 98
This tells the sender to stop sending data 117
and wait for ready indicator from the receiver. 118
Assuming that host B has now been able to process the data 119
in it’s receive buffer and can now receive more data. 120
It can send a ready indicator to A, to tell it to resume sending of datagrams. 99
so A resumes the transmission by sending for instance 3 segments to B. 122
Because the window size is 3. 123
So please note in the background the TCP host involve in the conversation 100
can negotiate various parameters and one of them is flow control 125
where a receiver, can tell a sender to slowdown or to stop sending data 126
until the receiver has buffer space available to receive transmitted segments. 101
This is allows for communication between a very powerful 128
or fast machine and a slower or less powerful machine 129
where they can negotiate the rate of transmission.
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.