네트워크(Network) 정리

ybg7955·2020년 10월 3일
0

후니의 쉽게 쓴 시스코 네트워킹을 읽고 정리하였습니다.

인터넷 vs 인트라넷 vs 엑스트라넷

인터넷

  • 여러 개의 네트워크를 묶은 것을 말한다.
  • 하나의 프로토콜만을 사용한다.(TCP/IP)
  • 웹 브라우저를 통해 사용한다.

인트라넷

  • 내부의 네트워크를 말한다.
    (사내 네트워크)

엑스트라넷

  • 사내 네트워크를 직원이 아닌 협력사나 고객도 사용할 수 있도록 한 것을 말한다.

LAN(Local Area Network)이란?

  • 어느 한정된 공간에서 네트워크를 구성하는 것을 말한다.
  • 예를 들어, 한 사무실에 컴퓨터가 30대 있고 이것들을 네트워크로 구성한다면 '사무실에 LAN을 구축한다'고 말할 수 있다.

WAN(Wide Area Network)이란?

  • 멀리 떨어진 지역을 서로 연결하는 경우를 말한다.
  • 인터넷은 WAN이라고 말할 수 있다.

이더넷(Ethernet)이란?

  • 네트워크를 구축하는 방식 중 하나이다.
  • CSMA/CD 프로토콜을 사용한다.

CSMA/CD(Carrier Sense Multiple Access/Collision Detection)

  • 대충 알아서 눈치로 통신하자

<이더넷 환경>

  1. 통신을 하고 싶은 PC나 서버는 네트워크상에 통신이 일어나고 있는지 확인한다.(즉, 캐리어가 있는지 감지)
  2. 눈치를 보다가 네트워크에 통신이 없으면 데이터를 보낸다.
  3. 만약 2개 이상의 PC나 서버가 데이터를 보내면 충돌이 일어난다.(충돌이 발생했다고 함)
  4. 충돌이 발생했을 경우 랜덤한 시간동안 기다린 후 다시 데이터를 전송한다.

망 분리

  • 네트워크를 분리하는 것을 말한다.
  • 물리적 망 분리
    • 물리적으로 인터넷망과 업무망을 나누는 것을 말한다.
    • 돈도 많이들고 전기도 많이 든다...
  • 논리적 망 분리
    • CBC: PC 안에서 업무 영역과 인터넷 영역을 구분
    • SBC: 작업은 서버에서 진행하고 화면만 PC로 뿌려준다.

맥 어드레스(MAC Address)란?

  • 컴퓨터를 네트워크 상에서 구분하기 위한 주소를 말한다.
  • 맥 어드레스는 랜카드에 고정되어 있는 주소를 말한다.

ARP(Address Resolution Protocol)란?

  • IP주소 -> MAC 주소로 바꾸는 절차를 말한다.
  • A <---> B
    1. A는 B의 IP주소(105.111.111.111)를 안다.
      (맥 어드레스는 모른다)
    2. 자신의 네트워크에 브로드캐스트를 보낸다.
      (IP주소(105.111.111.111) 가진 애 누구야?)
    3. 그 IP주소를 가진 PC가 자신의 맥 어드레스를 보낸다.

유니캐스트 vs 브로드캐스트 vs 멀티캐스트

유니캐스트(Unicast)

  • 특정 목적지의 주소 하나만을 가지고 통신하는 통신 방식을 말한다.
  • A <---> B
    1. A PC가 B의 맥 어드레스를 담은 데이터를 보낸다.
    2. 로컬 이더넷의 기본 성격이 붙어 있는 모든 PC에게 유니캐스트 프레임을 뿌리기 때문에 모든 PC는 일단 데이터를 받는다.
    3. 자신의 맥 어드레스와 같으면 받고 아니면 프레임을 버린다.

브로드캐스트(Broadcast)

  • 로컬 랜에 붙어 있는 모든 네트워크 장비들에게 보내는 통신이다.
    (로컬 랜이란 라우터에 의해 구분된 공간, 즉 브로드캐스트 도메인을 뜻함)
  • 브로드 캐스트를 받은 네트워크 장비들은 무조건 받아서 CPU로 보낸다.
  • 브로드캐스트의 주소는 FFFF.FFFF.FFFF로 정해져 있다.
  • ARP에 브로드캐스트가 사용된다.

멀티캐스트(Multicast)

  • 보내고자 하는 그룹 멤버들에게만 한번에 보낼 수 있는 것을 말한다.
  • 멀티캐스트는 라우터나 스위치에서 이 기능을 지원해 주어야 쓸 수 있다.

OSI 7 계층

  • 데이터의 흐름을 한눈에 알 수 있다.
  • 문제를 해결하기 편하다.
  • 계층별로 다른 회사 장비를 써도 된다.

