[Network] 응용 계층

 

네트워크 보안


(1) 응용 계층 (7계층 / Application Layer)

1-1. 응용 계층 프로토콜

  • OSI 7계층 모델의 최상위 계층

  • 대부분 관련 응용 프로그램이 별도로 존재

  • 해당 응용 프로그램은 여러 프로토콜에 대하여 사용자 인터페이스를 제공

 

FTP (File Transfer Protocol / 20, 21)

  • 파일 전송을 위한 가장 기본적인 프로토콜

  • 클라이언트와 서버가 대화형으로 통신 가능 (원격 컴퓨터 디렉토리 파일 목록 문의 / 명령어 사용법 대화식)

  • 전송되는 파일 형식 지정 가능

  • 사용 가능 파일 형식은 텍스트나 바이너리 파일

  • 파일 전송 전에 먼저 서버에 로그인해야 하며, 사용자는 로그인 이름과 패스워드를 입력하여 클라이언트 인증

  • 서버는 검증되지 않은 사용자 경우, 파일 전송 거부가 가능하며, 여러 클라이언트가 동시에 서버 접근 가능

 

Telnet (23)

  • 사용자가 원격에 있는 서버에 로그인하도록 TCP 연결 설정

  • 단말기가 원격 컴퓨터 바로 옆에 있는 것처럼 직접 조작 가능

  • 원격 컴퓨터에서 수행한 결과를 단말기에 보여주며, 사용자 단말기가 원격 컴퓨터에 직접 연결된 것처럼 보이게 함

 

SMTP (Simple Mail Transfer Protocol / 25)

  • TCP / IP에서 많이 사용하는 응용 서비스 중 하나, 메일 서비스

  • 메일 서비스는 빠르고 편리해 많이 사용하며, 텍스트나 실행 파일 등을 손쉽게 전송 가능

  • 원격 컴퓨터나 네트워크 연결에 장애가 발생한 경우에도 통신 가능

  • 송신자가 전송한 메일 메시지는 목적지 컴퓨터나 네트워크 장애가 복구될 때까지 기다리며, 복구되면 배달함

  • 위와 같은 전송 방법을 지연 배달이라 하며, 메일 시스템에서는 지연 배달을 위해 스풀링 기법 이용

  • 사용자가 메일 메시지를 전송하면 시스템은 전송 시각과 목적지 주소, 수신자, 송신자 등의 값을 개별 스풀에 복사

  • 그후 메일 시스템은 원격 컴퓨터로 메일 메시지를 백그라운드로 전송 

 

DNS (Domain Name System / 53)

  • 도메인 이름 주소를 통해 IP 주소를 확인할 수 있는 프로토콜

 

TFTP (Trivial File Transfer Protocol / 69)

  • FTP처럼 파일을 전송하기 위한 프로토콜

  • 그러나 UDP 패킷을 사용하여 FTP와 달리 인증 기능 제공하지 않음

 

HTTP (HyperText Transfer Protocol / 80)

  • 인터넷을 위해 사용하는 가장 기본 프로토콜

 

POP3 (Post Office Protocol 3 / 110) & IMAP (Internet Message Access Protocol / 143)

  • POP3는 메일 서버로 전송된 메일을 확인할 때 사용하는 프로토콜

  • IMAP도 POP3와 같으나, 메일을 읽은 후에도 메일이 서버에 남는다는 점이 다름

 

RPC (Remote Procedure Call / 111)

  • Sun의 Remote Procedure Call을 나타냄

 

NetBIOS (Network Basic Input Output System / 138)

  • IBM에서 개발했지만 윈도우에서 차용

  • 내부 네트워크의 프린터처럼 기본적인 사무기기와 윈도우 시스템 간의 파일 공유를 위한 것으로 항상 열려 있음

  • NBT (NetBIOS over TCP) 프로토콜을 사용하여 원격 인터넷으로 전달 가능

 

SNMP (Simple Network Management Protocol / 161)

  • 네트워크 관리와 모니터링을 위한 프로토콜


# Reference

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 전송 계층  (0) 2020.03.19
[Network] 네트워크 계층  (0) 2020.03.19
[Network] 데이터 링크 계층 (DataLink Layer)  (0) 2020.03.18
[Network] 물리 계층 (Physical Layer)  (0) 2020.03.18
[Network] 네트워크 보안 기초  (0) 2020.03.11

[Network] 전송 계층

 

네트워크 보안


(1) 전송 계층 (4계층 / Transport Layer)

1-1. 전송 계층에 대한 이해

  • 4계층 대표 프로토콜은 TCP

  • TCP도 주소를 가지고 있으며, 이를 포트라 함

  • MAC 주소가 네트워크 카드의 고유 식별자이고, IP 시스템의 논리적 주소라면, 포트는 시스템에 도착 후 패킷이 찾아갈 응용 프로그램과 통하는 통로 번호 

 

포트는 0~65535 (2**16 -1)번까지 존재하며, IP나 MAC 주소처럼 출발지와 목적지에 응용 프로그램별로 포트 번호를 가지고 통신한다.

 

0~1023번 (1,024개)을 잘 알려진 포트라고 부른다.

 

보통 0번 포트는 사용하지 않으며, 1023번 포트까지는 대부분 고유 용도가 있다.

 

 

[표 1] 주요 포트와 서비스

포트 번호 서비스 포트 번호 서비스
20 FTP-Data 80 HTTP
21 FTP 110 POP3
23 Telnet 111 RPC
25 SMTP 138 NetBIOS
53 DNS 143 IMAP
69 TFTP 161 SNMP

 

표에 나열되어 있는 것은 대부분 목적지 포트이다.

 

목적지 포트와 달리, 출발지 포트는 보통 1024번부터 65535번 사이에서 사용하지 않는 임의의 포트를 응용 프로그램별로 할당하여 사용한다.

 

예로 클라이언트가 인터넷에 존재하는 웹 서버에 접속한다고 가정하면, 웹 서버의 서비스 포트는 보통 80번이니 패킷 구조는 다음과 같다.

 

[그림 1] 클라이언트가 웹 서버에 접속할 때 패킷 구조

 

출발지 포트는 시스템에서 임의로 정해지게 되니 알 수가 없다.

 

대략 3000번대의 포트가 임의로 할당되면 다음과 비슷하다.

 

[그림 2] 시스템에서 임의로 포트를 할당한 출발지 패킷 구조


(2) 전송 계층 프로토콜

  • 전송 계층은 OSI 7계층에서 4번째 계층으로, 응용 프로그램 주소를 포트 번호로 이용해 통신 하는 프로토콜

 

2-1. TCP

  • 전송 계층에서 동작하는 연결 지향형 프로토콜

  • 데이터의 흐름을 관리하고 데이터가 정확한지 확인

 

2-1-1. TCP의 특징

  • 높은 신뢰성

  • 가상 회선 연결 방식

  • 연결 설정 / 해제

  • 데이터 체크섬

  • 시간 초과와 재전송

  • 데이터 흐름 제어

 

TCP는 일단 연결이 설정되면 해제되기 전까지 송신 시스템과 목적지 시스템이  계속해서 대화를 시도한다.

 

송신 시스템은 보내는 시스템에 데이터를 전송, 목적지 시스템은 데이터를 받은 경우 이에 응답하도록 되어 있다.

 

만약 목적지 시스템이 받은 데이터에 응답을 하지 않을 경우, 송신 시스템은 일정 시간을 대기한 후 같은 데이터를 재전송한다.

 

이러한 통신 방식을 사용하기 때문에 보내는 데이터에 대한 신뢰성이 확보된다.

 

 

다음은 TCP 패킷의 구조이다.

 

[그림 3] TCP 헤더

 

[표 2] TCP 패킷 내용

필드 이름 길이 내용
S.Port 2Bytes 패킷의 출발지 포트 번호를 가리키며 0~65535 값 중 하나
D.Port 2Bytes 패킷의 목적지 포트 번호
Seq.Number 4Bytes 패킷의 순서 값
Ack.Number 4Bytes 통신 상대의 패킷 순서 값
Data Offset 4bits

