[네트워크] UDP, 신뢰적 데이터 전송, TCP

salmonavocado's avatar
Sep 05, 2024
[네트워크] UDP, 신뢰적 데이터 전송, TCP
본 글은 JSCODE CS스터디 컴퓨터 네트워크 7기에서 학습한 내용을 정리한 글입니다.
본 글은 JSCODE CS스터디 컴퓨터 네트워크 7기에서 학습한 내용을 정리한 글입니다.
 

⭐️UDP에 대해 설명해주세요.

전송 계층 프로토콜 속도 오류 검출 기능 실시간 애플리케이션 간단한 헤더구조
  • UDP = 사용자 데이터그램 프로토콜
  • UDP는 전송 계층의 프로토콜로 데이터 전송 시 신뢰성보다는 속도를 중시합니다.
  • 연결 지향적이지 않으며, 데이터그램 단위로 정보를 전송합니다.
  • 오류 검출 기능은 있지만, 재전송이나 순서 보장은 하지 않습니다.
  • 주로 실시간 애플리케이션에서 사용됩니다.
    • 전화 통화(VoIP), 비디오 스트리밍, DNS
  • 간단한 헤더 구조로 인해 오버헤드가 적어 빠른 전송이 가능합니다.
 

⭐️UDP의 장단점을 설명해 주세요.

빠른 데이터 전송 속도 간단한 구현 부족한 신뢰성 흐름 제어의 부재로 인한 네트워크 혼잡 문제 보안 취약성
  • UDP는 빠른 데이터 전송 속도실시간 통신에 적합하지만,
  • 신뢰성이 부족하고 패킷 손실이 발생할 수 있습니다.
  • 연결 설정이 필요 없고 구현이 간단하여 효율적이지만,
  • 흐름 제어나 혼잡 제어 기능이 없어 네트워크 혼잡 시 문제가 발생할 수 있습니다.
  • 부족한 보안 기능으로 추가적인 보호 조치도 필요합니다.
패킷이란?
- 네트워크를 통해 전송되는 데이터의 기본 단위 
- 일반적으로 데이터는 큰 덩어리로 존재하지만, 네트워크에서 효율적으로 전송하기 위해 작은 조각인 패킷으로 나누어 전송
- 각 패킷은 목적지 주소, 출발지 주소, 데이터 내용 및 오류 검출 정보 포함 
- UDP에서는 패킷을 “데이터그램”으로 부름
패킷이란? - 네트워크를 통해 전송되는 데이터의 기본 단위 - 일반적으로 데이터는 큰 덩어리로 존재하지만, 네트워크에서 효율적으로 전송하기 위해 작은 조각인 패킷으로 나누어 전송 - 각 패킷은 목적지 주소, 출발지 주소, 데이터 내용 및 오류 검출 정보 포함 - UDP에서는 패킷을 “데이터그램”으로 부름
 

UDP 체크섬에 대해 설명해주세요.

데이터의 무결성 검증 오류 검출 메커니즘 송신자 체크섬=수신자 체크섬 → 무손상
  • 전송된 데이터의 무결성을 검증하기 위한 오류 검출 메커니즘입니다.
  • UDP 데이터그램에는 체크섬 필드가 포함되어있으며, 송신자는 데이터와 헤더의 내용을 기반으로 체크섬 값을 계산합니다.
  • 수신 측에서는 동일한 방식으로 체크섬을 계산하여 송신된 값과 비교합니다.
  • 두 값이 일치하면 데이터가 손상되지 않았음을 의미하고, 불일치할 경우 데이터가 손상된 것으로 간주하여 패킷을 폐기할 수 있습니다.
  • 체크섬은 필수는 아니지만 데이터의 신뢰성을 높이기 위해 중요합니다.
 

전송후 대기 프로토콜이 뭘까요?

확인 응답 쉬운 구현 낮은 전송 효율성 신뢰성이 중요한 환경
  • 전송 후 대기 프로토콜 (Stop and Wait Protocol)은 데이터 전송 후 송신자가 수신자로부터 확인 응답(ACK,Acknowledgment)을 받을 때까지 다음 데이터를 전송하지 않는 방식입니다.
  • 간단하고 구현이 쉽지만 대기 시간 동안 채널이 비어 있어 효율성이 낮을 수 있습니다.
    • 채널 : 데이터 통신에서 정보를 전송하는 경로(전선, 무선 주파수, 광섬유 등)
  • 주로 신뢰성이 중요한 환경에서 사용되며 패킷 손실이나 오류를 처리하는 데 유리합니다.
 

파이프라인 프로토콜이 뭘까요?

요청 동시 전송 대기 시간 감소 높은 전송 효율성 HTTP/1.1
  • 파이프라인 프로토콜은 데이터 통신에서 여러 개의 요청을 동시에 전송하고 각 요청에 대한 응답을 기다리지 않고 다음 요청을 보내는 방식입니다.
  • 이를 통해 대기 시간을 줄이고 전송 효율성을 높일 수 있습니다.
  • 주로 HTTP/1.1과 같은 프로토콜에서 사용되며 서버와 클라이언트 간의 상호작용을 최적화합니다.
 

