네트워크란
- 네트워크는 그물처러 컴퓨터를 통신망으로 연결한 것
- 노드 : 네트워크에서 컴퓨터와 통신장비들을 통틀어 말하는 용어(=컴퓨터 + 통신장비)
- 세계에서 가장 큰 네트워크는 인터넷이다.
네트워크 분류(네트워크를 규모 기반으로 분류)
- 개인 영역 네트워크
- 근거리 네트워크(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.25를 사용)
- VGA(비디오 통신포트), DVI와 헷갈리기 쉬우니 주의
- 최근 표준 모델은 HDMI이다.
- RS-232 포트 : 의료기기, 자동차에 많이 사용한다.
- 구조가 단순해서 안정적이다.
- 네트워크 인터페이스 카드(=랜카드)
- 비트신호가 전기신호로 변환된다.
- 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)
- 이 비트를 전기신호로 변환하여 네트워크로 상대방에게 전송한다.
'DevOps & SRE 엔지니어 부트캠프 > 공부' 카테고리의 다른 글
[CAB TA 3기] 네트워크(2) - 데이터링크 계층 (0) | 2024.10.31 |
---|---|
[공부] 쿠버네티스 클러스터 흐름 (0) | 2024.10.21 |
[CAB TA 3기] 네트워크 - IP 클래스(IP Class), 서브넷 마스크(Subnet mask) (0) | 2024.10.16 |