[네트워크] 컴퓨터 네트워크 기본2

may.log·2023년 9월 12일
post-thumbnail

IP 주소와 호스트명

IP 주소는 인터넷을 이용할 때 사용하는 주소
시스템은 주소를 숫자로 구분하는게 편하지만, 사람은 주소를 이름으로 구분하는 것이 더 편함. 따라서 IP주소 외 호스트명을 지정.
예를 들어, 호스트명이 www.naver.com인 시스템의 IP주소는 111.123.45.6이다.

인터넷에서 사용하는 호스트명은 '호스트명+도메인명' 형태로 구성된다.
www.naver.com의 경우 www는 호스트명, naver.com은 도메인명이다.호스트명과 도메인명을 관리하는 시스템을 DNS라 한다.

포트번호

IP주소는 데이터가 전송될 목적지 호스트를 알려주는 역할을 함. 그런데 목적지 호스트에는 여러 기능을 수행하는 서비스 프로세스들이 동시에 동작하고 있을 수 있다. 따라서 전송되어 오는 데이터를 어느 서비스 프로세스에 전달할 것인지 구분해야 한다.
인터넷에서도 IP 주소 외에 서비스를 구분하는 다른 정보가 필요하다. 이때 사용하는 것이 포트번호이다.

프로세스란?

실행 중에 있는 프로그램을 의미한다.
하드디스크에 있는 프로그램을 실행하면, 실행을 위해 메모리 할당이 이루어지고, 할당된 메모리 공간으로 바이너리 코드가 올라가게된다. 이 순간부터 프로세스라 불린다.

프로세스 내부에는 최소 하나의 스레드를 가진다.

소켓과 포트번호의 차이

  • 소켓은 특정 포트에서 데이터를 송수신하는 인터페이스,
    포트는 특정 프로세스에 할당된 숫자 값이다.

  • 소켓은 특정 포트를 통해 데이터를 주고 받는 인터페이스 역할,
    포트는 특정 프로세스를 식별하는데 도움을 준다.

  • 소켓 정보에는 네트워크 주소(IP주소)와 포트번호 포함. 이것들을 통해 소켓 개설 가능

  • 소켓은 다른 컴퓨터간 프로세스간 통신을 도와주는 인터페이스

응용계층(Application Layer)

endsystem에서 존재

응용계층 구조

client-server 구조 : 서버와 클라이언트 간 통신
ex) 구글 서버에 클라이언트가 데이터를 요청하는 방식으로 검색
Peer to peer 구조 : 호스트끼리 직접 통신

응용계층 프로토콜

클라이언트 속 애플리케이션과 서버 측 애플리케이션과 통신하려면 응용계층의 프로토콜을 사용해야 한다.

HTTP

  • HypterText를 전송하는 프로토콜

  • 웹의 애플리케이션 계층 프로토콜

  • 클라이언트와 서버 프로그램으로 구현된다

  • 서로 다른 종단 시스템에서 수행되는 클라이언트, 서버 프로그램은 서로 HTTP 메소드(Http request, response)를 교환하여 통신한다.

  • tcp를 기반으로 통신한다. (tcp를 사용한다)
    - http2는 TCP 방식으로 HTTP 메시지를 주고 받는다. 쉽게 말하면 메시지 형식에 대해 http가 룰을 제시하고, TCP방식으로 메시지를 전달하고 있는 것이다.
    http3는 속도를 위해 UDP를 사용한다고 한다.

  • HTTP는 상태가 없다. 직전에 같은 IP주소에서 똑같은 주소로 요청을 보냈든지, 상관없이 다음 요청은 이에 대한 내용을 전혀 모른다. 요청이나 응답의 히스토리를 HTTP가 관리하지 않지만, 브라우저나 서버는 여러 가지 방식으로 상태를 저장한다. 대표적인 예시로 브라우저의 쿠키, 서버의 세션이 있다.

0개의 댓글