NAT
NAT는 Network Address Translation의 약자로, IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술이다. NAT는 IPv4의 주소 부족 문제를 해결하기 위한 방법으로서 고려되었으며, 주로 비공인(사설) 네트워크 주소를 사용하는 망에서 외부의 공인망과의 통신을 위해서 네트워크 주소를 변환하는 것을 말한다. 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위해 사용하며, 쉽게말해서 외부망과 내부망을 나눠주는 기능을 한다.
NAT 통신망의 내부에서는 외부로 통신이 가능하지만 외부에서는 내부로 통신이 불가능하다. 여러 사설 네트워크를 사용함으로써 IP 주소를 절약할 수 있고 내부망 IP 주소를 외부로 알리지 않아 외부로부터의 침임이나 공격을 차단할 수 있다는 장점이 있다. 하지만 네트워크의 복잡성이 증가하고 그로 인한 네트워크의 지연에 영향을 미칠 수 있다는 단점이 있다.
TCP(Transmission Control Protocol)
1.
연결형 (connnection-oriented) 서비스로 연결이 성공(3 way handshake 방식)해야 통신이 가능하다.
2.
데이터의 경계를 구분하지 않는다. (바이트 스트림 서비스)
3.
데이터의 전송 순서를 보장한다. (데이터의 순서 유지를 위해 각 바이트마다 번호를 부여)
4.
신뢰성있는 데이터를 전송한다. (Sequence Number, Ack Number를 통한 신뢰성 보장)
5.
데이터 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(패킷 수가 과도하게 증가하는 현상 방지)
6.
연결의 설정(3-way handshaking)과 해제(4-way handshaking)
7.
전이중(Full-Duplex), 점대점(Point to Point) 서비스
8.
UDP보다 전송속도가 느리다.
UDP(User Datagram Protocol)
1.
비연결형 서비스로 연결 없이 통신이 가능하며 데이터그램 방식을 제공한다.
2.
데이터 경계를 구분한다. (데이터그램(datagram) 서비스)
3.
정보를 주고 받을때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
4.
신뢰성 없는 데이터를 전송한다. (데이터 재전송과 데이터 순서 유지를 위한 작업을 하지 않는다.
5.
패킷관리가 필요하다.
6.
패킷 오버헤드가 적어 네트워크 부하가 감소되는 장점.
7.
상대적으로 TCP보다 전송속도가 빠르다.
3 way handshake 방식
3 way handshake 방식은 서로의 통신을 위한 포트를 확인하고 연결하기 위하여 3번의 요청/응답 후에 연결이 되는 것을 말한다. 이 과정에서 가장 많은 시간이 소요되어 TCP 방식이 UDP 방식보다 속도가 느려지는 주요 원인이다.
127.0.0.1 / localhost / 192.168.x.y 차이
•
127.0.0.1
localhost와 마찬가지로 loopback(내 컴퓨터에서 내 컴퓨터로 응답을 보내는 기능 / 네크워크가 없어도 사용 가능)을 통해 자신의 ip 주소로 응답을 보내는 것이다. 따라서 본인의 기기에서 127.0.0.1로 서버를 띄우게 된다면 해당 기기에서만 접속이 가능하고 그 외의 다른 기기에서는 접속이 불가능하다.
•
localhost
DNS처럼 일종의 예약된 명령이다. 기기의 OS에서 localhost가 호출될 경우 어떤 ip로 redirect 시켜줄 지 미리 설정하여 사용한다. localhost에 127.0.0.1을 입력하게 되면 위의 동작과 똑같이 loopback을 통해 동작하게 된다.
•
192.168.x.y
192.168.x.y는 가정마다 사용되는 라우터(공유기)를 통해 사용할 수 있는 사설 IP 주소로 예약되어 있는 IP 주소들이다. 따라서 모든 라우터(공유기)의 사설 IP 주소는 192.168.0.1으로 통일되어 있고, 외부에서는 192.168.x.y에 접속할 수 없다. 만약 어떤 기기에서 서버를 띄우게 된다면 같은 라우터(공유기)에 접속되어 있는 사용자만 해당 서버에 연결할 수 있다.