TCP 패킷 헤더 길이를 나타내는데, 32bits (4Bytes)가 몇 행인지 가리킴

최소 값은 5

Reserved 6bits 나중에 필요할 때 사용하려고 남겨둔 공간
Control Bits 6bits

URG (Urgent) : 1이면 헤더 마지막 필드인 긴급 포인터 내용 실행

ACK (Acknowledgement) : 1이면 확인 번호 필드가 유효

PSH (Push) : 1이면 송신자에게 높은 처리율 요구

RST (Reset) : 1이면 TCP 연결 다시 설정

SYN (Synchoronize) : 1이면 연결 요청과 설정, 확인 응답에서 순서 번호 동기화

FIN (Finish) : 1이면 TCP 연결 종료

Window 2Bytes

TCP는 흐름 제어 때 슬라이딩 윈도우 & 혼잡 윈도우 방법 사용

슬라이딩 윈도우 : 데이터를 한 번에 처리할 수 있는 버퍼의 용량을 의미하는 윈도우 개념 사용, 송신 시스템이 전송한 전체 세그먼트에 대한 확인 메시지 수신하기 전에 다른 세그먼트를 전송하도록 도와줌

 

혼잡 윈도우 : 네트워크 혼잡 문제 해결을 위해 송신 시스템이 사용하는 방법, 네트워크 혼잡 발견 시에 보내는 데이터 양을 조절해 줄이고 혼잡이 줄어들면 다시 원래 보내던 만큼 데이터 양을 늘림

Checksum 2Bytes 데이터 오류 검출을 위한 값
Urgent Pointer 2Bytes Control Bits가 URG 경우, 현재 전송되는 데이터와 관계없는 TCP 데이터를 보내 우선 처리시에 사용, 이때 우선 처리하려는 긴급 데이터의 마지막 바이트 위치를 Urgent Pointer로 나타냄
Options 가변 옵션의 종류와 길이, 데이터를 저장
Padding 가변 옵션이 32bits가 안 되면 나머지 비트를 0으로 채움
Data 가변 전송하고자 하는 데이터를 저장

 

TCP가 연결 지향형 프로토콜이라는 의미는 패킷을 주고 받기 전에 미리 연결을 맺어 가상 경로를 설정하여 이 가상 경로를 통해 모든 데이터가 전송 된다는 것이다.

 

가상 경로를 설정하려면 연결을 설정하고 종료하는 두 과정이 필요한데, 연결을 설정하는 과정을 흔히 '3-Way 핸드셰이킹'이라고 한다.

 

[그림 4] TCP에서 연결 생성 과정

 

 

1) 두 시스템이 통신을 하기 전의 클라이언트는 포트가 Closed 상태이며, 서버는 해당 포트로 항상 서비스를 제공할 수 있는 Listen 상태이다.

 

2) 클라이언트가 처음 통신을 하고자 하면, 임의의 포트 번호가 클라이언트 프로그램에 할당되고 클라이언트는 SYN Sent 상태가 된다. (서버에 연결하고 싶다는 일종의 표시)

 

3) 서버는 클라이언트 연결 요청을 받고, SYN Received 상태가 되며 클라이언트에 연결을 해도 좋다는 의미로 SYN + ACK 패킷을 보낸다.

 

4) 마지막으로 클라이언트는 연결 요청에 대한 서버 응답을 확인했다는 표시로 ACK 패킷을 서버로 보낸다.

 

 

TCP에서의 연결 종료 과정은 연결 생성 과정보다 중요성이 조금 떨어지지만 역시 중요하다.

 

[그림 5] TCP에서 연결 해제 과정

 

1) 두 시스템이 통신하는 중에는 클라이언트와 서버 모두 Established 상태이다.

 

2) 통신을 끊고자 하는 클라이언트가 서버에 FIN 패킷을 보낸다. (이때, 클라이언트는 Close Wait 상태가 됨)

 

3) 서버는 클라이언트 연결 종료 요청을 확인하고, Close Wait 상태가 된다.

 

클라이언트에 응답으로 ACK 패킷을 보낸 뒤 서버도 클라이언트의 연결을 종료하겠다는 의미로 FIN 패킷을 보낸다.

 

4) 마지막으로 클라이언트가 서버로부터 FIN 패킷을 받으면 Closed 상태가 되고 클라이언트는 연결 종료 요청에 대한 서버의 응갑을 확인했다는 의미로 ACK 패킷을 서버에 보낸다.

 

이 패킷을 받은 뒤 서버는 Closed 상태가 된다.

 

 

2.2 UDP

  • TCP와 달리 비연결 지향형 프로토콜

  • 상대방이 보낸 응답을 확인하지 않고, 송신 시스템이 전송하는 데이터에 대한 목적지 시스템의 확인 절차를 생략하므로 네트워크에 부하를 주지 않는 장점을 지님

  • 그러나 데이터 자체의 신뢰성이 없으므로 수신한 데이터는 무결성 보장을 받지 못함

 

2-2-1. UDP의 특징

  • 비연결 지향형

  • 네트워크 부하 감소

  • 비신뢰성

  • 전송된 데이터의 일부가 손실됨

 

UDP는 송신 시스템과 목적지 시스템 사이의 상호 통신이 이루어지지 않아 전송되는 데이터 중 일부가 손실되는 경우 손실 데이터에 대한 재전송 요구를 하지 않는다.

 

손실 된 데이터는 그대로 둔 채 나머지 데이터를 전송하며, UDP는 비연결 지향형 프로토콜이라 송신 시스템은 손실된 데이터 정보를 알 수 없어 손실 데이터를 재전송하지 않는다.

 

최근 네트워크 신뢰도가 매우 높아져 수신된 데이터 무결성을 보장받지 못해도 UDP를 사용하면 효율성 높은 데이터 전송을 제공하는 경우가 많아 점차 많이 사용된다.

 

 

다음은 UDP 패킷 구조이다.

 

[그림 6] UDP 패킷 구조

 

[표 3] UDP 패킷 내용 

필드 이름 길이 내용
S.Port 2Bytes 패킷의 출발지 포트 번호로, 0~65535 값 중 하나
D.port 2Bytes 패킷의 목적지 포트 번호
Length 2Bytes UDP 헤더와 데이터 필드 포함 전체 패킷 길이
Checksum 2Bytes 데이터 오류 검출을 위한 값
Data 가변 전송하고자 하는 데이터 저장

# Reference

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 응용 계층  (1) 2020.03.19
[Network] 네트워크 계층  (0) 2020.03.19
[Network] 데이터 링크 계층 (DataLink Layer)  (0) 2020.03.18
[Network] 물리 계층 (Physical Layer)  (0) 2020.03.18
[Network] 네트워크 보안 기초  (0) 2020.03.11

[Network] 네트워크 계층 (3계층 / Network Layer)

 

네트워크 보안


(1) 네트워크 계층에 대한 이해

  • 데이터 링크 계층은 하드웨어의 주소만으로 통신, 통신하고자 하는 하드웨어(랜 카드)의 주소(MAC)를 알아야 하는데, 이를 위해서 통신하려는 개체가 물리 계층으로 직접 연결되어 있어야 함

  • 하지만 넓은 네트워크를 모두 직접 연결 불가능하고, 이는 데이터 링크 계층만으로 랜 간 통신이 불가능함을 의미

  • 그래서 랜을 벗어난 통신을 하기 위해 네트워크 계층에서 IP 주소를 사용

  • IP 주소는 인터넷을 하기 위해 컴퓨터마다 설정하는 주소를 의미 (각 랜의 주소)


(2) 네트워크 계층 프로토콜

  • IP 주소를 이용해 통신을 하기 위한 프로토콜 제공

  • 대표적으로 IP, ARP, RARP, ICMP, IGMP가 있음

 

