TCP/IP
는 일반적으로 사용하는 대부분의 네트워크에 사용됩니다.
이 중 HTTP
프로토콜에서도 TCP/IP
개념이 활용됩니다.
그러면 HTTP
에서의 TCP/IP
에 대해 알아봅시다!
TCP/IP란
컴퓨터와 네트워크가 통신을 하기 위해서는 서로 같은 방법으로 통신을 하기 위해 일종의 규약이나 약속이 필요합니다.
이러한 것들을 프로토콜
이라고 하는데, TCP/IP
는 이러한 프로토콜들의 집합이라고 할 수 있습니다. HTTP
프로토콜 역시 TCP/IP
에 속합니다.
HTTP에서 TCP/IP 계층의 종류와 역할
TCP/IP 애서의 계층은 각각 4가지로 나뉘어져 있습니다.
- 애플리케이션 계층: 통신 방향, 즉 프로토콜 결정 ( FTP, DNS 및 HTTP 포함 )
- 트랜스포트 계층: 두 컴퓨터에 연결되어 있는 데이터의 흐름을 제어 ( TCP / UDP )
- 네트워크 계층: 패킷의 이동을 다루는 계층.
- 패킷은 데이터를 통신할 때 주고받는 가장 최소의 단위
- 링크 계층: 하드웨어 전반을 다루는 계층.
- 운영체제는 하드웨어에게 명령을 내리기 때문에, 하드웨어와 관련된 디바이스 드라이버나 NIC ( Network Interface Card ) 등도 포함
- 케이블 등 물리적으로 보이는 부분도 포함
TCP/IP 통신에서 클라이언트 측의 준비과정
클라이언트 측에서는 다음 과정을 통해 송신을 준비합니다.
- 애플리케이션 계층에서
HTTP Request
를 생성하여 트랜스포트 계층으로 전달 - 받은 요청을
패킷
으로 쪼개고안내 번호
와포트
를 추가해 네트워크 계층으로 전달 - 네트워크 계층은
수신지의 MAC 주소
를 추가해 링크 계층으로 전달 - 링크 계층에서 데이터를 송신할 준비 완료
수신측 서버
수신측 서버에서는 클라이언트 계층의 순서의 역순으로 링크, 네트워크, 트랜스포트, 애플리케이션 계층을 통해 클라이언트가 송신한 HTTP Request 정보를 받을 수 있습니다.
- 송신하는 클라이언트 측에서는 각 계층을 거칠 때는 해당 계층에 필요한 정보인
헤더
를 추가 - 반대로 수신하는 서버 측에서는 계층을 지날때 마다 반드시 해당 계층에서 사용한 헤더를 제거
이렇게 정보를 감싸는 것을 캡슐화
라고 부릅니다.
- 해당 글은 그림으로 배우는 HTTP & Network 책을 바탕으로 재구성하여 작성한 글입니다.
- 좋은 글을 위한 오타 및 지적은 환영입니다.