1. 네트워크 전반에 대한 이해

1) 누구를 위한 네트워크인가?

ⓛ 누가 사용하는가?

- 일반 사용자용 : 네트워크에 개인으로 접속

- 기업용 : 회사원, 교내 네트워크 등

 

② 어디에서 사용하는가?

- 가정용 : 네트워크 인프라 부분에 광 회선이나 CATV 등의 액세스 회선을 이용해 사용 → 전자우편, 웹브라우저 등

- 기업용 : 네트워크 인프라 부분에 인터넷 회선만이 아니라 사내 전용 내선 전화망, IP 네트워크망 존재, 거점 간 통신

                → 고성능과 신뢰성이 요구, 고가, 보안 측면의 고려 필요, 법인으로서의 사회성 요구

- 가정용과 기업용의 차이 : 사용자가 이용하는 애플리케이션의 종류, 네트워크의 물리적 규모

 

③ 서비스 프로바이더용 네트워크 (=통신 캐리어 사업자용 네트워크)

- 통신 사업자나 ISP의 네트워크 ex) KT, SKT, LG U+

- 네트워크 형태에서 보면 WAN의 부분이 됨 → WAN 회선을 법인 기업용으로 제공하기 위해 네트워크 구성

- 대표적인 서비스로 IP-VPN이나 광역 네트워크가 있음

- 규모가 크고 고도의 성능과 높은 신뢰성 요구됨

∴ 기업에 통신회선 서비스(WAN)를 제공하기 위해 통신 사업자나 ISP에 의해 구축됨

 

2) 네트워크의 형태

ⓛ LAN과 WAN

- LAN : 회사 건물 내부나 가정 내부의 비교적 작은 범위의 네트워크

- WAN : 멀리 떨어진 LAN 간을 이어주기 위한 것,  보다 광범위하고 규모가 큰 네트워크

             KT나 SKT의 통신 사업자망을 사용하여 구축된 네트워크

- MAN : LAN과 WAN의 중간으로 특정 지역을 담당 ex) 도시형 네트워크(CATV) 등 

 

② 인트라넷(=사내 인트라넷)

- 독립적인 사내 네트워크

- 인터넷 기술을 기업 내 인터넷이 도입하고 정보 공유나 업무 지원에 활용하는 것을 목적으로 구축된 시스템

- 일반적으로 기밀성이 높은 업무 애플리케이션이 사내 인트라넷으로 구성되어 운용됨

 

3) 네트워크의 일반적인 구성

ⓛ 네트워크의 전체 구성 (기업의 예시) 

- 대규모 거점 : 본사와 지사 ex) 서울, 대전, 부산

- 중규모 거점 : 지점  ex) 대구, 울산, 세종, 광주

- 소규모 거점 : 나머지 지역

 

② 소규모 거점 네트워크 : 세 구역 이내의 단순한 네트워크

회선, 라우터, 스위치 등 모두 단독 구성이 일반적

- LAN과 사용자 단말 : 사용자가 작성한 데이터는 OSI나 TCP/IP 프로토콜의 규칙에 따라 네트워크를 사이에 두고 통신

- WAN 회선 : 주로 인터넷 VPN 사용 → 안정성보다 비용 중시

- 스위치 : 레이어2 스위치(L2 스위치)로 구성되는 경우가 대부분 → 단순한 네트워크  

- 라우터 : 반대쪽 라우터와 가상 네트워크의 경로 확립, 외부에서 들어오는 부정 패킷에 대한 방파제 역할

- 보안 : 방화벽 → 안팎으로부터의 패킷에 대해 통과를 허가/거부하는 역할, 소규모 거점에서는 라우터의 기능(패킷 필터링 기능) 안에서 작동시키는 경우가 대부분

- IP 전화 : 소규모 거점에서는 IP 전화기만 설치됨

- 무선 LAN : 무선 LAN 클라이언트(무선 LAN 어댑터를 탑재한 사용자 PC)와 무선 LAN 액세스포인트로 구성

 

③ 중규모 거점 네트워크 : 복수 구역의 이중화 구성을 고려한 네트워크

이중화나 서버룸 확보 등이 고려됨

- WAN 회선 : 네트워크 장애 방지를 위해 이중화 구성(네트워크 장애를 고려한 예비용 구성)을 고려

- 스위치 : 네트워크 구성을 유연하게 변경할 수 있는 VLAN 기능을 가진 레이어2 스위치 필요, 레이어3 스위치를 설치하여 다른 네트워크 간 통신이 가능하도록 함

- 라우터

     - 하나의 라우터로 복수의 WAN 회선을 보유 : 라우터 자체에 장애 발생 시 WAN으로의 전체 통신 불가능

     - 복수의 라우터로 각각의 WAN 회선을 보유 : 회선이나 라우터 자체의 장애 발생 시에도 운용에 영향 X

 

④ 대규모 거점 네트워크 : 여러 구역의 모든 부분에 대한 이중화를 고려한 네트워크

모든 거점을 수용, 센터국이라고도 함

- LAN과 사용자 단말 : 전용 서버룸은 존재하지만, 최근에는 데이터 센터가 그 기능을 가짐

- 스위치 : 대규모 거점에서는 스위치의 이중화도 고려해야 함

- 보안(방화벽) : 네트워크상에 전용 기기로서 도입됨

- IP 전화 : IP 전화기는 물론 음성 서버도 설치됨

    ※ 음성 서버 : 음성 네트워크 전체의 전화번호와 IP 주소의 대응표 관리, IP 전화기 간의 통화 중계 담당

- 무선 LAN : 무선 LAN 컨트롤러 도입 → 설치 장소 관리, 무선 LAN 액세스포인트 간의 전파 간섭에 대한 대비

 

 

2. LAN 초보 입문

1) OSI 기본 참조 모델

① 프로토콜 : 컴퓨터 통신에 필요한 약속을 정한 것

② OSI 기본 참조 모델 : 여러 다른 제조사의 네틍워크 기기 간의 통신이 문제없이 이루어지기 위해 따라야 하는 국제 표준

- 각 계층의 독립성과 전문성을 높여 새로운 기술에 유연히 대응하도록 함

※ PDU(Protocol Data Unit) : OSI 기본 참조 모델 계층별 제어 정보와 데이터에 따라 구성되는 단위

    → 전송계층(세그먼트), 네트워크계층(패킷), 데이터링크계층(프레임)

 

2) LAN

① LAN의 위치

라우터를 기준으로 LAN과 WAN의 경계가 나뉨

 

② LAN의 구성요소

- 대부분 이더넷(물리계층, 데이터링크계층에 대한 규격)으로 구성 

- LAN 카드 : UTP 케이블을 꽂는 곳, 네트워크 인터페이스 카드(NIC)라고도 함

- UTP 케이블 : 두 개의 동선을 꼬아 만든 것을 1페어로 4페어의 선을 묶은 케이블 → 한쪽은 LAN카드, 다른 한쪽은 스위치에 꽂음

     - 다이렉트 케이블 : PC 단말과 스위치 간, 스위치와 라우터 간 접속용으로 사용

     - 크로스 케이블 : 스위치 간이나 라우터와 PC 단말을 직접 연결 시 사용

      ※ 최근에는 구역과 구역을 잇는 백본 부분에 광 케이블을 사용하는 것이 일반적   

- LAN 카드나 네트워크 기기는 읽기 전용 메모리(ROM)를 가지고 있어 고유의 주소를 기록 → MAC 주소

 

③ LAN의 배선

- 바닥 LAN 배선 : 바닥에 깔려있는 카펫을 걷어내면 조립식 패널이 설치되어 있고, 패널 아래에 케이블이 깔려 있음

   → 프리 액세스 영역 : 바닥에 전력, 통신용 배선 및 공기 정화 장치 등의 기기를 수납하는 마루로 배선 작업이 쉬운 구조

- 천장 LAN 배선 : 와이어 프로텍터를 따라 19인치 랙까지 닿을 수 있도록 천장 위에 배선

 

3) IP 주소

① 네트워크 기기에 주소 할당

- IP 주소 : 데이터를 네트워크 기기나 단말에 보내기 위한 식별 정보 → 라우터를 통한 다른 네트워크와 통신 시 필요

     - TCP/IP의 IP 프로토콜로 사용

     - 10진수 표기, 32비트로 구성(네트워크 주소 부분 24비트, 호스트 주소 부분 8비트)

     - 호스트 주소 부분을 전부 0으로 한 것이 네트워크 주소

     - 호스트 주소 개수 계산 시 2를 빼는 이유? 네트워크 주소(0)와 브로드캐스트 주소(255)를 남겨야 하기 때문

 

② IP 주소의 클래스

- 클래스 A~E까지 5개로 나뉘어져 있고, 사용자에게 할당되는 주소는 클래스 A~C

- 클래스 A : 주소 시작이 1~126

     - 맨 앞의 1비트가 0으로 시작

     - 네트워크 주소 부분 8비트, 호스트 주소 부분 24비트

- 클래스 B : 주소 시작이 128~191

     - 맨 앞의 2비트가 10으로 시작

     - 네트워크 주소 부분 16비트, 호스트 주소 부분 16비트

- 클래스 C : 주소 시작이 192~223

     - 맨 앞의 3비트가 110으로 시작

     - 네트워크 주소 부분 24비트, 호스트 주소 부분 8비트

- 클래스 D : 멀티캐스트용 주소 → 사용자의 주소로 할당 불가

- 클래스 E : 실험용 주소 → 사용자의 주소로 할당 불가

 

③ 할당할 수 없는 주소

- 네트워크 주소 : 호스트 주소 부분의 비트가 전부 0

- 브로드캐스트 주소 : 호스트 주소 부분의 비트가 전부 1

   ※ 브로드캐스트 : 네트워크 내의 불특정 다수에게 패킷을 동시에 전달하는 것

       → 통신 상대를 지정할 수 없을 때 사용, 여러 프로토콜이나 애플리케이션을 사용하는 경우에 발생

 

④ 특수 용도의 주소

- 루프백 주소 : 주소의 시작이 127인 것, 네트워크 상에서 자기 자신을 나타내는 인터페이스 또는 그 주소

     → 루프백 주소용으로 예약되어 있으므로 일반 사용자에게 주소로 할당할 수 없음 (일반적으로 127.0.0.1)

- ping 127.0.0.1 : 자신의 PC의 TCP/IP가 활성화되어 있는지 확인 가능 장애 원인 파악에 호라용

 

⑤ 서브넷마스크 : 클래스에 따른 네트워크 수와 호스트 수의 불균형 해결

- 하나의 네트워크로 수많은 단말을 관리하는 것은 불가능

- IP 주소 클래스의 호스트 주소 부분 중 몇 비트를 서브넷으로 할지 지정

ex) 128.1.64.0/18 : 클래스 B이므로 네트워크 16비트, 호스트 16비트 

       /18이므로 서브넷 부분이 2비트이고, 00 01 10 11 즉 4개의 서브넷으로 관리 가능, 호스트 부분은 14비트가 됨

      → 128.1.0.0 / 128.1.64.0 / 128.1.128.0 / 128.1.192.0, 할당할 수 있는 호스트 주소 개수는 2^14 - 2

- 네트워크가 늘어나면 하나의 서브 네트워크 아래에 할당할 수 있는 주소의 수는 그만큼 줄어든다.

 

⑥ 공인 주소(조직 외)와 사설 주소(조직 내)

- 공인 주소 : 전 세계 어디서도 중복되지 않도록 IANA라는 단체가 관리