네트워크 통신을 할 때 흔히 IP 주소를 사용하며, IP 주소를 설정하고 통신을 위해 IP 주소를 확인하는 경우는 있지만, 통신을 위해 MAC 주소를 알려주는 경우는 거의 없다.

 

그러나 LAN과 같은 물리적 매체에 연결된 두 장비가 네트워크 계층에서 적절한 통신을 위해서는 먼저 하위 계층인 데이터 링크 계층 간의 통신 경로 확보가 필요하다.

 

통신하려는 장비의 물리적 주소(MAC)를 확보하지 않고서는 통신을 할 수 없다.

 

 

2-1. ARP

  • 데이터를 전달하려는 IP 주소와 통신에 필요한 물리적 주소(MAC)를 알아내는 프로토콜

  • MAC 주소를 사용해 통신하지만, 정보로 담는 값은 IP이기 때문에 데이터 링크 계층과 네트워크 계층 중간에 위치

  • 선택 매체에 브로드캐스트를 통해 특정 IP 주소를 사용하는 호스트가 응답을 하도록 요구하는 방식 사용

  • 목적지 호스트가 응답 > 송신 호스트는 목적지 호스트와 연결을 맺고 데이터 전송 시작

  • ARP 패킷에 대한 목적지 호스트가 응답하면 송신지 호스트는 ARP 테이블을 설정

  • 호스트는 통신 시 ARP 테이블의 정보를 이용 > 데이터 링크 계층 통신 수행

 

[그림 1] ARP 패킷 구조

 

[표 1] ARP 패킷 내용

필드 이름 길이 내용
HRD 2Bytes

ARP 패킷이 사용되는 물리 계층의 네트워크 유형 정의

1 : 이더넷 (10Mb)

6 : IEEE802 네트워크

15 : 프레임 릴레이

16 : ATM

17 : HDLC

18 : 광 채널

19 : ATM (Asynchronous Transfer Mode)

20 : 직렬 연결

PRO 2Bytes

ARP를 위해 사용할 상위 계층 프로토콜 종류 지정

일반적으로 IPv4를 사용, 그에 대한 값은 2048 (0800 hex)

HLN 1Byte 하드웨어 주소 값의 길이, MAC 주소 값은 6
PLN 1Byte

상위 계층 프로토콜의 주소 값의 길이

IPv4 주소 값 길이를 의미 (4)

OP 2Bytes

ARP 패킷 동작의 종류 의미

1 : ARP Request

2 : ARP Reply

3 : RARP Request

4 : RARP Reply

SHA =HLN 패킷 송신자의 MAC 주소
SPA =PLN 패킷 송신자의 IP 주소
THA =HLN 패킷 수신자의 MAC 주소
TPA =PLN 패킷 수신자의 IP 주소

 

2-1. RARP

  • 데이터 링크 계층의 주소인 MAC 주소를 가진 네트워크 계층의 주소 (IP 주소를 확인하는 프로토콜)

  • 디스크가 없는 호스트가 자신의 IP 주소를 서버로부터 얻어내려면 RARP라는 TCP/IP 인터넷 프로토콜 사용 필요

  • 자체의 디스크 기억 장치가 없는 워크스테이션이나 지능형 단말기에서 사용

 

2-2. IP

  • 가장 대표적인 네트워크 계층 프로토콜

  • 하위 계층 서비스를 이용 > 두 노드 간의 데이터 전송 경로를 확립해주는 역할

  • 하위 계층으로 분류되는 데이터 링크 계층은 같은 회선에 있는 두 노드 사이 데이터를 전송하고, 네트워크 계층은 회선이 서로 다른 두 노드 사이의 데이터 전송

 

[그림 2] IP 패킷 구조

 

[표 2] IP 패킷 내용

필드 이름 길이 내용
Version 4bits IP의 버전 정보, 값이 0x4일 경우 IPv4를 의미
IHL 4bits IP 헤더 길이, 이 필드 값에 4를 곱한 값이 실제 헤더의 바이트 값
TOS 1Byte

라우터에서 IP 데이터그램을 처리할 때 우선 순위를 정의

우선 순위로는 최소 지연, 최대 처리율, 최대 신뢰성, 최소 비용을 설정 가능 (기본 값은 0)

TL 2Bytes 헤더를 포함한 데이터그램의 전체 길이 의미
Identification 2Bytes 데이터그램이 단편화될 때 모든 단편에 이 값이 복사되고, 단편화 된 데이터그램이 생성될 때마다 1씩 증가
Flag 3bits

단편화 여부와 단편화 된 조각이 첫 번째 조각인지, 중간 혹은 마지막 조각인지를 알려줌

RF (Reserved Fragment) : 아직 사용하지 않으므로 항상 0

