본문 바로가기

이것저것 스터디📚/CS 스터디

IP 주소

IP 주소

- IP(Internet Protocol)란 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다.

IP 종류(IPv4 VS IPv6)

※ IPv4

- IPv4는 IP version 4의 약자로 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다.

- IPv4는 일반적으로 마침표로 구분된 4개의 숫자가 있는 점으로 분리된 10진수 형식으로 표시된다.

- 예를 들어, 172.16.254.1와 같이 표시되며, 이를 2진법으로 표현한다면, 32비트 숫자 10101100.00010000.1111110.0000001이 된다.

- 즉, IPv4는 32bit로 이루어진 주소이며 이를 합산해보면 약 43억 개의 고유 주소를 제공한다.

- 전 세계적으로 인터넷 사용자 수가 급증하면서 IPv4의 고갈 문제가 있다.

※ IPv6

- IPv6는 IP version 6의 약자로 IPv4의 주소체계를 128비트 크기로 확장한 차세대 인터넷 프로토콜 주소이며, 16비트씩 8자리로 각 자리는 콜론으로 구분한다.

- IPv6는 거의 무한대의 주소를 제공한다.

※ IPv4 VS IPv6

1. 주소 크기

   - IPv4는 32비트 주소를 사용합니다, 즉 약 43억 개의 고유 주소를 제공한다.
   - IPv6는 128비트 주소를 사용하여, 훨씬 더 많은 수의 주소를 제공한다.


2. 주소 형식
   - IPv4는 점으로 구분된 십진수 형식을 사용한다 (예: 192.168.1.1).
   - IPv6는 콜론으로 구분된 16진수 형식을 사용한다. (예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334).

3. 보안 강화

   - IPv6가 기본적으로 IPsec(인터넷 프로토콜 보안으로 네트워크 계층에서 데이터 암호화 및 인증을 제공하는 보안 프로토콜)을 지원함으로써, IPv4보다 네트워크 통신에 대한 보안을 강화했다.

 

4. 지리적 제한 없음

   - IPv4는 생성될 때 50% 가량이 미국에서 사용하는 용도로 예약되었지만, IPv6는 전 세계 어느 곳에서 모든 사람이 사용할 수 있다.

 

5. 효율적인 라우팅

   - IPv4 헤더는 길이가 가변적이지만, IPv6 헤더는 길이가 고정적이다.

   - 이러한 주소로 라우팅하기 위한 코드가 더 간단해지고 하드웨어 처리도 덜 필요하다.

   - 즉, IPv6는 더 나은 서비스 품질과 사용자 경험을 가능하게 한다.

IP 고갈 문제

- IPv4가 제공하는 43억개의 숫자는 이미 고갈이 되었고, 이를 해결하기 위해 IPv6가 나왔지만, 기존의 주소체계를 변경하는 데 들어가는 비용 때문에 아직 IPv4를 사용하고 있다.

- 43억개의 숫자가 이미 고갈되었지만, 아이피 할당이 부족하다는 것은 볼 수 없는데, 이는 기존의 주소체계에서 일종의 수학적인 트릭을 고안해서 사용하기 때문이다.

※ NAT(Network Address Translation)

- 고정 IP : 컴퓨터에 고정적으로 부여된 IP로 변하지 않는 것.

- 유동 IP : 변하는 IP. 사용자들이 인터넷에 접속하는 매 순간마다 사용하고 있지 않은 IP 주소를 임시로 발급해주는 IP이다.

- 공인 IP : 전 세계적으로 ICANN이라는 기관이 국가별로 사용할 IP 대역을 관리하고, 우리나라는 한국인터넷진흥원(KISA)에서 국내 IP 주소들을 관리한다. 이를 ISP(Internet Service Provider, KT, LG, SKT와 같이 인터넷을 제공하는 통신 업체를 말한다)가 부여 받고 사용자는 위 회사에 가입하여 IP를 제공받아 인터넷을 사용한다.

- 사설 IP : 어떤 네트워크 안에서만 내부적으로 사용되는 고유한 주소이다. 예를 들어, 공유기를 사용한 인터넷 접속 환경일 경우 공유기까지는 공인 IP 할당을 하지만, 공유기에 연결되어 있는 가정이나 회사의 각 네트워크 기기에는 사설 IP를 할당한다.

 