|계층 이름|예|
|:---:|:---:|
|애플리케이션 계층||
|프레젠테이션 계층||
|세션 계층||
|트랜스포트 계층||
|네트워크 계층||
|데이터 링크 계층|브리지, 스위치|
|피지컬 계층||

TCP/IP

  • 인터넷을 사용하기 위한 프로토콜이다.
  • 네트워크에 접속하는 호스트는 고유한 주소를 통해서 서로 통신하는 것이 특징이다.

IP주소

  • TCP/IP 프로토콜을 사용하는 모든 장비를 구분하기 위한 고유의 주소를 말한다.
  • 네트워크 부분 + 호스트 부분 으로 나뉘어져 있다.
  • 네트워크 부분은 하나의 브로드캐스트 영역(Broadcast Domain)을 말한다.
    (하나의 데이터를 뿌렸을때 라우터를 거치지 않고 바로 받을 수 있는 영역)
  • IP 클래스
    • 클래스 A
      • xxx.xxx.xxx.xxx
      • |비트|1|7|24|
        |:---:|:---:|:---:|:---:|
        |클래스 A|0|Network부분|호스트부분|
      • 앞의 8비트가 네트워크 부분을 나타낸다.
      • 1.xxx.xxx.xxx ~ 126.xxx.xxx.xxx
      • 약 1,600만개
    • 클래스 B
      • xxx.xxx.xxx.xxx
      • |비트|1|1|14|16|
        |:---:|:---:|:---:|:---:|:---:|
        |클래스 B|1|0|Network부분|호스트부분|
      • 앞의 16비트가 네트워크 부분을 나타낸다.
      • 128.1.xxx.xxx ~ 191.255.xxx.xxx
      • 약 6만개
    • 클래스 C
      • xxx.xxx.xxx.xxx
      • |비트|1|1|1|21|8|
        |:---:|:---:|:---:|:---:|:---:|:---:|
        |클래스 C|1|1|0|Network부분|호스트부분|
      • 앞의 24비트가 네트워크 부분을 나타낸다.
      • 192.0.0.xxx ~ 223.255.255.xxx
      • 254개

서브넷 마스크(Subnet Mask)란?

  • 주어진 IP주소를 나누는 역할을 한다.

기본 게이트웨이(Default Gateway)란?

  • 라우터의 이더넷 인터페이스를 말한다.
    (내부 네트워크에서 밖으로 나가는 문)

DHCP란?

  • DHCP 서버가 클라이언트 호스트들에게 IP주소를 자동으로 배정해 준다.

허브(Hub)란?

  • 한 포트로 들어온 데이터를 나머지 포트로 뿌려주는 여러 개의 포트를 가진 장비이다.
  • 랜카드처럼 이더넷용과 토큰링용이 있다.
  • 같은 허브에 연결된 PC는 같은 콜리전 도메인에 있다고 말한다.
  • 허브를 계속 연결하면 콜리전 도메인만 커지게 되는 한계가 있다.

브리지/스위치(Switch)란?

  • 브리지는 스위치의 원조격이다.
  • 브리지의 모든 특성은 스위치의 특성이다.
  • 콜리전 도메인을 나눌 수 있다.
  • 라우터의 역할까지 수행하는 스위치도 있다.(레이어 3 스위치)
  • 5가지 일을 한다.
    • Learning: 배운다
    • Flooding: 모르면 들어온 포트를 제외한 다른 모튼 포트로 뿌린다.
    • Forwarding: 해당 포트로 건네준다.
    • Filtering: 다른 포트로는 못 건너가게 막는다.
    • Aging: 나이를 먹는다.
  • STP(Spanning Tree Protocol)
    • Bridge ID
    • Path Cost: 한 스위치에서 다른 스위치로 가는데 드는 비용

라우터란?

  • 지능을 가진 경로 배정기라고 할 수 있다.
  • 경로 결정(Path Determination)과 스위칭(Switching)을 수행한다.
    • 경로 결정: 데이터 패킷이 목적지까지 갈 수 있는 길을 검사하고 어떤 길로 가는 것이 가장 적절한지 결정
    • 스위칭: 경로 결정으로 찾은 길로 데이터 패킷을 스위칭
  • 브로드캐스트 도메인을 나눌 수 있다.

  • 라우팅 프로토콜(=라우팅 알고리즘)
    • 스태틱(Static) 라우팅 프로토콜
      • 라우터에 사람이 일일이 경로를 입력해줌
      • 라우팅 속도가 빠르고 메모리가 적게 듬
      • 경로에 문제가 생기면 일일이 수정해야 함
    • 다이나믹(Dynamic) 라우팅 프로토콜
      • 라우터가 알아서 좋은 길을 찾음
      • RIP, IGRP, OSPF, EIGRP 등
  • 라우팅 테이블
    • 프토로콜, 네트워크 주소, 경로 등이 들어가 있음

  • Interior Routing Protocol
    • AS 내부에서 사용하는 라우팅 프로토콜
    • RIP, IGRP, EIGRP, OSPF 등
  • Exterior Routing Protocol
    • AS 외부에서 사용하는 라우팅 프로토콜
    • EGP, BGP 등

