Network/이론
OSI 7 Layer 모델 & TCP/IP 모델
Glory-L
2022. 8. 27. 10:52
- ISO(국제 표준화 기구)에서 internetworking에 사용하기 위한 목적으로 연구했던 프로토콜의 집합
- 연구 과정이 많이 지연되면서 TCP/IP 모델이 인터넷의 표준 프로토콜로 사용
프로토콜이란?
-> 통신을 위한 규칙과 약속들의 집합체
표준 프로토콜이란?
-> 서로 다른 프로토콜을 사용하는 장치들은 서로 간의 통신이 불가능하다. 그래서 모든 장치가 동일한 프로토콜을 사용할 수 있도록 약속된 프로토콜이 표준 프로토콜
- OSI 7 Layer 모델은 이론적인 내용을 표현하는 용도(연구용/개발용/교육용)
- TCP/IP 모델은 실제 사용하는 인터넷의 표준 프로토콜이다.
※ OSI 7 Layer
-> 네트워크에 사용되는 각종 프로토콜을 7개의 계층으로 구분
- 상위 계층(L5 ~ L7)과 하위 계층(L1 ~ L4, 데이터 전송에 관련된 계층)으로 분류
- <하위 계층>
L4 : Transport, port 번호를 이용하여 서비스를 식별
L3 : Network, Logical Address(논리적 주소)를 사용하여 서로 다른 네트워크 사이에서 테이터 전송을 담당
L2 : Data-Link, Phsical Address(물리적 주소)를 사용하여 같은 네트워크 안에서 데이터 전송을 담당
L1 : Physical, 통신에 관련된 모든 물리적인 규칙들을 정의
(신호 변환 방식, cable 규격, connector 규격, 전압 등)
전송하려는 데이터(data)를 신호(signal)로 변환
* port 번호
0 ~ 65535 범위의 번호를 사용
0 ~ 1023 범위는 잘 알려진 포트(well-known port)라고 하여 자주 사용되는 서비스들이 고정으로 사용
그 범위 밖의 port들은 자유롭게 사용(관리자가 설정에서 지정, 시스템이 랜덤 하게 사용)
* Logical Address
장치에 할당되는 논리적인 주소
논리값이기 때문에 관리자가 필요에 따라 변경이 가능
Layer 3에서 사용하는 프로토콜에 따라 주소의 종류가 달라진다.
> IPv4 : IPv4 address(X.X.X.X - 2진수 32자리, 10진수로 바꿔서 표현)
> IPv6 : IPv6 address(X:X:X:X:X:X:X:X - 16진수 32자리)
* Physical Address
장치에 할당되는 물리적인 주소
보통은 공장에서 생산되는 과정에서 할당되는 주소
Layer 2에서 사용하는 프로토콜에 따라 주소의 종류가 달라진다.
> LAN protocol : MAC address(X-X-X-X-X-X - 16진수 12자리)
※ IP address
-> 인터넷의 표준 프로토콜인 TCP/IP 에서 사용되는 logical address(논리적 주소), TCP/IP 표준 프로토콜을 사용하는 모든 장비들은 반드시 IP 주소가 할당되어 있어야 통신이 가능
-> 운영체제에서 인식한 각 interface 마다 할당되는 주소
> 사람이 직접 입력 or DHCP 서버를 이용한 자동 할당
-> InterNIC에서 각 국가별로 IP를 분배 -> 국가에서는 ISP(통신 업체)에 IP를 분배
> 사용자는 ISP에 IP를 신청하여 할당
-> 초창기에는 IPv4를 사용하다가 IP의 개수가 부족해지면서 IPv6 사용
> 처음부터 IPv6로 간 것은 아니고 기존에 만들어진 장비들과 호환성을 위해 현재까지 IPv4와 IPv6
- IPv4 : 32bit, 2^32 = 약 42억 9천만개 -> 부족
- IPv6 : 128bit, 2^128 = 2^32^4개 -> 셀 수 없이 많음
-> IPv4 구성
Network ID + Host ID
> Network ID를 InterNIC/ISP에서 할당, HostID는 사용자가 범위 안에서 자유롭게 사용
192.168.10.128 << Network ID, Host ID 구별이 불가능 > netmask 개념 등장(subnetmask) > 이를 이용하여 Network ID와 Host ID를 구별함
-> Network ID의 bit 수 만큼 1을 나열, Host ID의 bit 수 만큼 0을 나열
ex)
192.168.10.128
IP address : 11000000.10101000.00001010.10000000 (2진수 표현)
255.255.255.0
netmask : 11111111.11111111.11111111.00000000
<-------------네트워크-----------> <--HostID-->
> 동일한 Network ID를 사용하는 장치들은 물리적으로 같은 네트워크에 속해 있다.
- > IPv4는 기본적으로 두 가지 방식으로 사용(classful, classless)
- classful(옛날 사용 방식, 지금은 사용하지 않음)
IP 주소의 첫 번째 8bit의 범위에 따라 A ~ E Class를 구분하고 Network ID 범위를 파악
(IPv4에서 8bit = 1octet, IPv4 주소는 총 4개 octet으로 구성되어 있고 1개 octet은 0 ~ 255를 2진수로 표현)
Class A : 첫 번째 bit가 0으로 고정된 범위
(00000000 ~ 01111111) 앞의 8bit를 Network ID, 뒤에 24 bit를 Host ID로 사용
(0 ~ 127) Class A의 경우 하나의 network가 2^24 = 16,777,216개의 IP를 포함
Class B : 첫 번째 ~ 두 번째 bit가 10으로 고정된 범위
(10000000 ~ 10111111) 앞의 16bit를 Network ID, 뒤에 16bit를 Host ID로 사용
(128 ~ 191) Class B의 경우 하나의 network가 2^ 16 = 65,536개의 IP를 포함
Class C : 첫 번째 ~ 세 번째 bit가 110으로 고정된 범위
(11000000 ~ 11011111) 앞의 24bit를 Network ID, 뒤에 8bit를 Host ID로 사용
(192 ~ 223) Class C의 경우 하나의 network가 2^8 = 256개의 IP를 포함
- Class D와 Class E는 일반적으로 장치에 할당하여 사용하는 주소가 아니다.
- classless
IP의 낭비가 심한 Classful 방식은 현재 사용 X
(ex) 회사에서 일정 개수의 ip가 필요하다고 가정함 500개의 ip를 사용하려고 하면 B Class를 받아야하는데 500개를 제외한 65000개가 낭비됨
> 필요에 따라 Class 네트워크를 분할하여 사용하는 Classless 방식을 사용
Classful 네트워크를 분할하는 작업을 subnetting이라고 표현
> 분할된 네트워크를 subnetwork(subnet)이라고 부르고 netmask는 subnetmask라고 부른다.
Classless 방식에서는 subnetmask의 표현이 정확해야 한다.
> IP 주소의 첫 번째 8bit에 따라 Network ID가 결정 X
subnetmask 정보를 보고 Subnet ID(= Network ID)의 bit의 개수를 파악
subnetmask 계산 대신에 Subnet ID의 bit 수를 그대로 적어주는 Prefix Length 표현 방식이 존재
ex) 192.168.10.0 네트워크의 Subnet ID가 24bit인 경우
prefix length : 24(서브넷 마스크 ip 주소의 1의 개수가 24개이기 때문에) -> 192.168.10.0 / 24
- Classful 방식과 Classless 방식 전부 각 네트워크의 첫 번째 IP와 마지막 IP를 장치에 할당 X
> 첫 번째 IP는 해당 네트워크의 이름(= 대표 주소 = Network ID)로 사용
마지막 IP는 해당 네트워크의 방송 주소(= broadcast)로 사용
* broadcast >> 1 : n 통신, 방송 주소, 특정 네트워크 내부의 전체 장치에 동일한 내용을 전달
unicast >> 1:1 통신, 장치와 장치 간의 통신
multicast >> 1 : n 통신, 몇몇 장치를 그룹화 시켜서 하나의 Class D IP로 묶어준 후 그 IP에 데이터 전달
> VMware에서는 추가로 장치에 할당하지 않는 IP가 존재
-> 바꿔 줄 수 있지만 default값이 존재
1번 IP : Host only와 NAT에서 virtual network adapter에 사용하는 IP
(virtual network adapter는 window와 VMnet을 이어주는 역할을 한다)
2번 IP : NAT에서 사용하는 기본 게이트웨이
(gateway는 네트워크에서 외부와 통신을 할 때 지나가는 통로)
※ NAT
- Network Address Translation : 네트워크 주소 변환(네트워크 주소 : IP address)
- IPv4의 문제점 중 하나인 주소 부족 현상을 해결하기 위해 90년대 후반에 만들어짐
- 내부 네트워크와 외부 네트워크를 분리해서 사용
> 내부 네트워크 IP 주소는 내 마음대로 사용하되 외부에서 직접 연결하지 못하는 주소
> 보안성이 높아지는 장점
-> NAT에서 사용하는 내부 네트워크를 NAT inside, 외부 네트워크를 NAT outside라고 부른다.
> NAT inside : trust(신뢰할 수 있는 영역)
-> 사설(private) 네트워크, 사설 IP 주소 사용
>NAT outside : untrust(신뢰할 수 없는 영역)
-> 공인(pubilc) 네트워크, 공인 IP 주소 사용
공인 IP 주소 : 유료, ISP에서 제공, 외부 네트워크와 통신 가능
사설 IP 주소 : 무료, 내 마음대로 사용, 외부 네트워크와 직접적인 통신이 불가능
-> Class A : 10.0.0.0/8 (10.0.0.0 ~ 10.255.255.255)
Class B : 172.16.0.0/12 (172.16.0.0 ~ 172.31.255.255)
Class C : 192.168.0.0/16 (192.168.0.0 ~ 192.168.255.255)
-> 이 IP는 사설로서 공인으로 이용 불가능
- NAT가 내부 네트워크와 외부 네트워크를 연결하여 내부 영역에 있는 장치들이 외부 네트워크에 있는 장치들과의 통신을 할 수 있도록 해준다.