공유기는 NAT (Network Address Translation, 네트워크 주소 변환) 기법을 사용한다.
공유기에 연결된 컴퓨터 A가 패킷을 보내면 공유기는 그 패킷 정보를 NAT 테이블에 저장하고 외부로 전송한다. 패킷을 받은 외부 서버가 응답 패킷을 공유기로 보내면 공유기는 저장된 NAT 테이블을 이용하여 외부 서버에서 받은 패킷을 컴퓨터 A로 전송한다.
다음과 같은 공유기가 있다고 하자.
연결할 외부 서버 공인 주소 : 100.100.100.1 포트=21
공유기 공인 주소 : 200.200.200.1
공유기에 연결된 클라이언트 사설 주소 : 192.168.0.1
1. 공유기에 물린 클라이언트가 공유기에 다음과 같은 패킷을 보낸다.
서버 주소 : 100.100.100.1 포트=21
클라이언트 주소 : 192.168.0.1 포트=1
2. 공유기에서는 클라이언트 주소를 공유기 공인 주소로 변환하고 포트도 또한 변환하여 외부 서버로 전송하고 이 주소 변환 테이블을 저장한다.
서버 주소 : 100.100.100.1 포트=21
클라이언트 주소 변환 : 192.168.0.1 포트=1 -> 200.200.200.1 포트=200
3. 외부 서버에서 공유기로 오는 응답 패킷은 위의 변환 테이블로 다음과 같이 변환하여 192.168.0.1 주소의 컴퓨터로 보낸다.
서버 주소 : 100.100.100.1 포트=21
클라이언트 주소 변환 : 200.200.200.1 포트=200 -> 192.168.0.1 포트=1
포트는 16비트로 65535개이다. 포트 0번은 사용하지 않는다.
서버의 포트 80은 웹서버이지만 클라이언트에서 보내는 포트는 65535개 중에서 아무 포트나 사용해도 된다.
공유기 내에 연결되어 있는 컴퓨터는 기본적으로 클라이언트로만 동작한다. 공유기 내의 서버가 있다고 할 때 외부에서 서버를 접속하려고 공유기에 접속하면 외부에서 접속하는 컴퓨터에 대한 정보가 주소 변환 테이블에 없기 때문에 공유기의 어느 컴퓨터로 패킷을 전달할지 알 수가 없다. 공유기에서 서버를 동작시킬려면 포트포워딩 기법을 사용해야 한다.
@ 사설 IP 주소
'컴퓨터공학 > 네트워크' 카테고리의 다른 글
통신 계층 모델 : OSI 모델과 TCP/IP 모델 (0) | 2017.09.06 |
---|---|
TCP/UDP의 포트 (0) | 2017.08.16 |
서브넷 마스크 (Subnet Mask)의 이해 (1) | 2017.08.15 |
공유기에서 192.168 주소를 사용하는 이유 (1400) | 2017.08.15 |
CRC의 에러 검출 확률 (0) | 2017.08.06 |
댓글