네트워크는 분야에 따라 여러가지로 정의할 수 있다. 하지만 그 정의들의 공통점은 어떠한 일이나 문제를 처리하는 데에 긴밀하게 연결되어 조직적이고 효율적으로 움직일 수 있도록 만든 체계라는것이다.
그 중에서도 컴퓨터 네트워크는 분산되어 있는 노드(컴퓨터, 서버, 네트워크 장비 등)들이 서로 자원(데이터)을 공유할 수 있도록 하는 통신망을 의미한다.
PAN(Personal Area Network)
PAN은 개인의 작업공간을 중심으로 이루어진 컴퓨터 네트워크를 의미한다. 연결 범위가 매우 짧은게 특징이고, Bluetooth
등이 있다.
LAN(Local Area Network)
LAN은 집이나 학교, 회사 등 가까운 지역을 묶는 컴퓨터 네트워크이다. Ethernet
, WI-FI
등이 있다.
MAN(Metropolitan Area Network)
MAN은 LAN과 WAN의 중간 크기로, 큰 도시나 캠퍼스에 퍼져있는 컴퓨터 네트워크이다. 케이블 TV 네트워크를 통한 인터넷 서비스 등이 이에 해당한다.
WAN(Wide Area Network)
매우 넓은 거리와 장소를 넘나드는 컴퓨터 네트워크이다. 인터넷을 WAN으로 간주할 수 있다.
1계층은 물리 계층이라는 말 그대로 케이블을 이용한 시스템 간의 물리적 연결 계층이다. 1계층에서는 데이터를 Bit
단위로 전송한다(01010001⋯). 1계층의 장비는 대표적으로 리피터와 허브가 있는데 리피터는 신호를 증폭시키는 장비이고 허브는 통신량을 분배해주는 장비이다. 리피터는 요즘 거의 찾기 힘든 반면 허브는 아직도 종종 쓰는 곳이 남아있다고 한다.
2계층은 MAC주소를 이용하는 계층이다. MAC주소는 NIC(Network Interface Card)
에 부여되어 있는 물리적 주소를 의미한다. MAC주소는 16진수 12자리로 구성되어 있는데, 앞 6자리는 제조업체 식별코드이고 뒤 6자리는 업체 랜카드 정보이다. 실제로 WireShark
에서 패킷 정보를 보면 Ethernet Frame Header
에 MAC주소 정보가 있는데 앞 6자리를 WireShark
자체적으로 해석하여 제조 업체 정보를 나타내준다.
MAC주소는 기본적으로 물리적주소이기 때문에 물리적 변조가 불가능하지만 논리적 변조는 가능하다. 네트워크 공격 파트에서 다룰 ARP Spoofing
이 논리적 변조에 해당한다. MAC주소와 IP주소는 각각 사람의 주민등록번호와 이름이라고 생각하면 된다.
Ethernet
ARP
ARP
는 Address Resolution Protocol의 약어로, 네트워크 상에서 IP주소와 MAC주소를 대응시키는 프로토콜이다. Ethernet
의 경우, 아래와 같이 구성된다.위의 Ethernet Frame Header
+ ARP
구조의 데이터는 ARP Request
를 보낼 때 Ethernet Frame Header
의 Sender MAC주소에는 ff:ff:ff:ff:ff:ff
를 기입하고 ARP Header
의 Sender MAC주소에는 00:00:00:00:00:00
을 기입한다.
2계층의 대표적인 장비는 스위치가 있는데, 스위치는 데이터 프레임에서 상대방의 MAC주소를 읽은 후 해당 단말에만 데이터 프레임을 전송하는 장비이다.
Internet Protocol
이 동작하는 계층이다. 흔히 말하는 IP주소에서의 IP
가 바로 인터넷 프로토콜이다. 3계층의 주목적은 '어떤 라우터를 찾아갈 것인가?'이다. 2계층을 지나 3계층으로 넘어온 데이터가 외부를 거쳐 알맞은 라우터로 찾아갈 수 있게끔 하는것이 바로 IP
이다.
IP
는 IP주소를 사용하는데, 보통 IP주소는 네트워크 주소와 호스트 주소로 구성되어 있다. 서브넷 마스크를 이용하여 구분하고 Prefix표기법을 이용해 서브넷 마스크를 표기할 수 있다.
서브넷 마스크 표기법에서 24, 혹은 32의 의미는 해당 IP주소를 모두 이진수로 변환했을 때 1의 개수를 의미한다.
Destination IP
에 따라 연결된 인터페이스를 통해 전송할 것을 결정하는 장비이다. 최근에는 라우터가 2계층 장비인 스위치의 역할까지 하기도 한다.Port
주소를 사용하여 패킷을 알맞은 애플리케이션 서비스로 보내는 역할을 하는 계층이다. 대표적으로 TCP
와 UDP
, 두 가지의 프로토콜이 존재한다.
TCP
는 신뢰성 있는 전송으로서, 패킷의 손실을 체크하고 3-way handshake
를 사용하는 연결 지향형 프로토콜이다.
3-way handshake
는TCP
데이터의 신뢰성을 위해 사전에 논리적인 연결을 맺는 과정을 의미한다.SYN
.SYN+ACK
,ACK
의 과정으로 진행되고, 성공적으로 연결이 맺어지면 세션을 형성한다.
TCP Flags
SYN
: 통신 시작 시 세션을 연결하기 위한 플래그ACK
: 송신측에게 패킷을 잘 받았다는 것을 알려주기 위한 플래그FIN
: 세션 연결을 종료한다는 플래그RST
: 비정상적인 연결을 끊기 위해 연결을 재설정하기 위한 플래그PSH
: 버퍼가 채워지기를 기다리지 않고, 받는 즉시 전달하기 위한 플래그, 버퍼링 없이Application Layer
에 바로 전달한다.URG
: 긴급한 데이터의 우선순위를 다른 데이터의 우선순위를 높여 긴급하게 전달하는 플래그
UDP
는 패킷의 손실을 체크하지 않고 단순 오류 검출 기능만을 가지고 있는 프로토콜이다. 이미 전송된 패킷에 대한 확인과 응답 등의 절차가 없기 때문에 처리속도가 빠르다. 보통 동영상 스트리밍등의 서비스에 사용되는 프로토콜이다.
well-known ports
: 1~1024까지 자주 쓰는 Port
주소를 말한다.포트 | TCP | UDP | 설명 | 상태 |
---|---|---|---|---|
0 | UDP | 예약됨; 사용하지 않음 | 공식 | |
1 | TCP | TCPMUX (TCP 포트 서비스 멀티플렉서) | 공식 | |
7 | TCP | UDP | ECHO 프로토콜 | 공식 |
9 | TCP | UDP | DISCARD 프로토콜 | 공식 |
13 | TCP | UDP | DAYTIME 프로토콜 | 공식 |
17 | TCP | QOTD (Quote of the Day) 프로토콜 | 공식 | |
19 | TCP | UDP | CHARGEN (Character Generator) 프로토콜 - 원격 오류 수정 | 공식 |
20 | TCP | 파일 전송 프로토콜 (FTP, File Transfer Protocol) - 데이터 포트 | 공식 | |
21 | TCP | 파일 전송 프로토콜 (FTP, File Transfer Protocol) - 제어 포트 | 공식 | |
22 | TCP | 시큐어 셸 (SSH, Secure SHell) - ssh scp, sftp같은 프로토콜 및 포트 포워딩 | 공식 | |
23 | TCP | 텔넷 프로토콜 (Telnet Protocol) - 암호화되지 않은 텍스트 통신 | 공식 | |
24 | TCP | 개인메일 시스템 | 공식 | |
25 | TCP | SMTP (Simple Mail Transfer Protocol) - 이메일 전송에 사용 | 공식 | |
37 | TCP | UDP | TIME 프로토콜 | 공식 |
49 | UDP | TACACS 프로토콜 | 공식 | |
53 | TCP | UDP | 도메인 네임 시스템 (DNS, Domain Name System) | 공식 |
67 | UDP | BOOTP (부트스트랩 프로토콜) 서버. DHCP로도 사용 | 공식 | |
68 | UDP | BOOTP (부트스트랩 프로토콜) 클라이언트. DHCP로도 사용 | 공식 | |
69 | UDP | 간단한 파일 전송 프로토콜 (TFTP, Trivial File Transfer Protocol) | 공식 | |
70 | TCP | 고퍼 프로토콜 (Gopher Protocol) | 공식 | |
79 | TCP | Finger 프로토콜 | 공식 | |
80 | TCP | UDP | HTTP (HyperText Transfer Protocol) - 웹 페이지 전송 | 공식 |
88 | TCP | 커베로스 - 인증 에이전트 | 공식 | |
109 | TCP | POP2 (Post Office Protocol version 2) - 전자우편 가져오기에 사용 | 공식 | |
110 | TCP | POP3 (Post Office Protocol version 3) - 전자우편 가져오기에 사용 | 공식 | |
111 | TCP | UDP | RPC (Remote Procedure Call) | 공식 |
113 | TCP | ident - 예전 서버 인증 시스템, 현재는 IRC 서버에서 사용자 인증에 사용 | 공식 | |
119 | TCP | NNTP (Network News Transfer Protocol) - 뉴스 그룹 메시지 가져오기에 사용 | 공식 | |
123 | UDP | NTP (Network Time Protocol) - 시간 동기화 | 공식 | |
139 | TCP | 넷바이오스 (NetBIOS, Network Basic Input/Output System) | 공식 | |
143 | TCP | 인터넷 메시지 접속 프로토콜 4 (IMAP4, Internet Message Access Protocol 4) - 이메일 가져오기에 사용 | 공식 | |
161 | UDP | SNMP (Simple Network Management Protocol) - Agent 포트 | 공식 | |
162 | UDP | SNMP - Manager 포트 | 공식 | |
179 | TCP | BGP (Border Gateway Protocol) | 공식 | |
194 | TCP | IRC (Internet Relay Chat) | 공식 | |
220 | TCP | 인터넷 메시지 접속 프로토콜 3 (IMAP3, Internet Message Access Protocol 3) | ||
389 | TCP | LDAP (Lightweight Directory Access Protocol) | 공식 | |
443 | TCP | HTTPS - 보안 소켓 레이어 (SSL, Secure Socket Layer) 위의 HTTP (암호화 전송) | 공식 | |
445 | TCP | Microsoft-DS (액티브 디렉터리, 윈도 공유, Sasser-worm, Agobot, Zobotworm) | 공식 | |
445 | UDP | Microsoft-DS SMB 파일 공유 | 공식 | |
465 | TCP | SSL 위의 SMTP - Cisco 프로토콜과 충돌 | 비공식, 충돌 | |
514 | UDP | syslog 프로토콜 - 시스템 로그 작성 | 공식 | |
515 | TCP | LPD 프로토콜 - 라인 프린터 데몬 서비스 | 공식 | |
540 | TCP | UUCP (Unix-to-Unix Copy Protocol) | 공식 | |
542 | TCP | UDP | 상용 (Commerce Applications) (RFC maintained by: Randy Epstein [repstein at host.net]) | 공식 |
587 | TCP | email message submission (SMTP) (RFC 2476) | 공식 | |
591 | TCP | 파일메이커 6.0 Web Sharing (HTTP Alternate, see port 80) | 공식 | |
631 | TCP | 인터넷 프린팅 프로토콜 | 공식 | |
636 | TCP | SSL 위의 LDAP (암호화된 전송) | 공식 | |
666 | TCP | id 소프트웨어의 둠 멀티플레이어 게임 | 공식 | |
873 | TCP | rsync 파일 동기화 프로토콜 | 공식 | |
981 | TCP | SofaWare Technologies Checkpoint Firewall-1 소프트웨어 내장 방화벽의 원격 HTTPS 관리 | 비공식 | |
990 | TCP | SSL 위의 FTP (암호화 전송) | 공식 | |
992 | TCP | SSL 위의 Telnet (암호화 전송) | 공식 | |
993 | TCP | SSL 위의 IMAP4 (암호화 전송) | 공식 | |
995 | TCP | SSL 위의 POP3 (암호화 전송) | 공식 |
애플리케이션이 종합적으로 동작하는 계층이다.