그림으로 배우는 네트워크

존스노우·2022년 5월 9일
0

네트워크 기본

네트워크란?

그물 처럼 구성된 시스템

컴퓨터 관련 -> 컴퓨터 네트워크

기기 간 데이터를 주고 받을 수 있게 해준다.

네트워크의 분류

누가 이용할수 있는 네트워크?

공용 인터넷 (일반적 이용)

Goole , Naver 처럼 사용하는것..

사설네트워크(제한적 이용)

사내 네트워크 , 인트라넷

스타크래프트 처럼 (IPX 스위치나 허브로 연결된 사용자끼리)

네트워크 구성에 따른 분류

LAN (Local Area NetWrok)

기기나 스위치를 이용해 연결

WAN

라우터를 이용해 연결

어떻게 만듬?

LAN을 연결 해야함

WAN을 제공하는 이통사와 계약해서!

  • 인테넷은 전세계 다양한 조직(Autonomous System 자율적 시스템) 이 관리하는 네트워크가 연결

ISP

인터넷 상의 모든 ISP는

Tier1을 경유해서 연결 된다..

티어 1끼리 교환을 한게 원래 통신하고자하는 곳을 찾아.. 연결?

우리나라에서 쓰고잇는 이통사는 Tier2 다

주로 서버와 클라이언트 끼리 네트워크를 통해 데이터를 주고 받지만

클라이언트끼리도 데이터를 주고 받는다.

P to P

ex)
sns 메신저 , 온라인 게임
간혹 특정상대를 지정할때 서버를 거치는 경우가 있다.

서버를 거쳐가지고 데이터를 전송하면 시간이 오래걸리기때문에

클라이언트끼리 데이터를 주고받으면 좀 더 빠르게 데이터를 처리받지않을까?

프로토콜

컴퓨터가 통신하기위해 네트워크 아키텍쳐 (대화)

그냥 프로토콜..

TCP/IP

네트워크 공통언어

네트워크로 애플리케이션 데이터를 주고받기 위해 4계층으로 이루어짐

서버종류

온프레미스 (기존 방식) 어느공간에 서버를 두는 방식

vs

클라우드

고객들이 서비스를 이용하기위해 항상 켜져있어야 한다.

2장 네트워크를 만드는 것

2장 네트워크의 공통언어

네트워크의 공통규칙 TCP/IP

TCP/IP 의 4 계층

네트워크 인터페이스 계층

같은 네트워크 안에서 데이터 전송

이더넷 헤더와 FCS(에러체크를 위한 정보) 가 추가되면서 네트워크로 보내짐

인터넷층

네트워크 사이에 데이터를 전송하는 역할

대표적인 기기 : 라우터

네트워크 간 전송을 라우팅 엔드투엔드 통신 을 함.(IP)

트랜스포트층

데이터가 잘 도착했나? 손실이 됬나? 정확하게 확인해주는 층

포트 번호를 통해 어느 어플리케이션으로 가야될지 분배

TCP: 데이터가 중간에 손실이나면 재전송 신뢰성 이 보장됨 (엔드투엔드 신뢰성 확보)
UDP: 신뢰성 정확성 부분에선 떨어지지만 동영상 스트리밍 처럼 끊기없이 최대한 효율적으로 빠를대 사용

애플리케이션 층

데이터를 보여줘 !

TCP/IP에 의한 전체 데이터의 전송

왼쪽이 캡슐화
오른쪽은 역캡슐화

네트워크 계층에서

전기신호 -> 디지털신호 변환

이더넷 헤더에서 맥주소 맞으면 인터넷 계층으로

인터넷계층에서 IP가 맞다면 전송계층으로

전송계층에선 데이터가 빠짐없이 도착했나? 맞으면

응용계층으로

각 헤더 중요 (식별자 정보가 있음)

라우터는 인터넷계층 , 네트워크 인터페이스 계층만 사용함

IP (Internet Protocol)

엔드투 엔드 하는 통신

호스트 부 : 라우터도 해당됨

네트워크1 주소를 표시할때 끝에 전부 1이나 0으로 되잇으면 대표하는 주소임

전부 1이면 ex)255 네트워크 1에 속해있는 모든 주소에 데이터를 전송하는

