2017-04-14 4 views
0

두 컴퓨터 A와 B가 동일한 모뎀에 연결되어 있거나 동일한 ISP에서 인터넷을 얻고 있다고 가정합니다. Google에서 검색 할 때 "내 IP 주소는 무엇입니까?" 그것은 컴퓨터 A와 B 14.141.56.230 모두에서 동일한 IP 주소를 보여줍니다. 내가 보낸 사람이 컴퓨터 A에 데이터를 보내고 싶다면 모뎀이나 라우터가이 패킷이 컴퓨터 B가 아니라 컴퓨터 B에 속한다는 것을 어떻게 인식 할 것인지, 둘 다 동일한 IP 주소를 가지고 있는지를 알고 싶습니다.보낸 사람이받는 사람에게 패킷을 전달하는 방법

+2

서버 오류에서이 질문을해야 할 것 같습니다. 스택 오버플로는 프로그래밍 용입니다. – Jer

+0

OSI는 모양이나 형태에 관계없이 사용하고 있지 않습니다. [태그 : osi] 따라서 njava 할 일이있다. – EJP

답변

0

이것은 NAT의 역할입니다. 외부 서버는 A 또는 B에 직접 연결할 수 없습니다. A 또는 B는 먼저 서버에 연결해야하므로 NAT가 외부 서버가 수신 한 패킷을 처리하는 방법을 알고 있습니다.

특히 this 흥미 같아야

개인 (내부) 네트워크에있는 컴퓨터에서 외부 네트워크로 IPv4 패킷을 전송하고 NAT 장치의 소스 필드에 내부 IP 주소를 대체 NAT 장치의 외부 IP 주소가있는 패킷 헤더 (보낸 사람 주소). 그런 다음 PAT는 사용 가능한 포트 풀에서 포트 번호를 연결에 할당하고 소스 포트 필드에이 포트 번호를 삽입하고 (우체국 상자 번호와 유사) 패킷을 외부 네트워크로 전달할 수 있습니다. 그런 다음 NAT 장치는 내부 IP 주소, 원본 원본 포트 및 변환 된 원본 포트가 들어있는 변환 테이블에 항목을 만듭니다. 동일한 연결의 후속 패킷은 동일한 포트 번호로 변환됩니다.

A가 A의 라우터 R에 도달하면 R은 패킷의 소스 IP를 변경하고 포트 P를 할당 한 다음 E가이 포트 P를 A에 할당했다는 것을 기억합니다. E가 포트 P에서 R에 응답하면 라우터는 이것을 다시 역으로 변환하여 A로 패킷을 전달합니다.

이는 E가 A에게 직접 연결할 수 없음을 의미합니다 . A가 연결을 시작해야합니다. 이제 A와 E가 모두 NAT 뒤에있는 경우를 생각해보십시오. 둘 다 직접 연결을 시작할 필요가 있습니다. 해결책을 찾으려면 TCP hole punching을 조사해야합니다.

+0

자세히 설명 드리겠습니다. – vivek