본문 바로가기

DevOps & SRE 엔지니어 부트캠프/공부

[CAB TA 3기] 네트워크(1) - 물리 계층

네트워크란

  • 네트워크는 그물처러 컴퓨터를 통신망으로 연결한 것
  • 노드 : 네트워크에서 컴퓨터와 통신장비들을 통틀어 말하는 용어(=컴퓨터 + 통신장비)
  • 세계에서 가장 큰 네트워크는 인터넷이다.

네트워크 분류(네트워크를 규모 기반으로 분류)

  • 개인 영역 네트워크
  • 근거리 네트워크(RAN) : 회사 사무실, 가정 집, 학교, 강의장 등 소규모 네트워크 통신망
  • 도시 지역 네트워크
  • 광역 네트워크(WAN)
    • 두 개 이상의 랜을 연결하여 만들어진 넓은 범위의 네트워크 통신망
    • 멀리 떨어진 상대방과 통신을 가능하게 해줌(랜끼리 연결되기 때문에)
    • 집에서 사용하는 공유기는 랜 장비이다(개인 사용자가 설정하여 사용)
    • 국가에서 지정한 사업체에서만 제공할 수 있다(ISP -> SKT, KT, LG U+)

네트워크 토폴로지

  • 네트워크의 요소들을 물리적으로 연결해 놓은 것
  • 버스형
    • 하나의 케이블에 여러 노드들이 붙어 있음
    • 옛날 사용방식(70-80년대)
    • 설치하기 쉽다
    • 메인 라인이 죽으면 모든 노드가 다운
  • 스타형
    • 중앙에 위치한 노드가 모든 노드를 연결한다(중앙 장비가 모든 장비 관리)
    • 대표적인 장비가 공유기 -> 공유기 하나에 컴퓨터, 핸드폰, 노트북 등 모두 연결됨)
    • 보통 랜 대역대(가까운 거리)의 네트워크를 구서하는데 많이 사용함
  • 트리형
    • 노드를 부모-자식 계층 구조로 연결함
    • 계층 구조이기 때문에 확장이 용이하다.
    • 상위 노드에 문제가 생길 경우 하위 네트워크에 문제를 줄 수 있다.
    • 네트워크를 구성할 때 많이 사용하는 방식
  • 메쉬
    • 중앙의 제어장치 없이 서로 모든 노드가 연결되어 있음
    • n(n-1)/2개의 물리적 채널이 필요하다
    • 모든 노드를 full connected로 하는 것은 현실적으로 불가능하다.
    • 실제로는 특정 노드와만 직접 연결한다.
    • WAN 대역의 네트워크 통신망을 구축할 때 사용한다.
    • 바다 속에 해저 케이블을 통해서 연결되어 있음. 한 라인이 죽어도 다른 라인을 통해서 연결된다.

해저케이블

  • 링형(토큰형)
    • 네트워크 내의 모든 노드들이 원형을 이루고 있다.
    • 인접한 노드와 단방향 통신을 한다 -> 시계방향 또는 반시계방향으로만 통신됨
    • 버스형의 업그레이드 버전
    • 토큰을 발행하는데 토큰을 가지고 있는 노드만 통신을 보낼 수 있다.
    • 하나의 노드에 문제가 발생하면 전체 네트워크에도 묹가 생긴다(통신불능)

네트워크 전송방식

  • 유니캐스트
    • 특정한 수신자와 일대일 통신방식
    • MAC 주소를 알고 있어야 유니캐스트 통신 가능
    • 이메일 전송, 웹 브라우징 등에 사용된다.
  • 멀티캐스트
    • 여러 수신자에게 동시에 데이터를 전송하는 방식
    • 수신자의 모든 MAC 주소가 있어야 한다.
    • IPTV, 온라인 동영상 스트리밍 등에 사용된다.
  • 브로드캐스트
    • 에 연결된 모든 수신자에게 동시에 전송하는 방식(랜 범위를 넘어서진 않는다)
    • 불특정 다수에게 전송되는 서비스
    • 브로드캐스트 주소는 16진수이다
    • 원치않는 노드도 수신하게 되므로 네트워크 성능저하가 발생할 수 있다 -> 네트워크 엔지니어는 브로드캐스트를 잡는 것이 중요하다
  • 애니캐스트
    • 여러 개의 대상 중 가장 가까운 대상을 지정하여 해당 노드에만 데이터를 전송한다.
    • DNS 서버

