네트워크의 계층들 중 전송 계층에서 사용 하는 프로토콜 TCP, UDP에 대해 알아보자
전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하며,
IP에 의해 전달되는 패킷의 오류를 검사하고, 재전송 요구 등의 제어를 담당한다. 즉, 데이터 전달 담당
그 데이터를 보내기 위해 사용 하는 프로토콜 : TCP, UDP
*패킷이란,
인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러개의 조각들로 나누어 전송하는데 이때 데이터의 조각을 패킷이라고 함.
TCP(Transmission Control Protocol)
전송을 제어하는 프로토콜(규약)
인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
일반적으로 TCP와 IP는 함께 사용, IP가 데이터의 배달을 처리하면, TCP는 패킷을 추적 및 관리 함.
TCP 특징
- 연결형 서비스
가상 회선 방식을 제공 : 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 뜻
: 3-way handshaking 과정을 통해 연결을 설정 / 4-way handshaking 을 통해 연결을 해제.
-흐름 제어
데이터 처리 속도를 조정하여 수신자의 버퍼 오버플로우를 방지함
송신하는 곳에서 많은 데이터를 빠르게 보내 수신하는 곳에서 문제가 일어나는 것을 막는다.
- 혼잡제어
네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지함
정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 을어나는 것을 막는다.
- 신뢰성 높은 전송
3-way handshaking으로 목적지와 수신지를 확실히 하여 정확한 전송을 보장
TCP의 패킷 추적관리
Dupack-based retransmission
: 정상적인 상황에서는 ACK 값이 연속적으로 전송됨
: 그러나 ACK값이 중복으로 올 경우 패킷 이상을 감지하고 재전송을 요청함
Timeout-based retransmission
: 일정시간동안 ACK 값이 수신을 못할 경우 재전송을 요청함
(패킷에는 고유 번호가 있어 목적지에서 재 조립하여 패킷의 연속성, 중복, 분실 등을 확인하여 신뢰성을 높힘)
- 전송 속도가 느리다
신뢰성 높은 전송을 위해 경로를 확실하게 설정하고, 패킷을 하나씩 재조립하여 확인하여 재 요청도 보내다보니
UDP에 비해 속도가 빠르진 않음
- 전이중, 점대점 방식 사용
전이중 : 전송이 양방향으로 동시에 일어날수 있음
점대점 : 각 연결이 정확히 2개의 종단점을 가지고 있음
=> 멀티캐스팅이나 브로드캐스팅을 지원하지 않음
UDP(User Datagram Protocol)
사용자 데이터그램 포로토콜(규약)
데이터를 데이터그램 단위로 처리하는 프로토콜
UDP는 비연결형 프로토콜로 연결을 위해 할당괴는 논리적 경로가 없고,
각각의 패킷은 독립적 관계를 가지고 서로 다른 경로로 전송되는 프로토콜이다.
*데이터그램이란,
독립적인 관계를 지니는 패킷
UDP 특징
- 비연결형 서비스
연결 없이 통신이 가능하며 데이터그램 방식을 제공
- 신뢰성이 낮음
TCP처럼 패킷에 순서를 부여하여 재 조립 하는 것이 아닌 UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출 하여 신뢰성은 TCP보다 다소 낮다.
- 빠른 전송
전송을 위해 여러 전송을 거치지 않고, 데이터그램 형식으로 패킷들이 독립적으로 서로 다른 경로로 전송을 하다보니
네트워크 부하가 적어 빠른 전송이 가능함
- 1:N 형식의 전송이 가능
데이터그램 방식으로 전송하여 여러 사람들에게 데이터를 전송하는 실시간 서비스(streaming)에 자주 사용
'coding > IT, CS' 카테고리의 다른 글
postman api DOCS 링크 공유 (0) | 2022.11.11 |
---|---|
github 커밋 히스토리 삭제 (0) | 2022.09.12 |
http 상태코드 (0) | 2022.08.31 |
http https (0) | 2022.08.19 |
Side effect, Decoupling, 디자인 패턴 (0) | 2022.08.10 |