문제

서브넷 $S_A$에 있는 브라우저서브넷 $S_B$에 있는 EC2로 배포된 FundingBoost 서버는 TCP Tahoe를 이용한 통신을 하려 한다. 클라이언트는 브라우저를 통해 **www.fundingboost.com**으로 접속을 한다. 서브넷 $S_A$ 의 게이트웨이인 라우터 $R_A$는 서브넷 $S_A$에 있는 모든 호스트들의 MAC 주소를 MAC Table에 저장하고 있고, 서브넷 $S_B$의 게이트웨이인 라우터 $R_B$는 MAC Table이 초기화되지 않은 상태이다. $S_A$와 $S_B$ 사이에는 라우터 $R_C$가 존재한다. (라우터 $R_C$는 라우터 $R_A$와 라우터 $R_B$의 MAC 주소를 저장하고 있다)

  1. 브라우저는 도메인 주소를 통해 FundingBoost 서버로 접근하려 한다. 서브넷 S_A의 라우터는 DNS 서버의 IP주소는 알지만 MAC주소는 MAC Table에 저장되어 있지 않다면 어떤 과정을 통해 DNS 서버로부터 FundingBoost 서버의 IP주소를 얻게 되는가? (단, 로컬 DNS 서버에 TLD 서버의 주소가 캐싱되어 있다)
  1. 먼저 로컬 DNS 서버에 접근 하여 요청 (www.fundingboost.com)
  2. 로컬 DNS 에 없다면 Root 혹은 최상위 DNS 서버 주소 반환(.com에 맞게)
  3. 최상위 DNS가 책임 DNS 서버 ip 반환
  4. 해당 Ip를 받아 접근, 이때 Rb에 ip주소 저장
  1. 라우터 $R_A$와 라우터 $R_C$, 라우터 $R_C$와 라우터 $R_B$ 사이는 현재 트래픽이 몰려 혼잡상태이다. ssthresh는 32로 설정되어 있다. cwnd=36일 때 타이머가 완료되어 세그먼트를 받지 못했다고 할 때, 타이머가 완료된 시점까지의 cwnd 값이 변한 값을 모두 적어라. (RTT와 MSS는 1이고, 별도의 지연, rwnd는 가정하지 않는다)

→ 1 2 4 8 16 32

  1. 타이머가 완료된 후의 cwnd와 ssthresh의 값은?

→ 1 16

  1. 서브넷 $S_A$에 있는 브라우저는 DNS를 통해 FundingBoost 서버의 IP주소를 알게 되었다. 하지만, 브라우저가 물리적인 링크를 통해 FundingBoost 서버로 프레임을 전달하기 위해서는 MAC 주소를 알아야 한다. FundingBoost 서버의 MAC 주소를 구하는 과정을 서술하라

  2. 브라우저와 서버는 3way handshaking을 통해 통신을 수행하였다. 이후 통신을 종료할 때는 4way handshaking을 수행한다. 4way handshaking은 어떻게 수행되는가?

(3way handshaking은 syn, syn+ack, ack와 같이 수행된다)

  1. 클라이언트 측에서 헤더 플래그에 FIN=1 을 실어 보낸다
  2. 서버측에서 해당 요청에 맞는 ACK 송신
  3. 서버측에서 헤더 플래그에 FIN=1 을 실은 요청 전송
  4. 클라이언트측 받고 ACK 응답