[Node.js] 2주차

이정수·2023년 4월 9일
0

Node JS study 기록용

목록 보기
1/5
  • 외부 접속
    • 외부접속이란? : 외부IP에서 내부 IP로 접속하는것.
    • 포트포워딩이 필요한 이유 :
      • 외부에서 한개의 ip를 통해 내부에 있는 여러개의 장치 또는 프로그램과 통신할수 있도록 연결해주는것이 포트포워딩이다.
      • 포트포워딩한 IP주소로 다른 네트워크 기기의 외부접속을 가능하게 해준다.
  • 클라이언트-서버 모델
    • 클라이언트-서버 모델을 일상 속에서 찾아보자 [예 )음식점과 손님]
    • API의 개념: Application Programming Interface “응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스”,”데이터를 주고받기 위한 방법과 그 규격” 손님(프로그램)이 웨이터(API)에게 주문을 한다. 웨이터는 주문내역을 주방(API제공자)에게 가져다 준다. 주방에서 요리를 해 웨이터가 다시 나에게 음식을 가져다 준다. API는 사용법과 규격을 제공하는 문서공개 없이는 쓸 수 없다.
  • IP
    • IP란 : 인터넷에 연결되어 있는 모든장치들(컴퓨터, 스마트폰)등을 식별할 수 있도록 각각의 장비에게 부여되는 고유의 주소
    • IPv4와 IPv6의 차이 :
      • IPv4 - IP version 4의 약자로 전세계적으로 사용된 첫번째 프로토콜 주소는 32비트방식, 8피트씩 4자리로 되어있고 온점(.)으로 구분 2^32(42억 9천)개의 주소를 가질 수 있고 인터넷 사용자가 급증하며 고갈될위기 → IPv6 등장
      • IPv6 - 주소체계를 128비트로 확장한 인터넷 프로토콜 주소, 16비트씩 8자리로 각자리는 콜론으로 구분.
    • DNS를 사용하는이유 :
      • DNS란 Domain Name System으로 호스트의 도메인 이름을 IP주소로 변환하거나 그 반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템.( DNS시스템 안에서 이어주는 역할을 하는 서버를 DNS서버라고 한다.)
      • IP주소는 숫자로 이루어진 조합이라 인간이 기억하기 어렵다. 따라서 DNS를 이용해 인간이 기억하기 편한 언어체계로 변환하는 작업이 필요한데 이를 DNS가 한다.
    • 외부 IP와 내부 IP :
  • 포트
    • 포트란 : 네트워크를 통해 주고 받는 프로세스를 식별하기 위해 호스트 내부적으로 프로세스가 할당받는 고유한 값
    • 기본으로 사용하는 포트 정리
      프로토콜포트번호
      FTP20,21
      SSH
      SMTP25
      DNS53
      NTP123
      IMAP143
    • 외부 포트와 내부 포트 : 외부포트는 ‘외부에서 어떤 포트로 접속을 하였을때 지정된 컴퓨터로 연결을 할것인가? ‘ 이고, 내부포트는 ‘지정된 컴퓨터로 외부포트에서 연결을 해주었을 때, 그 지정된 내부 PC에서는 어떤 포트를 사용할 것인지’를 지정한다.

