Wireshark_TCP_v7.0.pdf
2.47MB


1.      What is the IP address and TCP port number used by the client computer (source) that is transferring the file to gaia.cs.umass.edu?  To answer this question, it’s probably easiest to select an HTTP message and explore the details of the TCP packet used to carry this HTTP message, using the “details of the selected packet header window” (refer to Figure 2 in the “Getting Started with Wireshark” Lab if you’re uncertain about the Wireshark windows.

 

>> Source IP address : 192.168.43.253 / Source Port : 2029

 

2.      What is the IP address of gaia.cs.umass.edu? On what port number is it sending and receiving TCP segments for this connection?

 

>> Destination IP address : 128.119.245.12 / Destination Port : 80   (receiving on Port 80)

 

3.      What is the IP address and TCP port number used by your client computer (source) to transfer the file to gaia.cs.umass.edu?

>> 1번과 동일.

 

4.      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?

 

>> TCP connection을 시작하는데 사용되는 The sequence number of the TCP SYN segment 0이다.

>> SYN segment임을 나타내는 SYN 플래그가 메시지에 포함되어 있다.

 

5.      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?

 

>> The sequence number of the SYNACK segment 0이다.

>> The value of the Acknowledgement field1이다. 이 값은 초기 sequence number + 1 이다.

>> 이 메시지에는 SYNACK segment임을 나타내는 플래그가 표시된다.

 

6.      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.

>>The sequence number of the TCP segment containing the HTTP POST command1이다.

 

7.      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)? At what time was each segment sent? When was the ACK for each segment received? Given the difference between when each TCP segment was sent, and when its acknowledgement was received, what is the RTT value for each of the six segments? What is the EstimatedRTT value (see Section 3.5.3, page 242 in text) after the receipt of each ACK? Assume that the value of the EstimatedRTT is equal to the measured RTT for the first segment, and then is computed using the EstimatedRTT equation on page 242 for all subsequent segments. Note: Wireshark has a nice feature that allows you to plot the RTT for each of the TCP segments sent.  Select a TCP segment in the “listing of captured packets” window that is being sent from the client to the gaia.cs.umass.edu server.  Then select: Statistics->TCP Stream Graph>Round Trip Time Graph.

>> The segments 1~6No. 1441, 1442, 1443, 1444, 1445, 1446이다.

>> The ACK of segments 1~6No. 1459, 1460, 1464, 1467, 1470, 1471이다.

 

>> Segment 1 sequence number1.

>> Segment 2 sequence number722.

>> Segment 3 sequence number2132.

>> Segment 4 sequence number3542.

>> Segment 5 sequence number4952.

>> Segment 6 sequence number6362.

  Sent time ACK received time RTT
Segment 1 6.084855 6.331395 0.246540
Segment 2 6.085300 6.331396 0.246096
Segment 3 6.085304 6.332865 0.247561
Segment 4 6.085305 6.334489 0.249184
Segment 5 6.085306 6.340407 0.255101
Segment 6 6.085306 6.340407 0.255101

공식에 따르면 : EstimatedRTT = (0.875 * EstimatedRTT) + (0.125 * SampleRTT) .

Segment 1ACK 수신 후 EstimatedRTT는 다음과 같다.

EstimatedRTT = RTT for Segment 1 = 0.246540 s.

 

Segment 2ACK 수신 후 EstimatedRTT는 다음과 같다.

EstimatedRTT = (0.875 * 0.246540) + (0.125 * 0.246096) = 0.2464845 s.

 

Segment 3ACK 수신 후 EstimatedRTT는 다음과 같다.

EstimatedRTT = (0.875 * 0.2464845) + (0.125 * 0.247561) = 0.2466190625 s.

 

Segment 4ACK 수신 후 EstimatedRTT는 다음과 같다.

EstimatedRTT = (0.875 * 0.2466190625) + (0.125 * 0.249184) = 0.2469396797 s.

 