브로드 캐스트 주소

유니캐스트 : 주력 사용방식 MAC 주소로 판단 TCP/IP 통신 대부분 유니캐스트

브로드캐스트 : 패킷을 cpu가 받게되고 모든 cpu에 전송됨 cpu 부하가 발생함.
같은 네트워크상 모든 PC에 데이터 전송

멀티캐스트 : 같은 네트워크에 있어도 내가 원하는 상대에게만 데이터 전송
네트워크 자원낭비가 적음 , 멀티캐스트를 지원하는 라우터만 사용 가능..
UDP 방식? 신뢰성 정확도 적음
수신자가 모드 참여하는 그룹 주소를 써야됨

서브넷 마스크

네트워크부와 호스트 부는 가변적이다.

1은 네트워크부 0 은 호스트 부를 나타내게 된다.

호스트부를 0으로 채우면 네트워크 주소 1로 채우면 브로드캐스트 주소

아이피 주소를 분할해서 좀더 많은 자원을 사용 할 수 있기 하는게 서브넷

서브네팅을 하게되면 네트워크를 확장하는 개념?

가령 네트워크 낭비를 맞기위해

네트워크부를 26~ 비트이상으로 잡고 호스트부를 줄여 낭비를 막을수 있다.

IP 주소 설정

대륙단위로 공인 아이피

그다음 국가별

그다음 SK , KT 등 공인아이피 할당

마지막으로 소비자가 할당됨

사설 네트워크 : 인터넷 공유기로 연결되어있으면 이게 사설네트워크

중복이 많은 주소들..

라우터의 고유 주소를 가지고 있어야 됨.

NAT

사설 ip -> 공인 ip 로 전환

복수의 사설 ip를 하나의 글로벌 주소로 대응시키는

주소변환을 NAPT라고 한다.

  • 추가 설명

ICMP (Internt Control Message Protocol)

IP는 최선형 노력이라해서 (best effort)

데이터를 보내기 위해 최선을 다하지만 안돼면? 어쩔수없징

그래서 정상적으로 이루어 졌는지 확인하기 위해 ICMP 사용

IP end to end 통신을 할수 있는지 알려줌. (ip 통신이 제대로 이루어 졌나?)

  • 에러리포트 , 진단기능

확인만해주고 별다른 조치는 취하지 않음

ex) ping

ARP

IP 주소와 이 인터페이스를 식별하기 위한 MAC 주소를 대응 시키는 것

IP 패킷을 송싱하고자 목적지 IP 주소를 지정할 때 자도으로

ARP 수행

참고 :
https://aws-hyoh.tistory.com/entry/ARP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

포트

ip 만으로는 어떤 애플리케이션으로 전송해야될지 불명확할 때가 있다

각각의 애플리케이션을 식별할 수 있어야되는데 이 때 포트를 사용함

TCP/UDP 헤더에 서 지정함


TCP PROTOCOL

TCP란 신뢰성 있는 애플리케이션 간의 데이터 전송을 하기 위한 프로토콜

DNS

도메인서버는 테이블 도메인 -> ip 변환

DHCP

웹사이트의 동작 원리

웹페이지 파일전송 하는 TCP/IP의 애플리케이션층 이고

프로토콜은 http 임 (암호화 경우 https)

Classic WebServer의 한계 : 정적 데이터만 가능!

그래서 나타난 WAS!~

WAS

http Request의 구조

그다음 부턴 Message Header 부분 (원 제외한 부분)

http Response의 구조

원을 제외한 나머지부분은 ResponseHeader 부분 (바디빼고)

인증

웹 브라우저의 특정 정보를 저장해두는 기술 쿠키 !

도메인 구조

proxy server

웹 접속을 대신하는 서버

  1. 클라이언트 웹브라우저에서 url입력하면 프록시 서버로 http리퀘스트 보냄

  2. 프록시 서버에서 URL로 지정된 웹서버에 HTTP 리퀘스트를 보낸다.

  3. 웹서버에서 프록시 서버로 HTTP 리스폰스를 보낸다.

  4. 프록시 서버에서 클라이언트 PC의 웹브라우저로 HTTP 리스폰스를 보낸다.

