리눅스 mac address 와 ip 바인딩
안녕하세요.
리눅스에서 프로그래밍을 하고 있는데 막히는 부분이 있어서 질문 올립니다.
한개의 보드에 2개의 네트워크 카드를 올려서 실험을 하고 있는데
2개의 소켓과 각각 네트워크 카드를 바인딩하여 속도가 얼마나 빨라지는지 보고 있습니다.
그런데 문제가 소켓과 네트워크 카드를 바인딩해서 데이터 전송 하는 과정에서는 ip가 2개가 나오는데 속도가 바뀌지 않아 wireshark를 통해서 실제로
확인을 해보니 1개의 네트워크 카드만을 사용해서 데이터를 전송하는 것을 확인 했습니다.(mac주소가 1개만 나옴) 어떻게 해야 2개의 네트워크 카드를 통해서 데이터를 전송할 수 있을까요?? mac address binding ip address 이런 문제로 생각 할 수 있을 것 같습니다.
clnt_adr.sin_family=AF_INET;
clnt_adr.sin_addr.s_addr=inet_addr(dargs->nic1);
clnt_adr.sin_port = htons(9999);
bind(fd,(struct sockaddr*)&clnt_adr,sizeof(clnt_adr))
clnt_adr.sin_family=AF_INET;
clnt_adr.sin_addr.s_addr=inet_addr(dargs->nic2);
clnt_adr.sin_port = htons(9998);
bind(fd,(struct sockaddr*)&clnt_adr,sizeof(clnt_adr))
이런식으로 쓰레드 두개를 네트워크 카드와 연결 했습니다.
여기서 바인딩은 들어오는 패킷에만 해당되는거고 나갈
여기서 바인딩은 들어오는 패킷에만 해당되는거고
나갈 때는 라우팅 테이블보고 장치가 결정되는데 아마 이 경우라면 이더넷본딩을 알아보시는게 좋을 듯해요
댓글 달기