- 사설 주소 : 외부와 접속하지 않는 네트워크는 임의의 주소 사용 가능

     - 클래스 A : 10.0.0.0 ~ 10.255.255.255

     - 클래스 B : 172.16.0.0 ~ 172.31.255.255

     - 클래스 C : 192.168.0.0 ~ 192.168.255.255

- 실제 네트워크 환경에서는 공인 주소와 사설 주소를 변환하는 기능을 가진 라우터나 방화벽 등이 주소 변환 시행

- 소규모의 경우 라우터가 하우팅 기능과 함께 주소 변환을 하기도 함

- 대규모의 경우 전용 방화벽을 통해 주소 변환 역할을 함

 

4) IPv6

① 개요

- IPv4(32비트)의 주소 고갈 문제에 대처하기 위해 고안

- 128비트로 구성 → 사용 가능한 주소가 무한대에 가까움

 

② IPv6 주소 표기

- 16비트별로 구분하여 16진수로 적음

- 구분 문자는 :(콜론)

- 네트워크 주소 부분에 해당하는 부분을 프리픽스라고 하여 그 길이를 /의 뒤에 씀

 

③ IPv6 주소의 생략 기법

- 각 블록의 앞에 연속되는 0은 생략 가능

- 0000은 0으로 표현

- 연속되는 0의 블록은 1회에 한하여 ::로 바꿀 수 있음

 

 

3. WAN 초보 입문

1) WAN이란?

① 외부와의 접속

- 멀리 떨어진 LAN이나 내선 전화망을 상호 연결하기 위한 광범위 대규모 네트워크 

 

② 누가 운용, 관리하고 서비스를 제공하는가?

- 국가에 통신 사업자 등록 및 신고를 한 전기 통신 사업자

- 대표적으로 KT, SKT, LGU+

- 사용자는 특정 서비스 요금을 전기 통신 사업자에게 지불하고 WAN 회선을 사용

 

③ 네트워크의 연속성을 고려한 WAN 구성

- 네트워크의 규모나 사용자가 늘어날수록 네트워크의 연속성을 고려한 WAN 구성이 필요

    → 이중화 구성 : 통상 운용에서 사용하는 회선에 장애 발생 시 백업 회선을 통해 통신 가능

- 통상 운용 WAN : 광역 이더넷망, IP-VPN망 → 보안 측면이나 통신의 신뢰성 고려

- 인터넷 VPN : 비용 측면의 장점을 가졌으나 보안 측면과 통신의 안전성에 대한 불안 요소가 남아있음

 

2) WAN에서의 등장인물

① 건물 내 장치 (액세스라우터) : WAN에 연결하기 위한 라우터

- LAN과 WAN의 패킷을 전달하는 역할

- 액세스 라우터 = WAN 라우터(기업용) = 브로드밴드 라우터(가정용)

- 소규모 거점용 라우터 : 랙의 작은 공간에 설치 가능, 크기가 작아 장애 발생 시 찾을 수 없는 경우가 발생하므로 잘 관리해야 함

 

② 회선 종단 장치 : WAN과 LAN의 전송 방식 변환

- 책임 경계를 명확히 하는 것이 중요 (어디까지가 WAN인가? 건물 내 장치의 WAN쪽 인터페이스까지가 WAN)

- 통신 사업자의 WAN 회선을 사내 네트워크에 연결하기 위해서는 종단 장치가 필요 

- 대표적인 회선 종단 장치 : ONU(가장 많이 사용), 모뎀, TA, DSU

- ONU(전기 신호와 광 신호 변환) : 광케이블(WAN쪽), UTP케이블(LAN쪽), 라우터

 

③ 액세스 회선 : WAN의 회선

- WAN의 중계국까지 접속하는 회선 → 통신 사업자로부터 제공

- 대표적인 액세스 회선 : 광 회선, 전용선, CATV(케이블TV)

 

④ WAN 중계망 : 액세스포인트 사이를 중계

- 고속도로의 인터체인지 역할 

 

3) WAN 회선 서비스

① 통신 사업자가 제공하는 통신망 : 다거점 간 통신에 적합 → 기업용

- IP-VPN망 : 통신 사업자가 자비로 구축한 폐쇄 IP망 

     - 중규모부터 대규모 거점 네트워크에서 이용

     - 보안이 중시되는 네트워크에서 이용

     - 통신 품질이 요구되는 네트워크에서 이용

※ 인터넷 VPN : 인터넷 상에서 구현된 VPN → 인터넷망에 가상적인 전용선망을 만들어 내는 기술

     - 저렴한 비용으로 구축 가능

     - 소규모부터 중규모 거점 네트워크에서 이용

     - 다점포에서 이용

- 광역 이더넷망 : 거점 사이는 각 네트워크로 연결되어 있지만, 마치 하나의 LAN처럼 네트워크 구성 가능

     - IP 상의 다양한 라우팅 프로토콜 설정 가능

     - 라우팅 정보 관리 등 운용면에서 복잡

     - 네트워크의 중요도가 높아 고도의 설정이 필요한 환경에 적합

 

② 인터넷망 

- 법인과 일반 사용자가 함께 사용

- 비용 절감을 중시하는 경우에 선택

- 보안 측면에서 취약하므로 각자 보안 대책을 세워야 함

 

 

4. 스위치 초보 입문

※ 각 기기의 역할과 기기의 설정을 이해하는 것이 중요하다.

1) 리피터 허브와 브릿지

① CSMA/CD 방식 : 허브가 케이블에 데이터를 보내기 위한 규칙

- 허브(=리피터 허브) : PC나 네트워크 기기 등의 단말에서 LAN 케이블을 한곳에 모아 통신 데이터를 중계하기 위한 기기 → OSI 1계층

- CS(Carrier Sense) : 항상 귀기울인다. → 항상 전송로 상의 모든 신호를 듣고 있어 다른 단말이 전송로를 사용하고 있는지 확인

- MA(Multiiple Access) : 누구라도 송신할 수 있다. → 송신하고 싶은 단말은 통신하지 않는 것이 확인된 모든 단말에 언제든 송신 가능

- CD(Collision Detection) : 충돌을 검출한다. → 충돌 발생 시 데이터가 손실되므로 정상적인 정보를 다시 보내기 위해 충돌을 검출해야 함

 

② 콜리전 도메인 : CSMA/CD 방식에서 데이터 손실이 발생하는 범위

- 콜리전 도메인 안에서는 한 번에 일대일 통신만 가능 → A가 B에게 송신하는 동안 다른 단말은 데이터 송신 불가

- 2000년대 이후 네트워크 환경 변화로 허브만으로는 액세스 제어 불가 (충돌 문제 발생)

- 하나의 콜리전 도메인 안에 여러 대의 단말이 존재하는 것이 문제   콜리전 도메인을 작게 나누어 포함된 단말을 줄이면 될 것

    → 스위치와 브릿지에서 구현 가능 (OSI 2계층)

 

③ 콜리전 도메인을 분할할 수 있는 브릿지

- 브릿지의 필터링 기능 : 프레임 내의 MAC 주소를 평가하여 그 프레임을 브릿지를 넘어 중계할 것인지 판단하는 기능

    → 네트워크 간의 부릴요한 데이터 송신 억제, 충돌 발생 방지

- 필터링 기능의 구조와 역할

     - MAC 주소 테이블을 참조하여 필터링 처리 실시 

     - MAC 주소 테이블 : 송신측의 MAC 주소, 수신 포트를 연결한 정보

     - 네트워크를 넘어가지 못하도록 함 

         수신한 프레임 중 목적지 MAC 주소가 수신한 포트 자체에 연결되어 있을 경우 의미가 없으므로 프레임 파기

     - 트래픽을 정리하고 LAN의 중계 역할을 함

        → 목적지 MAC 주소가 수신 포트 이외의 특정 포트에 연결되어 있을 경우 프레임을 해당 특정 포트에서만 송출

 

2) 먼저 스위치의 기본을 이해하자

① 허브와 스위치

- 허브 : 장비 자체가 콜리전 도메인

     - 가지고 있는 모든 포트에게 데이터 송신

     - 수신한 데이터 신호를 전달할 뿐, 일대일 통신만 가능하여 매우 비효율적

- 스위치, 브릿지 : 각 포트가 콜리전 도메인

     - 장치 내부에 MAC 주소 테이블을 가져 필터링 처리 가능

     - 학습된 MAC 주소의 프레임은 특정 포트에만 송신되고, 다른 포트에는 영향을 주지 않음

     

② 브릿지에서 스위치로

- 프레임 분석과 전송 처리를 브릿지는 소프트웨어에서, 스위치는 하드웨어에서 함에 따라 큰 성능 차이 발생

- 스위치 : 전용 반도체 칩인 ASIC으로 프레임 처리 → 처리속도 빠름

 

③ 스위치의 포인트

- 레이어2 스위치 : 단말이 송신한 프레임을 받으면 그 프레임에 쓰여 있는 목적지(MAC주소)를 조사하여(MAC주소 테이블 정보 비교) 그 목적지가 접속되어 있는 포트에만 프레임 전송

- 접속하고 있는 단말의 MAC 주소나 접속 포트 등의 정보를 자동 학습하고 MAC 주소 테이블에 저장하여 적절한 포트에 프레임 전송

- 각 포트는 전이중 통신 → 송신과 수신이 동시에 이루어짐

위와 같이 스위치를 사용하면 그룹별로 콜리전 도메인이 분할되어 A 내에서 통신이 이루어질 때 B, C 내에서도 통신이 가능하다.

- 초기 스위치는 장치 자체가 브로드캐스트 도메인

     - 목적지 MAC주소가 브로드캐스트 주소(모든 단말을 나타냄)로 되어 있는 브로드캐스트 프레임에 대해서는 모든 포트로 전송

     - L2 스위치에서는 스위치 전체가 하나의 브로드캐스트 도메인

- MAC 주소 학습 프로세스

     - 스위치 가동 직후에는 MAC 주소테이블에 주소 등록 X

     - 데이터가 들어오면 프레임의 출발지 MAC 주소가 MAC 주소 테이블에 등록되어 있는지 확인 (등록되지 않았다면 등록)

     - 프레임의 목적지 MAC 주소가 MAC 주소 테이블에 등록되어 있는지 확인

       (등록되어 있다면 해당 포트에만, 등록되지 않았다면 모든 포트에 프레임 전송)

 

3) 조직개편, 당신이라면 어떻게 처리할까? (VLAN)

① VLAN과 브로드캐스트 도메인

- VLAN : 하나의 물리적인 네트워크를 복수의 논리적인 네트워크로 분할하는 기술 → 브로드캐스트 도메인 분할 가능

- 브로드캐스트 도메인 : 브로드캐스트 프레임이 도달하는 범위로 라우터를 넘지 않고 직접 통신할 수 있는 범위

- VLAN의 장점

     - 네트워크의 구성을 간단히 변경할 수 있음

     - 조직에 맞춰 네트워크를 분할함으로써 보안을 강화할 수 있음

     - 브로드캐스트에 의한 네트워크 대역폭 소비를 줄일 수 있음

- 포트 VLAN (=정적 VLAN) : 각각의 포트를 어떤 VLAN에 소속시킬지 고정적으로 설정

- 동적 VLAN : 스위치 포트에 접속한 사용자의 정보를 보고 VLAN을 동적으로 설정

 

② 트렁크 링크로 하나의 케이블에 여러 VLAN 프레임을 사용

