본문 바로가기
학교 수업/컴퓨터 네트워크

Network layer :: 3-4. IPv6

by Godgil 2020. 6. 18.

자, 오늘은 IPv6에 대해 얘기를 해 볼거야.

 

이게 왜 필요할까? 그냥 쓰던 IPv4쓰면 되는데?

 

저번에도 말했지만, IPv4의 주소 부족 문제를 근본적으로 해결하기 위해서야.

 

IPv4로 사용하다 보니, 이제 주소 풀이 부족해, 그러다가 DHCP나, NAT같은 일종의 꼼수를 사용해서

계속 할당하고 있었는데, 이제 NAT마저도 불가능 하다는거지.

 

이런 목적으로 IPv6개발을 시작 했는데, 이제 개발하는 김에, IPv4로 운영하면서 보였던 단점들을 개선하고 그걸 또 반영하자고 한거야.

 

IPv6는 일단 16비트씩 8개로 이루어져있어, 아마 이 IPv6에 대한 주소도 대부분 컴퓨터에서

명령 프롬프트창에, ipconfig을 치면 나올거야

 

그러면 IPv4와 IPv6의 헤더 형식을 비교해보자.

 

딱 보면 보이는게, IPv6의 헤더가 좀 더 길어, 길지만 IPv4보다 더 깔끔해 보여.

길이가 길어진건 당연하지, 주소 길이 자체가 늘어났으니까.

헤더의 길이가 이제 40바이트로 늘어났어.

 

1. 버전 : 버전은 당연히 있어야지? 제일 먼저 보고 판단하기 위한거니까.

 

2. Traffic class : Priority라고 하는데, IPv4의 TOS와 비슷한거야, 특정 응용 데이터그램에 우선순위를 부여하는거지.

 

3. Flow label : 이건, 데이터그램의 흐름을 나타낼때 사용되는거야. 예를 들어서, 유튜브 같은 실시간 스트리밍 서비스를 이용하려면, 패킷에 대해서 단위시간동안 일정하게 전송해주기를 네트워크한테 바래야해, 그때 이 정보가 있어야 내가 유튜브로 받을 패킷을 식별할 수 있는거야, 그래야 특별한 처리를 해줄 수 있는거고.

 

4. payload length : payload라고 하면 화물이란 뜻이거든. IP 헤더 뒤에 나오는 데이터의 양이야.

 

5. Next header : 다음 헤더가 뭔지 알려주는거야 TCP인지 UDP인지.

 

6. Hop limit : IPv4의 Time to Live랑 비슷한건데, 이름을 잘 바꾼거지, 다음 라우터로 넘어갈 때마다 1씩 감소해

 

대략 IPv6의 헤더를 보면 위와 같아

 

 

근데 뭐가 좀 바뀌었을까?

먼저, checksum이 없어졌어, 에러를 검출하는 기능은 Link layer에서도 하고 Transport layer에서도 하거든, 근데 굳이 여기서 또 해야할까? 싶어서 빼버린거야.

또, 옵션 필트를 없앴고.

 

IPv4에서 가장  중요하다고 생각되는 fragment를 IPv6는 지원을 안해.

지원을 안한다기보다, 각각 라우터마다 안하는거야, 단지 출발지와 목적지 두 곳만 하는거지,

너무 커서 전달이 안되면 출발지에서 그냥 쪼개서 보내는거야.

 

 

자 그런데, 우리 라우터들이 IPv4를 이제까지 사용하고 있었는데, 이게 막 게임처럼 딱 동시에 날짜를 지정해서 업그레이드 할 수가 없는거야, 전부 중지하고 업그레이드 해야하는데 그럼 인터넷이 전세계적으로 마비가 되는거야. 엄청난 문제인거지.

 

그래서 개발자들은 IPv4와 IPv6가 공존 할 수 밖에 없다고 예상했고, 이 부분에 대한 준비도 해 왔어.

 

어떻게 했을까?

 

이 방법이 터널링( Tunneling )이라는 방법이야.

 

간단하게 말해서 IPv4만 인식하는 라우터에 IPv6로 된 데이터그램이 지나갈 때는, 잠깐동안 변신을 하는거야 IPv4처럼 보이도록, 그래서 터널링이야. 

 

이런 형태인거지, IPv4로 감싼 뒤에 그 라우터에서 나오면 IPv6로 돌아가는거야.

 

 

 

댓글