목차

1. TCP

2. HTTP

3. HTTP와 TCP 의 관계

 

HTTP와 TCP 프로토콜은 인터넷 통신에서 핵심적인 역할을 하는 두 가지 프로토콜이다. 이들의 역할과 작동 방식을 이해하는 것은 네트워크와 웹 기술을 이해하는데 매우 중요하다

 

1. TCP (Transmission Control Protocol)

TCP는 전송 제어 프로토콜로, 데이터를 신뢰성 있게 전달하는 역할을 한다.

 

1. 연결 지향적 (Connection-oriented)

TCP는 데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정합니다. 이 과정은 3-way handshake라고 한다

 

3-way handshake

1. 클라이언트가 서버에 연결 요청(SYN)을 보낸다.

2. 서버가 클아이언트의 요청을 승인하고 연결 수락(SYN-ACK)을 보낸다.

3. 클라이언트가 서버의 수락을 확인(ACK)한다

 

2. 신뢰성 (Reliability)

데이터가 손실되지 않도록 보장한다. 패킷이 손실되면 재전송한다.

데이터는 순서대로 도착하도록 보장한다.

 

3. 흐름 제어 (Flow Control)

송신자가 수신자의 처리 능력을 초과하지 않도록 데이터 전송 속도를 조절한다.

 

4. 혼잡 제어 (Congestion Control)

네트워크 혼잡을 피하기 위해 데이터 전송 속도를 조절한다.

 

2. HTTP (HyperText Transfer Protocol)

HTTP는  웹 브라우저와  웹 서버 간의 통신을 위한 프로토콜이다. 주로 웹 페이지와 리소스를 전송하는 데 사용된다. HTTP는 애플리케이션 계층 프로토콜이며, 주로 TCP 위에서 작동한다. HTTP의 주요 특징은 다음과 같다.

 

1. 비연결 지향 (Connectionless)

각 요청과 응답이 독립적으로 처리된다. 서버는 요청을 받은 후 응답을 보내고 연결을 끊는다.

HTTP/1.1과 HTTP/2에서는 지속 연결(persistent connection)을 지원하여 동일한 연결을 여러 요청에 사용할 수 있다

 

2. 요청/응답 모델

클라이언트가 서버에 요청(request)을 보내면, 서버는 이에 대한 응답(reponse)을 보낸다.

요청 메서드: GET, POST, PUT, DELETE 등 다양한 메서드가 있으며, 각 메서드는 특정한 작업을 수행한다.

 

3. 무상태성 (Statelessness)

각 HTTP 요청은 독립적이며, 서버는 이전 요청에 대한 상태를 유지하지 않는다.

무상태성을 극복하기 위해 쿠키와 세션이 사용된다.

 

4. 헤더

HTTPS 메시지는 메타데이터를 포함하는 헤더를 가지고 있다.

ex) Content-Type, User-Agent, Accept-Language 등

 

5. 보안 (HTTPS)

HTTPS는 HTTP에 SSL/TLS 암호화 계층을 추가하여 데이터를 암호화하여 전송

 

3. TCP와 HTTP의 관계

HTTP는 애플리케이션 계층 프로토콜이며, TCP는 전송 계층 프로토콜

HTTP는 데이터를 전송하기 위해 TCP를 사용한다. (ex: 웹 브라우저가 웹 서버에 HTTP 요청을 보낼 때, 그 요청은 TCP를 통해 전달된다.)

TCP는 HTTP 요청과 응답의 신뢰성 있는 전달을 보장한다.

 

동작 예시

1. HTTP 요청과 TCP

웹 브라우저가 특정 웹 페이지를 요청할 때, HTTP 요청을 생성하고 이를 TCP를 통해 서버에 전송한다.

TCP는 3-way handshake를 통해 연결을 설정하고, 데이터를 패킷 단위로 전송한다.

서버는 TCP를 통해 HTTP 응답을 클라이언트에 보내고, 연결을 종료한다.

 

2. HTTPS

