NAT란? Network Address Translation 의 약자로 우리말로 표현하면 주소변환으로 표현할 수 있다. 내부망에서 사설IP(Private Address)를 사용하다가 외부망으로 나갈 때 공인IP(Public Address)로 IP와 Port를 변환해주는 기능을 말한다. 사용하는 이유는 공인IP의 부족과 보안상의 이유가 있다. IP 주소는 주소변환장치(여기서는 Router)에 할당된 주소로 변경하고, Port 번호는 임의의 Port를 할당한다. 그리고 이 두개를 묶어 송신지/수신지가 대응되는 NAT Table에 기록한다. 기록하는 이유는 수신지로부터 회신이 왔을 때, 목적지가 공인IP(Router)로 올텐데 이 때 어느 Node에게 온 패킷인지 구분하기 위함이다. 위에를 이해했다면 알겠지만..

Step 1. Application에서 Socket Library의 socket함수 호출. (소켓 정보가 저장될 메모리공간을 확보한다.) 확보한 메모리에 해당 소켓이 초기상태이라는 것을 기록하고 파일 디스크럽터를 Application에 반환한다. Step 2. Application에서 connect함수 호출. → 서버측 socket에 접속한다. 이 과정에서 TCP Header을 통해 제어정보를 교환해 소켓에 필요한 정보를 기록하고 송/수신이 가능한 상태로 만들게 된다. 송/수신이 가능한 상태라는 것은 버퍼메모리를 확보하는 것 까지를 말한다. 여기서 Socket Library는 URL을 참고해 서버의 IP/Port 등의 정보를 Protocol Stack에게 넘겨주게 된다. (서버측은 Handshake를 통..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.