- 트렁크 링크 : 여러 VLAN의 트래픽을 전송하기 위한 스위치 간 접속 전용 링크

- 태그 : 트렁크 링크를 통과시키는 프레임에 들어 있는 해당 프레임이 속해 있는 VLAN을 식별하기 위한 정보

    → ISL과 IEEE802.1Q라는 두 가지 규격이 있음 (식별 정보 첨가 및 제거)

 

③ VLAN 간의 통신

- L2 스위치만으로는 같은 VLAN에 속한 단말들만 트렁크 링크를 통한 통신 가능

- 다른 VLAN 호스트 간의 통신을 위해서는 라우팅 기능을 가진 장치 필요 → L3 스위치, 라우터

 

4) 여러 가지 스위치 종류

① 레이어3 스위치 : IP 기능

- L2스위치 + 라우팅 기능

- 여러 VLAN에 IP 주소를 할당하고 라우팅할 수 있음

- 전용 칩(ASIC)으로 하드웨어 처리가 이루어져 기존 라우터보다 빠른 패킷 전송 가능

 

② 레이어4~7 스위치 : 네트워크 부하를 분산하는 로드 밸런서

- 로드 밸런서 기능 : 부하분산 기능, 상태 확인 기능, 세션 유지 기능

 

※ 웹서버에서 응답 속도가 느려졌다는 문제는 다음 두 가지 원인을 생각할 수 있다.

- 네트워크 인프라 전체에 발생한 문제인가? → 1~3계층에서 발생한 문제

- 웹 서버 자체의 문제인가? → 웹서버 자체를 교체하거나 로드밸런서 기술을 도입해야 함

 

5) 이중화로 네트워크의 신뢰성을 높인다

① 스위치 본체의 이중화 : 운용에서 사용하는 스위치 이외에 예브 스위치를 준비해 두는 운용 방법

- 스위치 본체에 장애 발생 시 : 예비 스위치로 전환, 백업 경로를 통해 통신

- 스위치 포트나 LAN 배선에 장애 발생 시 : 예비 통신 경로로 자동 전환, 백업 경로를 통해 통신

- 이중화 실현 기술 : 스패닝 트리 프로토콜 + BPDU

 

② 스위치 단일 구성

- 스위치 본체, 포트, LAN 배선 중 장애 발생 시 외부와 구역 간 통신 불가 → 동일한 구역의 사용자 간 통신만 가능

- 이중화에 비해 저렴하지만, 신뢰성이 떨어짐

 

③ 스패닝 트리 프로토콜을 사용하지 않는 이중화 방법이 메인

- 스패닝 트리 프로토콜 문제점 : 대역의 반이 낭비되고 설계나 운용이 복잡함

- 최근 기업 네트워크에서는 스택 접속 + 링크 어그리게이션의 이중화 기술이 주로 사용됨

- 스택 접속 : 여러 대의 스위치를 논리적으로 한 대의 장체로서 인식하는 기능

- 링크 어그리게이션 : 여러 회선을 묶어 하나의 링크로 만드는 방법

 

 

5. 라우터 초보 입문

1) 네트워크 전체에서의 라우터 위치 

① 소규모 거점에서의 라우터는 가장 중요한 기기

- 소규모 거점에서의 라우터는 멀티 플레이어 : 네트워크 연결뿐만 아니라 방화벽, VPN 기능까지 담당

 

② 중/대규모 거점에서의 라우터는 네트워크 간의 다리 역할에 치중

- 다른 네트워크를 연결해 주는 것에 치중, 외부 전용(다른 거점의 네트워크)으로 특화됨

- 내부 전용(거점 내 네트워크)은 L3 스위치가 담당

 

2) 라우터의 역할과 기본 원리 

① 라우터

- WAN과 LAN의 경계선에 위치

- OSI 제 3계층에 해당 → IP 주소를 기반으로 라우팅 처리

※ 브릿지, 스위치 : 물리 주소인 MAC 주소를 기반으로 처리

 

② 라우팅

- 라우터는 자신이 가지고 있는 라우팅 테이블 상의 정보를 가지고 패킷을 라우팅함

- 라우팅 테이블

     - 목적지의 네트워크 주소

     - 목적지의 네트워크로 패키을 보내기 위한 자신의 인터페이스

     - 목적지의 네트우어크에 패킷을 보낼 때의 다음 라우터 주소

     - 목적지의 최적 경로를 선택하기 위한 값

- 정적 라우팅 방식 : 네트워크 관리자가 라우팅 정보를 하나하나 등록하는 방식

     - 라우터나 네트워크 전체에 부하를 주지 않음

     - 운용 후의 유지보수가 어려움

     - 소규모 네트워크에 적합

- 동적 라우팅 방식 : 라우팅 정보를 다른 라우터에서 자동으로 받아오는 방식

     - 라우팅 프로토콜(라우터 간에 라우팅 정보를 교환하기 위한 전용 프로토콜) 사용

     - 라우터나 네트워크 자체에 부하가 발생

     - 대표적인 라우팅 프로토콜 : RIP, OSPF, BGP4 등

 

③ 라우팅 프로토콜

- 디스턴스 벡터 알고리즘 : 인접한 라우터끼리 라우팅 정보 학습

     - 대표적인 프로토콜 : RIP (Routing Information Protocol) : 홉 수가 적은 경로를 제일 짧은 경로로 판단하여 패킷을 중계하는 방법

        ※ 홉(Hop) : 라우터 한 대를 지나는 것

     - RIP 단점 : 최대 15홉 라우터밖에 전송하지 못함 → 대규모 네트워크에서는 적합하지 않음

- 링크 스테이트 알고리즘 : 라우터 자체가 접속해 있는 네트워크에 대한 정보를 특정 범위 내에 있는 모든 라우터에 통지하고, 다른 라우터의 링크 상태를 수신한 라우터는 그 정보를 기반으로 학습하고 라우팅 테이블을 생성

     - 대표적인 프로토콜 : OSPF (Open Shortest Path First)

     - 네트워크를 계층 구조화하여 서브넷 마스크에 사용할 수 있음 → 대규모 네트워크에 적합

     - 링크 정보 데이터베이스를 가지고 각 링크에 할당된 비용에서 최적 경로(링크 비용이 최솟값)를 계산

- 패스 벡터 알고리즘

 

④ 일치하는 라우팅 정보가 없을 때 할당되는 경로

- 기본 경로 : 라우팅 테이블 내에 일치하는 라우팅 정보가 없을 때 패킷을 파기하지 않고 미리 설정해 둔 경로로 패킷을 보낼 수 있음

 

⑤ 다른 LAN 간의 접속

- 라우터는 네트워크를 분할하는 기기인 동시 분할한 네트워크를 연결하는 역할도 담당

- 라우터에 의해 분할된 네트워크에는 각각 다른 네트워크 주소가 할당됨

 

3) 라우터에도 종류가 있다

① 서비스 프로바이더용 네트워크

- 대표적인 통신 서비스 : 광역 이더넷, IP-VPN

- 코어 라우터 : 엣지 라우터에서 온 데이터를 통신 사업자망 안에서 중계

- 엣지 라우터 : 통신 사업자망 안과 고객의 구내 네트워크 연결

- 대용량 데이터, 고속 처리 요구, 고사양, 고비용

 

② WAN 네트워크

- 고객의 거점 간을 연결하기 위한 역할 담당

- 액세스 라우터 (=커스터머 엣지 라우터)

 

③ 구내에서의 라우터 → 레이어3 스위치

- 대규모 거점 네트워크, 중/소규모 거점 네트워크, 서버 팜에서 사용

 

④ 그 외의 라우터 종류

- 여러 프로토콜을 사용할 수 있는 멀티 프로토콜 라우터(기업용)

- 액세스 라우터(소규모 거점 네트워크용)

 

4) 레이어3 스위치와의 차이점 

① L3 스위치와의 차이

- 라우터 : 패킷 전송을 소프트웨어적으로 처리 → CPU와 메모리가 연계하여 소프트웨어에 패킷 전송 

- L3 스위치 : 패킷 전송을 하드웨어적으로 처리 → ASIC라고 불리는 전용 칩으로 하드웨어 처리 → 빠름

 

② 라우터는 VPN이나 NAT/NAPT 기능(주소 변환) 지원

- WAN이나 인터넷 연결에 특화된 기능을 가지고 있음

- VPN 기능을 사용하여 안전한 네트워크 실현

- NAT/NAPT 기능을 사용하여 일대다 주소 변환 실현

- PPPoE 기능을 사용하여 인터넷 접속 서비스에 이용 ex) 플렛츠광

 

5) 라우터를 효과적으로 사용하기 위해서는

① 패킷 필터링

- 네트워크 계층의 데이터 단위인 패킷의 헤더에 들어 있는 정보를 기반으로 필터링 처리 실행 → 간단한 보안 기능 

② 이중화

- 중/대규모 거점 네트워크의 경우 라우터의 이중화로 신뢰성을 높이는 것이 가장 중요한 과제

- 이중화 종류

     - 여러 대의 라우터가 각각의 WAN 회선을 보유 : WAN 회선은 다른 통신 사업자에서 빌리는 것이 철칙

     - 한 대의 라우터로 여러 WAN 회선을 보유 : 신뢰성은 조금 떨어지지만 비용 측면에서 이점

         WAN 회선 자체에 장애 발생 시 백업 경로의 회선을 통해 통신 가능, but 라우터 자체에 장애 발생 시 모든 통신 불가능

 

 

6. 보안 초보 입문

1) 네트워크 보안 접근 방법

① 네트워크 보안

- 보안 전체의 시점 

     - 무엇을 보호할까? 하드웨어/소프트웨어

     - 무엇으로부터 보호할까? 외부로부터/내부로부터

- 네트워크 외부에서의 시점

- 네트워크 내부에서의 시점

 

2) 무엇으로부터 보호할까? 외부 범행의 대표 예

① 부정 침입 : 각종 업무 서버나 인증 서버, 중계 서버, 리소스(하드디스크, CPU) 등에 허가받지 못한 계정으로 접속하는 것

② 정보 도청 : 도청기를 사용하여 기밀 자료를 빼냄 

③ 스푸핑 : 부정으로 얻은 다른 사람의 정보를 이용하여 남용하는 것

④ DoS 공격 : 네트워크나 서버, 호스트 같은 단말로 대량의 데이터를 보내는 행동 → 정상적인 처리 불가능

⑤ 컴퓨터 바이러스 : 데이터나 시스템 자체를 파기하는 악질적인 것도 있음

 

3) 외부 범행의 대책

→ 외부로부터 액세스하지 못하게 만든다 → DMZ(Demilitarized Zone, 비무장지대)

① 방화벽 : 사내 네트워크와 외부 네트워크의 경계, 접속점으로 데이터의 입출력 제어, DMZ를 만들기 위해 반드시 필요한 기기

- 사내 네트워크 (=신뢰 네트워크)

- 외부 내트워크 (=신뢰할 수 없는 네트워크)

- DMZ 

 

② 방화벽의 주요 기능

- 액세스 제어 (필터링) : 악의적인 부정 액세스로부터 사내 네트워크 보호

     - 사내 → 외부 : 사내에서 허락된 애플리케이션 패킷만 통과

     - 외부 → 사내 : 사내에서 허가된 애플리케이션으로 사내 네트워크에서 외부 네트워크로 송신되었다가 다시 돌아오는 패킷만 통과

     - 외부 → DMZ : 공개 서버의 애플리케이션 패킷만 통과

     - DMZ → 외부 : 공개 서버의 애플리케이션에 송신되었다가 다시 돌아오는 패킷만 통과