- 즉, 공유기에 연결되어 있는 가정이나 회사의 각 네트워크 기기에는 사설 IP를 할당하여 그룹으로 묶는 방법으로 IP 주소의 고갈을 피할 수 있다.

- 그렇다면, 사설 IP를 가지고 있는 컴퓨터는 어떻게 외부와 통신을 할 수 있을까?

- 이때 사용되는 개념이 NAT(Network Address Translation, 인터넷 주소 번역)이다.

- 인터넷 주소 번역 원리는 다음과 같다.

   1. 공유기(라우터)에 연결되어있는 각 컴퓨터들의 사설 IP를 받아와 유일한 공인 IP로 변환하고 외부 인터넷으로 공인 IP 주소정보를 보낸다.

   2. 외부 인터넷으로부터 받은 연결은 공인 IP 주소로 수신되지만, 공유기에 저장된 정보를 통해 요청을 보낸 컴퓨터들에게 정보를 넘겨준다.

 

- 위와 같이 사설 IP와 NAT를 활용하여 IP 주소 고갈 문제를 해결할 수 있다.

IPv4와 IPv6 연동

- IPv6가 IP 주소 고갈 문제를 해결하기 위해 등장했지만, 여러가지 이유로 IPv4와 IPv6는 공존하게 되었고 IPv4와 IPv6들이 서로 통신을 할 수 있게 만드는 IPv6 전환 기술들이 필요하다.

- Dual Stack : IP 장비가 IPv4, IPv6 Stack을 모두 가지고 있어 IPv4, IPv6 패킷을 동시에 처리할 수 있는 것을 말한다.

- Tunneling : 두 개의 IPv6 호스트 사이에 IPv4 망이 존재할 경우에 IPv6 패킷을 IPv4 패킷에 캡슐화하여 사용하는 기술이며, IPv4를 통과한 패킷은 다시 디캡슐화되어 IPv6 패킷으로 정상적 통신을 한다.

- Address / Header Translation : IPv4망과 IPv6망 사이에 주소 변환기를 사용하여 IPv6와 IPv4간의 Address Table을 생성하여 양단간의 통신이 가능하도록 상호 연동시키는 기술이다.(IPv6 클라이언트가 IPv4 서버에 접속하거나 IPv4 클라이언트가 IPv6 서버에 접속할 때 사용된다.) IPv4, IPv6 헤더 부분을 전화하며 그대로 데이터를 전송한다.

IP의 한계

- 비연결성

   - 대상 서버가 packet을 받을 수 있는 상태인지 모르기 때문에 packet을 받을 대상이 없거나 서비스 불능 상태여도 packet을 전송한다.

- 비신뢰성

   - 중간에 packet이 소실되어도 확인하지 않는다.(packet 전달 여부에 대해서 보장되지 않는다.)

   - 여러 packet을 보냈을 때, packet의 전달 순서가 보장되지 않는다.

 

- 대신, 신뢰성 있는 데이터 전송은 TCP (Transmission Control Protocol)와 같은 상위 레벨 프로토콜에서 처리된다.

- TCP는 데이터 전송의 정확성과 신뢰성을 보장하는 역할을 하며, 패킷 손실이나 순서 문제를 자동으로 처리한다.

- TCP/IP 패킷 정보는 TCP 정보에 IP 정보가 감싸진 형태로 IP 만으로는 해결되지 않던 순서 문제가 TCP 데이터로 해결이 된다.

IP Header Checksum

- Checksum : 더하여 확인한다는 의미로써, 송신할 때와 수신한 뒤의 데이터 패킷의 합을 비교하여 데이터가 정확하게 도착했는지 확인하는 방법이다.


1. IP 체크섬 (Internet Protocol Checksum)
   - 목적: IP 체크섬은 IP 헤더의 무결성을 검증하기 위해 사용된다. 즉, IP 패킷이 소스에서 목적지까지 전송되는 동안 헤더의 데이터가 변경되지 않았음을 보장한다.
   - 방식: IP 체크섬은 IP 헤더만을 대상으로 계산되며, 헤더 정보가 변경될 때마다 (예를 들어, 라우터를 거칠 때마다) 새로 계산된다.
   - 한계: IP 체크섬은 헤더 정보만 검증하고, IP 데이터그램의 페이로드(데이터 부분)는 검증하지 않는다.