DF (Don't Fragment) : 1이면 단편화되지 않았음, 0이면 단편화되었음을 의미

MF (More Fragment) : 0이면 마지막 단편이거나 유일한 단편이고, 1이면 마지막 단편이 아님을 의미

Fragment Offset 13bits 기존 데이터그램 안에서 단편의 상대적 위치 의미
TTL 1Byte

라우팅 과정에서 라우터를 몇 개 이상 통과하면 해당 패킷을 버릴지를 입력

라우터 하나를 지날 때마다 값이 1씩 줄어들고, 0이 되면 해당 패킷은 버려짐

Protocol 1Byte

IP 계층 서비스를 사용하는 상위 계층 프로토콜 정의

1 : ICMP

2 : IGMP

6 : TCP

17 : UDP 

Header Checksum 2Bytes

패킷 전달 중 발생할 수 있는 오류 검사를 위해 사용하는 것

송신측에서 체크섬을 계산하여 전송 

Source Address 4Bytes 송신측의 IP 주소
Destination Address 4Bytes 수신측의 IP 주소
Options 가변 해당 패킷에 대한 옵션 사항을 입력할 수 있음
Padding 가변 옵션 내용이 입력 될 경우 그 값이 32배수로 데이터가 마무리되도록 0으로 채움
Data 가변 IP 패킷을 통해 전송되는 데이터 부분

 

IP는 32자리 2진수로, 8자리마다 점을 찍어 구분하고 개수가 제한되어 있기 때문에 체계적으로 사용할 수 있도록 별도 규칙을 두었다.

 

IP 주소는 A, B, C, D, E 클래스로 구분하는데 각 클래스는 네트워크 부분과 호스트 부분으로 구성되어 있다.

 

A 클래스는 첫 번째 8자리가 네트워크 주소, 나머지 값은 호스트 주소이다.

 

B 클래스는 두 번째 8자리까지 네트워크 주소, 나머지가 호스트 주소이다.

 

C 클래스는 세 번째 8자리까지가 네트워크 주소, 마찬가지로 나머지가 호스트 주소이다.

 

[그림 3] IP 주소 클래스

 

A, B, C 클래스는 맨 앞부분에 시작하는 2진수 숫자에 따라 구분한다.

 

A 클래스의 네트워크가 가장 크고, C 클래스의 네트워크가 가장 작다.

 

 

[표 3] 네트워크 클래스 구분

시작 주소 구분 내용
0 A 클래스

0번 ~ 127번 네트워크

2**7(128)개 가능, 하나의 A 클래스에 256**3개 호스트 존재 가능

10 B 클래스

128번 ~ 191번 네트워크

2**6 x 256(16,384)개 가능, 하나의 B 클래스에 256**2개 호스트 존재 가능

110 C 클래스

192번 ~ 223번 네트워크

2**5 x 256**2(2,097,152)개 가능, 하나의 C 클래스에 256개 호스트 존재 가능

1110 D 클래스

224번 ~ 239번 네트워크

멀티미디어 방송할 때 자동 부여

E 클래스

240번 ~ 255번 네트워크

테스팅을 위한 주소 대역으로, 사용하지 않음

 

각 클래스마다 다음과 같이 사설 네트워크 대역을 지정해놓았다.

 

[표 4] 클래스별 사설 네트워크 범위

구분 지정된 사설 네트워크
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

 

사설 네트워크는 공인 네트워크의 주소 부족 현상 해결을 위해 많이 사용된다.

 

 

2.3 ICMP

  • 호스트 서버와 인터넷 게이트웨이 사이에서 메시지를 제어하고 오류를 알려주는 프로토콜

  • IP 데이터그램을 사용하지만 메시지는 TCP/IP 소프트웨어에 의해 처리되며, 응용 프로그램 사용자에게 직접, 분명하게 보이지 않음

  • ICMP를 사용하는 대표적 툴은 ping

 

IP는 비연결 지향형 프로토콜로, 패킷이 확실히 전송된다는 보장이 없기 때문에 라우터나 노드(호스트) 등에서 오류가 생겨 목적지까지 도달하지 못하기도 한다.

 

이런 경우 네트워크 연결 상태를 확인할 필요가 있는데, 이때 필요한 것이 ICMP이다.

 

ICMP는 IP 계층 위에서 동작하지만 TCP, UDP의 전송 계층 프로토콜과 별개다.

 

[그림 4] ICMP 패킷 구조

 

 

[표 5] ICMP 패킷 내용

필드 이름 길이 내용
Type 1Byte

ICMP 메시지 타입을 가리키며, 다음과 같은 값이 존재

0 : Echo Reply

4 : Source Quench

5 : Redirect

8 : Echo Request

11 : Time Exceeded

Code 1Byte 각 타입별로 세부적인 값을 적음
Checksum 2Bytes 패킷의 무결성을 위한 오류 보정 값
Data 가변 ICMP를 통해 보내는 데이터 / 보통 의미 없는 문자열로 채워짐

 

 

ICMP는 크게 오류 통지를 위한 오류 메시지와 진단용 문답 메시지의 두 종류로 구분 된다.

 

2-3-1. ICMP Echo Request 메시지

  • 송신 측의 전송 패킷이 목적지 노드나 라우터에 도착했는지를 확인하는 데 사용

  • 송신 측 노드는 목적지 노드에 대해 'ICMP Echo Request 메시지'를 송신, 목적지 노드로부터 'ICMP Echo Reply' 메시지가 회신되면 패킷이 무사히 전송된 것으로 인식

[그림 5] ICMP Echo Request

 

2-3-2. ICMP Destination Unreachable 메시지

  • 라우터가 특정 노드의 패킷을 목적지에 보내지 못할 경우, 송신 노드에 'ICMP Destination Unreachable 메시지'를 보냄

  • 메시지 안에는 목적지까지 전송되지 못한 이유를 나타내는 정보가 포함

  • 목적지 노드 IP 주소 경로를 찾아내지 못한 라우터는 이 메시지를 다시 송신측 라우터로 되돌려 보냄

  • 이 메시지를 해석한 송신측 노드는 패킷이 목적지에 도착하지 못했음을 알 수 있음

 

2-3-3. ICMP Redirect 메시지

  • 라우터가 송신측 노드에 적합하지 않은 경로로 설정되어 있을 경우 해당 노드에 대한 최적화 된 경로를 다시 지정해주는 'ICMP Redirect 메시지'를 보냄

 

2-3-4. ICMP Time Exceeded 메시지

  • 패킷이 네트워크 사이에서 무한정 돌아가지 않도록 각 라우터가 패킷을 처리할 때마다 TTL(활성화 지속 시간)을 감소시켜 그 값이 '0'이 되면 송신측 라우터에 해당 메시지를 되돌려 보내 패킷이 폐기된 사실을 알림

[그림 6] ICMP Time Exceeded

 

위 그림에서 보듯이 노드 A에서 TTL 값을 3으로 전송한다면, 라우터 A에서 2가 되고, B에서 1, C에서 0이 되므로 패킷이 폐기되고 노드 B에는 전달되지 못할 것이다.

 

2-3-5. ICMP Source Quench 메시지

  • 저속 광역 회선 등을 사용할 경우, IP 라우터의 WAN 쪽에서 집중이 발생할 수 있음

  • 집중 완화를 위해, 송신측 큐 값이 '0'으로 남아 송신 불능 상태가 되면 해당 메시지를 송신측 노드에 보냄

  • 송신측은 이 메시지의 정보를 해석하여 회선의 어딘가가 혼잡하다는 사실을 인식하고 송신 패킷의 양 제어

[그림 7] ICMP Source Quench

 

 

2.4 IGMP

  • 컴퓨터에서 다른 컴퓨터로 IP 데이터를 전달하는 방식으로 유니캐스트, 브로드캐스트, 멀티 캐스트 세 가지 존재

  • IGMP는 세 가지 전달 방식 중 멀티캐스트에 관여하는 프로토콜

  • 멀티캐스트 그룹을 관리하는 역할

 

2-4-1. 유니캐스트

  • 한 호스트에서 다른 호스트로 전송하면 이를 유니캐스트라 함

  • 송/수신단이 1:1로 대비되며, 일반적인 IP 데이터 전송은 모두 유니캐스트 사용

 

2-4-2. 브로드캐스트

  • 호스트에서 IP 네트워크에 있는 전체 호스트로 데이터를 전송하는 것을 브로드캐스트라 함

  • TCP/IP에서 브로드캐스트용 주소는 IP 호스트 대역 주소가 모두 '1'인 경우

  • 일반 브로드캐스트는 255.255.255.255

  • 예로 다이렉트 브로드캐스팅은 C 클래스에 속한 211.32.34.0 네트워크에 대해 브로드캐스팅을 하고자 하는 경우에 목적지 주소를 211.32.34.255로 지정해서 보내는 것

 

2-4-3. 멀티캐스트

  • 유니캐스트와 브로드캐스트의 중간 형태로, 송신하는 하나의 호스트에 특정한 호스트를 묶어서 전송하는 것

  • 지정한 주소로 패킷을 한 번만 전달하면 멀티캐스트 그룹에 속한 모든 호스트에 전달되기 때문에 효율이 높음

  • IP 멀티캐스트 주소는 D 클래스 주소 대역 (244.0.0.1 ~ 239.255.255.255)으로 규정


(3) 네트워크 계층 관련 장비

  • 라우터는 네트워크 계층 대표적 장비로, 게이트웨이라고도 부름

  • 게이트웨이는 원래 서로 다른 프로토콜을 사용하는 네트워크를 연결해주는 장비

  • 라우터의 특성으로는 논리적으로 분리된 둘 이상의 네트워크를 연결하는 역할을 하며, 반대로 로컬 네트워크에서 브로드캐스트를 차단해 네트워크를 분리하는 역할도 수행

  • 라우터의 중요 기능은 패킷 교환망에서 패킷 최적 경로를 찾기 위한 라우팅 테이블을 구성, 라우팅 테이블에 따라 패킷을 목적지까지 가장 빠르게 보내는 길잡이 역할

[그림 8] 라우터


(4) 라우팅

  • 라우팅 테이블은 라우터만 있는 것이 아닌, 네트워크 계층 통신을 하는 모든 장치는 라우팅 테이블을 가짐

  • 일반 PC도 네트워크 인터페이스가 둘 이상이면 라우터로 구성 가능

[그림 9] PC의 라우팅 테이블

 

위의 시스템의 IP 주소는 192.168.0.100이고, 게이트웨이 IP 주소는 192.168.0.1로 설정되어 있다.

 

Destination(목적지)인 0.0.0.0은 라우팅 테이블에 목적지로 따로 명시되지 않은 모든 목적지 주소를 의미한다.

 

즉 라우팅 테이블에서 직접 구체적으로 지정한 주소 외 모든 목적지 주소는 192.168.0.100 인터페이스를 통해 게이트웨이 192.168.0.1로 보내라는 의미이다.

 

[그림 10] IP 주소 200.200.200.200에 대한 네트워크 경로 확인

 

tracert 명령으로 200.200.200.200으로 시작하는 경로로 ICMP 패킷이 전송되었다.

 

200.200.200.200으로 목적지 IP가 설정된 패킷을 192.168.0.1로 보냄을 확인할 수 있다.

 

로컬 네트워크에 있는 호스트이므로 192.168.0.1로 보내지 않고, 로컬 네트워크에서 상대방을 찾으라는 의미이다.

 

[그림 11] LAN의 서브넷 마스크 설정

 

위 넷마스크 값은 제어판의 네트워크 카드에서 설정하는 서브넷 마스크 값이다.

 

즉, 서브넷 마스크와 넷마스크는 같은 것을 의미한다.

 

위 값을 255.255.255.224로 설정하면, 라우팅 테이블의 내용도 255.255.255.224로 바뀌게 될 것이다.

 

이러한 라우팅은 다시 정적 라우팅과 동적 라우팅으로 나뉘게 된다.

 

 

4-1. 정적 라우팅

  • 관리자 권한으로 특정 경로를 통해서만 패킷이 지날 수 있도록 설정한 것

  • 네트워크에 변경사항이 발생하면 라우팅 테이블을 수동으로 직접 고쳐줘야 함

[그림 12] 정적 라우팅

 

4-1-1. 정적 라우팅 특징

  • 경로 설정이 실시간으로 이루어지지 않아 초기에 관리자가 다양한 라우팅 정보를 분석한 최적 경로 설정이 가능

  • 라우팅 알고리즘을 통한 경로 설정이 이루어지지 않아 라우터의 직접적인 처리 부하 감소

  • 네트워크 환경 변화에 대한 능동적 대처 어려움

  • 네트워크 환경 변화 시 관리자가 새로운 라우팅 정보를 통해 경로 재산출하여 각 라우터에 제공해야 함

  • 비교적 환경 변화가 적은 형태의 네트워크에 적합

 

4-2. 동적 라우팅

  • 라우터가 네트워크 연결 상태를 스스로 파악하여 최족 경로를 선택해 전송하는 방식

  • 네트워크 연결 형태가 변경되어도 자동으로 문제를 해결할 수 있다는 큰 장점을 가짐

[그림 13] 동적 라우팅

 

예로, 위 그림처럼 라우터 A에서 라우터 F로 가는 패킷이 있다면 경로 1과 경로 2 중 부하가 걸리지 않는 경로로 데이터를 전송한다.

 

만약 문제가 있어 라우터 C가 제대로 작동하지 않는다면 자동으로 경로 1로만 패킷을 전달한다.

 

 

4-2-1. 동적 라우팅 특징

  • 경로 설정이 실시간으로 이루어져 네트워크 환경 변화에 능동적으로 대처 가능

  • 라우팅 알고리즘을 통해 자동으로 경로 설정이 이루어져 관리하기 쉬움

  • 주기적인 라우팅 정보 송수신으로 인한 대역폭 낭비 초래

  • 네트워크 환경 변화 시 라우터에 의한 경로 재설정으로 라우터 처리 부하가 증가하며 지연이 발생함

  • 수시로 환경이 변하는 형태의 네트워크에 적합

 

[표 6] 정적 / 동적 라우팅 비교

구분 정적 라우팅 동적 라우팅
라우팅 테이블 관리

수동

네트워크 변화 (라우터 추가 / 변경 / 회선 장애 등)에 대한 자동 인지 불가

자동

네트워크 변화를 자동 인지하여 정보 전송 경로 재구성

처리 부하

라우팅 테이블 갱신을 위한 별도 부하 없음

CPU와 메모리에 부하 적음

네트워크 장애 실시간 관리 위한 NMS와 각 라우터 간 정보 전송 많음 (CPU에 부하 다소 발생)

라우팅 테이블 갱신을 위해 라우터 간 정보 교환

CPU와 메모리에 부하 많음

네트워크 장애를 실시간으로 관리할 필요 없음

백업 구성

백업 구성 곤란

별도 네트워크 장비 이용하여 회선 백업 기능

백업 구성이 쉬움 (회선 장비)
복구 기능

백업 회선 있는 경우, 회선 장애 시 수 초 내로 복구 기능

기타 장애 시 최소 10분 이상 복구 시간 필요 (백본 라우터 장애 시 30분)

백업 회선 있는 경우 수 초 내로 복구 가능
인터페이스 변경이 적을 때 유리 변경이 많을 때 유리
노드 추가 / 변경 / 확대 운영 요원이 라우팅 작업 대처 용이
중간 경로 단일 경로 적합 다중 경로 적합

# Reference

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 응용 계층  (1) 2020.03.19
[Network] 전송 계층  (0) 2020.03.19
[Network] 데이터 링크 계층 (DataLink Layer)  (0) 2020.03.18
[Network] 물리 계층 (Physical Layer)  (0) 2020.03.18
[Network] 네트워크 보안 기초  (0) 2020.03.11

[Network] 데이터 링크 계층 (DataLink Layer)

 

네트워크 보안


(1) 데이터링크 계층 (2계층 / DataLink Layer)

1-1. 데이터 링크 계층에 대한 이해

  • 랜 카드나 네트워크 장비의 하드웨어 주소만으로 통신하는 계층

  • 여기서 랜 카드나 네트워크 장비의 하드웨어 주소를 MAC (Media Access Control)주소라고 함

  • MAC 주소는 사람 이름처럼 네트워크 카드마다 붙는 고유 이름

  • 윈도우 명령 창에서 'ipconfig /all' 명령을 실행 > 'Physical Address'에서 확인 가능

[그림 1] MAC 주소 확인

 

MAC 주소는 총 12개의 16진수로 구성되며, 앞쪽 6개는 네트워크 카드를 만든 회사를 나타내는 것으로 OUI라 하고, 뒤쪽 6개는 호스트 식별자로 각 회사에서 임의로 붙이는 일종 시리얼이다.

 

따라서 MAC 주소 앞부분을 보면 어느 회사에서 만든 제품인지 확인 가능하며 OUI가 같은 회사도 없고, 한 회사에서 시리얼이 같은 네트워크 카드를 만들지도 않기 때문에 같은 MAC 주소는 존재하지 않는다.

OUI Host Identifier
00-0C-29 97-13-8C

 

1-2. 데이터 링크 계층 중요 네트워크

 

1) X.25

  • ITU-T에 의해 1980년경부터 규격화 된 통신 규약

  • 단말 장치(DTE)와 회선 종단 장치(DCE)간의 상호 접속에 대해서만 규정 (DCE 간 네트워크 내부 접속 사항 규정 X)

  • 즉, 단말 장치와 회선 종단 장치 간의 통신 절차를 규정한 계층화 프로토콜 

