'한빛아카데미 - 네트워크 해킹과 보안: 정보 보안 개론과 실습' 교재에 관한 내용입니다.


프로토콜(Protocol): 컴퓨터와 컴퓨터 사이에서 메시지를 전달하는 과정

 

프로토콜의 3가지 요소

• 구문(Syntax): 데이터의 구조나 포맷을 의미

• 의미(Semantics): 전송되는 데이터의 각 부분이 무엇을 뜻하는지 를 알 수 있게 미리 정해 둔 규칙(데이터 자체 뿐만 아니라 오류 제어, 동기 제어, 흐름 제어를 포함)

• 순서(Timing): 어떤 데이터를 보낼 것인지와 얼마나 빠르게 데이 터를 보낼 것인지 정의

 

프로토콜의 기능 

• 주소 설정(Addressing): 서로 다른 시스템의 두 개체가 통신을 하는 경우 필요

• 순서 제어(Sequence Control): 프로토콜 데이터 단위를 전송할 때 보내는 순서를 명시하는 기능(연결 지향형(Connection-Oriented)에만 사용) 

• 데이터 분할과 재조합(Fragmentation & Reassembly): 대용량 파일을 전송할 때 전송 효율이 높은 작은 단위로 나누어 전송한 뒤 전송 받은 시스템에서 이를 재조합해야 함

• 캡슐화(Encapsulation): 데이터에 제어 정보를 덧붙이는 것(헤더)

• 연결제어(Connection Control): 연결 설정, 데이터 전송, 연결 해제에 대한 통제 수행

• 흐름 제어(Flow Control): 송신 측에서 오는 데이터의 양이나 속도를 조절하는 기능, 송신자와 수신자의 속도 차이에 대한 대응

• 오류 제어(Error Control): 두 개체 사이에서 데이터를 교환할 때 데이터에 오류나 변경이 있을 경우를 발견하는 기능

• 동기화(Synchronization): 두 개체 데이터를 교환할 때 서로 동시에 똑같이 정의된 인자 값 을 공유하는 것 정보를 송수신 할 때에 호흡을 맞추는 기능

• 다중화(Multiplexing): 통신 선로 하나에서 여러 데이터나 시스템을 동시에 통신할 수 있는 기법

• 전송 서비스(Quality of Service, QoS): 우선 순위 결정, 서비스 등급과 보안 요구 등을 제어하는 서비스

 

OSI 7 계층

사용자 기반 계층 응용 계층(Application Layer) 사용자 인터페이스 제공. 요구에 따른 정보처리
표현 계층(Presentation Layer) 전달되는 정보를 데이터로 표현, 암호화, 압축
세션 계층(Session Layer) 통신 시작, 유지/관리, 종료
트랜스포트 계층 전송 계층(Transport Layer) 종단간(응용 프로세스 간) 신뢰성 있는 메시지 전송(에러제어, 흐름제어, 혼잡제어)
네트워크 기반 계층 네트워크 계층(Network Layer) Datagram을 발신지(노드)에서 목적지(노드)까지 전달(라우팅)
데이터링크 계층(DataLink Layer) 노드간(물리적으로 연결된) 신뢰성 있는 전송 제공(에러제어, 흐름제어, 혼잡제어)
물리 계층(Physical Layer) 물리매체로 비트를 신호로 변경하여 전송(부호화, 기계적, 전기적 특성 제공)

 

OSI 7 계층과 TCP/IP 

OSI 7계층 TCP/IP
응용 계층(Application Layer) 응용 계층(Application Layer)
표현 계층(Presentation Layer)
세션 계층(Session Layer)
전송 계층(Transport Layer) 전송 계층(Transport Layer)
네트워크 계층(Network Layer) 인터넷 계층(Internet Layer)
데이터링크 계층(DataLink Layer) 네트워크 접근 계층 (Network Access Layer)
물리 계층(Physical Layer)
프로토콜이 아니라 시스템 아키텍처를 이해하고 설계하는 데 사용되는 참조 모델 인터넷을 포함한 모든 네트워크에 사용되는 표준 프로토콜

 

 

물리 계층 장비 리피터(Repeater): 네트워크를 연장하기 위한 장비
허브(Hub): 모든 곳에 똑같이 복사해서 전송
데이터 링크(MAC) 계층 장비 MAC 주소: 총 12개의 16진수로 구성
이더넷: IEEE 802.3이 표준, 이더넷 패킷의 최소 길이는 64 Bytes, 최대 길이는 1,518 Bytes
브리지(Bridge): 랜과 랜을 연결하는 초기의 네트워크 장치, 프레임이 들어오면 목적지 MAC주소를 확인하여 들어온 인터페이스에 있을 경우 다른 인터페이스로 가는 패킷을 막고, 다른 인터페이스에 있을 경우 전달
스위치(Switch): 컷스루(Cut-Through) 방식, 저장 후 전송 방식(Store & Forward), 인텔리전트 스위칭 방식(Intelligent Switching)
반이중(Half-Duplex) 방식: 양방향 통신 기능을 제공하지만 한 번에 하나의 동작만 가능
전이숭 방식(Full-Duplex) 방식: 송신 포트와 수신 포트를 분리해 반이중 방식보다 성능이 두 배로 뛰어나며, 충돌이 없어서 전송 거리의 제한을 연장할 수 있음

 