2. TCP 체크섬 (Transmission Control Protocol Checksum)
   - 목적: TCP 체크섬은 TCP 세그먼트의 전체 무결성을 검증하기 위해 사용된다. 즉, TCP 헤더와 데이터(페이로드) 모두를 포함한다.
   - 방식: TCP 체크섬은 TCP 헤더, 데이터, 그리고 일부 추가 정보 (예: 소스 IP 주소, 목적지 IP 주소, 프로토콜 번호 등을 포함하는 가상 헤더)를 포함하여 계산된다.

TTL(Time-To-Live) / Hop Limit

- IPv4의 TTL (Time To Live)과 IPv6의 Hop Limit는 네트워크에서 패킷의 유효기간을 나타내어 패킷이 무한정 순환하는 것을 방지하는 데 사용되는 메커니즘이다.

- TTL / Hop Limit이 설정되지 않으면, 패킷이 목적지를 찾지 못하였을 때, 네트워크 상에 계속 잔류하게 된다.

- TTL / Hop Limit은 IP 패킷이 네트워크 내에서 살아있을 수 있는 최대 시간(혹은 홉의 수)을 정의한다.
- TTL / Hop Limit 값은 패킷의 출발지에서 설정되며, 일반적으로 숫자 값으로 표현되며, 패킷이 라우터를 통과할 때마다, 라우터는 TTL 값을 1씩 감소시킨다. TTL / Hop Limit이 0에 도달하면, 패킷은 폐기되고, 출발지로 ICMP 오류 메시지가 전송될 수 있다.

IP 주소와 MAC 주소

- IP 주소와 MAC 주소는 컴퓨터 네트워킹에서 중요한 두 가지 유형의 주소 체계이다.

※ IP 주소(Internet Protocol Address)

- 목적 : 인터넷 프로토콜을 사용하는 네트워크 상에서 장치를 식별하고 위치를 지정하는 데 사용된다.

- 형식 : IPv4와 IPv6 두 가지 형식이 있다. IPv4는 32비트 주소 체계를 사용하며, 점으로 구분된 십진수 형태이며 IPv6는 128비트 주소 체계를 사용하며, 콜론으로 구분된 16진수 형태로 표현된다.

- 할당 : IP 주소는 네트워크 관리자에 의해 정적으로 할당되거나 DHCP를  통해 동적으로 할당될 수 있다.

※ MAC 주소(Media Access Control Address)

- 목적 : 네트워크 인터페이스 카드(NIC)에 할당되는 고유한 식별자로, LAN(Local Area Network) 또는 다른 물리적 네트워크 세그먼트 내에서 장치를 식별하는 데 사용된다.

- 형식 : 48 비트 또는 64 비트 주소 체계를 사용하며, 콜론 또는 대시로 구분된 16진수 형태로 표현된다.

- 할당 : 일반적으로 네트워크 인터페이스에 고정적으로 할당되며, 제조 과정에서 설정된다. 이 주소는 전 세계적으로 고유하다.


학습 단계로 잘못된 정보가 있을 수 있습니다. 잘못된 부분에 대해 알려주시면 정정하도록 하겠습니다.

참고 : https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC

https://nordvpn.com/ko/blog/ipv4-ipv6-bigyo/

https://velog.io/@naeson/IPV6-IPV4-%EC%97%B0%EB%8F%99

https://velog.io/@yujuck/HTTP-IP%EC%99%80-TCP

https://velog.io/@numerok/TTL%EC%9D%B4%EB%9E%80

https://btcd.tistory.com/74

'이것저것 스터디📚 > CS 스터디' 카테고리의 다른 글

DHCP란?  (0) 2024.01.08
HTTP 1.1 VS HTTP 2.0  (0) 2023.12.18
HTTP GET과 POST 차이  (0) 2023.11.14
Context Switch  (1) 2023.11.13
경쟁 상태(Race Condition)란?  (0) 2023.11.13