[그림 2] X.25의 통신 구성 요소

 

위에서 말한 회선 종단 장치는 네트워크를 통해 데이터를 아날로그나 디지털 신호 형태로 송수신하는 장치이며, 데이터를 단말 장치가 사용할 수 있는 형태로 변환시킨다.

 

가장 일반적인 회선 종단 장치는 모뎀이고 단말 장치는 컴퓨터이다.

 

X.25의 운용 속도는 T1/E1급 정도이다.

 

2) 프레임 릴레이

  • 디지털 전송 통로의 품질 향상에 따라 불필요한 전송 오류 제어나 흐름 제어 등 복잡한 기능 최소화

  • 망 종단 장치에서 처리하도록 하여 고속 전송을 실현하는 고속 데이터 전송 기술

  • X.25 패킷 교환망의 10배까지 고속 데이터 전송 가능

 

3) ATM

  • 고속 데이터를 53Byte 셀로 처리하는 VLSI 기술

  • 실시간 영상 전송과 같은 고속 통신에 사용


(2) 데이터 링크 계층 프로토콜

  • 대표적인 프로토콜 : 이더넷 프로토콜

 

2-1. 이더넷 프로토콜

  • 데이터 링크 계층의 프로토콜

  • 이더넷 패킷의 최소 길이는 64Bytes, 최대 길이는 1,518Bytes

 

[그림 3] 이더넷 패킷 구조

 

[표 1] 이더넷 패킷 내용

필드 이름 길이 내용
Preamble 7Byte

패킷이 입력되고 있음을 네트워크 인터페이스에 알리기 위한 부분으로 1과 0이 번갈아 입력

