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

드림보이즈·2024년 6월 17일
1

Caravan analogy

각 자동차는 1비트이고, 톨게이트를 통과하는데 하나당 12초가 걸린다.

  • 마지막 자동차가 나가는데 12초 x 10 = 120초 = 2분
  • 자동차 이동 시간 : 1시간에 100Km = 60분
  • 전체 이동 시간 : 2 + 60 = 62분

Client-server architecture

Process communicating

- 참고 : p2p 아키텍처는 클라이언트 + 서버 프로세스 둘 다 가진다.

Sockets

  • 소켓은 통신을 가능하게 하는 '끝점'이다. (통로 혹은 문)
  • app 개발자가 app layer를 컨트롤 한다면, 나머지 계층은 OS가 컨트롤 한다.
  • Sokcet indexing = IP addr + port

계층 = 하위 계층의 기능을 상위 계층에서 가져다 사용한다는 뜻

각 계층에서 사용하는 프로토콜로는

  • App layer -> HTTP
  • Transport layer -> TCP/UDP
  • Network layer -> IP
  • Link -> wifi, lte...

등이 있다.

App이 어떤 Transport service를 원하는가


app 레이어는 아랫단인 Transport layer로 부터 다음 4가지의 기능을 필요로 한다.

  • data integrity : realible한 data transfer
  • timing : 제한 시간 내에 도착
  • throughput : 1초에 어느 정도의 데이터가 도착되어야
  • security

이 중 실제로 Transport 계층이 제공하는 것은 "Data integrity" 뿐이다.

Internet apps

Web = http


  • client = browser
  • server = web server
  • HTTP는 80포트를 사용하기로 무언의 약속을 하고, HTTP 메시지 교환 이전에 TCP 연결 부터 한다.

HTTP connections

  • non-persistent : 매번 요청마다 새로운 연결(TCP-connection)을 생성하고, 응답후 끊는 방식이다. (HTTP 1.0)
  • persistent :일정 시간동안 연결 유지해 다수 요청을 처리할 수 있도록 하나의 TCP 연결을 재사용함. (HTTP 1.1)

http 헤더에 keep-alive 부분이 persistent 연결을 유지하기 위한 매커니즘을 제공한다.
Http 1.1은 원래 기본적으로 모든 연결이 persistent 하나, 명시적으로 사용해 지속적으로 유지하도록 한다.

GET /index.html HTTP/1.1
Host: www.example.com
Connection: keep-alive
profile
10년 후 세계 최고 블록체인 개발자

0개의 댓글

관련 채용 정보