본문 바로가기
공부하기!/네트워크

[네트워크] 면접 예상 답변 (전송 레이어)

by 갈매기^0^ 2024. 3. 28.
  • UDP에 대해 설명해주세요.
    더보기
    UDP는 TCP와 마찬가지로 전송계층에서 사용하는 프로토콜로 인터넷에서 데이터를 전송하기 위해 사용되는 프로토콜입니다. TCP와 비교하여 데이터 전송의 신뢰성과 순서를 보장하지는 않지만 연결설정이 필요하지 않아 빠른 속도를 제공하는 경우가 많습니다. 멀티캐스트로 데이터를 전송도 지원하여 모든 데이터 패킷이 도착하는것또한 가능합니다. 그렇기 때문에 실시간 비디오나 오디오 스트리밍 , 온라인 게임과 같은 낮은 오버헤드와 실시간성이 중요한 작업에 주로 사용합니다.
  • UDP의 장단점을 설명해 주세요.
    더보기
    장점으로는 헤더의 양이 8바이트로 작아 오버헤드가 적고, 비연결적이기에 데이터 전송 시간이 빠릅니다. 멀티캐스트와 브로드 캐스트 전송을 지원합니다. 단점으로는 신뢰성이 보장되지 않아 손실된 패킷에 대한 재전송도 지원하지 않습니다. 데이터 순서또한 보장되지 않아 데이터의 순서에 민감한 데이터처리에 적합하지 않습니다.
  • UDP 체크섬에 대해 설명해주세요.
    더보기
    데이터의 무결성을 검사하기 위해 사용하는 기능으로 데이터가 손상되었는지 감지하는것에 쓰입니다.
    체크섬은 송신할 세그먼트를 16비트 단위로 나누고,
    모두 더한 다음 1의 보수를 취해서 만들어 집니다.(체크섬 계산)
    UDP 헤더에 체크섬 필드에 계산된 체크섬을 같이 전송 합니다.(전송)
    수신자는 동일한 방식으로 체크섬을 만들어 헤더의 값과 비교해 오류를 검출한다. (체크섬 검증)
  • 전송후 대기 프로토콜이 뭘까요?
    더보기
    전송 후 대기 프로토콜 (Stop and Wait) 프로토콜은 데이터 통신에서 신뢰성 있는 데이터 전송을 보장하기 위한 쓰는 프로토콜입니다.
    데이터 패킷을 전송하고 해당 프레임에 대한 ACK를 수신자로부터 받을 때까지 대기합니다.(송신자 동작)
    수신자는 그 패킷을 받으면 오류 검사후 ACK를 송신자에게 보내며 오류가 있을때에는 음의 응답을 보내거나 안보내는 등의 동작을 합니다.(수신자 동작)
    송신자는 타임아웃 시간내에 ACK를 기다리며 받지 못할경우 재전송합니다.
    이 과정으로 패킷에 대한 응답을 확인할 수 있으며 , 단순하다는 장점을 가지고 있지만 속도가 느리다는 단점을 가지고 있습니다
  • 파이프라인 프로토콜이 뭘까요?
    더보기
    전송 후 대기 프로토콜의 단점을 극복하지 위해 나온 프로토콜로 여러 데이터 패킷을 연속적으로 전송하여 각각의 수신확인을 받지 않고, 동시에 전송하고 처리하는 프로토콜로 전송지연을 줄여 속도를 높이는 프로토콜로 대용량 데이터 전송에 유용합니다.
  • TCP에 대해 설명해주세요.
    더보기
    전송 계층에서 사용하는 프로토콜로 인터넷 상에서 데이터를 신뢰성있고 순서대로 전송하계 설계된 프로토콜입니다. TCP는 IP위에서 작동하며 HTTP,SMTP,FTP,SSH 등 다양한 응용 프로그램에서 신뢰성 있는 전송을 위해 사용됩니다.
  • 더보기
    TCP/IP 프로토콜에서 연결을 시작할때 시작하는 과정으로 송신자와 수신자가 서로 데이터를 주고 받을 준비가 되었는지 확인하는데 사용됩니다.
    1. SYN
      • 연결하려고 하는 클라이언트가 서버에게 시퀀스 번호가 포함된 SYN 패킷을 전송합니다.
    2. SYN-ACK
      • 서버가 SYN를 받으면 클라이언트에게 받았음을 확인하는 SYN-ACK 패킷을 보냅니다.
    3. ACK
      • 클라이언트가 서버의 SYN-ACK응답을 받으면 서버에게 ACK패킷을 보내 양쪽 모두 준비가 되었음을 알립니다.3 way handshake에 대해 설명해주세요.

  • 4 way handshake에 대해 설명해주세요.
    더보기
    TCP/IP 프로토콜에서 연결을 종료할 때 사용되는 과정입니다. 데이터전송이 완료되었음을 알리는 FIN 패킷을 클라이언트 혹은 서버가 전송합니다. 상대방은 FIN 패킷 후 받았음을 알리는 ACK를 전송합니다. 이때 한 방향만 종료 후 다른 방향은 여전이 전송 할 수 있기때문에 똑같이 반대쪽에서 FIN을 전송하고 ACK를 보내는 과정을 통해 종료합니다. 이 과정을 통해 데이터 전송이 안전하게 종료 되었음을 확인할 수 있어 관리하기에 용이해집니다.
  • TCP 빠른 재전송에 대해서 설명해주세요.
    더보기
    데이터 패킷 손실을 네트워크 지연시 타임아웃보다 빠르게 감지하기 위해 나온 방법입니다. 데이터를 각 세그먼트 단위로 전송하고 각 세그먼트의 시퀀스 번호가 연속되지 않는 경우(데이터 손실)가장 최근데 받은 올바른 시퀀스 번호를 3번 중복해서 ACK로 보내 네트워크 손실에 대해 알리고 송신자가 다시 재전송합니다. 타임아웃을 기다리지 않기 때문에 네트워크 전송 지연 시간을 줄일 수 있습니다.
  • Congestion control에 대해 설명해주세요.
    더보기
    네트워크내의 데이터 트래픽이 네트워크 용량을 초과하여 패킷 손실이나 지연이 발생할때 혼잡을 완화하는 기술로 송신자의 CWND와 수신자의 RWND를 비교해 데이터의 패킷 윈도우의 사이즈를 조절하여 혼잡을 완화합니다. AIMD는 CWND의 크기를 점진적으로 늘려가며 적절한 윈도우의 사이즈를 조절하는 방식입니다. 이로인해 천천히 증가하는 단점을 보완한 TCP slow start 방식은 CWND값을 1MSS로 시작 후 2배로 증가시키는 임계점에 들어가면 굉장히 적은 양의 CWND를 늘리는 Congestion Avoidance를 사용하여 혼잡을 완화합니다.
  • Flow control에 대해 설명해주세요.
    더보기
    송신자와 수신가 간의 데이터 전송 속도를 제어하는 방식으로 수신자에게 집중해 수신자의 속도를 초과하는 데이터를 전송하는 것을 막는 방법입니다. 플로우 제어를 위해 Stop and wait 방식과 슬라이딩 윈도우 기법 2가지가 사용됩니다. Stop and wait은 매번 전송한 패킷에 대한 응답을 확인 받는 기법이며 슬라이딩 윈도우 기법은 수신자가 설정한 윈도우 크기 만큼의 패킷 만큼 응답없이 세그먼트를 전송할 수 있는 기법입니다.