| 리포트 | 기술문서 | 테크-블로그 | 원샷 갤러리 | 링크드인 | 스폰서 컨텐츠 | 네트워크/통신 뉴스 | 인터넷자료실 | 자유게시판    한국 ICT 기업 총람 |

제품 검색

|

통신 방송 통계

 
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 

2024

5G 특화망

포탈

Private 5G/이음 5G

 포탈홈

  넷매니아즈 5G 특화망 분석글 (136)   5G 특화망 4가지 구축모델   산업계 5G 응용   산업분야별 5G 특화망 활용사례  [5G 특화망 벤더Samsung | HFR | Nokia | more
 

해외

  국가별 사설5G 주파수 [국가별 구축현황] 일본 | 독일 | 미국 | 프랑스 | 영국  [사설5G 사업자] Verizon | AT&T | DT | Telefonica | AWS | Microsoft | NTT동일본 | NTT Com    
 

국내

  5G 특화망 뉴스 | 국내 5G 특화망 구축 현황 | 국내 5G 특화망사업자 현황 (19개사) | 국내 자가구축사례 일람 | 국내 특화망 실증사업사례 일람 | 5G 특화망 정책
 
 

[5G 특화망 구축 사례] 한국식품산업클러스터 | 반월시화산단 삼성서울병원 | 롯데월드 | 한국수력원자력 | 해군본부 | 한국전력공사 | more  [이통사] KT

 
 
스폰서채널 |

 HFR Mobile의 5G 특화망 솔루션 (my5G)  Updated   |   뉴젠스의 5G 특화망 구축 및 운영 서비스  NEW  

  스폰서채널 서비스란?
banner
banner
ip패킷을 내가 원하는 네트웍장치(eth2 ? 3)로 보내려면 어떻게 해야하나요?
Reg. Date: May 11, 2005 By 김용일

안녕하세요? 여러분의 도움을 얻고자 질문드립니다. 꼭좀 답변부탁드립니다.
 
제가 해야되는 일은 간단히 말씀드리자면

호스트A(윈도2000) 와 호스트B(윈도2000) 사이에 4대의 리눅스호스트 컴퓨터(1,2,3,4)가 존재하고 각각 4대의 컴퓨터는

랜카드(8139)가 3개씩 장착되어있습니다. 결과적으로는 A에서 B로 ping 테스트가 되어야하고 네트웍환경에서 보여서 파일을

주고 받을수 있으면 되는겁니다. 리눅스호스트 1,2,3,4는 서로 마치 링구조처럼 물리적으로 연결을 하였습니다. 말로설명을

하려니 더 어려워보이는데 각각의 리눅스호스트에 제가 만들어야할 어플리케이션자체는 그러니까 어떤 라우팅기능이 있는것은

아니며 단지 가령 A에서 어떤 이더넷 패킷이 들어오면 1번 호스트의 eth0인터페이스로 패킷이 들어가게 될거고 그럼 1번 호스트

에서는 들어오는 패킷을 커널로 보내지않고 바로 어플리케이션에서 잡아서 여기서 데이터영역에 약간의 변경을 한뒤 곧바로

eth1이나 eth2로 내보내기만 하면 되는데 결국 eth0, eth1, eth2 어느 네트웍디바이스로 패킷이 들어올지 모르기 때문에 모든

네트웍디바이스에 대해서 패킷을 감시 주시를 해야하는 프로그램이 필요하며 패킷을 어플리케이션에서 받아서 원하는 네트웍장치

로 보내주면 되는겁니다. libcap같은 api함수를 이용하면 모든 디바이스로부터 들어오는 패킷을 처리할수 있다고 문서를 찾아보았는데

그럼 이 패킷을 내가 원하는 네트웍장치로(eth0로 들어와서 eth1이나 eth2로 보낼려면)보내려면 어떻께 해야할지 이걸 모르겠습니다.

보통 패킷을 네트웍으로 보낼때는 어떤방법을 사용하는지요? 문서를 찾아보니 libnet인가하는것으로 이용하는거 같은데 이 경우도

보낼 네트웍장치의 선택은 어떻게 하는지도 궁금하구요. 또는 아래처럼 raw 소켓을 이용해서 보내는 방법이 있던데 가령

sock = socket(PF_INET, SOCK_RAW, IPPROTO_RAW);
sendto(sock, &msg,*LENGTH_OF_MSG*,0,&sin,sizeof(sin));
 
여기서 소켓에 뿌려줄 데이터는 IP 패킷이고 그럼 이 IP패킷이 실제로 네트웍 드라이버를 통해서 랜상에 전송이 되는거
 
같은데 그럼 이더넷 헤더를 붙여서 완전한 이더넷 패킷을 만들어주는것은 네트웍드라이버가 해주는건가요?
 
이와같이 구성이 된다고 가정할경우 호스트 A에서 최종 B로 ping test를 하면 이상이 없을까요?

조언을 부탁드립니다.
 

장선연 2005-05-18 16:08:48
패킷을 기다리는 프로그램은 네트워크 카드에 독립적입니다. 다시 말하면, 포트만 같다면 어떤 네트워크 카드로 들어오던지 모두 받을 수 있습니다. 그리고, 현재 받은 패킷이 어떤 카드(IP)로 들어온지 알고 싶을때는 libcap에서도 함수를 지원하지만, 일반 소켓 관련 라이브러리에서도 지원합니다. 그렇게 해서 그 패킷에 수정을 가하고, 그 패킷을 다시 보내시면 됩니다.

일반적으로 libcap에서는 이런 기능들을 지원하는 함수를 제공합니다.

네트워크 카드의 선택은 destination IP에 의해서 자동으로 선택이 됩니다. 그 카드가 어떤 IP대역에 물려있는지에 따라 PACKET이 스택단에서 나누어집니다.
패킷을 만드는 것과 (헤더를 붙이는 작업) 이더넷 카드를 선택하는 것은 전적으로 OS에서 해주는 일이죠.

* 중간 gateway같은 프로그램 만드시나 보네요? ^^; 아주 오래전에 이런 프로그램 비슷한거 libcap으로 해봤던 기억이 나네요..지금은 가물~
Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2020년 1월 현재 넷매니아즈 회원은 47,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를 이메일 뉴스레터로

   발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드받으실 수 있습니다. 

     
     

 

     
         
     

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호