TCP/IP 4계층
먼저 TCP/IP는 하나의 프로토콜이 아니다.
IP 주소 체계를 따르고, IP Routing을 이용해 목적지에 도달하며 TCP의 특성을 활용하는 것이다.
즉, IP 주소를 사용하여 데이터를 전달하고, 그 데이터가 제대로 전달되었는지를 확인하겠다는 것이다.
- Application Layer
응용 프로그램에서 사용하는 프로토콜을 정의하는 계층으로, 사용자와 직접적인 상호작용이 이루어진다.
HTTP, FTP, SMTP 등의 프로토콜이 이 계층에서 동작한다.
- Transport Layer
송수신의 논리적 연결을 담당하는 부분으로 신뢰성 있는 연결을 유지할 수 있도록 도와준다.
TCP와 UDP가 이 계층에서 동작한다.
- Internet Layer
데이터의 경로와 목적지를 찾아주는 역할을 한다(Routing).
IP 프로토콜이 이 계층에서 동작한다.
- Network Interface Layer
물리적인 네트워크와 관련된 계층으로 데이터를 전송하기 위한 하드웨어적인 부분을 다룬다.
HTTP == TCP ?
결론부터 말하자면 HTTP와 TCP는 서로 다른 프로토콜이다.
가장 큰 차이점은 TCP는 독립적으로 서버와 클라이언트를 연결해서 데이터를 보낼 수 있지만,
HTTP는 직접 연결을 하지 못해 TCP를 사용한다는 것이다.
- TCP
TCP는 3-way-handshkae 과정을 통해 연결을 하고, 4-way-handshake 과정을 통해 연결을 종료한다.
또한 소켓을 이용한 연결방식을 사용하기 때문에 양방향 통신이 가능하게 되는데,
양방향 통신이란 클라이언트와 서버가 서로 연결되어 있을때 서로에게 요청을 보내 통신을 할 수 있다는 것이다.
또한, 서로 연결이 끊어지지 않기 때문에 실시간 소통이 가능하다.
이를 소켓통신이라고도 부른다.
- HTTP
HTTP 통신은 TCP 위에서 이루어진다.
TCP는 연결과 연결을 종료하는 부분을 맡고, HTTP는 TCP 통신 기반에서 데이터를 전송하는 역할을 한다.
하지만 TCP는 양방향 통신인 반면에 HTTP는 단방향 통신이다.
HTTP은 클라이언트의 요청이 있을 때만 서버에서 응답을 해주며, 응답 후에 바로 연결을 끊는다.
- HTTP는 TCP 기반이라면서 왜 단방향 통신을 하는 것일까?
TCP 통신과 HTTP 통신 둘 다 소켓이 사용되는 것은 동일하지만,
데이터 전송에 사용되는 소켓의 통신 방식이 다르기 때문이다.
애초에 TCP 통신에서 사용되는 소켓은 4계층(전송 계층)에서 사용되고
HTTP 통신의 데이터 전송에서 사용되는 소켓은 7계층(어플리케이션 계층)에서 사용된다.
'WEB' 카테고리의 다른 글
CSRF (0) | 2024.07.02 |
---|---|
HTTP/1.0, HTTP/1.1, HTTP/2, QUIC(HTTP/3) (0) | 2024.06.27 |
CDN (0) | 2024.06.17 |
DNS (0) | 2024.06.16 |
HTTP/HTTPS (0) | 2024.06.10 |