실제 데이터가 들어오니 '이제 정신차려!'라고 알려주는 것과 같음

SFD 1Byte

Start Frame Delimiter

통신을 위한 최초의 패킷에 10101011을 입력하여 해당 패킷이 최초 패킷임을 알려줌

Destination MAC Address 6Bytes

패킷을 받을 네트워크 인터페이스에 대한 MAC 주소를 가리킴

해당 주소가 모두 1 (FF:FF:FF:FF:FF:FF)이면 브로드캐스팅 패킷이 됨

Source MAC Address 6Bytes 패킷을 보내는 네트워크 인터페이스에 대한 MAC 주소를 가리킴
Length or Type 2Bytes IEEE 802.3은 길이가 기록되는데 이더넷 버전 2 등의 프로토콜은 타입이 기록
Data 0~1,500Bytes

전송 데이터가 저장되는 것으로, 최대 크기는 1,500Bytes

Pad 가변 전송하려는 데이터 길이가 46Bytes보다 작으면 전체 패킷 최소 길이 46Bytes를 맞추기 위해 여기에 임의 데이터를 씀
FCS 4Bytes

Frame Check Sequence

전송되는 패킷의 오류 확인을 위해 4Bytes의 CRC를 계산하여 입력


(3) 데이터 링크 계층 관련 장비

 

3-1. 브리지

  • 랜과 랜을 연결하는 초기의 네트워크 장치

  • 데이터 링크 계층에서 통신 선로를 따라서 한 네트워크에서 그 다음 네트워크로 데이터 프레임을 복사

  • 프레임이 들어오면 MAC 주소를 확인해 목적지 MAC 주소가 프레임이 들어온 인터페이스에 있으면 해당 패킷을 막고, 다른 인터페이스 쪽에 있으면 전달하는 역할

[그림 4] 브리지

 

3-2. 스위치

  • 기본적으로 L2(Layer 2), 즉 데이터 링크 계층에서 작동하는 스위치

  • L3, L4 스위치는 L2 스위치에 상위 계층의 네트워킹 기능을 추가한 것

  • L2 스위치는 연결된 시스템이 늘어날수록 패킷 간 충돌 때문에 매우 낮은 속도로 동작하는 더미 허브의 문제점 해결

[그림 5] L2 스위치


(4) 스위칭

  • 스위치는 데이터 링크 계층의 통신 담당인 대표적 장비로, 스위치가 동작하는 방식을 스위칭이라 함

  • 스위칭은 가장 기본 네트워크 단위인 LAN의 통신 방법

 

4-1. 스위칭 방식

  • 패킷 전송 방식에 따라 컷스루 방식, 저장 후 전송 방식, 인텔리전트 스위칭 방식으로 나뉨

  • 제공하는 경로의 대역폭에 따라 반이중 방식과 전이중 방식으로 구분 가능

 

4-1-1. 컷스루 방식

  • 수신한 프래임의 목적지 주소를 확인하고 목적지 주소의 포트로 프레임을 즉시 전송하여 지연 시간 최소화

  • 수신한 패킷에 오류가 발생할 때, 목적지 장치에서 해당 패킷을 폐기

 

4-1-2. 저장 후  방식

  • 완전한 프레임을 수신하여 버퍼에 보관했다가 전체 프레임을 수신하면 CRC 등 오류 확인하여 정상 프레임을 목적지 포트로 전송

  • 패킷 길이에 비례해 전송 지연이 발생하지만 소프트웨어 중심인 브리지나 라우터보다 훨씬 신속

  • 속도가 서로 다른 포트를 연결한 경우에는 반드시 사용해야 함

  • 최근에는 컷스루 방식과 저장 후 방식을 동시에 지원하는 것이 일반적

 

4-1-3. 인텔리전트 스위칭 방식

  • 보통 컷스루 모드로 작동하다가 오류 발생 시 저장 후 전송 모드로 자동 전환하여 오류 프레임 전송을 중지

  • 오류율이 0이 되면 자동으로 다시 컷스루 방식 전환

 

4-1-4. 반이중 방식

  • 양방향 통신 기능을 제공하지만 한 번에 하나의 동작(수신 or 송신)만을 할 수 있어, 양방향으로 동시에 데이터를 전송할 수 없음

  • 해당 방식은 한 사람이 말하고 난 다음에 다른 사람이 말하기를 기다렸다가 다시 자신이 말을 하는 워키토키 통신 방식을 생각하면 쉽게 이해할 수 있음

 

4-1-5. 전이중 방식

  • 송신 포트와 수신 포트를 분리해 반이중 방식보다 성능이 두 배로 뛰어나며, 충돌이 없어 전송 거리의 제한을 연장할 수 있음

  • 공유 방식의 이더넷은 반이중 방식만을 지원하는 반면, 기술적으로는 스위치에서만 전이중 방식을 지원할 수 있음

  • 전이중 방식 흐름 제어에 대한 표준은 아직 없으며, 업체마다 옵션으로 제공하거나 아예 지원하지 않는 장비도 있음

  • 흐름 제어가 제공되지 않으면 과부화된 네트워크에서 패킷 손실을 유발할 수 있음

 

 

4-2. 스위치 테이블

  • 데이터 링크 계층에서 스위치는 시스템 간 원활한 통신을 위해 주소 테이블 생성과 관리하는 역할을 함

 

만일 스위치에 서버가 연결되어 있다면, 스위치 메모리에는 다음과 같은 정보가 기록되어 있을 것이다.

1번 포트  
2번 포트 서버의 MAC 주소
3번 포트  
4번 포트  

여기에 클라이언트의 랜 케이블을 스위치의 3번 포트에 꽂으면, 스위치의 메모리 정보가 다음과 같이 바뀐다.

1번 포트  
2번 포트 서버의 MAC 주소
3번 포트 클라이언트의 MAC 주소
4번 포트  

스위치의 메모리에 포트별로 MAC 주소가 매칭된 테이블이 존재하고 이것이 갱신된다는 사실은 아주 중요하다.



많은 사람이 스위치의 메모리 테이블에 3계층 정보인 IP 주소와 MAC 주소가 다음과 같이 매칭되어 있다고 착각한다.

1번 포트  
192.168.0.100 서버의 MAC 주소
192.168.0.2 클라이언트의 MAC 주소
4번 포트  

2계층 장비인 스위치는 위와 같이 IP 주소를 기억하지 않는다.


# Reference

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 응용 계층  (1) 2020.03.19
[Network] 전송 계층  (0) 2020.03.19
[Network] 네트워크 계층  (0) 2020.03.19
[Network] 물리 계층 (Physical Layer)  (0) 2020.03.18
[Network] 네트워크 보안 기초  (0) 2020.03.11

[Network] 물리 계층 (Physical Layer)

 

네트워크 보안


(1) 물리 계층 (1계층 / Physical Layer)

 

1-1. 물리 계층에 대한 이해

  • 시스템 간의 연결선

  • 흔히 랜 케이블을 말하지만, 꼭 랜 케이블만 의미하지는 않음

  • 집에서 인터넷 할 때 쓰는 랜 케이블이 될 수도 있고, 전화선이나 동축 케이블 ,광 케이블이 될 수도 있음

  • 무선 랜을 물리 계층이라고 하기에 모호하지만, 무선 랜에서 전자 파장을 전달할 수 있는 공간 자체는 될 수 있음

 

1-2. CAT 별 특성

카테고리 최대 속도 용도
CAT 1 1Mbps 미만

아날로그 음성, 일반 전화 서비스

ISDN 기본율 접속 (Basic Rate Interface) / Doorbell wiring

CAT 2 4Mbps IBM의 토큰 링 네트워크에 주로 사용
CAT 3 16Mbps 10BASE-T 이더넷의 데이터 및 음성
CAT 4 20Mbps 16Mbps 토큰 링에서 사용 (많이 사용되지는 않음)
CAT 5  100Mbps

옥내 수평 및 간선 배선망 (100MHz)