- 주소 변환 : 사설 주소와 공인 주소를 변환함으로써 사내 IP 주소를 감추는 역할

- 로그 수집 : 부정 액세스에 대한 원인 분석

 

③ 방화벽의 한계

- 컴퓨터 바이러스 : 방화벽 도입만으로 막을 수 없음

     - 바이러스 대비 전용 네트워크 어플라이언스 제품 도입 → 보안 어플라이언스 

- 사내 네트워크로부터의 공격 : 방화벽 자신을 경유하지 않는 통신에 대해서는 제어 불가능

 

4) 무엇으로부터 보호할까? 내부 범행에 대비

→ 외부와 내부의 차이점은 침입할 때 인터넷망을 경유하여 방화벽을 통과하느냐 하지 않느냐의 차이

① 부정 침입 : 부정 단말이 기업 내 LAN에 직접 액세스하고 무단으로 침입

② 정보 도청

③ 스푸핑

④ 정보 유출

⑤ 컴퓨터 바이러스

 

5) 내부 범행의 대책

① 사용자 인증 : 사용자 ID나 비밀번호를 사용한 인증 방식

     - 인증 서버를 통한 인증 : 사용자 정보를 일원 관리하는 인증 서버를 통해 단말 요청 시 저장된 사용자 정보를 이용하여 인증하는 방법

     - 네트워크 기기를 통한 인증(로컬 인증) : 네트워크 기기(라우터, 스위치) 자체가 가지고 있는 인증 데이터베이스로 인증하는 방법

 

② 정보 데이터 암호화 : 중요한 정보를 암호화하고 정보 자체에 액세스 컨트롤하는 것

      → 기밀 정보를 제3자에게 도난당하는 사태를 방지하기 위해 데이터(파일)를 암호화하는 것이 가장 효과적 

 

③ 물리 보안 : 서버룸의 출입 허가를 명확히 하고, 비허가자의 침입을 막아야 함

     - 제 1관문 [종합 접수] : 사전 등록 여부 확인 후 등록 정보가 있다면 보안카드를 받아 플랩 게이트로 이동

     - 제 2관문 [플랩 게이트] : 건물 내로 들어가기 위해 접수처에서 받은 보안 카드로 인증

     - 제 3관문 [카드 리더] : 관내로 들어가기 위해 보안 카드를 출입문 카드 리더에 인증

     - 제 4관문 [카드 리더(각 구역)] : 원하는 구역에 들어가기 위해 보안 카드 인증, 서버룸 입실 시 지문 인증, 서버룸은 제한된 인원만 가능,

                                                         작업에 필요한 것 이외에는 서버룸에 반입할 수 없음

     - 제 5관문 [랙 잠금] : 랙의 자물쇠를 열고 관리하고 있는 기기를 이용해 작업 

 

5) 고도화 네트워크 활용에 대응

① 방화벽에서 UTM으로

- UTM (Unified Threat Management) : 방화벽과 VPN 기능을 기반으로 안티 바이러스, 부정 침입 방지, 웹 콘텐츠 필터링과 같은 여러 보안 기능을 통합하여 일언 관리할 수 있는 장치

- 한 대에 여러 보안 기능을 집약하여 설정이나 관리 작업 단순화

- 도입 간단, 저비용으로 구현 가능

- 한 대에 여러 기능이 집약  성능 및 확장성 높음

 

② 애플리케이션 제어 시대로

- 애플리케이션의 필요와 불필요의 판단은 사용자와 조직에 따라 다름

     - 네트워크 상에서 어떤 애플리케이션이 사용되고 있는가?

     - 네트워크의 어떤 장소에서 많은 대역이 사용되고 있을까?

     - 어떤 나라에서 들어오는 트래픽일까?

     - 어떤 애플리케이션을 허가해야 하는가?

 

③ 차세대 방화벽

- 웹 애플리케이션의 가시화와 제어 가능

- 웹을 허가한 상태에서 같은 포트를 사용하는 웹 애플리케이션의 식별과 제어 가능

 

④ 차세대 방화벽 특징

- IP 주소뿐만 아니라 사용자나 그룹(조직) 단위로 구별 가능

- 포트 번호나 프로토콜이 아닌 애플리케이션으로 식별 가능

- 애플리케이션과 함께 통과하는 위협이나 중요 데이터를 실시간으로 감지 및 방어 가능

- 애플리케이션의 우선순위 결정 가능

- 사용자의 애플리케이션 이용 상황의 가시화와 액세스 제어 실현 가능

 

⑤ 차세대 방화벽 동작

- 식별 : 특징 1, 2

- 분류 : 각 기업에서 결정한 보안 정책에 따라 이루어짐

- 제어 : 특징 3, 4, 5

 

※ 표적형 공격 : 기존에 알려진 공격과는 다른 명확한 목적을 가지고 이루어지는 사이버 공격, 기존의 보안 대책으로는 대응 불가

    → 표적형 공격 대책 보안 어플라이언스 

         - 탭 모드 : 웹 클라이언트로부터 프록시 서버에 흐르는 웹 통신을 복사해 표적형 공격 대책 보안 어플라이언스로 통신 해석

         - 인라인 모드 : 웹 클라이언트로부터 프록시 서버의 사이에 기기를 설치하여 이를 통과하는 웹 통신 감시

 

 

7. VoIP 초보 입문

1) VoIP의 기초 지식

①②③④⑤

 

 

2) IP 전화의 구성 요소

①②③④⑤

 

 

3) VoIP 시그널링 프로토콜 

①②③④⑤

 

4) 음성 품질 기초 지식

①②③④⑤

 

 

 

8. 무선 LAN 초보 입문

1) 무선 LAN이란?

①②③④⑤

 

 

2) 무선 LAN의 구조

①②③④⑤

 

 

3) 무선 LAN의 보안

①②③④⑤

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'네트워크캠퍼스 > NETWORK' 카테고리의 다른 글

4주차  (0) 2024.02.12
3주차  (0) 2024.02.01
포트포워딩 실습  (0) 2024.01.26
2주차  (0) 2024.01.26
모두의 네트워크  (0) 2024.01.22

1. 포트

- 컴퓨터끼리 정보를 교환하기 위해 사용하는 가상의 논리적인 접속장소

- TCP/IP 사용 시 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용

- 포트번호를 통해 대상 IP 기기의 특정 애플리케이션 서버에 접속할 수 있도록 알려주어야 함

- 사용 가능한 포트번호는 0~65,535

※ IANA (Internet Assigned Numbers Authority) : 인터넷 할당 번호 관리기관

    → IP 주소, 최상위 도메인 등을 관리하는 단체

 

1) Well-known port : 0~1,023 

- 시스템 사용 번호 슈퍼유저 권한 필요

- 잘 알려진 특정 애플리케이션 사용을 위해 IANA에서 할당한 번호

- 강제적으로 지정된 것이 아니라 다른 용도로 사용될 수 있음

 

2) Registered port : 1,024 ~ 49,151 

- IANA에 의해 할당되고 관리됨

- 특정 프로토콜이나 애플리케이션에서 사용하는 번호

- 슈퍼유저 권한 필요 X

- 강제적으로 지정된 것이 아니라 다른 용도로 사용될 수 있음

- 대표적인 포트번호 

  • 1433 (MSSQL) : MS에서 제공하는 SQL을 사용하기 위한 포트
  • 3306 (MYSQL) : RDBMS를 사용하기 위한 포트
  • 3389 (원격 접속) : 윈도우 원격 접속을 하기 위한 포트
  • 8080 (HTTP 대체) : HTTP 포트(80)를 대체하기 위한 포트

- 그 외 등록된 포트 

1080 SOCKS 프록시
1194 OpenVPN
1900 SSDP, UPnP 장치 검출 서비스
3479 플레이스테이션 네트워크
3690 Subversion
5228 구글 안드로이드 메시징 프로토콜
5353 Multicast DNS
6379 Redis 서비스
9100 네트워크 프린팅 프로토콜
17500 Dropbox LanSync 프로토콜

 

3) Dynamic port : 49,152 ~ 65,535 

- 개인 또는 사용자 정의 서비스로 임시 할당되는 포트

- 사용 시 동적으로 할당되는 동적 포트로 서버가 클라이언트를 식별할 때 사용

- 특정 용도가 지정되어 있지 않고, 어느 프로그램에서나 사용가능한 포트

- netstat 명령어로 사용 중인 동적 포트 확인 가능

 

 

2. 암호화, 복호화

1) 암호화 : 평문을 암호문으로 변환하는 과정

① 단방향 암호화 

- 암호화는 수행하지만, 절대로 복호화가 불가능함 → 해킹이 되어도 복호화가 힘든 것이 특징

- 대표적인 방식 : 해시함수

    → 임의의 길이의 데이터를 입력받아 일정한 길이의 비트열로 반환시켜주는 함수

    → 입력값의 길이가 달라도 출력값은 언제나 고정된 길이로 반환

    →  동일한 값이 입력되면 언제나 동일한 출력값을 보장

    →  대표적인 해시함수 : MD, SHA 등

- MD (Message Digest function 95) 알고리즘 

    → MD2 : 8비트 컴퓨터에 최적화

    → MD4, MD5 : 32비트 컴퓨터에 최적화

    → MD5는 MD4의 확장판으로 속도는 느리지만 데이터 보안성이 더 뛰어남

- SHA (Secure Hash Algorithm)

    → 160비트의 값을 생성하는 해시 함수로 MD4가 발전한 형태

    → MD5보다 조금 느리지만 좀 더 안전함

    → SHA1 : 가장 많이 쓰이는 SHA 해시함수, 충돌쌍 문제(두 데이터에 대한 해시 결과값이 같은 것) 발생

    → SHA2 : SHA1을 대체하는 해시암호, 데이터의 무결성(데이터 수정 혹은 조작 가능성) 파악 가능, 보편적으로 사용

         - SHA-256 : 블록체인에서 가장 많이 채택됨, 속도가 빠르고 안정성이 높음

         - SHA-512 : 512비트 해시 값 생성, 길이 확장 공격에 대해 취약

 

② 양방향 암호화

- 암호화와 복호화 모두 가능 → 재사용성이 있는 정보

- 데이터를 인가된 사용자만 볼 수 있도록 하기 위한 장치

- 대칭키 방식과 비대칭키 방식으로 나눠짐

 

2) 복호화 : 암호문을 평문으로 변환하는 과정

 

 

3. 대칭키(=비공개키) 암호 

- 암호화와 복호화에 사용하는 키가 동일한 암호화 방식 

- 송수신자는 서로 공유된 대칭키(=공통키)를 가지고 통신

- 키 크기가 상대적으로 작고 내부 구조가 단순하여 시스템 개발 환경에 용이하고 속도가 빠름

- 동일한 키를 공유해야 하기 때문에 키 관리의 어려움이 있고, 잦은 키 변경이 있는 경우 불편함을 초래함

- 부인방지기능을 제공할 수 없음

※ 대표 알고리즘

① DES 

- IBM에서 개발하고 미국에서 국가 표준 암호 알고리즘으로 지정한 대칭키 암호 알고리즘

- 평문을 64비트로 나누고 56비트 키를 이용하여 다시 64비트의 암호문을 만들어 내는 알고리즘

- 블록 암호 기법으로 16 단계의 Feistel Network를 거쳐 암호화 수행

Feistel Network

