티스토리 뷰
TCP와 UDP
- TCP와 UDP는 모두 네트워크의 계층들 중 전송계층에서 사용하는 프로토콜 이다.
- 전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의 전달을 담당한다.
OSI 7계층과 TCP/IP 4계층
TCP/IP란?
- TCP와 UDP에 대해서 알아보기 전에 먼저 TCP/IP에 대해 알아야 할 필요가 있음
- 인터넷 표준 프로토콜로서 컴퓨터 간 데이터를 전송할 때 에러가 발생하지 않도록 알맞게 나누어 전송하고 이를 수신하여 다시 기존의 정보로 변환 하는 것을 약속해 놓은 것을 의미
- 인터넷 프로토콜 중 가장 중요한 역할을 하는 TCP와 IP의 합성어로 데이터 흐름 제어, 정확성 확인, 패킷의 목적지 보장을 담당함
- 데이터의 정확성 확인은 TCP가, 패킷을 목적지까지 전송하는 역할은 IP가 담당함
- TCP/IP의 전송(Transport)계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다. (바로 이 전송계층에서 TCP와 UDP라는 두 종류의 프로토콜이 사용됨)
TCP (Transmission Control Protocol)
TCP란?
- 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
- TCP는 연결형 서비스를 지원하는 프로토콜로 인터넷 환경에서 기본으로 사용
- TCP는 연결형 서비스로 신뢰성을 보장
특징
- 데이터의 흐름 제어 및 혼잡 제어를 담당
- 높은 신뢰성을 보장한다.
- UDP보다 속도가 느리다.
- 연결형 서비스로 가상 회선 방식을 제공한다. (발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다)
- 서버와 클라이언트는 1대1로 연결된다.
- 패킷에 대한 응답을 해야하기 때문에(시간 지연, CPU 소모) 성능이 낮다.
- Streaming 서비스에 불리하다.(손실된 경우 재전송 요청을 하므로)
- 패킷을 추적하여 오류 발생 시 (패킷이 손실되거나 제대로 도착하지 않을 경우) 해당 패킷을 재전송한다.
Q) 패킷(Packet)이란?
- 인터넷 내에서 데이터를 전송하기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들
로 나누어 전송을 하는데 이때, 이 조각의 단위를 패킷이라고 한다.
Q) 흐름제어(Flow Control)와 혼잡제어(Congestion Control) 란?
- 흐름제어는 데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를
방지하는 것이다.
송신하는 곳에서 감당이 안되게 데이터를 빠르게 많이 보내면 수신하는 곳에서 문제가 발생 수 있기 때문에 필 요하다.
- 혼잡제어는 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것이다.
만약 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막을 수 있다.
전송방식
- 수신자의 통신 여부 확인 및 연결
- 수신자로부터 응답을 얻음
- 송신자의 데이터 전송
- 수신자가 데이터를 잘 전송 받았는지 확인
- 수신자로부터 데이터 전송 확인 메세지를 받음
- 수신자와의 연결을 종료
- 시간이 오래걸리지만 수신자는 송신자가 보내는 모든 데이터를 다 수신 가능
UDP (User Datagram Protocol)
UDP란?
- 데이터를 데이터그램 단위로 처리하는 프로토콜 (데이터그램은 독립적인 관계를 지니는 패킷을 의미)
- TCP와 달리 비연결형 프로토콜이다.
- 즉, 연결을 위해 할당되는 논리적인 경로가 없고, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지닌다.
특징
- 비연결형 서비스로 데이터그램 방식을 제공한다.
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
- 신뢰성이 낮다.
- TCP보다 속도가 빠르다.
- 스트리밍 서비스 환경에 유리하다.
전송방식
- 송신자가 수신자에게 데이터 전송
- 상대방이 데이터를 받았는지 안받았는지 확인하지 않기 때문에, 신뢰성이 없음
- 빠른 데이터 전송에 용이
- 신뢰성보다는 연속성이 중요한 서비스 (ex. 실시간 서비스)에 자주 사용됨
TCP와 UDP의 비교
참고자료
'면접대비' 카테고리의 다른 글
프록시 서버에 대해 (0) | 2019.09.18 |
---|---|
Ajax에 대해 (0) | 2019.09.14 |
프로세스와 스레드에 대해 (0) | 2019.09.10 |
싱클톤 패턴에 대해 (0) | 2019.09.09 |
REST API에 대해 (0) | 2019.09.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바의 정석
- github
- connectionless
- 제네릭 메서드
- 메서드 참조
- 회원가입
- jvm
- 인텔리제이
- 람다식
- 포워드 프록시
- 스프링
- Servlet
- 가상 회선 방식
- stateless
- AJAX
- 전자정부프레임워크
- 리버스 프록시
- 스프링 부트 시큐리티
- 유효성검사
- 그래프 순회 알고리즘
- 멀티 프로세스
- git
- 웹 서버
- 싱글톤 레지스트리
- 스프링부트
- http
- 상속
- 클래스
- 객체
- JVM 메모리 구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함