IPv6 개요와 적용
- 최초 등록일
- 2011.10.06
- 최종 저작일
- 2011.09
- 34페이지/ MS 파워포인트
- 가격 1,000원
소개글
IPv4 현황, IPv4와 IPv6와의 차이점, IPv6의 적용 IPv6 간략한 프로그래밍
목차
1.IPv4 현황
2.IPv4와 IPv6와의 차이점
3.IPv6의 적용
4.IPv6 간략한 프로그래밍
본문내용
1. IPv4 문제점
o 주소체계 자체의 한계성(32bit 주소)
o 요구사항 충족을 위한 기형적 발전의 악순환(NAT)
o 활용범위와 사용자요구사항의 급격한 확대와 변화에 따른 대처능력 부족
o 차세대 인터넷을 위한 새로운 패러다임(예: 유비쿼터스)의 수용능력 부족
2. IPv4, IPv6 헤더 규격 비교
...
3. 주소 표기법
...
IPv4 에서 IPv6로의 이전
...
IPv6 를 지원하는 소켓을 만들고자 할 때는 PF_INET 대신에 PF_INET6를 사용하면 된다.
s = socket(PF_INET6, SOCK_STREAM, 0);
s = socket(PF_INET6, SOCK_DGRAM, 0);
○ bind는 socket() 를 이용해서 생성된 소켓 지시자 에 포트번호, 주소와 같은 소켓특성을 묶어주기 위해서 사용한다. 또한 사용하는 구조체에 있어서도 IPv4 와 차이가 있는데, IPv4용 구조체인 sockaddr_in 대신에 IPv6 에서 사용가능한 sockaddr_in6 구조체를 사용한다.struct sockaddr_in6 sin6;
....
sin6.sin6_family = AF_INET6;
sin6.sin6_flowinfo = 0;
sin6_sin6_port = htons(23);
sin6.sin6_addr = in6addr_any;
sin6.sin6_addr = in6addr_any;
sin6.sin6_scope_id = if_nametoindex("eth0");
....
if (bind(s, (struct sockaddr *)&sin6, sizeof(sin6)) == -1) { // 에러처리 }
○ IPv6는 소켓이 사용할 인터페이스를 지정해줘야 한다. 인터페이스 인덱스는 if_nametoindex 함수로 가져올 수 있다. 비교적 간단하게 인터페이스 인덱스를 가져올 수 있지만, 이 방식은 범용적 소프트웨어를 작성하는데 문제점을 가질 있는데, 컴퓨터마다 인터페이스 이름이 다를 수 있기 때문이다. 물론 ping6 처럼 프로그램 실행 인자를 이용해서 인터페이스 이름을 명시하는 방법이 있긴 하지만, 일반 사용자가 사용하는 네트워크 프로그램에서 인터페이스 이름을 넘기도록 한다는 건 결코 좋은 방법이 아니다. 때문에, 인터페이스 목록을 가져와서, 인터페이스의 주소 정보를 확인해서 그에 맞추어 자동으로 바인딩 해주는 식의 프로그래밍 기법이 필요하다.
참고 자료
없음