- 안전성은 주로 S-box들에 의존(혼돈 효과), 각 S-box는 6비트를 4비트로 매핑

- 키 사이즈가 작아 현실적인 시간 안에 키 복구 공격이 가능

 

② 3DES

- DES 알고리즘을 3중으로 만들어 DES를 보완한 암호 알고리즘

- 암호화-복호화-암호화 방법으로 암호화 진행

- 암호화 강도는 DES 알고리즘의 2배 → 컴퓨터 발전 속도에 비해 만족할 만한 수준이 아니어서 오래 사용되지 못함

 

③ AES

- 128비트 블록 암호 기법

- 128, 192, 256 비트를 지원하는 암호화 키 사이즈

- 트리플DES보다 안전하고 효율적인 알고리즘

- SPN(Substitution-Permutation Network, 대입 치환)을 사용하여 암호화하는 방법

예시) 64비트 블록, 8비트 S-box

입력을 쪼갠 상태에서 동시에 라운드 진행이 가능, 즉 병렬연산이 가능하다는 장점이 있다.

 

④ SEED

- 전자상거래, 금융, 무선통신 등에서 전송되는 중요한 정보를 보호하기 위해 순수 국내 기술로 개발한 128비트 블록의 암호화 알고리즘

- 국내에서 개발된 많은 암호 프로그램과 보안 솔루션에서 사용됨

 

⑤ IDEA

- 128비트 암호키 사용

- 64비트 평문을 8라운드를 거쳐 64비트 암호문으로 만드는 방식

- 모든 연산이 16비트 단위로 이루어지도록 하여 16비트 프로세스에서 구현 용이

- 주로 키 교환에 쓰임

 

⑥ RC5

- 비교적 간단한 연산으로 빠른 암호화와 복호화 기능 제공

- 모든 하드웨어에 적합

- 입출력, 키, 라운드 수가 가변인 블록 알고리즘

- 32, 64, 128비트 키가 사용되며 속도는 DES의 약 10배

 

 

4. 비대칭키(=공개키) 암호

- 암호화(공개키)와 복호화(개인키)에 사용하는 키가 다른 암호화 방식 

- 송수신자 모두 한쌍의 키(공개키, 개인키)를 갖게 됨

- 공개키 : 모든 사람이 접근 가능한 키

- 개인키(=비밀키) : 각 사용자만이 갖고 있는 키

- 공개키는 따로 키 교환이나 분배를 할 필요가 없어 키 관리에 어려움이 없으나 개인키로만 복호화가 가능하여 속도가 느림

- 공개된 공개키가 진짜 공개키 주인의 것인지 확인할 방법이 없어 중간자 공격에 취약

- 부인방지기능을 제공할 수 있음 (전자서명 기법)

※ 대표 알고리즘

① RSA

- 비대칭 알고리즘 중 가장 많은 지지를 받으며 오늘날 산업 표준으로 사용

- 매우 큰 정수의 소인수분해가 난해하다는 점을 이용한 암호 알고리즘

    • 두 개의 큰 소수 p, q를 랜덤하게 생성

    • gcd(𝑒,𝜙 𝑛 ) = 1을 만족하는 공개키 e 생성

    • 𝑒 ⋅ 𝑑 = 1 𝑚𝑜𝑑(𝜙 𝑛 ) 이 되는 개인키 d 생성

 

② ElGamal

- 이산대수문제가 어렵다는 것에 기반한 공개키 암호 시스템

- RSA와 다르게 같은 메시지에 대해 암호화할 때마다 서로 다른 암호문이 생성됨

- 디지털 서명, 키 교환 등에 사용될 수 있지만 속도가 가장 느리다는 단점

 

③ 타원곡선 암호(ECC)

- RSA를 대체할 차세대 공개키 암호기술

- 짧은 키로도 동일한 암호 성능을 가져 컴퓨터 성능이 낮아도 암호 성능을 유지할 수 있음

- 무선 환경과 같이 전송량과 계산량이 상대적으로 열악한 환경에 적합

 

 

5. HTTPS가 어떻게 암호화된 통신을 할 수 있는가?

1) HTTPS (Hypertext Transfer Protocol Secure)

- 웹에서 이루어지는 통신을 정의한 프로토콜

- TCP 프로토콜의 일종인 HTTP에 보안 기능을 추가, 즉 암호화된 TCP(TLS)를 사용하여 통신

- 기본적으로 443 포트를 사용함

- HTTPS 프로토콜을 사용하기 위해서는 인증기관(CA)으로부터 SSL 인증서를 발급받아야 함

 

2) SSL과 TLS : HTTPS의 원천 기술, 안전한 계층을 웹 통신에 추가하는 방식

- SSL (Secure Socket Layer)

- TLS (Transport Layer Security) : SSL의 개선 버전, 대부분 TLS 사용

→ 위 기술을 수행하기 위해 웹 서버에 SSL/TLS 인증서를 설치해야 함

 

3) SSL 인증서 발급 과정

① 서버 : 서버의 공개키와 비밀키 생성

② 서버 → CA : 인증서를 발급하기 위해 아래의 정보들을 전달

                          - 생성한 서버의 공개키

                          - 서버의 각종 정보

③ CA : 서버로부터 받은 정보와 공개키를 담아 SSL 인증서 발급

④ CA : 발급한 인증서를 암호화하기 위해 CA의 공개키와 비밀키 생성 → CA의 비밀키를 이용해 SSL 인증서 암호화

⑤ CA → 서버 : 암호화한 SSL 인증서를 다시 서버에 전달

 

4) SSL Handshake

- 서버와 클라이언트가 주고받을 데이터의 암호화 알고리즘 결정

- 서버와 클라이언트가 주고받을 데이터의 암호화를 위한 동일한 대칭키를 얻음

먼저, HTTPS는 TCP 기반의 프로토콜이기 때문에 SSL Handshake에 앞서 연결을 생성하기 위해 TCP 프로토콜의 3-way handshake를 수행한다. 위 그림에서 노란색 부분이 SSL Handshake 과정이다.

 

① Client Hello : 클라이언트에 해당하는 브라우저가 웹 서버에 접속

▷ 접속 시 전송하는 패킷 내용

    - 브라우저가 사용하는 SSL 혹은 TLS 버전 정보

    - 브라우저가 지원하는 암호화 방식 모음 (Cipher Suite)

       ※ cipher suite : 보안의 궁극적 목표를 달성하기 위해 사용하는 방식을 패키지 형태로 묶어놓은 것

    - 브라우저가 순간적으로 생성한 임의의 난수

    - SSL 핸드쉐이크가 완료된 상태라면 그때 생성된 세션 아이디

    - 기타 정보

 

② Server Hello : 서버는 클라이언트에 응답

▷ 접속 시 전송하는 패킷 내용

    - 브라우저의 암호화 방식 정보 중 서버가 지원하고 선택한 암호화 방식 

    - 서버의 공개키가 담긴 SSL 인증서 (CA의 비밀키로 암호화되어 발급된 상태)

    - 서버가 순간적으로 생성한 임의의 난수

    - 클라이언트 인증서 요청 (선택사항)

 

③ Client : 서버의 SSL 인증서가 올바른지 확인

- 내장된 CA 공개키로 암호화된 인증서를 복호화 → 정상적으로 복호화되었다면 CA가 발급한 것이 증명됨

- 등록된 CA가 아니라면 브라우저 경고를 보냄

▷ 접속 시 전송하는 패킷 내용

     - Certificate : Server와 SSL 인증서 내용이 들어 있음

     - Server Key Exchange : Certificate 내의 SSL 인증서에 서버의 공개키가 없는 경우 서버가 직접 전달함을 의미

     - Server Hello Done : server가 행동을 마쳤다는 의미

 

④ Client : premaster secret 생성

- 브라우저는 자신이 생성한 난수와 서버의 난수를 사용하여 premaster secret 생성

- Client Key Exchange : 웹 서버 인증서에 딸려온 웹사이트의 공개키로 premaster secret을 암호화하여 서버로 전송

 

⑤ Server : premaster secret 복호화

- 서버는 비밀키로 브라우저가 보낸 premaster secret 값을 복호화

- 이를 사용하여 브라우저와 만들어진 연결에 고유한 값을 부여하기 위한 세션키 생성

- 세션키를 통해 브라우저와 서버 사이에 주고받는 데이터를 암/복호화

 

⑥ Client / Server : SSL Handshake를 종료하고 HTTPS 통신 시작 

- Change Cipher Spec : 클라이언트가 SSL Handshake의 완료를 알림

- 이후의 HTTPS 통신은 대칭키 방식 사용

 

 

6. Telnet으로 아무 웹페이지나 http 요청 보내보기

먼저, telnet으로 www.google.com 에 80번 포트로 연결을 진행했다.

GET / HTTP/1.1 명령을 통해 GET 방식으로 HTTP 요청을 보내보면 위와 같은 정보를 확인할 수 있다. 

 

1) HTTP Request

- 서버에 대한 요청을 의미

- HTTP 구조에서 각각의 줄은 CRLF로 줄 바꿈이 이루어져야 함

 

▷ Request 구성요소

METHOD PATH HTTP_VERSION
HTTP_HEADERS

MESSAGE_BODY

 

① Method : 서버에 요청 시 수행하고자 하는 동작을 나타냄

    - OPTIONS : 요청하는 리소스가 허용하는 메소드 목록 반환

    - HEAD : GET 메소드와 동일, Response의 Body 부분은 받지 않고 Header만 받음

    - GET : 리소스 요청 ex) 게시물/프로필 보기, 이미지 등

    - POST : 특정 리소스 생성 및 데이터 추가를 위해 값을 제출할 때 사용 ex) 게시물/프로필 생성 등

    - PUT : 특정 리소스의 내용을 보낸 값으로 설정 ex) 생성/업데이트 등

    - PATCH : 특정 리소스의 내용 중 보낸 값의 key만 변경 ex) 게시글 업데이트 등

    - DELETE : 특정 리소스 삭제 ex) 게시물 삭제 등

    - TRACE : 요청받은 값을 Response의 Body로 다시 클라이언트에게 되돌려줌

 

② Path : 사용자가 서버에 요청하는 웹 리소스의 경로

 

③ Version : HTTP의 버전

 

④ Header : 서버에 추가 정보를 전달하는 데이터 부분, 사용자와 서버가 상호작용하기 위한 정보

                   ex) 사용자 데이터의 처리 방식 및 형식, 사용자를 식별하기 위한 쿠키 정보 등

    -  Host : 데이터를 보내는 서버의 주소

    -  Cookie : 사용자를 식별하기 위해 사용하는 정보

    -  User-Agent : 사용자가 사용하는 프로그램의 정보

    -  Referer : 페이지 이동 시 이전 URI의 정보

    -  Content-Type : 사용자가 전달하는 데이터의 처리 방식과 형식, 사용자와 서버 간의 데이터 처리 방식이 일치해야 함

 

⑤ Body : 사용자가 입력한 데이터가 서버에 전달 시 나오는 데이터를 담는 부분

 

2) HTTP Response

- 사용자의 요청에 대한 서버의 응답을 의미

- HTTP 구조에서 각각의 줄은 CRLF로 줄 바꿈이 이루어져야 함 

 

▷ Response 구성요소

HTTP_VERSION STATUS_CODE REASON_PHRASE
HTTP_HEADERS

MESSAGE_BODY

 

① Version : HTTP의 버전

 

