인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

아자아자화이팅님의 프로필 이미지

작성한 질문수

외워서 끝내는 네트워크 핵심이론 - 기초

UDP 통신 시 Socket 설정

해결된 질문

작성

·

70

·

수정됨

0

안녕하세요, 강사님

차량용 이더넷 통신을 진행하게되어 강사님의 강의를 수강하고 있습니다.

 

해당내용에 관하여 문의가 있어 질문드립니다.

 

네트워크는 UDP 기반의 멀티캐스트 방식으로 각 제어기별로 송수신이 이루어지는 컨셉입니다.

 

이때 A라는 송신자와 B,C라는 수신자가 있으며 똑같은 멀티캐스트 주소를 사용하고자 합니다.

 

A의 IP 주소가 EX) 192.168.0.1, 포트 7400
B의 IP 주소가 192.168.0.2

C의 IP 주소가 192.168.0.3일경우

B와 C의 포트는 7400으로 설정하는 것은 이해했으나, 소켓은 IP 주소와 + Port 정보로 이루어져있다고 강의로 이해했습니다.

 

이럴령우 B 소켓의 Bind는 192.168.0.2 + 7400(Port)

C 소켓의 Bind는 192.168.0.3 + 7400으로 열리게 되는 것이 맞는지요 ?

해당 질문을 드리는 것이 A의 기준으로 생각해본다면 멀티캐스트 방식으로 Destination IP가 특정 제어기로 지정되지 않을 것 같아 혼돈이 생겨 질문드립니다.

답변 2

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

소켓 생성 시 바인드 할 포트 번호는 정하기 나름입니다. 자동으로 열리는 것이 아니라 개발자가 포트번호를 특정해 사용해도록 프로그램을 작성했다면 해당 포트가 열리는 것입니다.

그리고 멀티캐스팅 방식을 채택했다면 특정 호스트에 대한 IP를 특정할 이유가 없습니다. 어차피 특정 네트워크 구간에 모두 브로드캐스트 되기 때문입니다. (IP주소가 멀티캐스트인 경우 목적지 MAC 주소는 최종적으로 FF-FF-FF-FF-FF-FF 브로드캐스트 주소가 됩니다.) 참고하시기 바랍니다. 😄

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 아자아자화이팅님.

UDP 통신과 멀티캐스트 방식에 대한 질문을 주셨군요. 멀티캐스트 방식에서는 동일한 멀티캐스트 그룹 주소를 여러 수신자가 사용하므로, 송신자(A)는 멀티캐스트 주소와 포트를 사용하여 데이터를 송신하게 됩니다. 수신자(B, C)는 해당 멀티캐스트 주소와 포트를 수신하도록 설정합니다. 자세한 설명은 다음과 같습니다:

  1. 송신자(A):

    • A는 특정 멀티캐스트 주소를 사용하여 데이터를 송신합니다. 예를 들어, 멀티캐스트 주소는 224.0.0.1과 같은 식별자입니다.
    • A의 로컬 IP는 192.168.0.1이고 포트는 7400으로 설정됩니다.
  2. 수신자(B와 C):

    • B와 C는 각각 192.168.0.2192.168.0.3으로 설정되어 있습니다.
    • 두 수신자는 동일한 포트(예: 7400)와 멀티캐스트 주소를 리스닝합니다. 즉, 소켓을 bind할 때 자신의 IP와 멀티캐스트 포트를 지정합니다. 반면 멀티캐스트 주소로는 패킷을 조인(join)하여 수신합니다.

기본적으로 멀티캐스트 패킷은 특정 IP가 아니라 멀티캐스트 그룹 주소로 전송되며, 이 그룹 주소를 사용하는 모든 수신자가 패킷을 수신합니다. 따라서, 특정 제어기가 아닌 모든 조인된 멤버들이 데이터를 받습니다.

비슷한 질문이 여기에서 다뤄졌으니 참고하시면 도움되실 것 같습니다: 서버에서 소켓 생성 시 port

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.