4/16 Mbps 토큰 링 (IEEE 802.5)

10/100 BASE-T (IEEE 802.3)

155Mbps ATM

CAT 6 250Mbps

옥내 수평 및 간선 배선망 (250MHz)

4/16 Mbps 토큰 링 (IEEE 802.5)

10/100/1000 BASE-T (IEEE 802.3)

155/622 Mbps ATM

기가비트 이더넷

흔히 랜 케이블은 CAT 5의 10/100 BASE-T (IEEE 802.3) 또는 CAT 6의 10/100/1000 BASE-T (IEEE-802.3) 선을 사용하고 전화선은 CAT-1을 사용

 

위 표에서 CAT 1부터 6까지 속도를 기준으로 나열한 것으로 보이지만, 실제는 CAT 1에서 6으로 갈수록 케이블이 굵고, 구리선의 가닥 수도 많음

 

 

1-3. 케이블 구분

구분 내용
UTP (Unshield Twisted Pair)

두 선 간의 전자기 유도를 줄이기 위해 절연 구리선이 서로 꼬여 있는 것

제품 전선과 피복만으로 구성

FTP (Foil Screened Twisted Pair)

알루미늄 은박이 4가닥 선을 감싸고 있는 것

UTP보다 절연 기능이 탁월해 공장 배선용으로 많이 사용

STP (Shield Twisted Pair)

연선으로 된 케이블 겉에 외부 피복, 또는 차폐재가 추가(쉴드 처리)된 것

차패재가 접지 역할을 하여 외부 노이즈 차단, 전기적 신호 간섭 줄이는 데 탁월

 

커넥터에도 여러 표준이 있으며, 전화선 연결 커넥터는 RJ(Registered Jack)-11이라 부르고, 랜 케이블 연결 커넥터는 RJ-45라고 부름

 

우리가 보통 사용하는 랜 케이블은 UTP 케이블 중 CAT 5 또는 CAT 6에 해당하는 10/100/1000 BASE-T (IEEE 802.3) 선과 RJ-45 커넥터

 

[그림 1] 전화선 연결 커넥터 (RJ-11)

 

[그림 2] RJ-45


(2) 물리 계층 관련 장비

  • 물리 계층과 관련된 네트워크 장비는 아직도 WAN에서 다양한 형태로 쓰이는 리피터와 지금은 찾아보기 힘든 허브가 있음

 

2-1. 리피터

[그림 3] 리피터

  • 네트워크를 연장하기 위한 장비

  • 다른 장비는 거리가 일정 이상이 되면 신호 세기가 약해져 0과 1의 디지털 신호 분석이 어려움

  • 위 문제점 해결을 위해 리피터를 사용하여 불분명해진 신호 세기를 다시 증가시키는 역할을 함

 

2-2. 허브

[그림 4] 더미 허브의 구조

 

  • 요즘 쓰이는 스위치의 예전 형태로, 최근의 스위치를 스위칭 허브라고 부르고, 이전 허브를 더미 허브라 부름

  • 형태나 사용 방법이 스위치와 같음

  • 패킷 전송 시에 목적지에만 데이터를 전송하는 스위치와 달리, 허브는 한 곳에서 데이터를 보낼 때 모든 곳에 똑같이 복사해서 보냄


# Reference

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 응용 계층  (1) 2020.03.19
[Network] 전송 계층  (0) 2020.03.19
[Network] 네트워크 계층  (0) 2020.03.19
[Network] 데이터 링크 계층 (DataLink Layer)  (0) 2020.03.18
[Network] 네트워크 보안 기초  (0) 2020.03.11

[Network] 네트워크 보안 기초

 

네트워크 보안


(1) 네트워크 보안 요소

  • 흔히 정보 보안의 3요소로 기밀성(Confidentiality), 무결성(Integrity),가용성(Availability)을 말함

  • 네트워크 보안 요소는 정보보안 3가지 요소에 서버 인증과 클라이언트 인증을 더함

  • 총 5가지의 요소를 지님

 

1-1. 기밀성

  • 허락되지 않은 사용자 또는 객체가 정보 내용을 알 수 없도록 하는 것 (비밀 보장)

  • 원치 않는 정보 공개를 막는다는 의미 > 프라이버시 보호와도 밀접한 관계

  • 네트워크 보안 측면에서는 '시스템 간 안전한 데이터 전송'과 관련

  • '시스템 간' 의미는 서버-클라이언트, 서버-서버, 클라이언트-클라이언트의 통신을 말함

  • 네트워크 기밀성 관련 공격 > 스니핑(패킷을 무작위로 읽어들이는 공격)

  • 기밀성 보안 대책 > 통신의 암호화 

1-2. 무결성

  • 허락되지 않은 사용자 또는 객체가 정보를 함부로 수정할 수 없도록 하는 것

  • 수신자가 정보 수신하거나, 보관 정보를 꺼내 봤을 때 그 정보가 중간에 수정/첨삭되지 않음을 확인

  • 네트워크 무결성 > '클라이언트와 서버 간의 데이터가 변조되지 않고 전송되는가'

  • 네트워크 무결성 관련 공격 > 세션 하이재킹(중간에 유효한 다른 연결을 뺏음), MITM(두 시스템 간의 데이터를 중간에 변조)

  • 무결성 보안 대책 > 통신의 암호화(PKI가 밀접 관련)

1-3. 가용성

  • 허락된 사용자 또는 객체가 정보에 접근할 때 방해받지 않도록 하는 것

  • '언제든 필요할 때 클라이언트와 서버 간에 데이터를 전송할 수 있는가'

  • 네트워크 가용성 관련 공격 > DOS(서비스 거부 공격)

  • 서비스 거부 공격 대응 > 매우 어려운 문제로, 수많은 요소 고려 필요

1-4. 서버 인증

  • '클라이언트가 올바른 서버로 접속하는가'

  • 잘못된 서버로 접근하여 잘못된 정보 인식 / 잘못된 정보 입력 > 문제점

  • 서버 인증 관련 공격 > DNS 스푸핑, 서버 파밍

  • 예) 윈도우 운영체제를 정품 대신 해킹 프로그램으로 인증하여 사용 > 운영체제가 인증을 위한 요청 시 해당 프로그램을 인증 서버로 생각하고 운영체제를 인증

  • 서버 인증 > 보안 측면에서 막기에 매우 어려운 이슈

  • SSL(HTTPS)을 통해 서버 인증을 하지만, 현재는 경고를 보여주고 사용자에게 선택하게 하는 것이 일반적

1-5. 클라이언트 인증

  • '올바른 클라이언트가 접속을 시도하는가'

  • 클라이언트 인증 관련 공격 > 스푸핑, 세션 하이재킹, 피싱 등

  • 웹 사이트에 접근할 때 항상 사용하는 아이디/패스워드 > 대표적 클라이언트 인증

  • 클라이언트 인증 보안 도구 > 아주 간단한 것부터 보안성이 매우 높은 방법까지 다양하게 존재


(2) 프로토콜 정의

  • '컴퓨터와 컴퓨터 사이에서 메시지를 전달하는 과정'

  • 컴퓨터가 메시지 전달 > 제대로 도착했는지 확인 / 제대로 도착하지 않으면 재전송하는 일련의 방법

 

2-1. 프로토콜 3가지 요소

  • 구문 : 데이터의 구조나 포맷을 의미 > 전송되는 데이터의 어느 부분이 어떤 정보를 포함하는지와 관련

  • 의미 : 전송되는 데이터의 각 부분이 무엇을 뜻하는지 알 수 있게 미리 정해둔 규칙 > 오류 제어, 동기 제어, 흐름 제어를 포함

  • 순서 : 네트워크 통신에서 두 가지 역할 > '어떤 데이터를 보낼 것인가?' , '얼마나 빠르게 데이터를 보낼 것인가?'


(3) 프로토콜 기능

