본문 바로가기
📝Computer Science/network

네트워크 기본(2)

by haegomm 2023. 7. 4.

 네트워크 계층 

네트워크 계층은 edge(클라이언트, 서버)에만 존재, 라우터에는 network 계층까지만 존재


 Client-Server Architecture 

Application?

  • 네트웤 엣지의 클라이언트와 서버가 동작하는 것

 Server 

  • 항상 열려있어야 함 (Always on host)
  • 자신만의 고정된 식별 주소를 갖고 있어야함 (Permanent Ip Address)

 Client 

  • 서버와 통신(Communicate with server)
  • 간헐적으로 껐다 켰다 할 수 있음 (Maybe intermittently connected)
  • 동적 IP 주소를 가질 수 있음 (May have dynamic IP address)
  • 서로 다른 클라이언트끼리 직접적으로 통신하지 않 (Do not communicate directly with each other)

 Process Communicating 

 Inter-process communication 

  • 프로세스들 사이의 통신
  • Inter-process communication을 위해서 os가 인터페이스를 만들어놨음
    • 이 인터페이스가 소켓!

 Sockets 

  • 프로세스는 소켓을 통해 메시지를 주고 받음
    • 소켓 === 인터페이스
  • 소켓 통신을 할려면 소켓 주소를 알아야하는데 그때 필요한 것이 ip주소와 port
    • 컴퓨터 안에 많은 프로세스들이 돌고 있고, 그 중에서 또 통신하고 싶은 프로세스를 지칭해야하는데 그게 바로 port!
  •  ip주소 
    • 네트워크 상에서 내 컴퓨터 주소
  •  port 
    • 특정 컴퓨터 내에서 특정 프로세스 주소 ⇒ 소켓

우리는 웹브라우저를 쓰고 있음 웹브라우저 실행 후 웹브라우저는 다른 컴퓨터에 위치한 어떤 프로세스(구글, 네이버)와 연결된 상태 네이버 프로세스에 해당하는 소켓을 입력해야 접속이 되는데 어떻게 입력? → www.naver.com 실제로는 네이버 컴퓨터 ip주소와 네이버 웹 서버 프로세스가 돌고있는 소켓 port ⇒ xxxx.80 근데 주소 외우기 귀찮으니깐 알파벳으로 → naver 주소 치면 내부의 DNS라는 시스템에 의해서 www.naver.com이 ip주소로 변환되어서 접근가능해짐

❓보통의 서버들이 80번 포트를 공통적으로 사용하는 이유는?

❗포트 넘버까지 전부 다르면 과정이 너무 복잡해지기 때문에 최소한 포트 넘버는 통일하자는 약속하에 공통적으로 80번 포트를 사용하고 있다


 Transport Service 

  • 네트워크 계층에서 하위 계층은 상위 계층에게 자신의 기능을 제공함
    • application계층은 transport계층에서 필요한 기능을 불러와 사용

 data integrity 

  • 데이터가 유실되지 않고 온전하게 목적지까지 도착했으면 좋겠어
  • transport 계층에서 TCP가 제공하는 기능

| 그 외 제공해줬으면 좋겠지만 제공해주지 않는 것들..

timing

  • 데이터가 정해진 시간 내에 도착했으면 좋겠어

throughput

  • 데이터가 최소한의 용량을 가지면 좋겠어

security

  • 데이터가 안전했으면 좋겠어

 HTTP 

  • Hypertext Transfer Protocol
  • HTTP가 application 계층 프로토콜이기 때문에 transport 사용함
  • 그 중 TCP를 사용하는데 요청 응답 이전에 TCP 커넥션이라는 걸 생성 해줘야함

 HTTP uses TCP 

TCP를 사용한 HTTP 통신 과정

1️⃣ 클라이언트는 소켓을 생성하여 서버와 TCP 연결 시작 (사용 포트는 80번)

2️⃣ 서버는 클라이언트로부터 TCP 통신을 받고 접속

3️⃣ HTTP 메시지(프로토콜 메시지)가 웹 브라우저(HTTP 클라이언트)와 웹 서버(HTTP 서버) 사이에서 교환됨

4️⃣ 통신이 끝나면 TCP 연결 종료

  • 한번 통신이 끝나면 연결을 종료하는 성질 → Connectionless

 HTTP is ‘stateless’ 

  • 상태가 없음
  • 서버는 요청 들어오면 응답을 보내주는 작업만 함. 이전의 요청 정보를 따로 저장하지 않음!

 HTTP Connections 

  • TCP를 사용하는 방법에 따라서 통신 방식이 두 가지로 나눠짐

 non-persistent HTTP 

  • 커넥션 - 요청 - 응답 - TCP끊기

 persistent HTTP 

  • 커넥션 - 요청 - 응답 - TCP 끊지 않고 재사용

참고 자료

컴퓨터네트워크

컴퓨터 네트워크 기본 2

'📝Computer Science > network' 카테고리의 다른 글

전송계층(2) _ TCP  (0) 2023.07.09
전송계층(1) _ GBN, Selective Repeat  (0) 2023.07.09
애플리케이션 계층(2) _ RDT  (0) 2023.07.06
애플리케이션 계층(1)  (0) 2023.07.05
네트워크 기본(1)  (0) 2023.07.04