IP 패킷의 구조
VER (4 bits) HLEN (4 bits) Service type (8 bits) Total length (16 bits)
Identification (16 bits) Flags (3 bit) Fragmentation offset (13 bits)
Time-to-live (8 bits) Protocol (8 bits) Header checksum (16 bits)
Source IP address (32 bits)
Destination IP address (32 bits)
Options + padding (0 to 40 bytes)

 

• VER: IP의 버전 정보, 0x4일 경우 IPv4를 의미

• HLEN: IP헤더의 길이로 이 필드 값에 4를 곱한 값이 실제 헤더의 바이트 길이

• Service type: 데이터그램을 어떻게 처리할지를 정의하는 서비스의 유형(최소 지연(Delay), 최대 처리율(MTU), 최대 신뢰성(Reliability), 최소 비용 설정(Cost)), 기본 값은 0

• Total length: 헤더를 포함한 데이터그램의 전체 길이를 의미

• Identification: 데이터그램이 단편화(Fragmentation)될 때 모든 단편에 이 값이 복사되고, 단편화 된 데이터그램이 생성될 때마다 1씩 증가

• Flag: 단편화 여부와 단편화된 조각이 첫 번째 조각인지, 중간 혹은 마지막 조각인지를 알려준다.

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

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

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

• TTL(Time-to-live): 라우팅 과정에서 라우터를 몇 개 이상 통과하면 해당 패킷을 버릴지를 결정

• Protocol: IP계층의 서비스를 사용하는 상위 계층 프로토콜을 정의(1: ICMP, 2: IGMP, 6: TCP. 17: UDP)

• Header checksum: 패킷 전달 중 발생할 수 있는 오류 검사를 위해 사용하는 것으로, 송신측에서 체크섬을 계산하여 전송

• Source IP address: 송신측 IP 주소

• Destination IP address: 수신측 IP 주소

• Options + padding: 해당 패킷에 대한 옵션 사항, 옵션 내용이 입력될 경우 그 값이 32배수로 데이터가 마무리되도록 0으로 채운다.

 

네트워크 계층 프로토콜

• ARP(Address Resolution Protocol): 데이터를 전달하려는 IP 주소와 통신에 필요한 물리적인 주소(MAC) 를 알아내는 프로토콜, 선택된 매체에 브로드캐스트(Broadcast)를 통해 특정 IP 주소를 사용 하는 호스트가 응답을 하도록 요구하는 방식을 사용

 

• RARP(Reverse Address Resolution Protocol): 디스크가 없는 호스트가 자신의 IP 주소를 서버로부터 확인하는 프로토콜

 

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

- ICMP Echo Request 메시지: 송신측 전송 패킷이 목적지 노드나 라우터에 도착했는지를 확인하는 데 사용

- ICMP Destination Unreachable 메시지: 라우터가 송신측 패킷을 목적지에 보내지 못할 경우 보내는 메시지, 목적지까지 전송되지 못한 이유를 나타내는 정보가 포함

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

- ICMP Time Exceeded 메시지: 패킷이 네트워크 사이에서 무한 루프로 돌지 않게 패킷을 처리할 때 마다 TTL(Time to Live)을 감소시키다가 값이 ‘0’이 되면 보내는 메시지

- ICMP Source Quench 메시지: IP 라우터의 WAN 쪽에 집중이 발생하여 송신 불능 상태가 되면 보내 는 메시지, 송신측은 이 메시지의 정보를 해석하여 송신 패킷의 양을 제어

 

• IGMP(Internet Group Management Protocol): 멀티캐스트에 관여하는 프로토콜로 멀티캐스트 그룹을 관리하는 역할

유니캐스트(Unicast): 한 호스트에서 다른 호스트로 전송하는 것

브로드캐스트(Broadcast): 호스트에서 IP 네트워크에 있는 전체 호스트로 데이터를 전송하는 것

멀티캐스트(Multicast): 송신하는 하나의 호스트에 특정한 호스트를 묶어서 전송하는 것

 

네트워크 계층 장비

라우터

- 네트워크의 대표적인 장비로, 게이트웨이(Gateway)라고도 함

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

- 논리적으로 분리된 둘 이상의 네트워크를 연결

- 로컬 네트워크에서 브로드캐스트를 차단하여 네트워크를 분리