방패같은 역활 프록시서버를 거쳐 본서버로 요청..

이더넷과 무선랜

랜 환경에서 데이터 송수신 과정은 어떻게 될까?

이더넷(Ethernet)

LAN 환경 그림

중앙 레이어 스위치 주변 여러 호스트들이 1:1로 연결 되 있음

링크 계층에서 네트워크 장비들끼리 주고받는 프로토콜

인터페이스는 어느것?

이더넷 인터페이스간 데이터를 전송하므로 이더넷 인터페이스를 특정해야만함.

이러하기 위해 MAC 주소가 있다.

케이블 (어떤장치로 물리적으로 연결할까)

UTP: 우리가 흔히 사용하는 랜선
2가닥씨 꼬여서 총 4가지가 하나의 피복에 들어 있음

STP: 절연체로 감싼 케이블

RJ-45 이더넷 인터페이스

UTP 케이블용 이더넷 인터페이스임. 매우 폭 넓게 사용중

거의 UTP 만 사용

이더넷 규격

BASE : 펄스신호를 사용해서 디지털신호를 주고받는 방식
지금은 BASE 밴드 방식만 사용한다.

카테고리 : 케이블의 스택을 나타냄.

이더넷 프레임

FCS : 에러체크를 위한 것.

목적지 MAC 주소

출발지 MAC 주소

타입 코드

전송대상 데이터 최대값이 넘어버리면 (MTU) 복수로 분할해 전송

TCP에서 이루어짐.

이더넷 헤더의 주요 타입 코드값

0x0800 : Ipv4
0x0806 : ARP
0x86DD : Ipv6

MAC 주소

앞에 24비트는 제조사 벤더 (메이커 ) 식별 코드
뒤에 24비트는 시리얼 넘버는 각 벤더가 할당 함

토폴로지

CSMA

버스형 CSMA/CD 먼저가는 쪽이 승리하는 전송 방식

레이어2 스위치 역할

레이어2 스위치는 여러대 연결해도 하나의 네트워크임 .
네트워크의 입구 역할도 하면서 액세스 스위치라고도 한다
일반적으로 스위칭 허브라고 도부름

각각의 호스트 들은 하나의 스위치에 랜케이블로 연결 되 있다.

레이어2 스위치 동작 -1

  1. 수신한 이더넷 프레임의 출발지 MAC주소를 MAC주소 테이블에 저장
  2. 목적지 MAC 주소와 MAC 주소 테이블에서 전송할 포트를 결정해이더넷 프레임을 전송 함 MAC 주소 테이블에 존재하지 않으면? MAC 주소의 경우는 수신포트를 제외한 모든 포트로 이더넷 프레임 전송함 (플러딩)

이더넷 프레임 전송은 잘모르겠으니 일단 전송해 그래서

목적지가 아니면 전부다 파기한다.

그리고 다시 응답 오는 방향도 MAC 주소 테이블에 등록하면서 온다.

MAC 주소 테이블 관리

하나의 포트에 꼭 하나의 MAC 주소는 아님.

하나의 포트의 복수의 MAC 주소가 등록될수 있고.

또하나 제한시간이 있따 (보통 5분)

데이터 전송과 동시에 수신.

전이중 통신이라고 한다.
데이터 수신용과 손신용 전송 매체를 나누어 사용하기 때문

이더넷과 무선 랜

무선랜 네트워크를 만들기 위해

무선 LAN 액세스 포인트와 무선 LAN 인터페이스 필요

무선LAN 인터페이스는 주로 노트북이나 스마트폰에 장착되있음
(무선 LAN 클라이언트)

무선 LAN의 데이터 통신은 무선 LAN 액세스 포인트를 경유하는데
무선 LAN 액세스 포인트에서 데이터를 주고받는걸 Infrastucture모드 라 함

무선 LAN 클라이언트의 애플리케이션에서 요청을 보낼 목적지 서버는 거의 유선 이더넷을 이용함 . 결국 무선 LAN만으로 통신이 완결되지 않는 경우가 보통이라

무선 LAN 액세스 포인트는 레이어2스위치와 접속해 유선 이더넷 네트워크와도 연결됨.

