하지만 TCP와 UDP는 IP의 종류가 아니라, IP와 함께 사용되는 전송 계층 프로토콜입니다.
IP는 인터넷상에서 패킷 전달을 담당하는 프로토콜이고, TCP와 UDP는 이러한 IP 패킷을 보내고 받는 데이터의 전송을 담당합니다.
Q: IP와 TCP와 UDP의 차이점을 모르겠어
A: IP(Internet Protocol)은 인터넷 상에서 컴퓨터들이 서로 데이터를 주고받을 수 있도록 하는 프로토콜로,
인터넷 상에서 데이터를 전송하는 데 사용됩니다. IP는 패킷 단위로 데이터를 전송하며,
각 패킷은 출발지 IP 주소와 목적지 IP 주소를 가지고 있습니다.
TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 IP와 함께 사용되는 전송 계층
프로토콜입니다. 이들은 IP 패킷 내에서 실제 데이터 전송을 담당하는 역할을 합니다.
TCP는 데이터를 전송하기 전에 연결을 설정하고, 전송 후에는 연결을 해제합니다.
이 연결 기반의 특성으로 신뢰성 있는 데이터 전송을 보장하며, 데이터를 손실 없이 전송하기 위해 재전송 기능과 오류 검사 기능 등을 제공합니다. 하지만 이러한 기능 때문에 UDP에 비해 전송 속도가 느리고, 리소스 사용이 많아집니다.
반면, UDP는 데이터 전송을 위해 연결을 설정하지 않으며, 데이터를 보내기만 합니다.
이로 인해 TCP에 비해 전송 속도가 빠르고, 리소스 사용이 적지만, 데이터 전송의 신뢰성은 낮습니다.
UDP는 데이터를 전송할 때 일부 데이터가 손실되더라도, 그대로 전송을 계속하고, 오류 검사를 하지 않습니다.
따라서, TCP와 UDP는 각각의 특징과 용도에 따라 선택하여 사용됩니다.
TCP는 대용량 데이터 전송과 신뢰성이 중요한 경우에, UDP는 실시간 스트리밍과 게임 등에서 속도와 지연 시간이 중요한 경우에 사용됩니다.
<네트워크의 시작>
지금 우리가 사용하는 인터넷 프로토콜, 즉 IP 기반의 네트워크는 미 국박성에서 진행한 아르파넷 프로젝트에서 시작되었다.
이때 기존에 사용되던 ‘회선’교환 방식이 아니라 ‘패킷’교환 방식으로 네트워크를 구축했는데, 이를 토대로 현재의 인터넷 통신 방식의 기반이 세워졌다
패킷교환방식의 등장
회선이 사용중이더라도 마냥 기다리지 않아도 되는 방법이 있다면?
패킷교환방식은 패킷이라는 작은 단위로 데이터를 잘게 나누어 전송하는 방식입니다 마치 소포를 보내듯이요!
이를 이용하면 특정회선이 전용선으로 할당되지 않기 때문에 빠르고 효율적으로 데이터를 전송할 수 있다
그래서 인터넷 프로토콜, IP 는 출발지와 목적지의 정보를 IP주소라는 특정한 숫자값으로 표기하고 패킷 단위로 데이터를 전송하게 되었습니다
IP/IP Packet
복잡한 인터넷 망 속 수많은 노드(수많은 컴퓨터)들을 지나 어떻게 클라이언트와 서버가 통신할 수 있을까요?
출발지에서 목적지까지 데이터가 무사히 전달되기 위해서는 규칙이 필요하지 않을까요?
IP(인터넷 프로토콜) 주소를 컴퓨터에 부여하여 이를 이용해 통신합니다
IP는 지정한 IP주소에 패킷(Packet)이라는 통신단위로 데이터를 전달합니다
서버에서 무사히 데이터를 전송받는다면 서버도 이에 대한 응답을 돌려줘야 합니다
서버 역시 IP 패킷을 이용해 클라이언트에 응답을 전달합니다
IP의 한계점
- 비연결성
패킷을 받을 대상이 없거나 서비스 불가능 상태여도 패킷 전송
- 비신뢰성
중간에 패킷이 사라질 수 있고, 패킷의 순서를 보장할 수 X
TCP/UDP
채팅프로그램에서 메세지를 보낼때 어떤 일이 일어나는지 알아보자
- 프로그램에 ‘hello, world’ 같은 HTTP 메세지 생성
- SOCKET을 통해 전달
- TCP 정보 생성, 메세지 데이터 포함
- IP 패킷 생성, TCP 데이터 포함
TCP 특징
같은 계층에 속한 UDP 에 비해 상대적으로 신뢰할수 있는 프로토콜임
3 way handshake
연결지향형 프로토콜
1. 먼저 클라이언트가 서버에 접속을 요청하는 SYN 패킷을 보낸다
2. 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 SYN + ACK 이 설정된 패킷 전송
3. 클라이언트가 다시 ACK로 응답하기를 기다림
+ 만약 서버가 꺼져 있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 때문에 데이터를 보내지 않는다
TCP가 신뢰할 수 있는 프로토콜인 이유
- 데이터 전송이 성공적으로 이루어지면 응답을 돌려주기 때문에 IP 패킷의 한계인 비연결성을 보완할 수 있음
- 패킷이 순서대로 도착하지 않으면 다시 패킷 요청을 보낼 수 있음 IP 패킷의 한계인 비신뢰성(순서를 보장x)을 보완할 수 있음
UDP 는 TCP 특징과 비교해 보면 신뢰성은 낮지만
3 way handshake 방식을 사용하지 않기 때문에 TCP와 비교해 빠른 속도를 보장합니다.
비연결지향형 프로토콜
TCP 와 달리 하얀 도화지처럼 커스터마이징이 가능하다는 장점도 있음
'Web system' 카테고리의 다른 글
HTTPS 암호화방식 (0) | 2023.05.03 |
---|---|
네트워크 계층모델 (OSI 7계층 모델, TCP/IP 4계층 모델) (0) | 2023.05.01 |
웹표준이란? (2) | 2023.04.27 |
REST API와 REST 성숙도 모델 (0) | 2023.03.29 |
API 가 도대체 뭔지 딱 정리해줌 (0) | 2023.03.29 |