그림으로 배우는 네트워크 원리 - Gene
기본정보
- 영진닷컴 2019
- 김성훈 옮김
감상
책을 펼치면 왼쪽 페이지는 설명, 오른쪽은 그림으로 네트워크의 구조를 설명하고 있다. 이러한 구성이 책 전반의 흐름을 파악하기엔 좋지 않지만 용어 하나, 이론 하나를 설명하기엔 좋은 구성인거 같다. 이해가 되지 않을땐 한,두 페이지만 다시 읽어보면 된다.
내용
1. 네트워크 기본
- 프로토콜 - 통신하기 위한 데이터 형식 등의 규칙
- 복수의 프로토콜을 조합한 네트워크 아키텍처에 기반하여 통신
- 현재는 네트워크 아키텍처로서 TCP/IP를 이용
- TCP/IP의 계층
|TCP/IP의 계층|주요 프로토콜|
|:—:|:—:|
|애플리케이션층|HTTP, SMTP, POP3, IMAP4, DHCP, DNS등|
|트랜스포트층|TCP/UDP|
|인터넷층|IP, ICMP, ARP 등|
|네트워크 인터페이스층|이더넷, 무선 LAN, PPP 등|
- 클라우드 서비스
- 클라우드 서비스는 인터넷을 통해 서버의 기능을 이용
- 클라우드 서비스 사업자가 서버를 도입하고 운용 관리
- 보안이나 가용성에 주의가 필요
- 직접 서버를 운용 관리하는 기존 서버 운영 방법은 온프레미스
- 클라우드 서비스 분류
IaaS 하드웨어
PaaS 플랫폼(OS, 미드웨어)
SaaS 애플리케이션까지(ex. 온라인 스토리지 서비스)
2. 네트워크
- 기본적인 네트워크 기기
- 라우터
- 레이어2 스위치
- 레이어3 스위치
- 데이터 전송처리 절차
- 데이터 수신
- 데이터 보낼 곳 결정
- 데이터 전송
- 각각의 기기에는 인터페이스(포트)가 갖추어져있어야 한다.
- 현재 내부 네트워크를 구성하는 LAN에는 두가지가 있다.
- 이더넷
- 무선 LAN(Wi-Fi)
3. TCP/IP
- 네트워크 인터페이스층
- 같은 네트워크 내 인터페이스 간 데이터를 전송하는 것
- 인터넷층
- 네트워크간의 데이터를 전송하는 역할
- 네트워크끼리 연경하고 데이터를 전송하는 기기가 라우터
- 원격지 네트워크에 연결된 출발지와 목적지 사이의 데이터 전송을 엔드투엔드 통신
- 트랜스포트층
- 적절한 애플리케이션으로 데이터를 배분하는 역할
- 여러 애플리케이션의 데이터가 다양한 타이밍에 들어오는 것을 적절히 배분
- 애플리케이션층
- 애플리케이션의 기능을 실행하기 위한 데이터의 형식과 처리 절차 등을 결정
- HTTP 는 웹브라우저, SMPT와 POP3은 전자메일 소프트웨어, DHCP와 DNS는 애플리케이션의 통신을 준비하기 위한 프로토콜
- 프로토콜의 제어정보 ‘헤더’
- 통신 주체인 애플리케이션이 데이터를 주고 받게 하려면, 복수의 프로토코을 조합해야 한다.(TCP/IP에서는 네 개의 프로토콜 조합)
- 각 프로토콜에는 각가의 기능을 실현하기 위한 제어 정보(헤더)가 필요
- 헤더를 추가 하는 것을 캡슐화, 반대를 역캡슐화
- FCS(Frame Check Sequence) 에러 체크를 위한 정보
- TCP/IP의 계층과 데이터를 가리키는 명칭
- 애플리케이션층 : 메세지
- 트랜스포트층 : 세그먼트
- 인터넷층 : 패킷
- 네트워크 인터페이스층 : 프레임
- IP
- IP의 역할은 엔드투엔트 통신을 하는것
- IP 주소는 통신 상대가 되는 호스트를 식별하기 위한 식별 정보
- IP 주소 표기는 8비트씩 4개로 0~255 사이의 10진수로 변환하고 ‘.‘으로 구분
- 목적지의 개수에 따른 데이터 전송 방식
유니캐스트 : 한곳으로 전송(IP 주소에 네트워크부와 호스트부로 구성)
브로드캐스트 : 같은 네트워크 상의 모든 호스트(255.255.255.255)
멀티캐스트 : 트정 그룹에 포함되는 호스트(224.0.0.0 ~ 239.255.255.255)
- 서브넷 마스크
- IP 주소의 네트워크부와 호스트부의 구분은 가변적
- 32비트 IP주소의 어디까지가 네트워크부인지 명시한 것이 서브넷 마스크
- IP주소처럼 32비트이면서 ‘0’과 ‘1’이 32개 나열됨. 여기서 ‘1’은 네트워크부를 나타내고 ‘0’은 호스트부를 나타냄
- IP주소에 255.255.255.0 또는 /24(프리픽스 표기)과 같이 서브넷 마스크를 병기하여 네트워크부와 호스트부를 명확하게 구분
- IP 주소 후반 호스트부를 모두 비트'0’으로 채우면 네트워크 자체를 식별하기 위해 이용하는 네트워크 주소가 됨.
- NAT
- NAT는 사설 주소와 공인 주소를 변환해, 사설 네트워크에서 인터넷으로 통신할 수 있게 함
- ARP
- IP주소와 MAC 주소를 대응시키는 것을 주소 해석
- ARP에 의해 자동으로 주소를 해석하고 목적지 IP 주소에 대응하는 MAC 주소를 구할 수 있다.
- Port
- 포트 번호로 애플리케이션을 식별하고 데이터를 적절한 애플리케이션으로 보내준다.
- 포트 번호는 TCP 또는 UDP 헤더에 지정
- 0~1023 웰노운 포트 번호는 주로 서버 애플리케이션을 식별하기 위해 예약된 포트 번호
|프로토콜|TCP|UDP|
|:—:|:—:|:—:|
|HTTP|80||
|HTTPS|443||
|SMTP|25||
|POP3|110||
|IMAP4|143||
|FTP|20/21||
|DHCP||67/68|
- TCP
- TCP로 애플리케이션 사이에서 신뢰성 있는 데이터 전송을 할수 있다.
- TCP에 의한 데이터 전송의 흐름
- TCP 커넥션 맺기
- 애플리케이션 간 데이터 송수신
- TCP 커넥션 끊기
- UDP
- UDP는 애플리케이션에 데이터를 배분하기 위해 이용하는 프로토콜
- TCP와 같은 확인은 하지 않음
- IP 전화의 음성 데이터와 같은 실시간 데이터 전송을 할 때 UDP 이용
- DNS
- IP주소는 이해하기 어려우므로 호스트명을 이용
- 호스트명에서 IP주소를 구하는 것을 이름해석이라 부르고 DNS는 가장 자주 이용되는 이름해석 방법이다.
- DHCP
- TCP/IP 설정 항목
- IP 주소 / 서브넷 마스크
- 기본 게이트웨이의 IP주소
- DNS 서버의 IP 주소
- DHCP로 TCP/IP 설정을 자동으로
- TCP/IP 설정 항목
4. 웹사이트
- 프록시 서버
- 웹 접속을 대신 하는 서버
- 웹서버에서 보면 접속하는 것은 프록시 서버이고, 원래 클라이언트는 알 수 없다.
- 기업 네트워크에서 프록시 서버는 직원들이 웹사이트를 확인하고 부정한 웹사이트 접속을 제한
5. 이더넷과 무선 LAN
- 이더넷의 규격
- 1000BASE-T(전송속도,베이스 밴드 방식-전송메체(케이블)와 물리층 레벨의 특징)
- 이더넷 헤더 안에 세가지 정보 - 목적지 MAC 주소, 출발지 MAC 주소, 타입 코드
- 네트워크 토폴로지
- 초기 이더넷은 버스형
- 현재는 레이어2 스위치를 중심으로 하는 스타형
- 링형
- 레이어2 스위치
- 이더넷을 이용한 하나의 네트워크 구성
- 네트워크의 입구 역할
- 레이어2 스위치에 등록되지 않은 MAC가 목적지로 되어 있는 이더넷 프레임을 Unknown 유니캐스트 프레임이라 한다.
- Unknown 유니캐스트 프레임은 수신한 포트를 제외한 모든 포트에 전송(플러딩)
- 스위치에 MAC 주소 테이블에 일정시간 등록된다.
- 레이어2스위치와 PC의 이더네 인터페이스를 UTP케이블로 연결
- 송신과 수신을 동시에 하는 것을 전이중 통신
- UDP 케이블 4조중 1조를 송신용, 1조를 수신용으로 나누어 사용
- 무선 LAN
- 무선 LAN 액세스 포인트와 무선 LAN 클라이언트로 무선 LAN 네트워크 구성
- 무선 LAN 액세스 포인트는 유선 이더넷에도 접속
- 무선 LAN 규격 - 최근 IEEE802.11n/ac
- Wi-Fi는 제조사가 달라도 서로 접속할 수 있다는 것을 보증
- 무선 LAN 으로 통신하려면 무선 LAN 액세스 포인트에 어소시에이션한다.
- SSID를 지정하여 어소시에이션한다.
- 무선 LAN에서는 전파를 돌려쓰므로 규격상의 전송속도로 통신할 수 있는 경우가 없다. 또한 충돌을 피하기 위해 CSMA/CA를 이용
- CSMA/CA 제어
- 전파가 이용 중인지 확인(Carrier Sense)
- 랜덤 시간 대기(Collision Avoidance)
- 데이터 송신
- 무선 LAN의 보안 : 일반적으로 WPA2, 데이터 암호화와 사용자 인증
6. 라우팅
- 라우터는 데이터의 목적지가 어느 네트워크에 접속되어 있는지 판단해 다음 라우터로 전송
- 라우터가 전송하는 데이터는 IP 패킷
- 목적지 IP 주소로 라우팅 테이블의 경로를 검색 (넥스트 홉 - 다음 라우터)
- 라우터는 라이팅 테이블로 이웃 라우터의 네트워크 구성을 인식
- 라이팅 테이블에 경로 정보 등록 방법
- 직접 접속 : 인터페이스에 IP 주소를 설정하면 직접 접속된 경로 정보가 라우팅 테이블에 등록
- 스태틱 라우팅 : 라우터에 커맨드를 입력하는 등 경로 정보를 수동으로 등록
- 라우팅 프로토콜 : 라우터끼리 정보를 교환해 라우팅 테이블에 필요한 경로 정보를 등록
- 경로 요약으로 복수의 네트워크 주소를 하나로 모아 라우팅 테이블에 등록
- 디폴트 경로 ‘0.0.0.0/0’ 모든 네트워크를 집약
- 레이어3 스위치
- 라우터와 레이어2 스위치의 기능을 가진 데이터 전송기기
- VLAN
- 하나의 네트워크에 수많은 기기를 연결하면 불필요한 데이터 전송이 많다.
- 이때 네트워크를 복수로 분할할 수 있게 하는것이 VLAN
- VLAN으로 분할된 네트워크는 같은 VLAN에 할당된 포트 사이만 이더넷 프레임 전송 가능
- 데이터가 전송되는 범위를 제한할 수 있다.
- 분할된 네트워크간의 통신은 라우터나 레이어3 스위치가 필요
- 복수의 스위치로 VLAN 구성시 스위치 사이를 효율적으로 연결하기 위해 태그 VLAN 포트 이용(포트 하나로 정리 가능)
- 태그 VLAN 포트에서 다루는 이더넷 프레임에는 VLAN 태그가 추가
- VLAN과 태그 VLAN 포트를 이용해 기기 추가나 배선을 변경하지 않고 네트워크를 변경 가능
- 레이어3 스위치를 이용하면 라우터보다 효율적으로 VLAN끼리 연결 가능
- PC에도 라우팅 테이블이 있으며 기본적으로 IP주소와 기본 게이트웨이의 IP 주소
7. 네트웤 보안
- 인증
- 인증 요소
- 사용자만 아는 정보 : 패스워드
- 사용자만 가진 물건 : IC카드 기능이 있는 사원증
- 사용자의 신체적 특징 : 지문, 망막
- 인증 요소
- 데이터 도청을 방지하는 기술
- 데이터 암/복호화
- 공통키 암호 방식(AES가 널리 이용됨)
- 암호화와 복호에 같은 암호키를 이용
- 암호키를 어떻게 공유하고 갱신하는가 하는 키 배송 문제 존재
- 공개키 암호 방식
- 암호화와 복호에 다른 키를 이용
- 공개키로 암호화했으면 비밀키로만 복호
- 비밀키로 암호화하면 공개키로만 복호화
- 디지털 서명
- 디지털 서명으로 데이터를 보낸 곳과 변조 여부를 확인
- 디지털 서명은 데이터의 해시값을 비밀키로 암호화한 것
- 디지털 인증서
- 공개키가 진짜인지 확인하고 공개키 암호를 안전하게 이용하기 위한 인프라로서 PKI(Public Key Infrastructure)
- 디지털 인증서를 발행하는 신뢰할 수 있는 제3자 기관을 CA
- SSL
- SSL에서는 디지털 인증서로 통신 상대방이 위조되지 않은 진짜인지 확인
- 디지털 인증서에 포함되는 공개키를 이용해서 공통키를 안전하게 배송
- 데이터는 공통키 암호 방식으로 암호화
- 인터넷 VPN
- 거점 간 통신을 저비용으로 수행
- 인터넷을 사설 네트워크인 것처럼 다루는 기술
- 거점 간 라우터를 가상으로 연결
- 거점 간 데이터는 터널을 경유하도록 해서 암호화