[Spring] 처음으로 해보는 Spring 공부

석연걸·2025년 1월 20일

스파르타 코딩클럽

목록 보기
8/17

인터넷 프로토콜(IP)

  • IP 주소란 각 기기간의 통신을 식별할 수 있는 전화번호 같은 것이다.
  • 인터넷 통신 시 지정한 IP 주소에 데이터를 패킷(Packet)이라는 단위로 전달한다.

패킷(Packet)

  • 소스 IP(출발지), 대상 IP(도착지)를 포함해 어떤 컴퓨터에 데이터를 전송할지 판별할 수 있다.
  • 헤더, 페이로드, 트레일러(수신여부 포함)로 구분된다.
  • ★ 데이터를 주기만 하는 것이 아닌 받고 응답한다.

TCP (Transmission Control Protocol)

  • 서버와 클라이언트 간 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜
  • 3 Way HandShake 방식을 이용
    1. SYN 접속 요청
    2. ACK 요청 수락 -> ACK가 없으면 연결 실패
    3. ACK로 수락에 대한 응답 -> 데이터도 함께 전송 가능

  • SYN 이란?
    • 클라이언트가 서버에게 연결을 요청하는 첫 번째 단계이다.
    • 클라이언트는 서버에게 "연결을 시작하고 싶다"라는 의사를 나타내기 위해 SYN 플래그가 설정된 패킷을 전송
    • 패킷에는 시퀀스 번호가 포함 되어있고, 데이터 전송 순서를 관리할 준비를 함.

  • ACK 이란?
    • 서버가 클라이언트의 SYN 패킷을 받고, 이를 확인했다는 신호이다.
    • 서버는 자신도 연결을 하고싶다는 신호로 SYN 플래그와 함께 ACK 플래그가 설정된 패킷을 전송한다.
    • 이때, 서버는 클라이언트의 시퀀스 번호에 1을 더해 ACK로 응답한다.
  • 데이터 전송 여부 : TCP를 통해 통신하면 데이터를 잘 받았다는 응답을 반환해준다.

  • 패킷 순서 : 패킷이 나뉘어져 오더라도 순서를 보장해준다.

  • TCP 단점 : 신뢰성이 있지만 연결하는 과정과 데이터 전송에 시간이 많이 소요된다. (3 Way HandShake 과정을 거치는 속도가 매우 느림)


UDP (User Datagram Protocol)

  • 비연결형, 신뢰성이 없는 전송 프로토콜이라 속도가 굉장히 빠르다.
  1. IP 방식과 거의 비슷하다.
    • 3 Way HandShake를 사용하지 않음 (비신뢰성)
  2. 추가적인 기능이 거의 없다.
    • 추가적인 기능이 없어 속도가 굉장히 빠름
  3. IP 와의 차이점으로 PORT가 존재함
    • TCP에도 PORT는 존재한다
  4. 데이터 무결성 검사 (체크섬)을 포함하고 있다.
    • 잘못된 데이터가 전송되지 않도록 해줌

PORT

  • 같은 IP내 프로세스를 구분하기 위해 사용된다.
  • 만약 같은 IP에서 동시에 여러 프로그램이 실행된다면 IP주소는 같은데 패킷의 도착지를 어떻게 식별할 것인가?
  • 위의 질문의 해답으로 PORT는 프로그램을 구분하기 위해 있는 것이다.
  • 쉽게 말하면 PORT는 IP라는 아파트 한 동의 몇호 같은 존재이다.

TCP/IP 패킷 구조 : 소스 PORT와 대상 PORT를 포함한다.

  • 자주 사용되는 PORT
    • HTTP : 80
    • HTTPS : 443

DNS (Domain Name System)

  • 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 읽을 수 있는 IP 주소로 변환하는 역할을 한다.
  • 동작 순서
    1. 원하는 이름의 도메인을 구매 후 DNS 서버에 등록
    2. 도메인 명을 입력하면 DNS 서버는 IP 주소를 반환
    3. 만약 IP가 변경되면 DNS 서버에 등록된 IP만 변경하면 됨
    4. 우리는 IP 형태가 아닌 도메인 형태로 웹에 접속

URI (Uniform Resource Identifier)

  • 인터넷 자원을 식별할 수 있는 문자열을 뜻한다.
  • URI는 Locator, Name 혹은 둘 다로 추가로 분류될 수 있다.

URL (Uniform Resource Locator)

  • 자원의 위치를 의미한다.
  • 일반적으로 도메인 주소로 알려져있음.
  • 프로토콜을 포함한다. (https)

URN (Uniform Resource Name)

  • 자원의 이름을 의미한다.
  • 자원의 위치가 변경되어도 이름으로 자원을 찾기 때문에 잘 동작한다.
  • 프로토콜을 포함하지 않는다.
  • URN으로 실제 자원에 접근하는 것은 대중화 되어있지 않다.

URL 방식의 한계

  • 자원의 위치를 변경하면 기존 URL은 사용할 수 없다.
  • 브라우저 창에 어느 홈페이지를 검색하면 URL이 노출된다.
  • 만약 URL이 바뀐다면 기존 경로로 아는 사람들은 검색 페이지의 URL이 업데이트 되지 않으면 찾을 수 없다.
  • 이러한 한계를 극복하기 위해 URN이 등장했다.

0개의 댓글