본 글은 JSCODE CS스터디 컴퓨터 네트워크 7기에서 학습한 내용을 정리한 글입니다.
⭐️UDP에 대해 설명해주세요.
전송 계층 프로토콜
속도
오류 검출 기능
실시간 애플리케이션
간단한 헤더구조
- UDP = 사용자 데이터그램 프로토콜
- UDP는 전송 계층의 프로토콜로 데이터 전송 시 신뢰성보다는 속도를 중시합니다.
- 연결 지향적이지 않으며, 데이터그램 단위로 정보를 전송합니다.
- 오류 검출 기능은 있지만, 재전송이나 순서 보장은 하지 않습니다.
- 주로 실시간 애플리케이션에서 사용됩니다.
- 전화 통화(VoIP), 비디오 스트리밍, DNS
- 간단한 헤더 구조로 인해 오버헤드가 적어 빠른 전송이 가능합니다.
⭐️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은 송신자와 수신자 간의 관계에 초점
참고
written by salmonavocado🥑
Share article