Segment 5ACK 수신 후 EstimatedRTT는 다음과 같다.

EstimatedRTT = (0.875 * 0.2469396797) + (0.125 * 0.255101) = 0.2479598447 s.

 

Segment 6ACK 수신 후 EstimatedRTT는 다음과 같다.

EstimatedRTT = (0.875 * 0.2479598447) + (0.125 * 0.255101) = 0.2488524891 s.

Round Trip Time Graph

 

8.      What is the length of each of the first six TCP segments?

 

>> 1번째 TCP segment의 길이는 721 bytes.

 

>> 2번째 TCP segment의 길이는 1410 bytes.

 

>> 3번째 TCP segment의 길이는 1410 bytes.

 

>> 4번째 TCP segment의 길이는 1410 bytes.

 

>> 5번째 TCP segment의 길이는 1410 bytes.

 

>> 6번째 TCP segment의 길이는 1410 bytes.

 

9.      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?

>> The minimum amount of available buffer space advertised at the received for the entire trace 은 서버로부터 첫번째 ACK로 표시되며, 값은 29200 bytes. Window의 최대 용량에 도달하지 못하기 때문에, sender never throttled.

 

10.      Are there any retransmitted segments in the trace file? What did you check for (in the trace) in order to answer this question?

 

>> retransmittedsegments는 없다. Time/Sequence(Stevens) 그래프에서 모든 sequence number가 단조롭게 증가하므로 trace 파일에 retransmittedsegments가 없다. 이전 packet을 다시 request하기 위해 이전 Acknowledgement number가 다시 전송되지 않았음을 통해서도 알 수 있다.

 

11.      How much data does the receiver typically acknowledge in an ACK? Can you identify cases where the receiver is ACKing every other received segment (see Table 3.2 on page 250 in the text).

 

>> 2개의 연속된 ACK에서 acknowledged sequence number간의 차이는 서버가 두 ACK간에 수신한 데이터를 나타낸다. ACK 숫자가 722, 2132, 3542, 4952, 6362, 7772의 순서로 증가하는 것을 볼 수 있다. ACK 번호는 매번 1410씩 증가하여, receiver1410 bytesacknowledging하고 있음을 나타낸다.

 

12.      What is the throughput (bytes transferred per unit time) for the TCP connection?  Explain how you calculated this value.

 

Time Send First Segment
Time Send Last Segment

>> Throughput = Amount of data transmitted / time incurred

>> 하드 드라이브에 있는 The alice.txt 152,138 bytes. (= Amount of data transmitted)

>> Time incurred = 7.125273 – 6.331395 = 0.793878 s

>> Throughput = 152138 / 0.793878 191.640 kbytes/second. (=191,639.0175820466116960036680699 bytes/second)

 

13.      Use the Time-Sequence-Graph(Stevens) plotting tool to view the sequence number versus time plot of segments being sent from the client to the gaia.cs.umass.edu server. Can you identify where TCP’s slowstart phase begins and ends, and where congestion avoidance takes over?  Comment on ways in which the measured data differs from the idealized behavior of TCP that we’ve studied in the text.

 

>> TCPslowstart는 약 0.27초 뒤에 끝나는 것 같다. 또한 Congestion avoidance는 전송되는 양을 줄였기 때문에 약 1.02만에 take over. 이 경우 예상되는 선형 증가가 관찰되지 않는다. , TCP transmit window가 선형적으로 증가하지 않는다. 실제로 sender6개 묶음으로 packet transmit하는 것으로 보인다. Receiver advertised windowpacket 5개보다 크기 때문에 flow control에 의한 것은 아닌 것 같다. 이러한 동작의 이유는 HTTP 서버가 일종의 속도 제한을 걸었기 때문일 수도 있다.

14.      Answer each of two questions above for the trace that you have gathered when you transferred a file from your computer to gaia.cs.umass.edu. 이미 위에 대답함.

반응형