② Status Code : 사용자의 요청에 대한 서버의 처리 결과

    - 200번 영역 : 사용자의 요청에 대한 서버의 처리가 성공하였음을 나타냄

       º 200 OK

       º 201 Created

     - 300번 영역 : 사용자가 요청한 리소스가 다른 경로로 변경된 경우

       º 301 Moved Permanently

       º 302 Found

     - 400번 영역 : 사용자가 서버에 요청하는 구조 또는 데이터가 잘못되었음을 나타냄

       º 400 Bad Request

       º 403 Forbidden 

       º 404 Not Found 

       º 405 Method Not Allowed

     - 500번 영역 : 서버의 에러와 관련된 영역

       º 500 Internal Server Error

       º 503 Service Unavailable

 

Header : 사용자와 상호작용하기 위한 데이터를 담는 부분

                   ex) 웹브라우저에서 서버의 응답 데이터를 처리하는 방식 및 형식에 대한 정보, 서버에서 사용자를 식별하기 위한 쿠키 정보 등 

    - Date : 메세지 생성 일자

    - Connection : Server/Client 간의 연결 옵션

    - Content-Type : 서버의 응답 데이터를 웹 브라우저에서 처리할 방식과 형식

    - Content-Length : 서버가 사용자에게 응답해주는 데이터의 길이

    - Expires : 리소스가 지정된 일시까지 유효함을 나타냄

    - Server : 서버가 사용하는 소프트웨어의 정보

    - Allow : 허용되는 Method 목록을 사용자에게 알려줄 때 사용

    - Location : 300번 영역의 응답 코드 사용 시 변경된 웹 리소스의 주소를 나타냄

    - Set-Cookie : 사용자에게 쿠키를 발급할 때 사용

    - Accept-Ranges : 부분 요청에 지원을 알리기 위해 서버에 의해 사용되는 표식

    - Vary : 캐시된 응답을 향후 요청들에서 오리진 서버로 새로운 요청 헤더를 요청하는 대신 사용할 수 있는지 여부를 결정

    - Transfer-Encoding : 사용자에게 entity를 안전하게 전송하기 위해 사용하는 인코딩 형식 지정

 

④ Body : 서버가 사용자에게 응답하는 데이터를 담는 부분

'네트워크캠퍼스 > NETWORK' 카테고리의 다른 글

4주차  (0) 2024.02.12
네트워크 쉽게, 더 쉽게  (0) 2024.02.01
포트포워딩 실습  (0) 2024.01.26
2주차  (0) 2024.01.26
모두의 네트워크  (0) 2024.01.22

<PC에 Nginx 설치 후 포트포워딩하여 내 휴대폰(셀룰러)으로 접속해보기>

먼저, Nginx 설치 후 다운로드한 위치에서 nginx.exe 파일을 실행한 후 localhost에 접속해보면 위와 같이 nginx 페이지에 잘 접속되는 것을 확인할 수 있다.

ipconfig 명령어를 이용하여 해당 공유기의 게이트웨이 주소를 알아낼 수 있다.

게이트웨이 주소로 접속해보면 위와 같이 공유기 관리자 페이지를 확인할 수 있고, 현재 해당 공유기는 브릿지로 연결되어 있고, 게이트웨이를 통해 외부와 통신이 가능하다.

nginx.conf 파일의 내용 중 http 부분에서 server.listen 항목은 nginx 서버가 열리는 포트번호를 의미한다.

해당 포트번호를 3386이라는 임의의 숫자로 설정해주었다. 

또한, index.html 파일을 통해 웹페이지에 출력되는 문구를 위와 같이 수정해주었다.

서버 재시작 후 위와 같이 방금 설정한 포트번호로 localhost에 접속해보면 변경한 대로 잘 출력되는 것을 확인할 수 있다.

앞서 확인했던 와이파이의 IP 주소와 설정한 포트번호로 접속해도 위와 같은 결과가 나오는 것을 볼 수 있다.

먼저, 네트워크 설정 정보를 확인하기 위해 해당 관리자 페이지에 접속을 했다.

위와 같이 IP주소와 게이트웨이주소 등을 확인할 수 있다. 

브릿지는 내부 사설망 간의 연결만 제어가 가능하므로 외부 통신 설정을 하기 위해서는 NAT 장비에서 해줘야 한다.

NAT 장비(Gateway)도 마찬가지로 관리자 비밀번호를 이용하여 접속할 수 있고, 위와 같이 네트워크 설정 탭의 NAT 설정을 통해 포트포워딩을 진행할 수 있다.

내부 IP 주소는 현재 접속된 PC의 IP 주소로 설정했다.

위와 같이 외부포트는 55555로 설정했고, 내부포트는 nginx.conf에서 임의로 설정했던 3386으로 해주었다.

즉, 공유기 IP 주소의 외부포트(55555)로 들어온 요청은 내부 IP 주소의 내부포트(3386)로 포트포워딩하라는 의미이다.

해당 공유기 범위 내에서 nginx 서버가 열린 내 PC의 IP 주소가 211.241.92.180인 것을 확인할 수 있다.

휴대폰 셀룰러를 이용하여 위에서 확인한 IP 주소와 외부포트(55555)로 접속해보면 위와 같이 nginx 서버에 잘 접속되는 것을 확인할 수 있다.

 

<내 핸드폰에서 PC로 어떤 과정을 거쳐서 접속 되는지 그려보기>

 

 

'네트워크캠퍼스 > NETWORK' 카테고리의 다른 글

네트워크 쉽게, 더 쉽게  (0) 2024.02.01
3주차  (0) 2024.02.01
2주차  (0) 2024.01.26
모두의 네트워크  (0) 2024.01.22
1주차  (0) 2024.01.22

1. TCP와 UDP

1) TCP(Transmission Control Protocol)

- 특징 : 접속형, 신뢰형, 흐름 제어, 혼잡 제어, 바이트 스트림 통신

- 플래그 비트 표

플래그 의미
URG 긴급 포인터가 있음을 표시
ACK 확인 응답번호가 기술돼 있음을 표시
PSH 데이터를 가능한 빨리 응용계층에 보내야 함을 표시
RST 연결을 재설정 하기를 원함을 표시
SYN 연결을 초기화하기 위해 순서번호 동기화
FIN 송신측이 데이터의 전송을 종료

 

※ tcp 헤더 포맷

 

2) TCP 연결 방식

① TCP 연결 설정

- 능동적 열림 : 클라이언트는 서버가 열어 놓은 포트로 TCP 연결 요청, SYN을 보내는 쪽

- 수동적 열림 : 서버는 네트워크 응용을 수행하기 위해 정해진 포트를 열고 클라이언트의 요청을 기다림, SYN 메시지를 수신하는 쪽

- Three-way Handshake를 통해서 TCP 연결

② TCP 연결 종료

- Four-way Handshake를 통해서 TCP 연결 종료

※ Three-way Handshake & Four-way Handshake

 

3) UDP(User Datagram Protocol)

- 특징 : 비연결형, 비상태정보, 경량의 오버헤드, 비정규적인 송신률, 최선의 서비스

※ UDP 헤더 포맷

 

4) TCP와 UDP의 차이점

서비스 TCP UDP
신뢰성   - 패킷이 목적지까지 도달했는지 확인
  - 패킷이 도달할 때마다 ACK를 수신
  - 신뢰성 있는 프로토콜
  - ACK를 사용하지 않음
  - 패킷이 그들의 목적지에 도달되는 것을 보장하지 않음
  - 신뢰성 없는 프로토콜
연결   - 연결 지향적
  - 핸드쉐이킹 과정 수행
  - 비연결지향적
패킷 순서   - 패킷 내에 순서 번호 사용 X
혼잡 제어 O X
용도   - 신뢰성 있는 전송   - 스트리밍 비디오와 브로드캐스트 등 실시간 전송
속도의 오버헤드   - 상당한 양의 자원을 사용하며 UDP보다 느림   - 더 적은 자원을 사용하고 TCP보다 빠름

 

 

2. Telnet, SSH

1) Telnet

- 원격지의 컴퓨터를 인터넷을 통해 접속하여 자신의 컴퓨터처럼 사용할 수 있는 원격 접속 서비스

- 원격 컴퓨터를 이용할 수 있는 사용자 계정이 필요

- TCP 포트 : 23번

- 원격 접속 후 통신 시 바이트스트림 형식으로 데이터를 주고받고, 데이터를 암호화되지 않아 정보가 노출될 가능성이 큼

 

2) SSH (Secure SHell)

- 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일 복사도 가능한 응용 프로그램

- TCP 포트 : 22번

- 다른 컴퓨터와 통신 시 암호화 기법을 사용하기 때문에 안전한 통신 기능이 제공됨

 

 

3. DNS

1) DNS(Domain Name System)

- 웹사이트 접속 시 외우기 어려운 IP 주소 대신 사용하는 도메인 이름

- 입력한 도메인을 실제 네트워크 상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 일련의 과정

 

2) DNS 구성 요소

① 도메인 네임 스페이스(Domain Name Space)

- 도메인 네임 스페이스라는 규칙으로 도메인 이름 저장 분산

 

② 네임 서버(Name Server) : 권한 있는 DNS 서버

- 해당 도메인 이름의 IP 주소를 찾음

 

③ 리졸버(Resolver) : 권한 없는 DNS 서버

- DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 기능 수행

 

3) DNS 동작 방식

 

① 도메인 주소 naver.com 입력 시 도메인 주소들을 가지고 있는 DNS 서버에 접속 

② 서버에 접속한 도메인과 연결된 IP 정보 (223.130.195.95)를 확인 후 IP를 사용자 PC에 전달

③ 사용자 PC는 전달받은 서버의 IP 주소로 접속

④ 서버의 IP로 연결된 브라우저에 서버의 내용(홈페이지)을 출력

 

위와 같이 잘 접속되는 것을 확인할 수 있다.

 

 

4. 공인 IP, 사설 IP

 

 

1) 공인 IP

- 사용자의 로컬 네트워크를 식별하기 위해 ISP(Internet Service Provider)가 제공하는 IP 주소

- 공용 IP 주소, 즉 외부에 공개되어 있는 IP 주소

- 공인 IP는 전세계에서 유일한 IP 주소를 갖게 됨

- 인터넷에 연결된 다른 PC로부터의 접근 가능 → 방화벽 등의 보안 프로그램 설치 필요

 

2) 사설 IP

- 일반 가정이나 회사 내 등에 할당된 네트워크의 IP 주소

- 로컬 IP, 가상 IP라고도 함

- IPv4의 주소 부족으로 인해 서브넷팅된 IP로 라우터에 의해 로컬 네트워크 상의 PC나 장치에 할당

- 하나의 네트워크 안에서 유일

- 외부 접근 불가능

 

 

5. 포트포워딩, 외부포트, 내부포트

1) 포트포워딩

- 외부의 기기에는 고정된 IP만 전달하고, 외부 기기가 내부에 접근할 수 있도록 내부의 공유기 관리자에서 설정하는 과정

- 내부 컴퓨터에 접근하려면 특정 포트를 열어줘야 함

- 고유 IP에 특정 포트를 부여해줌으로써 내부망에 특정 PC를 찾아갈 수 있도록 설정해주는 것

위와 같이 PC들은 각각의 고유 주소를 가지고 있고, 고유 IP에 특정 포트를 부여해줌으로써 내부망에 특정 PC를 찾아갈 수 있도록 설정해준다. 즉, 외부 IP 172.19.20.12:3306으로 접속 시 라우터는 출발지 포트(3306)와 매칭되는 목적지 포트(3306)로 연결시켜준다.

 