왼쪽은 일반 가정집에서 사용하는 셋

오른쪽은 여러 액세스 포인트를 하나의 무선 LAN에서 사용하기 때문에

서로 다른 주파수를 사용함 , 서로 간섭이 안생겨 지장이 안생겨

비중첩 채널이라 함.

무선 LAN 연결

무선 LAN에 연결하는것은 ? 어소시에이션
-> 어소시에이션은 유선 이더넷의 케이블 배선에 해당함

beacon: 액세스 포인트 제어신호 이용가능한 주파스 대역 검출
후 SSID를 지정해서 액세스 포인트에 어소시에이션 요청

SSID : 어느 무선랜 을 사용해야되나? (스마트폰 와이파이 목록)

무선 LAN(WIFI) 규격

전파는 돌려 쓴다 CSMA/CA

우리가 보통 애플리케이션을 이용할 때의 실질적인 통신속도는

실효속도나 스루풋이라고 불린다. 스루풋이 낮은 이유는

전파를 돌려쓰기 때문

무선랜에 전송매체는 전파 이다.

주파수대의 전파는 채널이라고 함

무선 LAN에서 데이터를 전파에 실어 송신할 수 있는 것은 하나의 무선 LAN클라이언트 뿐임. 복수의 무선 LAN 동시에 데이터를 전파에 실어 보내버리면

충돌이 일어남. 그래서 제어할 필요가 있는대

무선 LAN 에선 CSMA/CA를 이용한다.

  1. 전파가 이용중인지 확인한다.

  2. 랜덤 시간 대기.

    전파가 이용 중이 아니라면 데이터를 송신 할 수 있지만

    바로 송신을 시작하지 않고 랜덤 시간동아 ㄴ대기.

  3. 데이터 송신

    랜덤 시간 동안 기다렸는데도 전파가 미사용이라면 드디어 데이터를 전파에 실어 송신.

무선 LAN 보안

  1. 액세스 포인트 발견
  2. 인증 절차
  3. 키 관리 (무선 단말과 AP 간에 암호화키 교환)

무선 LAN의 보안 규격은 WPA2 입니다.

라우팅

라우팅 이란

라우터는 데이터의 목적지가 어느 네트워크에 접속해 있는지

판단해서 연결된 네트워크의 라우터로 전송한다 (라우팅)

라우터가 전송할 대상이되는 데이터는 IP패킷

그래서 라우팅 동작은 인터넷층에서 하게된다.

Ip 헤더는 이상들은 변하지 않고

이더넷 헤더들만 변하게 됨.

넥스트홉 : 다음에 전송할 라우터

IP 주소로 ARP 실행 하거나 맥테이블을 이용해서

MAC 주소를 알아냄 .

라우팅시 변하는 것

TTL : 데이터가 언제까지 살릴거임?

헤더체크섬도 변경 됨

NAT으로 주소변환이 이루어질경우 IP도 변경됨.

라우팅 테이블

라우팅 테이블에 등록된 네트워크 정보를 루트정보 OR 경로 정보 라 함

경로 정보에 가장 중요한건

  1. 네트워크 주소

  2. 서브넷 마스크

  3. 넥스트홉 주소

C: conneted :물리적으로 배선이 되어 알고 있다 (직접접속)
S: static : command 로 등록이 되어 있다. (스태틱 라우팅)

앞에주소를 가고싶으면 via 이 주소 넥스트홉을 이용하면 됨.

라우팅 테이블 만드는 법

물리적 배선에 -> 인터페이스 활성

ex) R1 에서 192.168.2.0/24 가고 싶으면
주소를 입력.

같은 넥스트 홉을 등록 하는경우가 있는대
이러면 의미가 없어지므로

경로 요약을 함

목적지 네트워크로 가기위한 넥스트 홉이 동일

이러면 낭비가 되기때문에 경로 요약함

그리고 모든 경로를 알수 없기 때문에 ..!?

라우팅 : VLAN

허브 , 스위치

물리 계층이기때문에 링크 계층의 MAC 주소를 알 수 없음

요세는 순수 라우터 안씀

VLAN

