네트워크 기초

CHLEE·2023년 4월 12일
0

DevOps

목록 보기
10/24

네트워크란 ?

  • 케이블 또는 무선 매체 등의 통신 설비를 갖춘 컴퓨트럴 이용하여 서로 연결시켜 주는 통신망
  • 인터넷 : 문서, 그림, 영상과 같은 여러가지 데이터를 공유하도록 구성된 세상에서 가장 큰 네트워크
  • www : 인터넷을 통해 웹과 관련된 데이터를 공유하는 것
  • 장치, 프로그램 공유도 네트워크 : e.g. 프린터, 팩스

프로토콜이란?

  • 약속, 양식
  • 네트워크에서 컴퓨터끼리 통신을 할 때 어떤 컴퓨터가 어디 컴퓨터로 어떤 데이터를 어떻게 보내는지를 작성하기 위한 양식
  • 표준화 기구 - ISO 공업규격의 국제적 통일과 조정을 목적으로 하는 비조약 기구 ⇒ OSI, TCP

소켓

  • 소켓은 ip 주소 + 포트 넘버 + 전송 계층 프로토콜(TCP or UDP) 정보를 담고 있다.
  • TCP/UDP를 이용한 low level 네트워크 프로그래밍을 “소켓 프로그래밍”이라고 부른다.
  • WAS ↔ mongoDB 사이의 연결 (mongoDB driver) 역시 소켓 프로그래밍을 통해 구현한 것임.

HTTP 통신 Deep Dive

  • Application Layer(애플리케이션 계층)
    • HTTP 메시지
    • 필요에 따라서 DNS, HTTPS(SSL)등의 통신 진행
  • Transport Layer(전송계층)
    • 클라이언트(브라우저, postman, curl)와 서버(node WAS, nginx Web Server)간의 TCP 연결을 만듦.
    • 포트번호 지정
    • TCP 연결을 수립하게 해주는 3 way handshake라는 과정을 진행
  • Network Layer(인터넷 계층) 이하
    • 출발/도착지 IP 주소를 담아, Physical Layer(네트워크 인터페이스 계층)를 통해 네트워크 패킷 전송

TCP 프로토콜

  • 전송제어 프로토콜(Transmission Control Protocol)
  • 연결지향형
  • 안정성
  • 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 통신을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다.
  • TCP를 이용한 데이터를 통신할 때 프로세스와 프로세스를 연결하기 위해 가장 먼저 수행되는 과정(연결수립과정)
    1. 클라이언트가 서버에게 요청 패킷을 보내고

    2. 서버가 클라이언트의 요청을 받아들이는 패킷을 보내고

    3. 클라이언트는 이를 최종적으로 수락하는 패킷을 보냄.

      3 way handshake

  • TCP 연결을 수립하고 종료한다는 것은, 소켓에 플러그를 연결하고 빼는 것과 같은 개념

프록시 서버란?

  • 클라이언트와 서버 간의 중계서버로, 통신을 대리 수행하는 서버
  • 캐시, 보안, 트래픽 분산등 여러 장점을 가질 수 있음.

포워드 프록시

  • 캐싱 - 클라이언트가 요청한 내용을 캐싱
  • 익명성 - 클라이언트가 보낸 요청을 감춤

리버스 프록시

  • 캐싱 - 클라이언트나 요청한 내용을 캐싱
  • 보안 - 서버 정보를 클라이언트로 부터 숨김
  • 로드밸런싱(부하분산)
profile
🤗

0개의 댓글