프로토콜

  • 데이터 통신을 어떻게 할 것인지 정한 규칙
  • 네트워크 통신 방법에 대한 약속

OSI 7 Layer 모델

  • 개념적인 모델이기 때문에 실제 세상에서는 조금 수정해서 사용한다
  • 7계층 : HTTP
  • 6계층 : JPEG, MPEG
  • 5계층 : 소켓 -> 데이터 + HTTP
  • 4계층 : TCP/UDP -> 데이터 + HTTP + TCP
  • 3계층 : IP ICMP
  • 2계층 : ARP VLAN STP -> 데이터 + HTTP + TCP + IP + MAC
  • 물리계층 : Hub -> 전기신호로 변환됨(0, 1로 구성) 

물리계층 포트

X.21 포트

  • X.21 포트 : 전화, 인터넷과 같은 통신 네트워크에서 데이터를 어떻게 보낼지에 대한 규칙을 정한 것. 이 때 전송되는 데이터 양이 고정되어 있다.(고정 대역폭이라고 부름) -> 물리적 통신의 최대 처리량. 지금은 이 장비를 쓰지 않는다(현재에는 X.25를 사용)
    • VGA(비디오 통신포트), DVI와 헷갈리기 쉬우니 주의
    • 최근 표준 모델은 HDMI이다.
    • RS-232 포트 : 의료기기, 자동차에 많이 사용한다.
    • 구조가 단순해서 안정적이다.

RS-232 포트
랜카드 / IP 주소

  • 네트워크 인터페이스 카드(=랜카드)
    • 비트신호가 전기신호로 변환된다.
    • MAC 주소를 가지고 있다.
    • cmd 명령어 창에서 ipconfig를 입력하면 랜카드의 IP & MAC 주소를 확인할 수 있다.(윈도우)
    • 랜카드는 여러개일 수 있다.
    • 랜카드가 지원하는 인터넷 속도는 정해져 있다.
    • MAC 주소도 수정할 수 있지만 굳이 하지 않는다.
  • 리피터 : 신호를 증폭하여 전송거리를 연장하거나 신호의 품질을 유지한다 -> 1번포트로 들어온 신호를 2번 포트로 보낼 뿐, 특정 포트로 보낼 수 없다. 그냥 연결된 곳으로 보내기만 할 수 있다.(허브도 마찬가지). 장비가 주소를 모른다. -> 각 계층은 상위 계층의 주소를 모른다. 최근에는 리피터를 따로 사용하지 않고, 내장해서 사용한다.
  • 허브 : 여러 컴퓨터를 연결해서 네트워크를 형성한다. 데이터를 받으면 연결된 모든 노드로 브로드 캐스팅을 한다. 현재는 네트워크 성능 저하로 거의 사용하지 않는다.  

허브

케이블

동축 케이블

  • 동축
    • TV, 인터넷 케이블 선 등으로 사용한다.
    • 유지보수가 쉽다.
    • 현재는 저항이 너무 높아 광섬유로 대체하였다.

광섬유

  • 광섬유
    • 빛의 신호를 사용해서 데이터를 전달한다.
    • 광파를 활용해서 전기적 특성이 없다.
    • 유지보수가 매우 힘들다 -> 광섬유가 절단되면 원칙적으로 전체 광섬유를 드러낸 다음 전면 교체해야한다(빛이 매우 미세한 굴절각만 달라져도 파장이 바뀌기 때문에 어쩔 수 없음)
  • 연선 : 꼬임선이라고도 한다. 서로 독립적인 두 개의 도선이 꼬여 있다.
    • 전기적 간섭이 적어 저항이 작다.
    • 랜선에 많이 사용한다.
    • 꼬아 놓은 이유는 전기적 간섭을 최소화 하기 위해서이다.
    • UTP, STP, FTP도 있다. 상대적으로 차이가 있을 뿐 큰 차이는 없다.
    • UTP를 제일 많이 사용한다.