⭐️ TCP에 대해 설명해주세요.

신뢰성 전송계층프로토콜 순서 무결성 연결 지향적 흐름제어 혼잡제어
  • TCP (Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 보장하는 전송 계층 프로토콜입니다.
  • 데이터가 패킷으로 나누어져 전송되며 수신 측에서 패킷의 순서와 무결성을 확인합니다.
  • TCP는 연결 지향적이며, 데이터 전송 전에 연결을 설정하고 전송 후에는 연결을 종료합니다.
  • 흐름 제어와 혼잡 제어 기능을 통해 네트워크의 효율성을 높이고 데이터 손실을 방지합니다.
  • 웹 브라우징, 이메일, 파일 전송, 원격 접속 에 사용됩니다.
 

⭐️ 3 way handshake에 대해 설명해주세요.

SYN SYN-ACK ACK
  • TCP 연결 설정 과정 = 클라이언트와 서버 간의 안전하게 연결하는 과정
  • SYN (Synchronization)
    • 클라이언트가 서버에 연결 요청을 보내는 단계입니다. 클라이언트는 SYN 플래그가 설정된 패킷을 서버로 전송합니다.
  • SYN-ACK
    • 서버가 클라이언트의 요청을 수신하고, 연결을 수락하는 응답을 보냅니다. 이 패킷은 SYN과 ACK 플래그가 모두 설정되어 있습니다.
  • ACK (Acknowledgement)
    • 클라이언트가 서버의 응답을 확인하는 단계입니다. 클라이언트는 ACK 플래그가 설정된 패킷을 서버로 전송하여 연결이 완료되었음을 알립니다.
 

⭐️ 4 way handshake에 대해 설명해주세요.

 
  • TCP의 연결 해제 과정 = 클라이언트와 서버 간의 안전하게 연결을 종료하는 방법
  • 클라이언트가 먼저 연결을 종료하겠다고 가정
  • FIN
    • 클라이언트는 FIN(종료 요청) 패킷을 전송합니다. 이 패킷은 "나는 더 이상 데이터를 보내지 않을 것이다"라는 의미를 가집니다.
  • ACK
    • 서버는 클라이언트의 FIN 패킷을 수신하고, 이를 확인하는 ACK(확인 응답) 패킷을 전송합니다. 이 단계에서 클라이언트는 더 이상 데이터를 보내지 않지만, 서버는 여전히 데이터를 보낼 수 있습니다.
  • FIN
    • 서버가 모든 데이터를 전송한 후, 서버도 FIN 패킷을 클라이언트에게 전송하여 연결 종료를 요청합니다.
  • ACK
    • 클라이언트는 서버의 FIN 패킷을 수신하고, 이를 확인하는 ACK 패킷을 전송합니다. 이 단계에서 양쪽 모두 연결이 종료되었음을 확인합니다.
 

TCP 빠른 재전송에 대해서 설명해주세요.

손실된 패킷 신속 감지-재전송 중복ACK
  • TCP의 빠른 재전송은 손실된 패킷을 신속하게 감지하고 재전송하는 메커니즘입니다.
  • 수신 측에서 연속된 패킷을 수신할 때, 손실된 패킷이 있을 경우 중복 ACK를 전송합니다.
  • 송신 측은 이러한 중복 ACK를 수신하면 손실된 패킷을 즉시 재전송합니다.
  • 이를 통해 전송 지연을 줄이고 효율성을 높일 수 있습니다.
 

Congestion control에 대해 설명해주세요.

혼잡 관리 전송 속도 조절 패킷 손실 최소화 지연 방지
  • Congestion control은 네트워크에서 데이터 전송 시 혼잡을 방지하고 관리하는 메커니즘입니다.
  • TCP는 혼잡 상태를 감지하고 전송 속도를 조절하여 패킷 손실을 최소화하고 전송 지연을 방지합니다.
  • 이를 통해 네트워크의 효율성을 높이고 모든 사용자에게 공정한 대역폭을 제공합니다.
    • 네트워크 자원을 모든 사용자에게 균등하게 분배하여 특정 사용자or애플리케이션이 과도한 대역폭을 차지하지 않도록 함
 

Flow control에 대해 설명해주세요.

전송 속도 조절 수신자가 처리할 수 있는 속도 버퍼의 크기
  • Flow control은 데이터 통신에서 송신자와 수신자 간의 데이터 전송 속도를 조절하는 메커니즘 입니다.
  • 이를 통해 수신자가 처리할 수 있는 속도에 맞춰 송신자가 데이터를 전송하여, 데이터 손실이나 혼잡을 방지합니다.
  • 일반적으로 버퍼의 크기신호를 통해 조정됩니다.
Congestion control vs Flow control
- Congestion control은 네트워크의 전반적인 상태에 초점
- Flow control은 송신자와 수신자 간의 관계에 초점
Congestion control vs Flow control - Congestion control은 네트워크의 전반적인 상태에 초점 - Flow control은 송신자와 수신자 간의 관계에 초점
 
 

참고


written by salmonavocado🥑
 
Share article

salmonavocado