IPv4, IPv6

728x90

근거리 통신

LAN 전송 방식

베이스 밴드 방식

데이터 전송 시, 디지털 데이터 신호를 변조하지 않고 직접 전송
단일 통신 채널을 이용하므로 모뎀이 필요 없고 비용도 경제적

브로드밴드 방식

부호화된 데이터를 아날로그로 변조하고 필터등을 사용해 제한된 주파수만 동축 케이블 등 전송매체에 전송하는 방식

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

네트워크를 전송하기 전에 현재 채널을 사용중인지를 체크하여 멀티플 액세스가 되는 기능
CD는 Detect, 충돌 감지 기능을 사용해 충돌 여부를 확인

절차

  1. 전송을 위한 프레임 준비
  2. 매체가 사용이 가능한지 여부 확인. 아니라면 사용이 가능할 때까지 대기
  3. 전송 시작
  4. 충돌이 일어났나 확인하고 만약 그렇다면, 충돌 탐치 절차로 이동
  5. 재전송 계수기를 초기화 하고 프레임 전송을 종료

충돌 탐지시 절차

  1. 정체 신호가 전체 송신자에게 전달되도록 하기 위해 최소 패킷전송시간까지 전송을 계속 함
  2. 재전송 계수기의 재전송 시도횟수를 증가
  3. 임의의 시간동안 대기
  4. 1번부터 반복

IPv4

  • Version(4bit) : IP의 버전을 표기한다. IPv4, IPv6
  • IHL(4bit) : Internet Header Length 헤더의 길이를 나타낸다. 32 bit는 1 word. IP의 최소 길이는 Version에서 DSC Address까지 총 5word 이다. 따라서 일반적인 경우 5이고 6이상이라면 옵션이 있다는 뜻
  • Type of service(8bit) : QoS기능을 제공하기 위한 필드.
  • Total Length(16bit) : 전체 패킷에 대한 크기. 최대 1500 byte
  • Identification(16bit) : 패킷의 식별번호
    분할되지 않은 패킷 : 값을 순차적으로 증가
    분할된 패킷 : 동일한 번호 부여
  • Flags(3bit) : 패킷을 분할 할지 말지 제어하는 필드
    DF(Don't Fragment) 패킷 분할을 금지
    MF(More Fragment) 분할된 패킷이 존재. 마지막 패킷을 제외한 이 항목이 1임
  • Fragment Offset(13bit) : 분할되기 전 데이터에서의 상대적인 위치정보(순서번호)
    8bytes의 배수로 지정
    패킷의 최대 크기=1500bytes, 헤더의 최소크기=20bytes(5words)이므로 헤더를 제외하고 최대 크기는 1480bytes, 따라서 1480의 배수로 나오는 경우가 많다.
  • Time to Live(8bit) : 패킷의 생존시간. OS에 따라 다름
  • Protocol(8bit) : 상위 계층 프로토콜에 대한 정보 Ex) TCP, UDP
  • Header Checksum(16bit) : 오류를 검출하는 필드
  • Source Address(32bit) : 송신호스트 IP주소
  • Destination Address(32bit) : 수신호스트 IP주소

Wireshark를 통해 직접 확인해보기


헤더 정보에 나타난 순서로 제 wifi에서 통신하고 있는 프로토콜의 정보를 알 수가 있다.

MF가 사용되는 상황을 만들고, Frament Offset 확인해보기

Wireshark에서 ip.addr == 8.8.8.8로 검색

cmd창에서 8.8.8.8로 패킷 30000을 신호로 보낸다.(이 신호는 패킷의 분할화가 필요합니다)


MF가 활성화 된 모습

분할화 되었기때문에 Fragment Offset이 위에 설명처럼 변화하는 것을 볼 수 있다.

-f 옵션은 DF를 활성화 시키는 옵션인데 위와 같은 명령어에 추가를 한다면


30000바이트의 데이터는 분할화가 필요하지만 DF가 걸려있어 전송이 되지 않는 모습

ping 명령어 옵션 확인법 : ping /?

IPv6

16bytes, 즉 128bit로 구성
주소를 읽기 쉽게 하기 위해 16진수 콜론 표기
기존 IPv4 주소를 IPv6 주소로 표현한다면 하위 32비트에는 IPv4주소를 채우고 상위 비트는 모두 0으로 채우는 방식을 사용

IPv4와 IPv6 비교

IPv4IPv6

bit 32 128
구분자 . :
표기숫자 10진수 16진수
필드 bit 8 16

IPv6 주소의 단축 표현

숫자 앞에 0이 있는 경우

0으로만 구성된 부분

주소당 한 번만 허용

이중 스택

인터넷의 모든 시스템이 IPv6를 사용할 때까지 IPv4와 IPv6를 동시에 사용
패킷의 목적지로 보낼 때 버전을 결정하기 위해 송신측에서 DNS에 질의를 함

터널링

IPv6 패킷은 IPv4를 사용하는 네트워크 영역 통과 시, IPv 패킷 내에 캡슐화, 영역을 통과한 후에는 역 캡슐화

헤더 변환 방식

IP에서 IPv6 패킷 헤더를 IPv4 패킷 헤더로, 또 IPv4 패킷 헤더를 IPv6 패킷 헤더로 변환하는 방식

참고자료 : CSMA/CD, CSMA/CD Procudere

728x90