네트워크

[TCP/IP stack] stack_3. 네트워크계층 : IPv4, IPv6

Ardmos :) 2021. 11. 14. 23:08

https://ardmos.tistory.com/entry/%EB%A7%81%ED%81%AC%EA%B3%84%EC%B8%B5-%EC%9D%B4%EB%8D%94%EB%84%B7?category=234628 

 

[TCP/IP stack] stack_2. 링크 계층 : 이더넷

여기부터 컴퓨터학의 영역 물리적으로 연결되어있는 호스트들끼리 물리계층을 통해 정보를 주고받을 수 있는 수단을 제공해주는 계층 사용되는 프로토콜 그룹에는 이더넷이 존재 - 이더넷 1.

ardmos.tistory.com

앞서 정리한 링크 계층의 한계가 네트워크 계층의 탄생 이유이고 하는 일 이다. 

네트워크 계층의 대표적인 프로토콜은 IPv4와 IPv6가 있다. 

 

 

- IPv4

 

  1. 가장 널리 사용되는 프로토콜. 32비트의 숫자 주소로 8비트씩 마침표로 구분하여 표시한다. (ex 128.125.253.146)

 

  2. 서브넷이라는 개념을 이용해서 작은 단위의 네트워크를 만드는것이 가능하다. 

 

  3. IPv4 패킷의 최대 크기는 65,535 바이트.

 

 

- 서브넷? 

 

  1. 같은 서브넷 마스크로 비트 AND 연산시 같은 값이 나오는 IP 주소를 가진 호스트들의 그룹.

 

 

- 서로 다른 서브넷에 있는 호스트들끼리 통신을 원하면? 

 

  1. 단계적으로 라우팅 테이블을 참고해 연결해준다. 

 

 

- 이더넷 프레임의 MTU가 1,500바이트인데, IPv4 패킷의 최대 크기가 65,535면 어떻게 담아서 보내는가? 

 

  1. IPv4 패킷을 쪼개서 보낸다. (패킷 분열, fragmentation)

 

  2. IP헤더가 20바이트이므로 한 번에 총 1,480바이트를 담아서 보낼 수 있다. 

 

  3. 목적지로 가는동안 MTU가 더 작은 링크를 거쳐야 한다면 패킷이 더 작게 분열될수도 있다.

 

  4. 분열 플래그 필드 값을 0x02로 설정하면 분열금지(DF) 플래그가 된다. 패킷 크기보다 MTU 크기가 작은 링크로 패킷을 전달하려고 하면 IP모듈은 패킷을 분열하는 대신 걸러버린다. 

 

 

- 그럼 이런 IPv4 주소를 어떻게 링크계층의 주소체계 ( MAC 주소 ) 로 변환할까? 

 

  1. ARP 테이블상의 내용을 참고해서 변환한다. (address resolution protocol, ARP) 

 

  2. ARP 테이블상에 내용이 없을경우? -> 링크 계층 네트워크에서 도달 가능한 모든 호스트에 브로드캐스트로 ARP 패킷을 발신해서 올바른 MAC 주소를 찾는다. 

 

 

 

- IPv6

 

  1. IPv4만으로는 고유IP주소의 양이 모자라서 생겨났다. (IPv4의 32비트 주소체계로 만들 수 있는 IP주소의 개수는 약 42억 개. 지구상의 모든 기기들에 할당하기엔 숫자가 턱없이 모자라다.)

 

  2. 여덟 묶음의 네 글자 16진수를 콜론으로 구분하여 표현한다. (ex 2001:4a60:0000:08f1:0000:0000:0000:1013)

 

  3. 기존 ARP에서 하던 역할을 NDP(neighbor discovery protocol)가 대신한다.

  

728x90