추가 개념 키워드

  • TCP vs UDP

    https://mangkyu.tistory.com/15

    • TCP
      인터넷 상에서 데이터를 메세지를 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
      
    • UDP 데이터를 데이터그램단위로 처리하는 프로토콜
    • TCP 예시 연속성보다 신회성있는 전송이 중요할 때에 사용하는 프로토콜로 파일전송과 같은 경우에 사용된다.
    • UDP 예시 신뢰성보다는 연속성이 중요한 서비스, ex) 실시간 서비스(streaming)에 자주 사용된다.
  • DNS

    https://kyun2da.dev/CS/dns란-무엇인가/

    Domain Name System의 약자. 호스트의 도메인 이름은 IP주소로 변환하거나 그 반대를 수행하도록 개발된 데이터 베이스 시스템. cf)네임서버란 DNS서버와 같은 말이다.
  • Proxy

    https://blog.naver.com/PostView.naver?blogId=dktmrorl&logNo=222410286839

    프록시 서버는 클라이언트가 프록시서버를 통해 다른 네트워크 서버에 간접적으로 접속할 수 있도록 해주는 컴퓨터 시스템이나 응용프로그램이다. 서버와 클라이언트 사이에 중계기, 대리로 통신을 수행하는 것을 ‘Proxy’, 그 중계기능을 하는것을 ‘Proxy Server’.
    • Forward proxy 클라이언트가 직접 naver.com에 접근하는게 아니라, forward proxy server가 요청을 받고 naver.com에 요청하여 그 결과를 클라이언트에 전달(forward)해준다.
    • Reverse proxy 클라이언트가 사이트에 데이터를 요청을 하여 reverse proxy가 요청을 받아 내부망 sever에서 데이터를 받아서 client에 전달.
  • 네트워크 장비
    • 라우터 인터넷에 연결되어 있는 어떠한 컴퓨터와도 연결할 수 있는것은 라우터가 있기 때문! 랜을 연결해주는 장치로 수신처 주소를 읽고 (IP주소를 기반으로) 데이터가 이동할 최적의 경로를 결정하여 다른 통신망으로 전송하는 장치
    • 허브 네트워크의 중심축. 여러컴퓨터들을 연결해주는 역할을 한다. 여러개의 단말 장치를 연결 해 주기 위해서 사용하는 전송로 중계장치. 종류에는 더미허브와 스위칭 허브가 있으며 대부분이 스위칭 허브로 구성되어 있다. 또 active허브와 passive허브로도 구분 할 수 있는데, Active허브는 전원에 연결되어 있어서 신호증폭이 가능하고 passive는 그렇지 않다. 대부분이 active 허브.
    • 스위치 MAC주소와 포트번호가 기록된 MAC주소 테이블을 가지고 있어서 목적지 MAC주소를 가진 장비가 연결된 포트로만 프레임을 전송한다.
    • 공유기 스위치의 기능에 라우터의 기능 일부가 추가된것.공유기 내부의 라우터에서는 사설 IP와 외부회선의 IP를 분배해서 연결한다.
  • 이더넷(Ethernet) 네트워킹의 한 방식( 네트워크를 만드는 방법중 하나)이다. 가장큰 특징은 CSMA/CD라는 프로토콜을 사용해서 통신한다. ( 호스트가 채널의 상태를 감지하여 충돌을 회피하는 네트워크 방식) - 이더넷에서 호스트들이 네트워크를 통해 통신을 하고 싶다면, 먼저 채널을 누가 사용한는지 살펴본다 → 누군가 이미 채널을 사용ㅎ아고 있다면 Carrier가 감지되고, Carrier가 감지되지 않으면 아무도 사용하지 않는것으로 판단하여 통신을 시도한다. → if) 동시에 다른호스트도 데이터를 전송하는 경우 (Mutiple Access) 제대로 데이터가 전송이 이루어지지 않는다. → 호스트는 데이터를 전송한 후 충돌이 일어 났는지 체크한다(Collison Detection) → if) 충돌이 일어 났다면 호스트는 어느 정도 기다린후 다시 데이터를 전송한다.
  • MAC 주소 (Media Access Control Address)

    https://m.blog.naver.com/wood0513/222084400286

    단 하나의 고유한 주소를 부여해서 통신을 할 수 있도록 만든 일종의 하드웨어 주소.
    통신을 하기위한 모든 랜카드에 부여되어 있으며 세상에 딱 하나만 존재하는 주소로 맥주소를 알면 통신하고 싶은 장비를 찾을 수 있다. Ex) 내컴퓨터의 IP가 192.168.0.100이라면 나와 통신하는 상태방이 192.168.0 네트워크대역까지 찾아오고 그뒤에 192.168.0.100을 찾고 내 컴퓨터 맥주소로 목적지를 변환한 뒤 최종적으로 나와 통신할 수 있게 된다. cf) 통신을 하기 위해서 IP주소와 MAC주소 둘다 필요하다. IP주소만 가지고 통신하는것 처럼 보이나 실제로 마지막에 MAC주소가 필요하다. 통신표준에 맞게 단계별로 진행 될 때, IP주소에서 MAC주소로 변환되는 과정을 거치는데 이를 ARP(Adress Resolution Protocol)이라고 한다.
  • 서브넷 마스크 서브넷 마스크는 IP주소의 네트워크 부분과 호스트 부분을 나누어 준다. 서브넷 마스크를 사용하는 이유는 거대한 네크워크 (호스트 숫자가 많아서 생기는 load)를 작은 네트워크로 나누어 쓰기 위함이다. → 이작업을 서브넷 마스킹이라고 한다.
  • 소켓 프로토콜
    • 소켓의 종류에는 TCP, UDP가 있다.
    • 소켓은 떨어져있는 두 호스트를 연결해 주는 도구로써 인터페이스의 역할을 하는데 데이터를 주고 받을 수 있는 구조체로 소켓을 통해 데이터 통로가 만들어 진다. 소켓은 역할에 따라 서버 소켓, 클라이언트 소켓으로 나누어 진다.
profile
keep on pushing

0개의 댓글