# Lab 4
### 4-1 What is the IP address and TCP port number used by your client computer (source) to transfer the file to gaia.cs.umass.edu?
::: info
Ans: 192.168.1.106, 63583

:::
### 4-2 What is the sequence number of the TCP SYN segment that is used to initiate the TCP connection between the client computer and gaia.cs.umass.edu? What is it in the segment that identifies the segment as a SYN segment?
::: info
The sequence number of the TCP SYN segment is 0 since it is used to imitate the TCP connection between the client computer and gaia.cs.umass.edu.
According to below figure, in the Flags section, the Syn flag is set to 1 which indicates that this segment is a SYN segment.


:::
### 4-3 What is the sequence number of the SYNACK segment sent by gaia.cs.umass.edu to the client computer in reply to the SYN? What is the value of the Acknowledgement field in the SYNACK segment? How did gaia.cs.umass.edu determine that value? What is it in the segment that identifies the segment as a SYNACK segment?
::: info
The value of the acknowledgement field in the SYNACK segment is 1. The value of the ACK field in the SYNACK segment is determined by the server gaia.cs.umass.edu. The server adds 1 to the initial sequence number of SYN segment form the client computer. For this case, the initial sequence number of SYN segment from the client computer is 0, thus the value of the ACK field in the SYNACK segment is 1.

:::
### 4-4 What is the sequence number of the TCP segment containing the HTTP POST command? Note that in order to find the POST command, you’ll need to dig into the packet content field at the bottom of the Wireshark window, looking for a segment with a “POST” within its DATA field.
::: info
1

:::
### 4-5-1 Consider the TCP segment containing the HTTP POST as the first segment in the TCP connection.What are the sequence numbers of the first six segments in the TCP connection (including the segment containing the HTTP POST)?
::: info
Segment 1 sequence number is 1
Segment 2 sequence number is 579
Segment 3 sequence number is 416
Segment 4 sequence number is 1164
Segment 5 sequence number is 3252
Segment 6 sequence number is 5000
:::
### 4-5-2 At what time was each segment sent?When was the ACK for each segment received? What is the RTT value for each of the six segments?
::: info
Sent Time ACK Time RTT
05.003220 05.229284 0.226064
05.003582 05.246693 0.243111
05.003582 05.255980 0.252398
05.003582 05.269617 0.266035
05.003582 05.280389 0.276807
05.003582 05.294617 0.291035
:::
### 4-5-3 What is the Estimated RTT value after the receipt of each ACK?
::: info
ERTTt1 = SRTTs1 = 0.226064
ERTTt2 = 0.875 ∗ ERTTt1 + 0.125 ∗ SRTTs2
= 0.875 * 0.226064 + 0.125 * 0.243111
= 0.22819488
ERTTt3 = 0.875 ∗ ERTTt2 + 0.125 ∗ SRTTs3
= 0.875 * 0.22819488 + 0.125 * 0.252398
= 0.23122027
ERTTt4 = 0.875 ∗ ERTTt3 + 0.125 ∗ SRTTs4
= 0.875 * 0.23122027 + 0.125 * 0.266035
= 0.23557211
ERTTt5 = 0.875 ∗ ERTTt4 + 0.125 ∗ SRTTs5
= 0.875 * 0.23557211 + 0.125 * 0.276807
= 0.24072647
ERTTt6 = 0.875 ∗ ERTTt5 + 0.125 ∗ SRTTs6
= 0.875 * 0.24072647 + 0.125 * 0.291035
= 0.24701504
:::
### 4-6 What is the length of each of the first six TCP segments?
::: info
707, 1400, 1400, 1400, 1400, 1400
:::
4-7 What is the minimum amount of available buffer space advertised at the received for the entire trace? Does the lack of receiver buffer space ever throttle the sender?
::: info

:::
### 4-8 Are there any retransmitted segments in the trace file? What did you check for (in the trace) in order to answer this question?
:::info
No, the seq num never drop

:::
### 4-9 Can you identify cases where the receiver is ACKing every other received segment.
:::info
next seq no = prev seq no. + ack size
ACK ACK Sequence Number Acknowledged data
1 708 707
2 2108 1400
3 3508 1400
4 4908 1400
5 6308 1400
6 7708 1400
:::
### 4-10 What is the throughput (bytes transferred per unit time) for the TCP connection? Explain how you calculated this value.
::: info

data: 153829-1 = 153828 bytes
time:06.618555-05.003220 = 1.615335 sec
throughput = 153828/1.615335 = 95.22978241 KB/s
:::