TCP/IP 주소 및 서브넷 기본 이해
IP주소, 서브넷마스크, 게이트웨이, MAC 설명
정보가 발신자에서 수신자로 이동하는 방법을 정의
컴퓨터 내부 혹은 컴퓨터 사이에서 데이터 교환 방식을 정의하는 규칙 체계
네트워크로 전달되는 정형화된 데이터의 덩어리
데이터와 제어 정보를 합친 것
패킷 vs 프레임
- 응용 계층의 프로그램이 데이터를 전송 계층 프로토콜인 UDP나 TCP로 전송
=> 전송 계층은 받은 데이터를 패킷이라는 작은 조각으로 나누어 대상 주소를 추가한 후 네트워크 계층으로 전송
=> 네트워크 계층은 IP를 데이터그램에 포함하고 전송 위치를 결정한 후 네트워크 인터페이스 계층으로 전송
=> 네트워크 인터페이스 계층은 IP 데이터그램을 승인하고 이더넷 같은 특정 네트워크 하드웨어를 통해 프레임으로 전송
네트워크 인터페이스 계층
노드 간 신뢰성 있는 데이터 전송
- MAC 주소 사용
- 주요 프로토콜
- LAN - Ethernet, TokenRing
- WAN - X.25
네트워크 계층
호스트 간 라우팅
- 주요 프로토콜
- IP(Internet Protocol): 비신뢰성, 비연결지향
- ARP(Address Resolution Protocol): 주소 변환 프로토콜. IP 주소 => MAC 주소
- RARP(Reverse ARP): MAC 주소 => IP 주소
- ICMP(Internet Control Message Protocol): 상태 진단 메시지 프로토콜. 예) ping
- IGMP(Internet Group Message Protocol): 멀티캐스트용 프로토콜
전송 계층
프로세스 간 신뢰성 있는 데이터 전송
- 프로세스의 포트 번호를 논리적 주소로 사용
- 주요 프로토콜
- TCP(Transmission Control Protocol): 신뢰성있는 연결지향형 프로토콜
- UDP(User Datagram Protocol): 비신뢰성, 비연결형 (패킷을 잃거나 오류가 있어도 대처하지 않음)
응용 계층
서버나 클라이언트 응용 프로그램 동작 (브라우저, 텔넷 등)
- 전송 계층의 주소인 포트 번호 사용
- 주요 프로토콜
- HTTP(Hyper-Text Transfer Protocol): 포트번호 80
- Telnet: 원격 터미널 접속. 포트번호 23
- SSH(Secure Shell): 텔넷의 보안 취약점을 보완한 프로토콜. 포트번호 22
- FTP(File Transfer Protocol): 파일 전송 프로토콜. 전송은 포트번호 20, 제어는 포트번호 21
- SMTP(Simple Mail Transfer Protocol): 메일 전송 프로토콜. 포트번호 25
- POP3(Post Office Protocal Version3): 메일 수신 프로토콜. 포트번호 110 (예) 아웃룩)
- DNS(Domain Name System): 도메인명에 대한 호스트 정보 제공. 기본적으로 UDP 상에서 작동하지만 데이터가 길거나 신뢰성이 필요하면 TCP 상에서도 동작. 포트번호 53
Transmission Control Protocol (전송 제어 프로토콜)
두 호스트를 연결하고 데이터 스트림을 교환하게 해주는 프로토콜
- IP 계층 위에서 동작하며 연결 지향 프로토콜
- 데이터와 패킷이 보내진 순서대로 전달되는 것을 보장
- 에러 없이 패킷이 전달되었는지 보증 (신뢰할 수 있는 프로토콜)
- 동시 제어 가능
흐름 제어(Flow Control)
데이터를 받을 수 있는 만큼 적절히 전송
혼잡 제어(Congestion Control)
데이터의 손실이 많아지면 네트워크가 혼잡한 상태로 판단하여 송신자가 전송량을 제어
오류 제어(Error Control)
데이터의 오류나 손실이 없는 전송을 보장
User Datagram Protocol (사용자 데이터그램 프로토콜)
- 빠른 데이터 전송
- 흐름 제어, 혼잡 제어, 오류 제어가 없는 비신뢰성 프로토콜
Internet Protocol Address(인터넷 규약 주소)
네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 특수한 번호
- 과제에서는 IPv4 버전만 사용
- 32비트로 0~255 사이 십진수 4개를
.
으로 구분하여 표현 (0.0.0.0
~ 255.255.255.255
)
- 각 자리는 8개의 비트로 표현되며, 이를 옥텟이라고 부름
- 네트워크 주소와 호스트 주소 부분으로 나뉨
https://reakwon.tistory.com/69?category=300675
네트워크 주소와 호스트 주소를 나누기 위한 정보
네트워크 주소 부분의 비트를 1로 치환한 것
- IP 주소와 서브넷 마스크를 AND 연산해서 네트워크 주소와 호스트 주소를 분리할 수 있음
(서브넷 마스크에서 1로 표현되는 부분은 네트워크 주소, 0으로 표현되는 부분은 호스트 주소로 사용)
11000000.10101000.00001010.00001010 IP 주소(192.168.10.10)
11111111.11111111.11111111.00000000 서브넷 마스크(255.255.255.0)
👇
11000000.10101000.01111011.00000000 네트워크 주소(192.168.10.0)
00000000.00000000.00000000.00001010 호스트 주소(000.000.000.10)
=> 192.168.10
으로 시작하는 IP를 가지는 PC는 같은 네트워크에 존재
-
첫 번째 192.168.10.0
은 192.168.10
네트워크 자체를 가리키고,
마지막 192.168.10.255
는 브로드캐스트용 주소
=> 두 주소는 호스트의 IP로 사용되지 않음
-
서브넷팅: IP 주소 낭비를 방지하기 위해 원본 네트워크를 여러 개의 네트워크로 분리하는 과정
- 이 과정에서 분리된 네트워크 단위를 서브넷이라고 함
서브넷팅 계산 방법
서브넷 마스크 계산 문제풀이
Default Gateway
장치가 소속된 네트워크 이외의 곳으로 데이터를 보내려고 할 때, 목적지에 대한 정보를 갖고 있지 않은 경우 데이터를 보내는 기본 목적지
- 보통 호스트 IP 범위의 시작 주소(예)
192.168.0
네트워크의 192.168.0.1
)를 기본 게이트웨이로 사용하며 모든 호스트가 기본 게이트웨이를 가리키도록 함
- 목적지가 로컬 호스트로 확인되면 로컬 네트워크 상에서 패킷을 전송하고, 외부인 경우 기본 게이트웨이로 보내서 라우터가 정확한 네트워크로 전달하도록 함
https://www.itworld.co.kr/news/167585
스위치
같은 네트워크 안에서 데이터 전송
- 네트워크의 입구에 해당하며, 여러 장치를 연결하여 LAN(Local Area Network) 형성
- MAC 주소를 사용하여 같은 네트워크의 LAN 포트 간 데이터 전송 (스위칭)
(MAC 주소: 48비트의 LAN 포트 주소)
라우터
네트워크끼리 데이터 전송
- IP 주소를 사용하여 네트워크 간의 데이터 전송 (라우팅)
- 미리 라우팅 테이블에 네트워크 정보를 등록해두어야 함
공인 IP (Public IP)
인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소
- 외부에 공개된 주소
- 인터넷에 연결된 다른 PC로부터 접근 가능
- 공인 IP 대역
0.0.0.0 ~ 127.255.255.255
128.0.0.0 ~ 191.255.255.255
192.0.0.0 ~ 233.255.255.255
224.0.0.0 ~ 239.255.255.255
240.0.0.0 ~ 255.255.255.255
사설 IP (Private IP)
일반 가정이나 회사 등의 내부에 할당된 로컬 IP 주소
- 서브넷팅을 거친 IP
- 라우터에 의해 로컬 네트워크 상의 장치에 할당
- 외부에서 접근 불가능 (인터넷에 직접 연결 불가능)
- 사설 IP 대역
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
127.0.0.1
- 내 PC의 로컬 주소
- 인터넷이 연결되어 있지 않아도 작동하는 가상의 IP
- 로컬 컴퓨터를 원격 컴퓨터인 것처럼 통신할 수 있어 테스트 목적으로 주로 사용
- 자신의 보낸 패킷을 그대로 다시 수신한 것 같은 효과 (패킷을 외부로 전송하지 않음)
127.0.0.1
~ 127.255.255.254
에 해당하는 모든 주소를 루프백 주소라고 하며 예약된 주소기 때문에 호스트의 IP 주소로 할당될 수 없음