개요
TCP도 알고, IP도 안다.
그럼 TCP/IP는 뭘까?
TCP (Transmission Control Protocol)
TCP란 전송 제어 프로토콜의 약자로 클라이언트와 서버 간의 신뢰성 있는 통신을 위해 만들어진 프로토콜이다.
신뢰성 있는 통신이 가능한 이유는 요청 이전에 송신자와 수신자 사이에 커넥션이 이루어지기 때문이다.
이 과정을 TCP 3 Way Handshake라고 한다.
TCP 3 Way Handshake란 상대 컴퓨터가 통신하기에 적절한 상태인지 체크하는 과정이다.
- SYN (Synchronize Sequence Numbers)
- 클라이언트가 서버와의 연결을 요청하며, SYN 패킷(Sequence Number 포함)을 보낸다.
- 클라이언트는 SYN_SENT 상태가 된다.
- SYN-ACK (Synchronize + Acknowledge)
- 서버는 클라이언트의 요청을 수락하며, SYN과 ACK 플래그가 설정된 패킷을 클라이언트에게 보낸다.
- 이때 서버는 SYN_RCVD 상태가 된다.
- ACK (Acknowledge)
- 클라이언트는 서버의 응답을 확인하고, 연결 수립 완료를 알리는 ACK 패킷을 서버에게 보낸다.
- 클라이언트와 서버 모두 ESTABLISHED 상태가 된다.
위의 과정으로 수립된 경로를 통해 통신을 진행하는 것이 TCP 방식이다.
IP
IP란 사용자, 즉 네트워크 상에서 호스트의 고유한 주소를 의미한다.
IP의 사용 목적은 올바른 목적지를 식별하고 데이터를 전달하기 위함이다.
IP는 네트워크 계층에 속하는 프로토콜로, 데이터를 패킷 단위로 나눠서 전송한다.
TCP/IP
TCP/IP는 인터넷에서 사용되는 안전한 통신을 위해 사용되는 프로토콜의 모음이다.
대표적인 기술이 HTTP, TCP, IP 등이 있다. (아마 명칭을 TCP/IP로 한 이유가 가장 중요한 기술이 TCP와 IP여서 그런 것이 아닐까..)
TCP/IP는 OSI 7계층과 달리 4 계층으로 구성된다. 하지만 내부 구성 요소는 거의 동일하다.
응용 계층
- 사용자와 가까운 계층으로, 데이터 송수신에 필요한 응용 프로토콜을 정의한다.
- HTTP, FTP, SMTP, DNS 등
전송 계층
- 데이터를 송신자에서 수신자로 신뢰성 있게 전송하거나, 데이터를 빠르게 전송하는 역할을 한다.
- 전송 주소는 포트 번호를 사용한다.
- TCP, UDP
인터넷 계층
- 데이터를 송신지에서 수신지까지 경로를 설정(라우팅)하고, 패킷을 전송한다.
- 전송 주소는 IP 주소를 사용한다.
- IP, ICMP, ARP, RARP 등
네트워크 접근 계층
- 물리적인 네트워크 장치 간에 데이터를 송수신한다.
- 전송 주소는 MAC을 사용한다.
- Ethernet, Wi-Fi 등
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.01.23 - 직렬화 (0) | 2025.01.23 |
---|---|
[개발 일기] 2025.01.22 - static (0) | 2025.01.22 |
[개발 일기] 2025.01.20 - 함수형 인터페이스 (0) | 2025.01.20 |
[개발 일기] 2025.01.19 - JWT(JWS, JWE) (0) | 2025.01.19 |
[개발 일기] 2025.01.18 - Collectors (1) | 2025.01.18 |