VLAN의 동작 원리 자체는 일반 레이어2 스위치는 모든 포트
사이에서 이더넷 프레임을 전송 할 수 있다. 그것을 VLAN 으로 나누어 같은 VLAN에 할당한 포트끼리만 이더넷 프레임을 전송하도록 함

동일한 네트워크부를 사용하는 것을 LAN
VLAN 은 레이어 2 스위치를 가상으로 분할 함

장점으로 데이터가 전송되는 범위를 제한해 보안에 유리함

VLAN으로 분할한 네트워크가 서로 통신하기 위해서는 라우터와 레이어3 스위치가 필요 함 .

  • 같은 VLAN 포트에서만 이더넷 프레임 전송 가능 함

포트를 1개만 두고 다수의 VLAN을 할당

태그 VLAN

복수의 스위치를 VLAN을 만들때 서로 효율적으로 연결하기위해

태그 VLAN (트렁크) 를 씀

VLAN 태그 : p193 하단 프레임안에 넣는 태그 (스위치 간 통신 사용)

태그 VLAN : 하나의 포트로만 송수신 하는것 ( 태그 VLAN 포트라함)

네트워크 보안 기술

암호화 복호

Plain Text : 평문 암호화하기전 순수한 데이터

Cipher Text : 암호화된 데이터

암호키를 이용해 암복호화

공통키 암호 방식

공통키는 노출 되면 안돼서 비밀키 암호 방식이라고 한다.

장점 : 암호화 와 복호에 있어서 처리속도가 빠름
단점 : 키 유출과 암호 해독의 위험성

++ 키 배송 문제 : 암호키를 정기적으로 갱신 할 필요가 있다
그래서 데이터 송신자와 수신자 사이에서 어떻게
암호키를 공유하고 갱신하는지를 가리키는 것을 키 배송 문제라 함

공통키 암호화 방식 : DES / 3DES / AES

공개키 암호 방식

키 배송 문제를 해결한 공개키 방식

암호와와 복호와를 다른 키를 사용함

공개키로 데이터를 암호화 -> 복호화는 비밀키로만 비밀키를 가진 사용자만.

추가적인 특징

비밀키로도 암호화 가능
-> 이방식은 사용자 인증에 사용 가능

-> 공개키로 복호화 가능

문제점: 공개키를 신뢰할 수 있겠는가? (누가 보낸거야)

암호방식의 알고리즘 : RSA 암호 , 타원곡선 암호

디지털 서명

해쉬 알고리즘 에서 해쉬값이나와 비밀키로 암호화하면 디지털 서명

해시 값 : 해시 알고리즘을 통해 계산하여 산출한, 데이터의 고유의 고정길이 값

해시값을 암호화한 암호문도 같이 들어있는 디지털 서명
수신자가 함께 받음

송신자자로부터 수신자가 암호화된 해시 값을 받음
공개키로 가지고 복호 화된다?
공개키와 대응하는 비밀키로 암호화된 비밀키네? 확인
비밀키는 저쪽만 가지고 있는데? 사용자를 특정 가능 (신뢰할 수 있는 사람이 보냈구나 -> 진위성 검증 )

디지털 인증서 (암호화에 사용하는 공개키는 진짜일 까?)

인증기관 CA 에서 인증서 발급

공개키 소유자 정보
소유자의 공개키도 같이 들어가 있다.

TLS / SSL

SSL( Secure Sockets Layer)

컴퓨터 네트워크에 통신 보안을 제공하기위해 설계된 암호 규약

TLS (Transport Layer Security)

SSL은 과거 명칭에 해당되고 , 표준화 되면서 TSL로 바뀜

데이터의 도청 방지

클라이언트와 서버간의 데이터 송수신 과정에서 데이터를 암호화하여 도청 방지

서버로 부터 받은 공개키로
자신이 가지고있는 공통키를 암호화 시켜 보냄

서버는 자신이 가지고있는 비밀키로 공통키를 풀어서

서버와 사용자는 같은 공통키를 가지고 있다.

같은 공통키를 가지고있는 서버와 사용자는 자유롭게 데이터 송수신

VPN (Virtual Private NetWork)

가상으로 만든 사설 네트워크

profile
어제의 나보다 한걸음 더

0개의 댓글