TCP와 UDP의 패킷 전달
TCP (Transmission Control Protocol)
연결 설정 (Connection Establishment)
- TCP는 연결 지향적인 프로토콜
- 통신하기 전에 세션을 설정해야 한다.
- 클라이언트가 서버에게 SYN(Synchronize) 패킷을 보내고, 서버가 SYN-ACK(Synchronize-Acknowledgment) 패킷을 응답하고, 클라이언트가 ACK(Acknowledgment) 패킷을 다시 응답함으로써 "3-way handshake"가 이루어진다.
- 연결이 설정되면 양쪽은 서로에게 데이터를 안전하게 전송할 수 있다.
신뢰성 있는 전송 (Reliability)
- 데이터 전송의 신뢰성을 보장하기 위해 다양한 메커니즘을 사용한다.
- 데이터의 순서를 보장하여 수신측에서 데이터를 올바르게 재조립한다.
- 데이터가 손실되거나 손상된 경우에는 재전송 메커니즘을 통해 손실된 데이터를 다시 전송한다.
흐름 제어 (Flow Control)
- 흐름 제어 기능을 통해 송신자와 수신자 간의 데이터 흐름을 조절한다.
- 수신자가 처리할 수 있는 속도보다 더 빠른 속도로 데이터를 전송하지 않도록 하여 네트워크 혼잡을 방지하고 데이터 손실을 최소화한다.
혼잡 제어 (Congestion Control)
- 혼잡 제어 알고리즘을 통해 네트워크 혼잡을 감지하고 이에 대응한다.
- 네트워크의 혼잡 상태를 판단하여 송신자가 데이터를 전송하는 속도를 조절하여 네트워크 성능을 최적화한다.
UDP (User Datagram Protocol)
신뢰성 없는 전송 (Unreliable Delivery)
- UDP는 연결이 설정되지 않고, 데이터 전송의 신뢰성을 보장하지 않는다.
- 데이터를 전송하고, 데이터의 손실이나 순서의 변경에 대해 신경쓰지 않는다.
최소한의 오버헤드 (Minimal Overhead)
- TCP와 달리 UDP는 연결 설정이나 흐름 제어, 혼잡 제어와 같은 추가적인 기능을 제공하지 않는다.
- UDP 헤더의 크기가 작아 TCP보다 더 적은 오버헤드를 가진다.
빠른 전송 속도 (Fast Transmission Speed)
- TCP와는 달리 UDP는 추가적인 처리와 지연이 없으므로 더 빠른 전송 속도를 가질 수 있다.
- TCP보다 더 빠른 응답 시간이 필요한 응용 프로그램에 유리하다.
결론(TCP vs. UDP)
TCP는 웹 페이지의 내용을 전송하는 데 적합하며, 파일 전송이나 이메일 전송과 같이 신뢰성이 필요한 경우에 사용된다.
반면에 UDP는 실시간 스트리밍, 온라인 게임, DNS(Domain Name System) 등에서 사용되며, 데이터의 빠른 전송이 중요한 경우에 적합하다.
'CS' 카테고리의 다른 글
UI/UX 용어 (0) | 2024.05.09 |
---|---|
프로세스 스케줄링 알고리즘 (1) | 2024.04.30 |
데이터 웨어하우스 (0) | 2024.04.19 |
웹 표준과 웹 호환 (0) | 2024.04.17 |
소프트웨어 개발 방법론(Scrum, 차이점) (0) | 2024.04.17 |
TCP와 UDP의 패킷 전달
TCP (Transmission Control Protocol)
연결 설정 (Connection Establishment)
- TCP는 연결 지향적인 프로토콜
- 통신하기 전에 세션을 설정해야 한다.
- 클라이언트가 서버에게 SYN(Synchronize) 패킷을 보내고, 서버가 SYN-ACK(Synchronize-Acknowledgment) 패킷을 응답하고, 클라이언트가 ACK(Acknowledgment) 패킷을 다시 응답함으로써 "3-way handshake"가 이루어진다.
- 연결이 설정되면 양쪽은 서로에게 데이터를 안전하게 전송할 수 있다.
신뢰성 있는 전송 (Reliability)
- 데이터 전송의 신뢰성을 보장하기 위해 다양한 메커니즘을 사용한다.
- 데이터의 순서를 보장하여 수신측에서 데이터를 올바르게 재조립한다.
- 데이터가 손실되거나 손상된 경우에는 재전송 메커니즘을 통해 손실된 데이터를 다시 전송한다.
흐름 제어 (Flow Control)
- 흐름 제어 기능을 통해 송신자와 수신자 간의 데이터 흐름을 조절한다.
- 수신자가 처리할 수 있는 속도보다 더 빠른 속도로 데이터를 전송하지 않도록 하여 네트워크 혼잡을 방지하고 데이터 손실을 최소화한다.
혼잡 제어 (Congestion Control)
- 혼잡 제어 알고리즘을 통해 네트워크 혼잡을 감지하고 이에 대응한다.
- 네트워크의 혼잡 상태를 판단하여 송신자가 데이터를 전송하는 속도를 조절하여 네트워크 성능을 최적화한다.
UDP (User Datagram Protocol)
신뢰성 없는 전송 (Unreliable Delivery)
- UDP는 연결이 설정되지 않고, 데이터 전송의 신뢰성을 보장하지 않는다.
- 데이터를 전송하고, 데이터의 손실이나 순서의 변경에 대해 신경쓰지 않는다.
최소한의 오버헤드 (Minimal Overhead)
- TCP와 달리 UDP는 연결 설정이나 흐름 제어, 혼잡 제어와 같은 추가적인 기능을 제공하지 않는다.
- UDP 헤더의 크기가 작아 TCP보다 더 적은 오버헤드를 가진다.
빠른 전송 속도 (Fast Transmission Speed)
- TCP와는 달리 UDP는 추가적인 처리와 지연이 없으므로 더 빠른 전송 속도를 가질 수 있다.
- TCP보다 더 빠른 응답 시간이 필요한 응용 프로그램에 유리하다.
결론(TCP vs. UDP)
TCP는 웹 페이지의 내용을 전송하는 데 적합하며, 파일 전송이나 이메일 전송과 같이 신뢰성이 필요한 경우에 사용된다.
반면에 UDP는 실시간 스트리밍, 온라인 게임, DNS(Domain Name System) 등에서 사용되며, 데이터의 빠른 전송이 중요한 경우에 적합하다.
'CS' 카테고리의 다른 글
UI/UX 용어 (0) | 2024.05.09 |
---|---|
프로세스 스케줄링 알고리즘 (1) | 2024.04.30 |
데이터 웨어하우스 (0) | 2024.04.19 |
웹 표준과 웹 호환 (0) | 2024.04.17 |
소프트웨어 개발 방법론(Scrum, 차이점) (0) | 2024.04.17 |