• 카테고리

    질문 & 답변
  • 세부 분야

    네트워크

  • 해결 여부

    해결됨

NAT 관련하여 질문드립니다

23.01.12 01:55 작성 조회수 259

0

  1. 외부 포트 번호는 단순히 테이블의 키로써 사용되는 것이 목적인가요?

  2. 왜 하필 포트 번호인가요? 아마 다른 방법도 있었을 법한데... 소스 포트 번호가 중간 통신 과정에선 잘 안쓰여서 그런건가요?

  3. 두 호스트가 각각의 공유기에 물려있을 때는 서로 P2P 통신이 불가능하다고 하셨는데, 이는 테이블에 기록된 임의의 외부 포트 번호를 알 수가 없기 때문인가요?

  4. 이건 제 개인적인 궁금증인데요...ㅎㅎ;; 스타크래프트같은 게임들은 같은 LAN 상에 존재하는 호스트들끼리 멀티플레이가 가능하곤 했는데요, 이것의 원리가 궁금합니다. 어떻게 특정 호스트가 특정 포트를 열어놨는지 알 수 있나요? 그냥 브로드캐스트 같은 걸 반복 송신하는건가요?

선생님 강의를 듣고 요즘들어 부쩍 네트워크에 대한 호기심이 늘은 것 같습니다. ^^

아예 전공책도 좀 선생님께서 읽어주셨으면 하는 마음인데요~~ㅎㅎ... 농담입니다

정말 좋은 강의 감사드립니다~~!!

답변 1

답변을 작성해보세요.

1

새벽까지 공부하시나 봅니다. ^^

  1. 네, 그렇다고 봐야 합니다. 그리고 더불어 보안적인 장점도 생깁니다.

  2. 간단합니다. 세션 하나를 식별할 때 중복을 확실히 줄일 수 있기 때문입니다.

  3. 네, 맞습니다.

  4. 웹 서버에 접속할 때 굳이 접속 번호 80번을 명시하지 않습니다. 안 쓰면 80번이기 때문입니다. 스타크래프트 같은 게임은 게임 프로그램이 사용하는 포트가 정해져 있습니다. 그러니 이미 알고 접근하는 것으로 이해하면 되겠습니다. 같은 맥락에서 P2P 통신이 이루어지는 모든 게임들이 다 그렇습니다. 서로 사용하는 포트 번호를 이미 알고 있습니다.

전공책에 대한 이야기 중 제가 꼭 하고 싶은 것은 '컴파일러' 부분입니다. 이미 운영체제와 가벼운 컴퓨터 구조 이야기는 강의가 있습니다. 컴파일러에 대해서도 곧 강의를 올리겠습니다. 감사합니다. ^^

sete님의 프로필

sete

질문자

2023.01.12

헉~~칼답변 감사드립니다 선생님 ^^
전 이상하게 새벽에 공부가 잘되더라구요 ㅎㅎ
근데 제가 4번에 대해서 좀만 더 질문드리면은...
같은 LAN에 존재하는 호스트들을 어떻게 인식할 수 있는지가 궁금한데요,
게이트웨이에 그러한 사설IP들이 저장된 테이블이라도 있는건지, 그래서 그걸 가져와서 일일이 다 확인해 보는건지...
아니면 그냥 정해둔 포트 번호로 브로드캐스트를 주기적으로 전송하고, 답신이 오면 그제서야 세션을 만드는 건지 궁금합니다.
그리고 만약 다른 프로세스가 그 포트 번호를 선점하고 있다면 이는 또 어떻게 해결할 수 있는 지도 궁금합니다...
궁금한게 너무 많아서 질문할 때마다 참 난감합니다 ㅠㅠ
번거로우시겠지만 잘좀 부탁드립니다. ㅠㅠ

서로 인식하지 않습니다. 그래서 서로를 인식할 수 있도록 주선해주는 서버가 필요한 것이지요. 만일 서버가 없는 방식이라면...최초 스타크래프트 게임이 처음 나왔을 때 IPX/SPX로 통신할 때는 LAN 환경에서만 다중 사용자 대결이 가능했습니다. 그 때는 질문자님이 생각하는 것처럼 브로드캐스트를 했습니다. 그렇게 서로를 인식할 수 있었지요.

포트 번호가 선점된 경우라면 작동을 하지 못하게 되거나 다른 번호를 사용하도록 변경할 수 있는 기능을 구현하면 됩니다.

질문 많아도 괜찮습니다. 난감하지 말고 언제든 질문주세요. 사람은 저마다의 이유로 이해하지 못합니다. 자신의 이유를 찾는 노력은 스스로 해야 하며 불편한 감정을 무릅쓰는 노력은 이해를 향한 절차 혹은 방법론으로 이해하고 감수하면 됩니다. 괜찮습니다. ^^

sete님의 프로필

sete

질문자

2023.01.12

글쿤요... ㅎㅎ
옛날엔 무심코 지나쳤던 것들이 이젠 참 새롭게 보이네요
모두 선생님 덕분이겠지요 ^^ 항상 친절한 답변 감사드립니다

채널톡 아이콘