- 패킷의 최적 경로를 찾기 위한 라우팅 테이블 구성

- 패킷을 목적지까지 가장 빠르게 보내는 길잡이 역할 담당

 

• 정적 라우팅

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

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

- 보안이 중요한 경우 선호

• 정적 라우팅의 특징

- 초기에 관리자가 다양한 라우팅 정보를 분석한 최적의 경로 설정

- 라우팅 알고리즘을 통한 경로 설정이 이루어지지 않아 부하 감소

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

- 네트워크 환경 변화 시 관리자가 경로를 재산출하여 각 라우터에 제 공해야 함

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

 

• 동적 라우팅

- 라우터가 네트워크 연결 상태를 스스로 파악하여 최적의 경로를 선 택해 전송

- 네트워크 연결 형태가 변경되어도 자동으로 문제를 해결

• 동적 라우팅의 특징

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

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

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

- 네트워크 환경 변화 시 라우터의 처리 부하 증가로 지연이 발생

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

 

전송 계층 프로토콜

 TCP(Transmission Control Protocol)

- 연결 지향형 프로토콜

- IP와 함께 통신을 하는 데 반드시 필요한 가장 기본적인 프로토콜

• TCP의 특징 높은 신뢰성

- 가상 회선 연결 방식

- 연결의 설정과 해제

- 데이터 체크섬(Checksum)

- 시간 초과와 재전송

- 데이터 흐름 제어

 

TCP 패킷의 구조

Source port address (16 bits) Destination port address  (16 bits)
Sequence number  (32 bits)
Acknowledgment number  (32 bits)
HLEN  (4 bits) Reserved  (6 bits) URG ACK PSH PST SYN FIN Window size  (16 bits)
Checksum  (16 bits) Urgent pointer  (16 bits)
Options and padding  (up to 40 bytes)

 

 Source port address: 패킷의 출발지 포트 번호

 Destination port address: 패킷의 목적지 포트 번호

 Sequence number: 패킷의 순서 값(순서번호)

 Acknowledgment number: 통신 상대의 패킷 순서 값(확인응답번호)

 HLEN: TCP헤더를 4바이트 단위의 개수로 나타낸 것

 Reserved: 나중에 필요할 때 사용하려고 남겨둔 공간

 Window size: 상대방이 반드시 유지해야 하는 바이트 단위의 창 크기

 Checksum: 데이터 오류 검출을 위한 값

 Urgent pointer: 긴급 플래그 값이 설정되었을 때만 유효하며 세그먼트가 긴급 데이터를 포함하고 있을 때 사용 됨 세그먼트의 데이터 부분에서 마지막 긴급 바이트의 번호를 구하기 위하여 순서 번호에 이 번호가 더해짐

 Options and padding: 옵션의 종류와 길이, 데이터를 저장 / 옵션이 32bits가 안되면 나머지 비트를 0으로 채움

 

 

연결 설정 과정(Three-Way Handshaking)

연결 해제 과정

 

• UDP(User Datagram Protocol)

- 비연결 지향형 프로토콜

- 상대방이 보낸 응답을 확인하지 않아 네트워크에 부하를 주지 않음.

- 데이터 자체의 신뢰성이 없어 수신한 데이터의 무결성을 보장받지 못함

• UDP의 특징

- 비연결 지향형

- 네트워크 부하 감소

- 비신뢰성

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

 

UDP 패킷의 구조

Source port number (16 bits) Destination port number (16 bits)
Total length (16 bits) Checksum (16 bits)

 

 Source port number: 패킷의 출발지 포트 번호

 Destination port number: 패킷의 목적지 포트 번호

 Total length: UDP 헤더와 데이터 필드를 포함한 전체 패킷의 길이

 Checksum: 데이터 오류 검출을 위한 값

 

응용 계층 프로토콜

 FTP(File Transfer Protocol, 20,21): 파일 전송을 위한 가장 기본적인 프로토콜(클라이언트와 서버가 대화형으로 통신 가능)

 텔넷(Telnet, 23): 사용자가 원격에 있는 서버에 로그인하도록 TCP 연결을 설정

 SMTP(Simple Mail Transfer Protocol, 25): 메일 서비스

 DNS(Domain Name System, 53): 도메인 이름 주소를 통해 IP 주소를 확인할 수 있는 프로토콜

 TFTP(Trivial File Transfer Protocol, 69): 파일을 전송하는 프로토콜(UDP 패킷 사용)

 HTTP(HyperText Transfer Protocol, 80): 인터넷을 위해 사용하는 가장 기본적인 프로토콜

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

 IMAP(143): : POP3와 기본적으로 같으나, 메일을 읽은 후 메일이 서버 에 남음

 SNMP(Simple Network Management Protocol, 161): 네트워크 관리와 모니터링을 위한 프로토콜

+ Recent posts