in Computer Networks
1,234 views
2 votes
2 votes

What should be the value of Y, when P has no data to send to Q?

in Computer Networks
1.2k views

14 Comments

option D??
0
0
explanation with proper reference?
0
0

x=100, y=100, z=100

if P has no data to send then also it will send pure ACK packet, which will take 1 seq#, but that seq# can be used in next packet as pure ACK packet does not consume any seq#

0
0
P has transferred bytes from 1 to 99 to Q So When Q send ack it contains the byte number it is expecting next i.100[ So X=100]
 So when P sends ack for data it has received from Q So ack no i.e Y=300 as it has already received till 299 and now it is expecting 300.
Also though it is pure ack which does not eat any sequence number but we have to send Seq=100 and after this if P has data to send then P can again use this sequence number bcz pure ack does not eat sequence number
0
0

@nitish @akb

Before you reach a conclusion, see this following screenshot from Forozuan:

see, sequence is used s 10000 but not as 10001 because, if the sequence is 10001 then it means client is sending a byte as requested by server.

0
0
ack 10001 says it has received bytes upto 10000 and expecting 10001

but why again sender sending seq:10000 it should be 10001 ...

and moreover seq:10000 says that the first byte has number 10000..but its already received at receiver

please clear this ...
1
1
in your flow diagram,

seq#10000 is already consumed by data in previous packet, so how could seq#10000 can be reused again before wrapping period..
1
1
@nitish it's because client has nothing to send to server.
0
0
Yes we know it has nothing to send but now the server is expecting 10001 and if we send again 10000 it will simply discard it.
0
0
@akb can you provide any screenshot from any book to prove your point as i did?
0
0

See here when User(left hand side )sends pure ack i.e no data then seq=43 not 42

2
2
edited
@akb

this seems correct! but what does this mean that server is sending back the same data to client? what is title of this diagram? can you post the whole page please here, please?
0
0

It is from kurose and ross book page number 237

link of this book

http://web.csulb.edu/~rlaster/docs/cecs572.pdf

1
1
Many thanks @akb!
0
0

2 Answers

3 votes
3 votes
Best answer

Here we know that : 

TCP is full duplex as far as data communication is concerned . Also acknowledgement is piggy-backed here i.e. acknowledgement along its own data is sent by the receiver to sender and vice versa in their own turns.

So

a) Sender sends data with sequence numbers (0 - 99) to receiver at the first step.

b) Receiver is free to send data beginning with other sequence number so sends data from sequence number (200-299)..And it sends the acknowledgement as well with the acknowledgement number as indicated by the next byte sequence number it is expecting from sender which is 100 in this case.So X = 100

c) So sequence number in the next round by the sender will be (100) i.e. sender will start transmitting from sequence number 100.At the same time it acknowledges receiver data and hence sends next expected byte sequence no from receiver which is 300 in this case.So Y = 100 , Z = 300

From "Computer Networking A Top Down Approcah by Kruose"

Hence D) should be correct option.

selected

4 Comments

@habib whatever you explained if it is true :) then definitely same should be in some book?
0
0
Keep on doubting . Same u can verify from previous year's questions also.
0
0
ok, link of any previous year questions?
0
0
–2 votes
–2 votes
option D

1 comment

This is a place of systematic discussion @1gate_cracker..Not the platform for playing KBC by reporting just option a) ,b) etc..I hope my message is clear to you @1gate_cracker..:)
0
0

Related questions