폴트 톨러런트(Fault Tolerant)와 로드 밸런싱(Load Balancing)이란?

폴트 톨러런트(Fault Tolerant)

  • 네트워크상에 어떤 문제가 발생할 때를 대비해서 미리 장애 대비를 해놓는 것을 말한다.
  • 이중 구조로 구성하는 것을 의미한다.

로드 밸런싱(Load Balancing)

  • 인터넷 회선을 이용한 인터넷 접속 대신 두개의 인터넷 회선을 사용하는 것을 말한다.

AP(Access Point)란?

  • 무선과 유선을 연결해주는 역할을 한다.
  • 무선 통신은 IEEE 802.11(전송매체가 전파) 표준으로 한다.
  • IEEE 802.11은 CSMA/CA이다.

CSMA/CA

  • Carrier Sense Multiple Access/Collision Avoidance를 뜻한다.
  • 이더넷의 CSMA/CD와 같이 전송 전에 미리 Carrier를 Sense해서 현재 통신이 일어나고 있는지 확인한다.
  • 데이터 전송 방식
    1. 현재 통신이 일어나고 있는지 확인한다.
    2. 통신이 없는 것을 확인하면 랜덤한 시간동안 대기한다.
    3. 다시 한번 더 확인하고 없으면 데이터를 전송한다.
    4. ACK를 기다린다.
    5. 정해진 시간동안 ACK가 오지 않을 경우 다시 1번으로 돌아간다.

무선랜의 2가지 모드 - Ad Hoc vs Infrastructure

  • Ad Hoc 모드
    • AP없이 PC끼리 무선 랜 카드만 꽂아서 통신하는 방식
    • 현재는 거의 안 쓰임
  • Infrastructure 모드
    • 일반적으로 사용하는 모드이다.
    • AP를 사용한다.
    • Service Set
      • BSS(Basic Service Set): AP 1대를 이용
      • ESS(Extended Service Set): AP 여러 대를 이용

SSID(Service Set Identifier)란?

  • Service Set에서 서로를 구분하기 위한 ID
  • 무선 네트워크는 디폴트로 100ms마다 SSID와 기타 구성 정보를 Broadcast로 네트워크에 뿌려준다.

NAT(Network Address Translation)란?

  • 한쪽의 네트워크의 IP주소가 다른 네트워크로 넘어갈 때 변환이 되어서 넘어가는 것을 말한다.
  • NAT 테이블이 필요하다.
  • NAT가 필요한 경우
    • 내부 네트워크는 비공인 IP주소를 사용하고, 외부 인터넷으로 나가는 경우에만 공인 IP주소를 사용할 경우
    • ISP를 바꾸면서 내부 전체의 IP를 바꾸지 않고 기존의 IP주소를 그대로 사용하고자 하는 경우
    • 2개의 인트라넷을 합하려다 보니 두 네트워크의 IP주소가 겹치는 경우
    • TCP로드 분배가 필요한 경우

API(Application Programming Interface)란?

  • 응용 프로그램에서 사용할 수 있도록 기능을 만든 인터페이스를 말한다.

REST(Representational State Transfer)란?

  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
  • HTTP를 기반으로 필요한 자원에 접근하는 방식을 정해놓은 아키텍쳐를 말한다.
  • 모든 자원에 고유한 ID인 HTTP URI를 부여한다.
    (이미지, 텍스트, DB 결과 등)
  • REST의 구성 요소
    • 자원(Resource)
      • 모든 자원에는 고유한 ID가 존재하며 이는 HTTP URI이다
        ('/groups/group_id')
    • 행위(Verb)
      • HTTP 프로토콜의 Method(GET, POST, PUT, DELETE)를 사용한다.
    • 표현(Representation of Resource)
      • Client-Server 통신시 자원을 JSON, XML 등으로 통신한다.

REST API란?

  • REST를 기반으로 API를 구현한 것을 말한다.

TCP 3-Way Handshake

  • https://sleepyeyes.tistory.com/4 참고

[ References ]

  • 후니의 쉽게 쓴 네트워킹
  • https://medium.com/@dydrlaks/rest-api-3e424716bab
  • https://meetup.toast.com/posts/92
  • https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
  • https://sleepyeyes.tistory.com/4
profile
초보 개발자입니다.

0개의 댓글