OSI 참조 모델 & IP 주소
1. OSI 참조 모델
: 데이터를 전송하는 호스트는 응용 계층에서 시작하여 물리 계층으로 사용자 데이터를 내려보내고, 데이터를 수신하는 호스트는 거꾸로 물리 계층에서 응용 계층으로 데이터를 올려 보내는 계층화된 구조

- 프로토콜 데이터 유닛 (PDU) : 계층별로 고정된 단위 (비트, 프레임, 패킷, 세그먼트)
1) 물리 계층(L1) : PDU - bit
2) 데이터링크 계층(L2) : 이더넷, PPP, ARP, PDU-프레임
- MAC 주소를 기반으로 직접 연결된 서로 다른 2개의 네트워킹 장치 간의 데이터를 전송
- 흐름제어, 오류제어, 접근제어, 동기화
- 2계층의 대표 장비 : 스위치
<스위치 동작 방식>
- Flopding : 스위치에 연결된 모든 포트로 패킷 전송
- Forwading : 패킷이 스위치에 들어온 경우 목적지 MAC를 확인할 후 MAC 주소 테이블을 통해 해당 포트로 전송
3) 네트워크 계층(L3) : IP, ICMP, PDU-Packet
- IP주소를 기반으로 패킷을 송수신
- 2계층의 대표 장비 : 라우터, L3스위치
- 패킷 전달 : 종단 간 (end-to-end)의 패킷 전달 수행
- 라우팅 : 패킷을 전송할 때, 라우팅 프로토콜을 기반으로 가장 효율적인 경로를 선택하여 패킷을 전송
- 논리적인 주소 사용 : IP주소들을 포함하는 IP 프로토콜 헤더를 붙여 캡슐화를 수행한 후 패킷을 전송
*프로토콜 : 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계
4) 전송 계층(L4) : TCP, UDP, PDU-segment
- 실질적인 데이터 전달을 수행하는 계층으로 장비와 장비가 접속하면 전송계층의 TCP가 데이터를 전달
- 종단 간 (end-to-end) 데이터 통신 보장 : 통신 채널을 통해 흐름 제어와 오류 제어 등을 수행하여 전체적인 사용자 데이터의 통신을 보장
- 사용자 데이터 분할과 재조립 : 데이터를 세그먼트로 분할하여 순서번호(sequence number)를 할당하며, 수신한 데이터는 이 번호를 참조하여 재조립하거나 폐기하는 역할을 수행
2. IP 주소
1. IPv4 주소 형식
- 2진수 32자리로 구성하며, 8자리(octet)마다 점으로 구분하고, 10진수로 변환하여 표기
ex) 1100 0000 . 1010 1000 . 0000 0001 . 0000 1011 >> 192.168.1.11
2. IP 주소의 구성
- 네트워크 ID + 호스트 ID
- 네트워크 ID : 네트워크를 구분하는 주소 (동일한 네트워크에 존재하면 같은 네트워크 주소를 가짐)
- 호스트 ID : 네트워크 상의 호스트를 구분하는 주소 (네트워크 내의 호스트 주소는 유일)
- 네트워크 안의 첫번째 주소는 네트워크 대표주소, 마지막 주소는 브로드캐스트 주소로 사용
ex) 192.168.1.11 중에 192.168.1은 네트워크 ID, 11은 호스트 ID
>> 여기에서 사용할 수 있는 IP 주소는 192.168.1.0 ~ 192.168.1.255
>> 이 중 192.168.1.0(첫 번째 주소)은 네트워크 대표주소
>> 192.168.1.255(마지막 주소)는 브로드캐스트 주소
1) A 클래스
- 32비트 중 첫 번째 최상위 비트를 0으로 시작하는 주소
- 7비트로 네트워크 주소를 표현
- 0xxxxxxx(네트워크 ID) . xxxxxxxx . xxxxxxxx . xxxxxxxx (호스트 ID)
- 네트워크 주소의 개수 : 2^7 - 2 = 126개 (0.0.0.0: 사용안함, 127.0.0.0: 루프백 주소)
- 한 네트워크 당 호스트 수 : 2^8 * 2^8 * 2^8 - 2 = 16,777,214개 (X.0.0.0: 대표 네트워크 주소, X.255.255.255: 브로드 캐스트 주소)
- 0.0.0.0 ~ 127.255.255.255 (127.0.0.0 ~ 127.255.255.255 는 루프백 주소로 예약)
* 루프백 주소
- 컴퓨터의 네트워크 입출력 기능을 시험하기 위하여 가상으로 할당한 인터넷 주소(127.0.0.1)
- 실제로는 외부 네트워크에 연결되어 있지 않는 소프트웨어적 입출력 주소로서 이 주소로 발송된 데이터는 외돌아서 다시 이 주소로 수신된 것처럼 작동함. 웹 서버나 인터넷 소프트웨어의 네트워크 동작 기능을 시험하는 데 사용.
2) B 클래스
- 32비트 중 첫 번째 비트를 1로 두 번째 비트는 0으로 시작하는 주소
- 14비트로 네트워크 주소를 표현
- 10xxxxxx . xxxxxxxx (네트워크 ID) . xxxxxxxx . xxxxxxxx (호스트 ID)
- 네트워크 주소의 개수 : 2^6 * 2^8 = 2^14 = 16,384개
- 한 네트워크 당 호스트 수 : 2^8 * 2^8 - 2 = 65,534개 (X.X.0.0: 대표 네트워크 주소, X.X.255.255: 브로드 캐스트 주소)
- 128.0.0.0 ~ 191.255.255.55
3) C 클래스
- 32비트 중 첫 번째 비트 및 두 번째 비트를 1로 세 번째 비트는 0으로 시작하는 주소
- 21비트로 네트워크 주소를 표현
- 110xxxxx . xxxxxxxx . xxxxxxxx (네트워크 ID) . xxxxxxxx (호스트 ID)
- 네트워크 주소의 개수 : 2^5 * 2^8 * 2^8 = 2,097,152개
- 한 네트워크 당 호스트 수 : 2^8 - 2 = 221개 (X.X.X.0: 대표 네트워크 주소, X.X.X.255: 브로드 캐스트 주소)
- 192.0.0.0 ~ 223.255.255.55
4) D 클래스
- 멀티캐스트용 주소
- 1110xxxx . xxxxxxxx . xxxxxxxx . xxxxxxxx
- 224.0.0.0 ~ 239.255.255.255
* 멀티캐스트 : 한 번의 송신으로 메시지나 정보를 목표한 여러 컴퓨터에 동시에 전송하는 것 (1 : n 통신)
5) E 클래스
- 연구목적용 주소 (미래 또는 실험 목적으로 예약되어 있음)
- 1111xxxx . xxxxxxxx . xxxxxxxx . xxxxxxxx
- 240.0.0.0 ~ 255.255.255.254 (255.255.255.255는 브로드캐스트 주소)
6) CIDR(Classless Inter-Domain Routing, 사이더)
- 클래스 없이 IP주소를 할당할 수 있는 방식
- 비트 단위로 네트워크 ID와 호스트 ID로 나눌 수 있음
ex) IP 주소 : 192.168.10.1, 서브넷 마스크 : 255.255.252.0
>> CIDR 표기 : 192.168.10.1/22