1 분 소요

인터넷 네트워크


인터넷 프로토콜 스택의 4계층


  • 애플리케이션 계층 (HTTP,FTP)
    • 가장 최상위의 계층
    • socket 라이브러리를 통해 요청 전달
  • 전송 계층 (TCP,UDP)
  • 인터넷 계층 (IP)
  • 네트워크 인터페이스 계층
    • 랜카드, 랜드라이브 등을 의미한다.


애플리케이션 계층에서 요청 받은 데이터를 socket 라이브러리를 통해 전달하고 이후 TCP -> IP 의 순서로 정보가 생성되어 마지막에 네트워크 인터페이스에서 Ethernet frame 으로 전달된다.


IP(인터넷 프로토콜)


  • 지정한 IP 주소에 데이터 전달
  • 패킷이라는 통신 단위로 데이터 전달


IP 패킷


  • 출발 IP 와 목적 IP 의 주소와 그 외 내용을 포함한다.
  • 클라이언트와 서버간에 인터넷의 여러 노드를 통해 통신한다.


IP 프로토콜의 한계


  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 신뢰성이 낮다.
    • 패키지의 순서가 보장되지 않는다.
  • 프로그램 구분
    • 같은 IP 에서 여러 app이 구동될 때 구분할 수 없다.


TCP


  • 출발 port, 목적 port 정보를 가진다.
    • port를 통해 프로그램을 구분한다.
  • port 정보 외에도 전송 제어, 순서, 검증 등의 다양한 정보를 포함한다.
  • 연결지향
    • IP 의 비연결성을 해결한다.
  • 데이터의 전달을 보증하고 순서를 보장한다.
    • IP 의 비신뢰성을 해결한다.
  • 신뢰할 수 있는 프로토콜이다.


TCP 3 way handshake


TCP 에서 클라이언트와 서버가 통신하는 방식이다.


  1. SYN 으로 서버의 연결을 확인한다.
  2. 서버에서 연결이 가능한 상태를 응답하기 위해 SYN + ACK 로 응답한다.
  3. 클라이언트는 응답을 받은 후 응답에 대한 확인을 ACK로 응답한다.
  4. 데이터를 전송한다.


IP에서 클라리언트가 서버 연결 여부와 상관 없이 데이터를 전송했다면 TCP 를 통해 서버의 연결여부를 3단계에 걸쳐 확인한 후 데이터를 전송한다.


요즘에는 최적화가 잘 되어서 서버와 연결을 확인된 직후인 3단계에서 서버의 응답을 확인했다는 응답과 함께 데이터를 전송하기도 한다.


순서 보장


  • 클라이언트가 지정한 데이터 순서와 다르게 서버가 데이터를 전송 받았다면 TCP 의 전송 제어 정보를 통해 클라이언트로 잘못된 순서부터 다시 데이터를 요청한다.


UDP


UDP 는 IP와 거의 동일하며 IP에서 port정보만 추가된 정도의 프로토콜이다.

심플한만큼 TCP에 비해 추가작업이 용이하며 최적화에 유리하다.


PORT


  • 어플리케이션 별로 IP주소에 별도의 세부 주소를 정의한다고 생각하면 된다.

    • 해당 세부 주소를 통해 동일 IP에서 어떤 어플리케이션에 데이터를 전송할지 구분한다.
  • 0~65535 까지 할당 가능하다.

  • 0~1023 : 잘 알려진 포트로 사용하지 않는 것을 권고한다.


DNS


  • IP가 변경될 수 있고 사람이 인식하기에 복잡하고 어려운 구조를 가진 단점을 보안하기위한 기능이다.
  • DNS 서버를 통해 특정 IP 에 도메인을 부여하여 해당 도메인으로 서버에 접근할 수 있도록 도와준다.


댓글남기기