2) 외부포트

- 외부에서 접속 시 사용할 포트

 

3) 내부포트

- 내 컴퓨터에서 애플리케이션에 접속 시 사용하는 포트

 

※ 포트포워딩 실습

- 내 PC에 Nginx 설치 후 포트포워딩하여 내 휴대폰으로 접속해보기 (와이파이 연결 X, 셀룰러로 연결)
- 내 핸드폰에서 PC로 어떤 과정을 거쳐서 접속 되는지 그려보기.

 

 

 

 

'네트워크캠퍼스 > NETWORK' 카테고리의 다른 글

네트워크 쉽게, 더 쉽게  (0) 2024.02.01
3주차  (0) 2024.02.01
포트포워딩 실습  (0) 2024.01.26
모두의 네트워크  (0) 2024.01.22
1주차  (0) 2024.01.22

1. Protocol

1) 개념

- 원활한 통신을 위한 규칙

- 정보의 송수신측 또는 네트워크 내에서 사전에 약속된 규약 또는 규범

- 연결과정, 통신회선에서 접속방식, 통신회선을 통해 전달되는 정보의 형태, 오류발생에 대한 제어, 송수신측 간의 동기 방식 등에 대한 약속

 

2) 주요요소

- 구문(Syntax) : 데이터의 형식, 부호화, 신호레벨 등이 어떠한 구조와 순서로 표현되어있는지

- 의미(Semantics) : 각 비트가 갖는 의미로 패턴에 대한 해석과 해석에 따른 전송제어, 오류수정 등에 관한 제어정보를 규정

- 타이밍(Timing) : 두 개체 간의 통신속도를 조정하거나 메시지의 전송시간 및 순서 등에 대한 특성

 

 

2. OSI 7계층

1) 개념

- ISO에서는 개방형 시스템 간 상호접속을 위해 표준화된 네트워크 구조를 제공하는 기본 참조모델을 제정

- 다른 기종 간의 상호 접속을 위한 가이드라인 제시

- 상위 계층 : 사용자가 통신을 쉽게 이용할 수 있도록 도와주는 역할

- 하위 계층 : 효율적이고 정확한 전송과 관계된 일을 담당

 

2) 계층구조

OSI 7 Layers

- 7계층 구조는 비슷한 기능을 갖는 모듈을 동일 계층으로 분할

- 각 계층 간의 독립성 유지

- 한 모듈에 대한 변경이 다른 전체 모듈에 미치는 영향 최소화

- 2개의 그룹으로 분리 → 상위 3계층 : 이용자가 메시지를 교환할 때 사용, 하위 4계층 : 메시지가 호스트에서 사용

계층 특징 데이터 종류
7 응용계층 - 각종 응용서비스 제공
- 네트워크 관리
메시지
6 표현계층 - 네트워크 보안(암/복호화)
- 압축/압축해제, 포맷 변환 수행
5 세션계층 - 소켓 프로그램
- 동기화
- 세션 연결/관리/종료
4 전송계층 - 데이터 전송보장
- 흐름 제어
- Quality Of Services(QOS)
세그먼트
3 네트워크계층 - 통신경로 설정, 중계기능 담당
- 라우팅, 혼잡제어
- 데이터그램, 가상회선 방식
- IPv4, IPv6
패킷
2 데이터링크계층 - 오류제어, Frame화
- 매체제어(MAC)
- 에러검출, 에러정정, 흐름제어
프레임
1 물리계층 - 물리적 연결설정, 해제
- 전송방식, 전송매체
비트 스트림

 

① 물리 계층

- 데이터를 물리 매체 상으로 전송하는 역할을 담당

- 물리적 링크의 설정/유지/해제 담당

- 상용자 장비와 네트워크 종단장비 사이의 물리적, 전기적 인터페이스 규정에 초점

- 전송 선로의 종류에 따른 전송 방식과 인코딩 방식 결정

- 송신 측 물리 계층은 데이터링크 계층으로부터 받은 데이터를 비트단위로 변환

- 수신 측 물리 계층은 전송 받은 비트를 데이터링크 계층의 데이터로 올림

 

② 데이터링크 계층

- 물리 계층에서 전송하는 비트들의 동기 및 식별 기능, 원활한 데이터 전송을 위한 흐름제어 기능, 안전한 데이터 전송을 위한 오류제어 기능

- 헤더 : 데이터의 시작을 나타내는 표시와 목적지 주소 포함

- 트레일러 : 데이터에 발생한 전송 오류를 검출하기 위한 오류 검출 코드 포함

- 두 sub 계층으로 구성 

→ LLC(Logical Link Control sublayer) : 논리적 연결제어

MAC(Media Access Control) : 장비와 장비 간의 물리적인 접속

 

③ 네트워크 계층

- 송신 측에서 수신 측까지 데이터를 안전하게 전달하기 위해 논리적 링크 설정

- 상위 계층 데이터를 작은 크기의 패킷으로 분할하여 전송

- 개방형 시스템 사이에서 네트워크의 연결을 관리하고 유지하며 해제

- 스위칭 : 패킷의 수신 주소를 보고 정해진 방향으로 전송, 동작속도 빠름

- 라우터 : 라우팅 테이블을 찾아 알고리즘으로 최단 경로 계산 계산을 통해 전송경로를 결정 후 전송하여 스위치보다 동작 속도 느림

- 네트워크 주소는 발신지로부터 목적지까지 동일 (물리주소는 패킷이 이동될 때마다 변경)

 

④ 전송 계층

- 하위 계층의 첫 단계

- 세션을 맺고 있는 두 사용자 사이의 데이터 전송을 위한 종단간 제어

- 송신 컴퓨터의 응용프로그램(프로세스)에서 최종 수신 응용프로그램(프로세스)으로 전달

 

⑤ 세션 계층

- 세션이라 불리는 연결 확립 및 유지

- 효율적인 세션 관리를 위해 짧은 데이터 단위로 나눈 후 전송계층으로 내림

 

⑥ 표현 계층

- 송수신자가 공통으로 정보를 이해할 수 있도록 데이터 표현방식을 바꾸는 기능

- 데이터의 보안과 효율적인 전송을 위해 암호화와 압축을 수행하여 세션 계층으로 내림

 

⑦ 응용 계층

- 최상위 계층으로 응용 프로세스 네트워크 환경에 접근하는 수단을 제공

- 응용 프로세스들이 상호 간에 유용한 정보교환을 할 수 있도록 하는 창구 역할을 담당

 

3) 피어-투-피어(Peer-to-Peer) 간의 통신

- OSI 참조모델의 i번째 계층에서 다른 시스템의 i번째 계층과 통신하기 위해서는 상위계층의 메시지와 더불어 프로토콜 - 제어정보(PCI)를 이용

- 피어-투-피어 프로세스 : 임의의 계층에서 상대편 동일 계층의 모듈과 통신하는 프로세스

 

4) 캡슐화와 역캡슐화

① 캡슐화

- 어떤 것을 다른 것에 포함시킴으로써 포함된 것이 외부에서 보이지 않도록 함

- 프로토콜 데이터 단위를 다른 프로토콜 데이터 단위의 데이터 필드 부분에 위치시키는 기술

 

② 역캡슐화

- 캡슐화 이전으로 복원시키거나 제거 

- 캡슐화의 반대 동작

- 프로토콜 데이터 필드에 위치하고 있는 데이터 단위를 추출

※ 각 레벨의 데이터 PDU(Protocol Data Unit)

PDU 이름 계층
데이터(data) 응용 계층 PDU
세그먼트(segment) 전송 계층 PDU
패킷(packet) 인터페이스 계층 PDU
프레임(frame) 네트워크 접근 계층 PDU
비트(bit) 매체를 통해 이진 데이터로 물리적 전송을 위해 사용되는 PDU

 

→ 송신 단에서는 7계층에서 1계층으로 각각의 PDU를 추가하여 데이터를 캡슐화하고, 수신 단에서는 1계층에서 7계층으로 각각의 PDU를 제거하여 데이터를 얻는 비캡슐화 과정을 겪게 된다.

 

 

3. TCP/IP 4계층

1) 개념

- 미국 국방부 고등 연구 계획국에서 만든 연구 네트워크의 일부로 설계 (ARPAnet)

- 현재는 TCP와 IP가 공식 표준

- 다양한 기종의 컴퓨터가 하나로 묶이는 인터네트워킹 구조를 만듦

- 여러가지 프로토콜의 조합을 의미

- 4계층으로 구성 : 데이터링크, 네트워크, 전송, 응용계층

 

2) 계층구조

TCP/IP 4 Layers

① 네트워크 연결 계층

- 데이터를 송수신하는 역할

 

② 인터넷 계층

- 주소 관리, 포장, 라우팅하는 역할

- IP(Internet Protocol) : 호스트들과 네트워크에서 주소 관리, 패킷 라우팅

- ARP(Address Resolution Protocol) : 같은 네트워크에 위치한 호스트들의 하드웨어 주소를 얻는 데 사용

- ICMP(Internet Control Message Protocol) : 패킷 전송에 관한 에러 메시지 처리

 

③ 전송 계층

- 호스트들 간의 통신 제공, 2개의 프로토콜 존재

TCP(Transmission Control Protocol)

- 연결지향

- 데이터의 확실한 전송을 위해 수신 측으로 받았다는 확인 메시지 요구

UDP(User Datagram Protocol)

- 비연결지향

- 실시간으로 패킷을 전송하여 빠르나 패킷의 정확한 전달을 보장하지 않음

※ TCP와 UDP의 차이점

서비스 TCP UDP
신뢰성   - 패킷이 목적지까지 도달했는지 확인
  - 패킷이 도달할 때마다 ACK를 수신
  - 신뢰성 있는 프로토콜
  - ACK를 사용하지 않음
  - 패킷이 그들의 목적지에 도달되는 것을 보장하지 않음
  - 신뢰성 없는 프로토콜
연결   - 연결 지향적
  - 핸드쉐이킹 과정 수행
  - 비연결지향적
패킷 순서   - 패킷 내에 순서 번호 사용 X
혼잡 제어 O X
용도   - 신뢰성 있는 전송   - 스트리밍 비디오와 브로드캐스트 등 실시간 전송
속도의 오버헤드   - 상당한 양의 자원을 사용하며 UDP보다 느림   - 더 적은 자원을 사용하고 TCP보다 빠름

 

④ 응용 계층 

- 어플리케이션이 네트워크에 접근 가능하도록 함

 

 

4. Port, well known port

1) 포트 주소의 의미와 할당 원칙

① 포트

- 일종의 논리적인 접속 장소

- 포트 번호는 인터넷이나 기타 다른 네트워크 메시지가 서버에 도착했을 때 전달돼야 할 특정 프로세스를 인식하기 위한 방법

- TCP와 UDP에서 포트번호는 15비트 정수의 형태

 

② 포트번호와 소켓

- 통신을 위해 TCP 헤더에 송수신자 포트 정보를 삽입하여 패킷 생성

- 패킷을 서버로 전달하여 프로세스와 연결되면 서비스 이용 가능

- 포트 번호는 16비트, 0~65535번까지 존재, 0~1023번은 가능하면 사용 X (웰 노운 포트)

- 주요 포트번호 : root의 권한이 필요한 포트

 

2) well known port (잘 알려진 포트)

- 어떤 특권을 가진 서비스에 의해 사용될 수 있도록 예약되어 있음

