5일차]IP Story
1. IP(Internet Protocol) 주소란 무엇인가 ??
IP 주소는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해 사용하는 특수한 번호이다. 네트워크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가지고 있어야 한다. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 수신자를 향하여 예정된 목적지로 전달된다. IP 주소를 줄여서 IP라고 부르기도 하나 IP는 인터넷 규약 자체를 가리키는 말이기 때문에 엄밀하게는 구별해야 한다. [출처 : 위키백과]
2. 공인 IP
먼저, IP는 IPv4가 있는데 이 주소는 우리도 흔이 알고있는 32비트로 구성된 0~255사이의 십진수 넷을 구분하여 부여한다. IP주소를
192.168.XXX.XXX이런식으로 많이 볼 수 있는데 이것이 IPv4주소라고 보면된다. IPv4 주소 체계에서는 이론적으로 부여할 수 있는 주소의 총 수는 0.0.0.0 ~ 255.255.255.255로 약 42억개가 된다. 이러한 IPv4는 전 세계적으로 과거엔 IANA, 현재는 ICANN이라는 기관이 국가별로 사용할 IP 대역을 관리하고 우리 나라는 인터넷 진흥원(KISA)에서 우리나라 내에서 사용할 주소를 관리하고 있다. 따라서 할당받은 주소를 부여해야만 인터넷에 접속할 수 있게 된다. IPv4는 크게 4자리의 대역에 따라서 다음과 같이 분류할 수 있다.
1) A Class
- 첫번째 숫자를 네트워크 아이디로 사용한다.
- 예] 192가 네트워크 아이디고 나머지 168.3.120이 호스트 아이디 1600만개의 호스트주소를 가질 수 있다
- 정확하게는 첫번째 비트가 모두 0인 비트 예] 0000 0000 ~ 0 111 1111: 0 ~ 127 127은 루백주소
- 따라서 A클래스는 전 세계에서 총 126개 밖에 없다.
- 우리나라는 없다 A클래스..
2) B Class : 두번째 숫자까지 네트워크 아이디로 사용
- 처음 두 비트가 모두 10인 비트로 채워져있다.
- 10 00 0000. 0000 0000 ~ 10 11 1111.1111 1111
- 128.0 ~ 191.255 약 6만대 이용 가능 호스트
3) C Class : 세번재 숫자까지 네트워크 아이디로 사용
- 처음 두 비트가 모두 110인 비트
- 110 0 0000.0000 0000.0000 0000 ~ 110 1 1111.1111 1111.1111 1111
※ 하나의 IP주소에는 Network ID와 Host ID가 있다. Network ID는 인터넷 상에서 모든 Host들을 전부 관리하기 힘들기에 한 Network의 범위를 지정하여 관리하기 쉽게 만들어 낸 것이다. 그리고 Host ID는 호스트들을 개별적으로 관리하기 위해 사용합니다. 따라서 우리가 인터넷을 사용할 때 Routing으로 목적지를 알아내고 찾아가는 등의 역할을 할 때는 NetworkID와 HostID가 합쳐진 IP주소를 보냅니다.
3. 사설 IP
42억개의 공인 IP는 바닥이난지 오래됐다. 따라서 NAT(Network Address Translation)가 나오게 되었는데 NAT는 어떤 일을 할까?
를 대답하기 전에 사설 IP에 대해 알아보자. 사설 IP는 회사 내부나 집 등에서 공인 IP를 부여받지 않은 상태에서 임의의 사설 IP를 만들어 사용하는 것이다. 대신 이러한 사설IP는 공인IP에서 알아볼 수가 없다. 즉, 회사 내부나 집 등에서 서로만 인식할 수 있다는 것이다. 그래서 나온 것이 NAT인데, 이러한 사설망의 IP를 Internet으로 나갈 땐 공인 IP로 변형시켜 나가는 것이다. 사설 IP의 대역은 다음과 같다.
A CLASS : 10.0.0.0 ~ 10.255.255.255
B CLASS : 172.16.0.0 ~ 172.31.255.255
C CLASS: 192.168.0.0 ~ 192.168.255.255
따라서, 가정집의 대부분은 192.168.XXX.XXX 이런식일 것이다. 이러한 사설 IP내에서 자신의 컴퓨터 주소를 설정해도 NAT를 통해 인터넷이 가능한 것이다. 라우터, NAT 기능, 게이트웨이, 허브 및 네트워크 관리 도구를 통합하여 나온 물건이 우리가 흔히아는 인터넷 공유기이다.
게이트웨이가 이러한 공유기에 연결된 컴퓨터들이 사설 IP를 이용하여 통신할 수 있도록 문 역할을 하는 것이다.
2계층 이야기(link)
우선, 매쉬형 토플리지로 컴퓨터를 연결 한다고 하면 모델이 네트워크와 연결된 컴퓨터의 수만큼 교류를 위한 모뎀이 필요할 것이다. 그래서 나온 것이 링형, 링형은 컴퓨터가 아무리 많아도 램카드가 2개만 있어도 모두 연결이 된다 . 다만 많은 컴퓨터 중에 하나마 에러가 발생하면 교류가 불가능하다. 그래서 지금 결국 쓰는 것이 STAR형 HUB를 두고 HUB(스위치)에 선을 한곳으로 모은다 . (모뎀이 하나만 있어도 된다.!) 여기서 또 문제가 한 A라는 컴퓨터가 C라는 컴퓨터에게 데이터를 보내는 동안 B가 C에게 데이터를 보낸다면 충돌이 발생한다. 그래서 나온 방법이 token ring과 ethernet이다. token ring은 컴퓨터들이 차례대로 토큰을 가지고 있으면서 토큰을 가진사람만이 데이터를 보낼 수 있다. 그래서 데이터 충돌이 일어나지 않는다. 하지만 아무리 급해도 토큰이 없으면 데이터를 보내지 못하기 때문에 느리다는 단점이 있다. ethernet방식(컬리지도메인cd )은 토큰과 상관없이 먼저 보내는게 임자이다. A컴퓨터가 보내는 동안 다른 컴퓨터는 DUMMY를 보내서 충돌이 일어나는지 안나는지 확인한다. 충돌이 일어나면 잠시 후에 보내는 방식이다. ethernet 방식에서 나오는 것이 ethernet header이다. 초창기에는 A컴터가 C컴퓨터에게 데이터를 보내려고 HUB에게 메시지를 보내면 HUB는 모든 컴퓨터에게 A가 보낸 데이터를 확인시킨다. 모든 컴퓨터가 promiscuous방식으로 동작한다면 그 A의 데이터를 볼 수 있기 때문에 보안상 안 좋고 일일이 본인의 것인지 체크해야 해서 성능이 떨어진다. 그래서 나온것이 L2스위치인데 L2스위치에는 port가 달려있다. port들에는 MAC ADDRESS가 있는 것이다. 따라서 데이터를 보낼때 출발지 MAC ADDRESS와 도착지 MAC ADDRESS를 스위치에게 보낸다 그럼 L2 스위치에서 port를 확인해서 정확하게 목적지에 보낸다. 스위치와 스위치를 연결해 컬리지도메인이 너무 넓어지면 효율성이 굉장히 떨어진다. ethernet 특성상 충돌로서 확인한다 그래서 효율성이 떨어지기 때문에 라우터로서 네트워크를 망을 분리한다. 결론적으로 같은 스위치 끼리는 mac Address로서 구분을 하고 3계층 라우터부터는 ip로 구분을 한다.