살아가는 이유_EU
내가 살아가는 이유, 삶
살아가는 이유_EU
전체 방문자
오늘
어제
  • 삶 (159)
    • 이유's EATERY (16)
      • 맛집 (10)
      • 까페 (4)
      • 맛있는 Recipe (1)
    • 이유's LIFE (16)
      • 국내여행 (5)
      • 해외여행 (2)
      • 운동 (1)
      • 취업정보 (0)
      • 끄적끄적 (5)
      • 일기쟝 (3)
      • 세상 이야기 (0)
      • 결혼 준비 (0)
    • 이유's Programming (43)
      • JavaScript (6)
      • Java (7)
      • C++ (0)
      • DBMS (24)
      • Spring (3)
      • til (1)
      • HTTP (2)
    • 이유's REVIEW (13)
      • BOOK (6)
      • PROGRAM or MOVIE (5)
      • PRODUCT 제품리뷰 (2)
    • 이유's STUDY (31)
      • 수업 관련 (2)
      • IT 시사 (2)
      • IT NEWS (2)
      • IVIEW (0)
      • IOS 앱 만들기 (0)
      • 알고리즘 문제풀이 (23)
      • PM data literacy (2)
    • 이유's ENGLISH (13)
      • Writing about something! (12)
      • Feedback (1)
      • TIL (0)
    • 이유's DB 공부 (1)
      • MySQL DB (0)
      • Postgre (1)
    • Computer 공부 (17)
      • Backend question (10)
      • Clean architecture (2)
      • Operating system (2)
      • Network (3)
      • 항해 (0)

블로그 메뉴

  • 홈
  • EATERY's 맛집
  • CAFE 까페
  • Recipe 레시피
  • IT 공부
  • 방명록
  • 태그

공지사항

인기 글

태그

  • 삼돈식탁
  • 흑임자 크림
  • 고메커피
  • map 하는 법
  • 아메리카토노
  • Array로 접근
  • go hand in hand
  • React.memo
  • 송계옥
  • 영어공부
  • 맛집
  • 인절미 티라미수
  • key 로 접근
  • 묵리
  • 스테이크
  • 용인맛집
  • 자바스크립트
  • 용인추천
  • 고메동 카페
  • 자세요정
  • memoziation
  • have something to do with뜻
  • 스쿤브레드
  • have something to do with
  • 파스타맛집
  • 렌더링 수 줄이기
  • 피지오필로소피
  • 용인까페
  • 현명하게 리액트
  • 어게인마이라이프

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
살아가는 이유_EU

내가 살아가는 이유, 삶

HTTP - 커넥션 관리
이유's Programming/HTTP

HTTP - 커넥션 관리

2024. 7. 19. 15:17
728x90
반응형

HTTP 명세는 HTTP 메시지에 자세하게 설명하고 있지만, HTTP 커넥션과 이제 그것이 어떻게 사용되는지 잘 알고 있어야 한다. 

 

어떤걸 배우는지?

- HTTP 는 어떻게 TCP 커넥션을 사용하는가

- TCP 커넥션의 지연, 병목, 막힘 

- 병렬 커넥션, keep-alive 커넥션, 커넥션 파이프라인을 활용한 HTTP 의 최적화

- 커넥션 관리를 위해 따랴아할 규칙들

 

TCP 커넥션?

전 세계 모든 통신들은 이제 대부분 이 TCP 커넥션을 맺어서 이루어진다...!

 

1) 브라우저가 www.google.com  호슽명을 추출@

 

2) 이 브라우저가 호스트 명에 대한 IP 주소를 찾아낸다. 

 

3) 브라우저가 포트번호를 얻는다

 

4) 브라우저가 서버로 HTTP GET 요청 메시지를 보낸다

브라우저 --> 서버

 

5) 브라우저가 서버에서 온 HTTP 응답 메시지를 받는다

서버 --> 브라우저

 

6) 브라우저가 커넥션을 끊는다. 

 

라는 위의 일련의 과정을 통해서 진행이 됩니다. 또한 TCP 는 이제 IP 패킷이라는 작은 조각을 통해 데이터를 전송하는데 이제 필요한 것이다. 

 

 

컴퓨터는 여러 TCP 커넥션을 가지고 있고 TCP 는 포트 번호를 통해 여러 개의 커넥션을 유지한다! 

 

그렇다면 이제 처음에 서버가 소켓을 만든다는데... 소켓은 무엇일까? 

네트워크 통신에서 두 시스템 간의 데이터 교환을 위해 사용하는 엔드포인트입니다. 소켓은 IP 주소와 포트 번호로 식별되며, 다양한 네트워크 프로토콜을 통해 데이터를 송수신할 수 있습니다. 소켓은 주로 TCP/IP와 UDP/IP 프로토콜을 기반으로 동작하며, 다음과 같은 주요 구성 요소를 포함합니다:

 

클라이언트와 서버가 TCP 소켓 인퍼에시를 사용하여 연결하는 과정들

 

아래는 Python 을 이용한 간단한 소켓 프로그래밍 예제입니다. 

import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 8080))
server_socket.listen(1)

print("Server is listening on port 8080...")
conn, addr = server_socket.accept()
print(f"Connected by {addr}")

while True:
    data = conn.recv(1024)
    if not data:
        break
    print(f"Received data: {data.decode()}")
    conn.sendall(data)

conn.close()
server_socket.close()

 

이런 TCP 네트워크 지연은, 하드웨어의 성능, 네트워크와 서버의 전송속도, 그리고 요청과 응답 메시지의 크기, 클라이언트와 서버 간의 거리에 따라 크게 달라진다. 

 

성능 관련한 중요 요소

아래는 TCP 지연에 있어서 이제 문제가 생기는 것을 의미한다. 

- TCP 커넥션의 핸드 쉐이크 설정

- 인터넷의 혼잡을 제어하기 위한 TCP 의 느린 시작 

- 데이터를 한데 모아 한 번에 전송하기 위한 네이글 알고리즘

- TCP 의 편승(piggyback) 확인응답( acknowledgement) 을 위한 확인응답 지연 알고리즘

- TIME_WAIT 지연과 포트 고갈

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'이유's Programming > HTTP' 카테고리의 다른 글

HTTP 1장 - HTTP 개관  (0) 2024.07.19
    '이유's Programming/HTTP' 카테고리의 다른 글
    • HTTP 1장 - HTTP 개관
    살아가는 이유_EU
    살아가는 이유_EU
    안녕하세요. 초보개발자의 일상을 담은 블로그입니다.

    티스토리툴바