목적지가 공인 주소이고 출발지가 사설 네트워크인경우 서버로 요청을 보낼 수는 있음. (outbound)
반대로 목적지가 사설 네트워크이고 출발지가 공인네트워크인 경우 응답을 바로 받을 수 없음. (inbound) 인터넷에서는 목적지가 사설 주소로된 IP 패킷은 폐기하기 때문이다. → N 개의 사설망에서는 사설 아이피가 중복될수 있기때문에 !!!!
라우터를 통해 외부로 트래픽이 나갈 때 사설 IP가 공인 IP 주소로 바뀌므로 공격자가 라우터 안 쪽에 있는 사설 IP 를 알 수 없기 때문에 최정 목적지로의 공격이 어려워져 내부 네트워크 및 호스트를 보호할 수 있다.
참고 https://www.stevenjlee.net/2020/07/11/이해하기-nat-network-address-translation-네트워크-주소-변환/
TCP/IP에서는 IP 주소를 지정해서 데이터(IP 패킷)을 전송 → IP 패킷은 PC나 서버등의 인터페이스까지 전송 → PC나 서버등의 인터페이스에서 MAC 주소를 식별을 ARP(Address Resolution Protocol) 를 이용하여 주소해석 을 한다.
ARP 동작 흐름
신뢰성 있는 애플리케이션 간의 데이터를 전송하기 위한 프로토콜로 TCP 를 사용하면, 애플리캐이션 프로콜에는 신뢰성을 확보하기 위한 구조를 넣을 필요가 없다.
전송절차
a. TCP 커넥션 맺기
데이터를 송수신하는 애플리케이션 간의 통신이 정상적으로 이루어질 수 있는지 먼저 확인하는 절차로, 이 프로세스를 3웨이 핸드쉐이크라고 부른다.
Client > Server : TCP SYN Server > Client : TCP SYN ACK Client > Server : TCP ACK
(SYN : Synchronize Sequence Numbers, ACK : Acknowledgement)
[STEP 1]
A클라이언트는 B서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 A클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것이다.
[STEP 2]
B서버는 SYN요청을 받고 A클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다린다. 이때 B서버는 SYN_RECEIVED 상태가 된다.
[STEP 3]
A클라이언트는 B서버에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 되는것이다. 이때의 B서버 상태가 ESTABLISHED 이다.
출처:
https://mindnet.tistory.com/entry/네트워크-쉽게-이해하기-22편-TCP-3-WayHandshake-4-WayHandshake
b. 애플리케이션 간 데이터 송수신
c. TCP 커넥션 끊기
TCP 헤더 형식