HTTPS는 HTTP 요청을 SSL/TLS 계층을 통해 암호화한 후, TCP를 사용하여 전송한다.

SSL/TLS는 클라이언트와 서버 간의 보안 연결을 설정하고, 암호화된 데이터를 주고받는다.

 

요약
TCP: 신뢰성 있는 데이터 전송을 보장하는 전송 계층 프로토콜. 연결 지향적, 신뢰성, 흐름 제어, 혼잡 제어 기능을 제공.
HTTP: 웹 상의 데이터 전송을 위한 애플리케이션 계층 프로토콜. 요청/응답 모델, 무상태성, 다양한 요청 메서드를 제공하며, 주로 TCP 위에서 작동
HTTPS: HTTP에 SSL/TLS를 추가하여 보안을 강화한 프로토콜

 

 

'네트워크' 카테고리의 다른 글

OSI7계층  (0) 2024.06.08

OSI7 계층이란?

OSI 7계층 모델은 네트워크 통신을 다양한 계층으로 나누어 설명한 모델이다. 각 계층은 특정한 기능을 담당하며, 상호작용을 통해 데이터가 송수신된다.

 

*컴퓨터를 다루다보면 계층이라는 말이 자주 언급될것이다. 이는 의존한다는 것을 의미하며 순서를 지켜야한다는 의미가 포함되어 있다

 

1. 물리 계층 (Physical Layer)

역할: 전기 신호, 광 신호 또는 무선 신호를 통해 실제 데이터 전송.

예: 케이블, 라우터, 허브

비유: 도로와 같은 역할로, 데이터가 이동하는 물리적 경로

 

2. 데이터 링크 계층 (Data Link Layer)

역할: 물리 계층을 통해 전송된 데이터의 오류 감지 및 수정, 프레임 단위로 데이터 전송

예: 스위치, MAC 주소

비유: 도로의 차선, 데이터가 충돌하지 않고 규칙적으로 이동하도록 함

 

3. 네트워크 계층 (Network Layer)

역할: 데이터를 목적지까지 라우팅하고 최적 경로를 찾아줌

예: IP 주소, 라우터

비유: 네비게이션 시스템, 목적지까지 가는 최적의 경로를 찾아줌

 

4. 전송 계층 (Transport Layer)

역할: 신뢰성 있는 데이터 전송 보장, 데이터 분할 및 재조립, 오류 검출 및 수정

예: TCP, UDP

비유: 물류 회사, 패키지를 안전하게 분할하고 목적지에서 다시 조립.

 

5. 세션 계층 (Session Layer)

역할: 통신 세션 설정, 관리 및 종료, 동기화 및 체크포인트 기능 제공

예: 로그인 세션, API 세션

비유: 전화 통화, 통화 시작, 유지, 종료를 관리

 

6. 표현 계층 (Presentation Layer)

역할: 데이터 형식 변환, 암호화/복호화, 데이터 압축

예: JPEG, MP3, SSL/TL5

비유: 번역가, 데이터가 서로 다른 형식으로 전달될 때 이해할 수 있게 변환.

 

7. 응용 계층 (Application Layer)

역할: 사용자와 직접 상호작용하는 애플리케이션 제공, 네트워크 서비스 제공

예: 웹 브라우저, 이메일 클라이언트, FTP

비유: 사용자가 직접 사용하는 애플리케이션, 웹사이트나 이메일 프로그램

 

요약

물리 계층 데이터를 전기 신호로 변환하여 전송
데이터 링크 계층 물리 계층에서 전송된 데이터의 오류를 감지 수행
네트워크 계층 데이터를 목적지까지 라우팅
전송 계층 신뢰성 있는 데이터 전송 보장
세션 계층 통신 세션 관리
표현 계층 데이터 형식 변환 및 암호화
응용 계층 사용자와의 상호작용 제공

 

'네트워크' 카테고리의 다른 글

HTTP / TCP 프로토콜  (0) 2024.06.10

+ Recent posts