다이렉트 케이블

  • 다이렉트 케이블 : 구리선 여덟개를 동일한 순서로 연결하는 방식
    • 포트 종류가 다른 경우, 계층이 다른 장비이다.
    • 다른 계층끼리 연결해야할 경우 사용한다.
    • 1,  2번은 송신(TD), 3,6은 수신(RD)를 담당한다. 반대쪽에선 1,2번이 수신, 3,6번이 송신이 된다.
    • 상대편에선 포트가 뒤집어져 있다(송, 수신 반대)

크로스 케이블

  • 크로스 케이블 : 서로 다른 장치를 연결할 때 사용한다.
    • 1, 2번이 송신, 3,6번이 수신이면 반대쪽도 1,2번이 송신, 3,6번이 수신이다. 그래서 케이블을 다이렉트로 연결하지 않고 크로스해서 연결해야 한다.
    • 지금은 장비가 다 알아서 해주기 때문에 신경쓰지 않고 연결한다.
    • 같은 계층끼리 연결할 때 사용한다.

TCP/IP 모델

  • TCP + IP 구조, TCP가 위에 있고, IP가 아래에 있는 형태
  • OSI 모델보다 실무에서 많이 적용되는 모델
  • OSI 모델에서 5,6,7계층을 하나로 묶은 형태(Application layer로 묶음) + 1,2 계층을 Network 접근 계층으로 묶음
  • 기존에는 중앙 집중형 방식을 사용했음 -> 모든 데이터가 중앙으로 모인 후, 목적지로 이동하는 형태 -> 패킷 교환 형식으로 전환

캡슐화/역캡슐화

  • 데이터의 앞부분에 전송하는데 필요한 정보를 붙여서 다음 계층으로 보내는 과정
  • 패킷을 만들 때, 바깥쪽에 데이터를 붙이고 순서에 맞추어서 조절하여 보낸다
    • 데이터에 HTTP 헤더가 붙음
    • 다음 계층에서 TCP 헤더가 붙음(포트번호), 뒤에 있는 데이터 + HTTP 헤더를 통째로 데이터로 본다.
    • 다음 계층에서 IP 헤더가 붙음. 뒤에 나머지를 통째로 데이터로 봄
    • 다음 계층에서 MAC 헤더가 붙음. 뒤에 나머지를 통째로 데이터로 봄
  • 패킷 : 하드디스크에서 데이터를 저장하는 최소단위가 블록이다. 이 블록이 네트워크 통신으로 한번에 보내기에는 양이 많기 때문에 블록을 패킷으로 나누었다.
  • 역캡슐화는 반대로 하나씩 헤더를 분리해나가는 과정
  • 최종적으로 HTTP 헤더를 확인해서 데이터를 애플리케이션으로 받게 된다.
  • 구글에서 네이버를 입력하면 캡슐화-역캡슐화 과정이 진행된다.

프로토콜 데이터 단위

  • 각 계층마다 사용하는 데이터의 단위가 다르다.
  • PDU : 통신에서 데이터를 전송하는 단위
  • 5,6,7 계층 : 실질적인 데이터
  • 4계층 : 세그먼트
    • 데이터를 조각내어 만든단위
    • 각각의 세그먼트는 데이터, 제어정보, 오류검출을 위한 체크섬 등이 포함되어 있다
  • 3계층 : 패킷
    • 데이터를 조각내어 만든 단위
    • 라우터를 통해 데이터를 보낼 때 패킷 순서가 달라질 수 있어서 순서를 기존과 맞추기 위해 패킷 각각에는 시퀀스가 붙는다.
  • 2계층 : 프레임
    • 프레임헤더 + 페이로드 + 프레임 트레일러로 구성되어 있다.
    • 헤더 : 데이터의 시작위치에 존재하는제어 정보
    • 페이로드 : 실제로 전송되는 데이터의 내용
    • 트레일러(테일, 푸터) : 데이터 끝에 추가되는 추가정보. 데이터의 무결성, 오류를 감지하는데 사용된다.
  • 1계층 : 비트
    • 바이터리 코드(0, 1)
    • 이 비트를 전기신호로 변환하여 네트워크로 상대방에게 전송한다.