[CS 인터뷰 기초] IP

Donghun Seol·2023년 3월 13일
0

CS 인터뷰 기초

목록 보기
2/5

TCP/IP 4계층 모델

HTTP 프로토콜

HTTP(Hypertext Transfer Protocol)는 인터넷에서 웹 서버와 웹 클라이언트 간에 통신하는 데 사용되는 프로토콜입니다. HTTP는 웹 페이지와 같은 리소스를 요청하고 전송하는 데 사용됩니다.

HTTP는 다음과 같은 구조를 가집니다.

  • 클라이언트가 서버에 요청을 보냅니다.
  • 서버는 요청을 받고, 요청된 리소스를 찾아서 클라이언트에 응답을 보냅니다.
  • 클라이언트는 서버로부터 받은 응답을 처리합니다.

HTTP 요청은 다음과 같은 요소를 포함합니다.

  • HTTP 메서드(GET, POST, PUT, DELETE 등)를 포함한 요청 라인(Request Line)
  • HTTP 헤더(Header) 정보
  • 요청 본문(Request Body)

HTTP 응답은 다음과 같은 요소를 포함합니다.

  • HTTP 응답 코드(Response Code)
  • HTTP 헤더 정보
  • 응답 본문(Response Body)

HTTP는 일반적으로 TCP/IP 기반의 네트워크에서 사용됩니다. HTTP는 웹 페이지를 보여주기 위한 주요 프로토콜 중 하나이며, 웹 브라우저와 웹 서버 간의 통신에서 사용됩니다. 이외에도, HTTP는 REST API와 같은 웹 서비스에서도 사용됩니다. HTTP는 현재 버전 1.1까지 개발되었으며, 보안을 강화하기 위해 HTTPS(Hypertext Transfer Protocol Secure)를 사용하는 경향이 있습니다.

웹소켓이 연결을 유지하는 원리

웹소켓(WebSockets)은 클라이언트와 서버 간의 양방향 통신을 지원하는 기술로, TCP 연결을 유지하여 지속적인 통신을 가능하게 합니다.

웹소켓은 기본적으로 TCP 기반의 양방향 통신을 지원하며, 다음과 같은 특징을 가집니다.

  1. 양방향 통신
    기존의 HTTP는 클라이언트가 서버에 요청을 보내면 서버가 응답을 보내는 방식이기 때문에, 클라이언트가 요청을 보내지 않으면 서버에서 데이터를 보낼 수 없습니다. 이와 달리 웹소켓은 서버에서 클라이언트로 데이터를 보내는 것이 가능해, 실시간성이 중요한 웹 어플리케이션 개발에 적합합니다.
  2. 지속적인 연결
    웹소켓은 클라이언트와 서버 간의 연결을 지속적으로 유지하여, 더 빠르고 실시간성이 높은 데이터 전송이 가능합니다. 이는 HTTP에서 매번 연결을 새로 만들어야 하는 문제를 극복할 수 있게 합니다.
  3. 적은 오버헤드
    웹소켓은 HTTP와 달리 연결을 유지하면서 데이터를 전송하므로, HTTP의 요청/응답에 따른 오버헤드가 없습니다. 이는 효율적인 데이터 전송을 가능하게 합니다.
  4. 보안
    웹소켓은 기본적으로 암호화되어 있지 않기 때문에, HTTPS와 같은 보안 프로토콜을 함께 사용해야 합니다.

애플리케이션 계층

FTP, HTTP, SSH, SMTP, DNS 프로토콜을 사용함

전송 계층

개념

  • 전송계층은 송수신자를 연결하여 연결지향 데이터스트림, 신뢰성, 흐름 제어를 제공합니다. 대표적인 프로토콜로 TCP와 UDP가 있다.

TCP

  • 패킷사이의 순서를 보장하는 연결지향 프로토콜이므로 가상회선 패킷 교환 방식을 사용한다.
  • 최초 연결시 신뢰성을 확보하기 위해 3way handshake를 수행한다 아래와 같은 과정을 통해 신뢰성을 구축할 수 있다.
  • 연결 해제시에는 4way handshake 과정이 발생한다. 클라이언트은 서버의 FIN 세그먼트를 수신후 일정시간을 기다린 뒤 연결을 종료하는데, 뒤늦게 도착하는 패킷에 대한 데이터 무결성을 보장하기 위함

UDP

  • 순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터를 주는 데이터그램 패킷 교환방식을 사용한다.

인터넷 계층

장치로 부터 받은 네트워크 패킷을 IP 주로 지정된 목적지로 전송하기 위해 사용되는 계층입니다. IP, ARP, ICMP 프로토콜 등이 있으며 비연결형적인 특징을 가집니다. PDU는 패킷이다.

링크 계층

전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치간 신호를 주고받는 규칙을 정하는 계층. PDU는 프레임 이다.

계층간 데이터 송수신 과정

캡슐화 과정과 비캡슐화 과정을 거쳐 계층간 데이터가 이동한다.

  • 캡슐화 과정은 상위계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정을 의미한다. 애플리케이션 계층이 데이터가 전송계층으로 이동시 세그먼트가 되고, 전송 계층이 인터넷 계층으로 이동시 패킷이 된다. 최종적으로 패킷은 링크 계층으로 이동하면서 프레임이 된다.

PDU

  • 네트워크의 특정 계층에 해당하는 데이터의 단위를 Protocol Data Unit이라 한다.
  • 상위 계층으로부터 메시지, 세그먼트, 패킷, 프레임 (+비트)로 불린다.
profile
I'm going from failure to failure without losing enthusiasm

0개의 댓글