- 루트 권한으로만 포트를 열 수 있음

- 루트 권한으로 실행된 프로그램만이 이 포트에서 데이터를 수신할 수 있지만, 권한에 상관없이 모든 프로그램이 이 포트로 데이터를 보낼 수 있음

프로토콜 포트 용도
ECHO 7 두 장비의 연결 확인
FTP data 20 파일 전송 프로토콜, 데이터 포트, FTP는 두 개의 포트 사용
FTP 21 PUT, GET 등의 FTP 명령 전송 시 사용
SSH 22 암호화된 원격 로그인에 사용
TELNET 23 대화 방식의 원격 명령 라인 세션에 사용, 암호화되지 않느 텍스트 송신
SMTP 25 장비 간의 메일 전송
TIME 37 1990년 1월 1일 자정 이후의 경과 시간을 초로 반환
DNS 53 호스트 도메인의 이름을 네트워크 주소로 바꾸거나 그 반대의 변환 수행
HTTP 80 www 기반의 프로토콜
HTTPS 43 HTTP over SSL (암호화된 전송)

 

 

5. HTTP, URL

1) 개념

- 인터넷 상에서 데이터를 주고 받기 위해 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜

- 어떤 종류의 데이터든지 전송 가능, 주로 HTML 문서를 주고받음

- 사용하는 포트 번호 : 80번

- 주로 웹브라우저를 이용하여 통신

- 단점 : 인터넷 상에서 받은 데이터는 평문이 그대로 노출 → 네트워크 상에서 패킷이 그대로 노출되는 취약점 발생

 

2) HTTP Header

- HTTP 통신을 위해 필요한 정보들이 입력되어 있는 데이터 영역

Host 요청이 전송되는 타겟의 host URL 주소
Accept 클라이언트가 허용할 수 있는 파일 형식
User-Agent 요청을 보내는 클라이언트의 정보
Referer 현재 요청된 페이지 이전의 페이지 주소
Cookie 클라이언트에게 설정된 쿠키 정보
Content-Type Request에 보내는 데이터의 type 정보
Content-Length Request에 보내는 데이터의 길이

 

3) HTTP Method

- HTTP 통신의 형태를 결정

GET   - URI(URL)가 가진 정보를 검색하기 위해 서버 측에 요청하는 형태
POST   - URI(URL)에 폼 입력을 처리하기 위해 구성한 서버 측 스크립트 혹은 CGI 프로그램으로 구성
  - Form Action과 함께 전송
  - 데이터 부분에 요청 정보가 들어감
HEAD   - GET과 유사한 방식
  - 헤더 정보 이외에는 어떤 데이터도 보내지 않음
  - 웹 서버의 다운 여부 점검이나 웹 서버 정보를 얻기 위해 사용
OPTIONS   - 시스템에서 지원되는 메소드 종류 확인 가능
PUT   - POST와 유사한 전송 구조
  - 헤더 이외에 메세지가 함께 전송
  - 원격지 서버에 지정한 콘텐츠를 저장하기 위해 사용
  - 홈페이지 변조에 악용
DELETE   - PUT과 반대 개념
  - 원격지 웹 서버에 파일을 삭제하기 위해 사용
TRACE   - 원격지 서버에 루프백 메세지를 호출하기 위해 사용
CONNECT   - 웹 서버에 프록시 기능을 요청할 때 사용

 

4) HTTP Content-Type

- HTTP 헤더에 보내지는 데이터

- 표준 MIME Type의 하나

     → 브라우저는 데이터를 나타내는데 어떤 종류의 파일 stream인지 알게 됨

     → 서버에서 데이터를 해석할 때 중요한 역할을 함

Text 사람이 읽고 이해할 수 있는 문자열
Image 그림 데이터
Audio 음성 데이터
Video 동영상 데이터
Application 모든 종류의 이진 데이터
Multipart 복수의 데이터로 이루어진 복합 데이터
Message 전자 메일 메세지
Model 복수 차원으로 구성하는 모델 데이터

 

5) URL

- URI (URL) : Uniform Resource Identifier의 약자로 리소스를 식별하기 위한 식별자

- URL은 Uniform Resource Locator의 약자로 리소스의 위치를 식별하기 위한 URI의 하위 개념

- URI는 Scheme, Authority (Userinfo, Host, Port), Path, Query, Fragment의 구성 요소를 가짐

- 자주 쓰이는 웹 URI 구성 요소

Scheme 웹 서버에 접속할 때 어떤 프로토콜을 이용할지에 대한 정보를 담고 있음
Host 접속할 웹 서버의 호스트(서버 주소)에 대한 정보를 가지고 있음
Port 접속할 웹 서버의 포트에 대한 정보를 가지고 있음
Path 접속할 웹 서버의 경로에 대한 정보를 가지고 있음, '/' 문자로 구분
Query 웹 서버에 전달하는 파라미터이며 URI에서 '?' 문자 뒤에 붙음
Fragment 메인 리소스 내에 존재하는 서브 리소스에 접근할 때 이를 식별하기 위한 정보를 담고 있으며
URI에서 '#' 문자 뒤에 붙음

 

 

7. TCP/IP

→ 인터넷에 연결된 다른 종류의 컴퓨터끼리 상호 데이터를 주고받을 수 있도록 한 인터넷 표준 프로토콜

     (TCP : 데이터를 패킷으로 나누고 묶는 역할, IP : 명령이 올바르게 전송되도록 하며 전달되지 못한 패킷은 재전송)

1) TCP(Transmission Control Protocol) 주요 특징

- 신뢰성 있음 : 패킷 손실, 중복, 순서바뀜 등이 없도록 보장

- 연결지향적

    : 느슨한 연결(Loosly Connected)을 가짐

    : 연결 관리를 위한 연결 설정 및 연결 해제 필요

    : 양단간 어플리케이션/프로세스는 TCP가 제공하는 연결성 회선을 통하여 서로 통신

- TCP 연결의 식별, 다중화, 포트번호

- 전이중 전송방식/양방향성

- 멀티캐스트 불가능

- 세그먼트화 처리 : 데이터를 패키징 처리

- 흐름제어, 혼잡제어

- 비실시간적 응용

 

2) IP(Internet Protocol) 주요 특징

- 신뢰성 및 흐름제어 기능이 전혀 없음

- 비연결성 데이터그램 방식

- 패킷의 완전한 전달을 보장하지 않음

- IP 헤더 내에 수신 및 발신 주소를 포함

- IP 헤더 내 최상위 바이트(MSB)를 먼저 보냄

- 경우에 따라 단편화가 필요함

- 모든 상위 계층 프로토콜들이 IP 데이터그램에 살려서 전송됨

 

3) IPv4 주소 체제

- 32비트의 IP 주소를 보기 쉽게 표시하기 위해 4바이트 단위로 나누고 10진수로 표시하는 표현 방식이 널리 사용

- IP 주소는 네트워크 식별자 필드와 호스트 식별자 필드의 두 부분으로 구성되며 각 필드에서 사용되는 비트 수에 따라 5개의 클래스로 나눔

 

① 클래스별 IP 주소 내용

클래스 A - 첫번째 비트가 0인 IP 주소
- 상위 1바이트 : 네트워크 주소, 하위 3바이트 : 호스트 주소
- 큰 규모의 호스트를 갖는 기관에 할당
클래스 B - 처음 두 비트의 값이 10인 주소
- 상위 2바이트 : 네트워크 주소, 하위 2바이트 : 호스트 주소
클래스 C - 처음 3비트의 값이 110인 주소
- 상위 3바이트 : 네트워크 주소, 하위 1바이트 : 호스트 주소
- 작은 규모의 네트워크에 할당
클래스 D - 처음 4비트의 값이 1110인 주소
- 전체 주소가 멀티캐스트용으로 사용
클래스 E - 처음 4비트의 값이 1111인 주소
- 추후 사용을 위해 예약된 주소

 

② 패킷의 전송방법

전송 방식 설명
유니캐스트 - 하나의 송신자가 하나의 수신자에게 패킷을 보내는 방식
멀티캐스트 - 하나의 송신자가 다수의 수신자에게 패킷을 보내는 방식
- 특정 다수에게 전송
브로드캐스트 - 같은 네트워크에 잇는 모든 호스트에게 패킷을 보내는 방식
- 호스트 주소를 모두 1로 설정
- 불특정 다수에게 전송

 

③ IPv4 주소 관리방식

- 서브네팅 : 이진수로 1인 부분은 네트워크 부분, 0인 부분은 호스트

- 슈퍼네팅 : 부족한 IP를 효율적으로 사용하기 위해 여러 개의 C클래스 주소를 묶어 하나의 네트워크로 구성하는 방식

 

④ CIDR(Classes InterDomain Routing)

- 표기법

     : 비트마스크를 사용하여 점으로 구분된 10진 표기법 지정

     : 서브넷 마스크에서 연속된 1의 수가 몇개인지 지정, 연속된 1은 서브넷 마스크의 맨 왼쪽 비트부터 시작

     : IP 주소에서 네트워크 ID 구성, /x로 비트 수 표현

- 장점

     : IPv4의 주소 공간을 효율적으로 할당

     : 인터넷 라우팅 테이블의 비대화를 줄임

 

⑤ VLSM(Variable Length Subnet Mask)

- IP를 효율적으로 할당하여 활용

- 서로 다른 크기의 서브넷 지원

- IP 주소 공간의 일부를 잘라서 사용, 한 기관에 이미 할당된 주소 공간을 나눔

 

⑥ 사설 네트워크를 위한 주소할당

공인 IP - 인터넷 상에 하나밖에 없는 IP로 유일
- 각 나라의 관할 기관에서 할당
사설 IP - 인터넷 상에서 확인할 수 없으며 내부 네트워크에서만 활용
- 홈 LAN이나 회사 내부에서 마음대로 할당

- 사설주소 영역 : 사설 인터넷을 위해 IANA가 할당한 IP 주소 블록

클래스 IP 주소 블록 주소 범위
class A 24비트 블록 10.0.0.0 ~ 10.255.255.255
class B 20비트 블록 172.16.0.0 ~ 172.31.255.255
class C 16비트 블록 192.168.0.0 ~ 192.168.255.255

- NAT(Network Address Translation) : 사설 IP 주소를 공인 IP 주소로 변환하는 주소 변환기

 

4) IPv6

- 128비트 주소 길이를 사용

- 보안문제, 라우팅 효율성 문제, QoS 보장, 무선 인터넷 지원과 같은 다양한 기능 제공

 

5) IPv4와 IPv6 특징 비교

구분 IPv4 IPv6
주소 길이 32비트 128비트
표시 방법 8비트 4부분 10진수 표시 16비트 8부분 16진수 표시
주소 개수 약 43억개 2^128개
주소 할당방식 A, B, C, D 등의 클래스 단위 비순차 할당 네트워크 규모, 단말기 수에 따라 순차 할당
브로드캐스트 주소 있음 없음
헤더 크기 가변 고정
QoS 제공 미흡 제공
보안 IPSec 프로토콜 별도로 설치 IPSec 자체 지원
서비스 품질 제한적 품질 보장 확장된 품질 보장

 

'네트워크캠퍼스 > NETWORK' 카테고리의 다른 글

네트워크 쉽게, 더 쉽게  (0) 2024.02.01
3주차  (0) 2024.02.01
포트포워딩 실습  (0) 2024.01.26
2주차  (0) 2024.01.26
모두의 네트워크  (0) 2024.01.22

+ Recent posts