3-1. 주소 설정

  • 서로 다른 시스템의 두 개체가 통신을 하는 경우 필요

  • 한 개체가 상대 개체에게 데이터 전송 시 상대 주소를 알아야 함 > 프로토콜에는 각 전송 계층에 맞게 이를 지정하는 기능 있음

  • 정상이 아닌 변조된 주소 값을 가진 패킷을 보내면 네트워크나 시스템에 혼란을 줌

3-2. 순서 제어

  • 데이터가 전송될 때 일정 크기 데이터 블록을 프로토콜 데이터 단위(PDU)라고 함

  • 프로토콜 데이터 단위 전송 시에 보내는 순서를 명시하는 기능 > 연결 지향형에만 사용

  • 순서 지정 이유 > 전달, 흐름 제어, 오류 제어 등을 위해서

  • 순서가 정해진 각 PDU를 상대 개체에 보냄 > 수신측에서 순서에 맞게 데이터 재구성 / 잘못된 PDU는 재전송 요구

3-3. 데이터 대열의 단편화 및 재조합

  • 대용량 파일을 한 번에 전달하는 것은 불가능 > 단편화 및 재조합 필요

  • 대용량 파일 전송 시에 전송 효율이 높고 작은 단위로 나누어 전송 > 전송받은 시스템에서 이를 재조합 

3-4. 캡슐화

  • 프로토콜 데이터 단위(PDU)는 SDU(전송 데이터), PCI(제어 정보)로 구성

  • PCI에는 송수신자 주소, 오류 검출 코드, 프로토콜 제어 정보 등이 있음

  • 데이터에 제어 정보를 덧붙이는 것을 캡슐화라고 함

  • 어떤 네트워크 통과를 위해 데이터 전송 시에 다른 무언가로 감싸서 보냄 > 네트워크를 통과하면 감싼 부분을 다시 벗겨내어 전송하는 기능

3-5. 연결 제어

  • 두 시스템끼리 서로 데이터 교환 시에 연결을 설정(미설정)하는 것 > 연결(비연결) 지향형 데이터 전송 

  • 연결 지향형 데이터 전송은 연결 설정, 데이터 전송, 연결 해제 총 3단계로 구성 > 데이터 전송 중 연결 지속적 관리

  • 연결 지향형 데이터 전송 > TCP 이용한 연결

  • 연결 제어하는 패킷 이용 > 네트워크 연결 임의로 끊기 / 세션 뺏기 가능

  • 비연결 지향형 데이터 전송 > UDP 이용한 연결 > 전송되는 데이터를 데이터그램이라 함 

3-6. 흐름 제어

  • 송신측 개체로부터 오는 데이터 양이나 속도 조절 기능 > 송신측 / 수신측의 속도 차이 등으로 인한 정보 유실 방지

  • 두 가지 방법(정지-대기 흐름 제어 기법, 슬라이딩 윈도우 기법)이 있음

  • 정지-대기 흐름 제어 기법 > 패킷 하나를 보낸 후 해당 패킷의 응답이 와야 다음 패킷을 보내는 방식

  • 슬라이싱 윈도우 기법 > 가용 데이터 분량 패킷을 한꺼번에 보낸 후 응답 패킷을 받으면 다시 그만큼의 데이터를 한꺼번에 보내는 방식(정지-대기 흐름 제어보다 훨씬 효율적)

3-7. 오류 제어

  • 두 개체에서 데이터 교환 시 SDU나 PCI가 잘못되었을 경우, 이를 발견하는 기법

  • 오류는 패리티 비트나 순환 잉여도 검사를 통해 발견 가능

  • 순서를 검사하거나 특정 시간 안에 받지 못하면 재전송을 요구하는 방식

3-8. 동기화

  • 두 개체 간에 데이터를 전송할 때 각 개체는 특정 타이머 값이나 윈도우 크기 등을 기억해야 함

  • 두 개체가 동시에 정의된 인자 값을 공유하는 것을 동기화라 함

  • 두 개체가 정보를 송수신할 때 서로 호흡을 맞추는 것이라 할 수 있음

3-9. 다중화

  • 통신 선로 하나에서 여러 시스템을 동시에 통신할 수 있는 기법

3-10. 전송 서비스

  • 우선 순위 결정, 서비스 등급과 보안 요구 등을 제어하는 서비스


(4) OSI 7계층

 

[그림 1] OSI 7계층

 

1계층 (물리 계층)

  • 시스템 간의 연결선 > 실제 장치를 연결하는 데 필요한 전기적, 물리적 세부 사항 정의

  • 예 > 핀의 배치나 전압, 전선의 명세

  • 물리 계층 장치 > 허브, 리피터

2계층 (데이터 링크 계층)

  • 점대점 사이의 신뢰성 있는 전송 보장 > CRC 기반 오류 제어, 흐름 제어 필요

  • 네트워크 구성 개체들 사이에 데이터 전달

  • 물리 계층에서 발생할 수 있는 오류 찾기/수정에 필요한 기능적, 절차적 수단 제공

  • 주소 값은 물리적으로 할당 받음 > 네트워크 카드가 만들어질 때부터 맥 주소가 정해져 있음

  • 이더넷, HDLC, ADCCP, 패킷 스위칭 네트워크, LLC, ALOHA 등

  • 데이터 링크 계층 장치 > 브리지, 스위치(물리적 네트워크 선이 직접 연결된 곳에만 연결 가능)

3계층 (네트워크 계층)

  • 여러 노드를 거칠 때마다 경로 찾아주는 역할

  • 다양한 길이 데이터를 네트워크를 통해 전달 > 전송 계층이 요구하는 서비스 품질 제공을 위해 기능적, 절차적 수단 제공

  • 라우팅, 흐름 제어, 단편화, 오류 제어  수행

  • 네트워크 계층 장치 > 라우터, L3 스위치 

4계층 (전송 계층)

  • 양 끝단 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있게 함 > 상위 계층이 데이터 전달의 유효성/효율성 고려 X

  • 시퀀스 넘버 기반의 오류 제어 방식 사용

  • 특정 연결의 유효성 제어

  • 동작 프로토콜 중 TCP는 연결 지향 프로토콜로, 패킷 전송이 유효한지 확인하고 전송에 실패한 패킷은 재전송

5계층 (세션 계층)

  • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법 제공

  • 동시 송수신 방식, 반이중 방식, 전이중 방식 통신과 함께 체크 포인팅/유휴/종료/재시작 과정 수행

  • TCP/IP 세션을 만들고 없애는 책임을 짐 

6계층 (표현 계층)

  • 다른 기종 여러 시스템들이 서로 다른 데이터 표현 방식을 사용하는 경우 > 하나의 통일된 구문 형식으로 변환시킴

  • 시스템에서 사용되는 코드 간의 번역을 담당 (예 : EBCDIC 인코딩 파일 > ASCII 인코딩 파일로 바꿈)

  • 코드 간의 번역 방식을 ASN.1이라 함 > 응용 계층 간의 서로 다른 표현을 상호 인식하기 위한 정보 정의

  • 데이터 압축, 암호화 기능 수행

  • 데이터 암호화 방식, 압축 방식 설명을 헤더 정보에 붙임

7계층 (응용 계층)

  • 사용자나 응용 프로그램 사이에 데이터 교환을 가능하게 하는 계층

  • HTTP, FTP, 터미널 서비스, 메일 프로그램, 디렉토리 서비스 등 제공


(5) TCP/IP 4계층

 

[그림 2] OSI 7계층과 TCP/IP 4계층

 

5-1. OSI 7계층과 비교

  • 물리 계층, 데이터 링크 계층 > 네트워크 엑세스(인터페이스) 계층

  • 네트워크 계층 > 인터넷 계층

  • 세션 계층, 표현 계층, 응용 계층 > 응용 계층


# References

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 응용 계층  (1) 2020.03.19
[Network] 전송 계층  (0) 2020.03.19
[Network] 네트워크 계층  (0) 2020.03.19
[Network] 데이터 링크 계층 (DataLink Layer)  (0) 2020.03.18
[Network] 물리 계층 (Physical Layer)  (0) 2020.03.18

+ Recent posts