Mark930.k
Nightcrawler
Mark930.k
전체 방문자
오늘
어제
  • 📚 WWW (102)
    • 🖥하드웨어 (1)
    • ⚡네트워크 (38)
      • Amazon AWS (5)
      • OSI 7 Layer (1)
      • 네트워크 기초 (2)
      • Linux (2)
    • 💻모의해킹 (9)
      • Android (1)
      • Microsoft (7)
      • Linux (0)
      • 침해대응 (1)
    • 🐧리눅스 (0)
    • 🏋️‍♂️운동 (7)
      • 헬스 루틴 (6)
    • 🏎️자동차 (1)
      • BMW (1)
    • 기타 (13)
      • NetScaler 업무 페이지 (8)
    • 📖독서 (1)
      • 경제 (1)

블로그 메뉴

    공지사항

    인기 글

    태그

    • 네트워크
    • 보안
    • python
    • 웹위변조
    • 해킹
    • 정보보안
    • Python test
    • Security
    • CVE-2022-30190
    • 위변조
    • zeroday

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Mark930.k

    Nightcrawler

    ⚡네트워크

    네트워크 기본 용어 개념 정리 첫번째(TCP/IP, 패킷, 레인지 리퀘스트...)

    2019. 3. 12. 10:13


     안녕하세요. 오늘은 전에 읽었던 '그림으로 배우는 HTTP&NETWORK BASIC'이라는 책을 간단히 제가 몰랐거나 나중에 다시 한 번 상기가 필요한 내용들로 정리해보려고 합니다. 아무래도 웹 개발을 하다보니 네트워크 지식들이 필요할 때가 많은데요. 중요한 내용을 바탕으로 쉽게 그림으로 잘 설명되어 있는 책을 골라 읽어보았는데 생각보다 괜찮네요. 기본적인 네트워크 지식이 필요하신 분들에게도 좋은 책이 될 것 같네요. 아무래도 제 주관적으로 중요하다 싶은 내용이나 나중에 한 번 더 봐야 될 부분들에 대해서 정리가 될 것 같은데 보시고 괜찮으시다면 책을 사셔서 보시는걸 추천 드리겠습니다.

    [ TCP/IP 계층화 ]
    -TCP/IP는 '애플리케이션 계층', '트랜스포트 계층(TCP)', '네트워크 계층(IP)', '링크 계층' 이렇게 총 4계층으로 나뉘어 있다. 
    > 계층화의 메리트는 인터넷이 하나의 프로토콜로 되어 있다면 어디선가 사양이 변경되었을 때 전체를 바꾸지 않으면 안되지만, 계층화되어 있으면 사양이 변경된 해당 계층만 바꾸면 됩니다.

    [ 패킷 ]
    -패킷이란 전송하는 데이터의 최소 단위 입니다. 

    [ IP, MAC ]
    -IP(Internet Protocl)의 역할은 개개의 패킷을 상대방에게 전달하는 것. 상대방에게 전달하기까지 여러 요소가 필요한데 그 중에서도 IP와 MAC(Media Access Control Address)라는 요소가 중요하다.
    IP주소는 각 노드에 부여된 주소를 가리키고 MAC 주소는 각 네트워크 카드에 할당된 고유의 주소이다. IP주소는 변경 가능하지만 기본적으로 MAC 주소는 변경 할 수 없다.

    [TCP, Three way handshaking]
    -TCP(Transfer Control Protocol)는 대용량의 데이터를 보내기 쉽게 작게 분해하여 상대에게 보내고, 정확하게 도착했는지 확인하는 역할을 담당한다. TCP는 상대에게 확실하게 데이터를 보내기 위해 "쓰리웨이 핸드셰이킹(three way handshaking)"이라는 방법을 사용하고 있는데 이 방법은 패킷을 보내고 나서 바로 끝내는 것이 아니라, 보내졌는지 여부를 상대에게 확인하러 간다. 이것은 'SYN'와 'ACK'라는 TCP 플래그를 사용한다. 송신측에서는 최초 'SYN'플래그로 상대에게 접속함과 동시에 패킷을 보내고, 수신측에서는 'SYN/ACK' 플래그로 송신측에 접속함과 동시에 패킷을 수신한 사실을 전한다. 마지막으로 송신측이 'ACK' 플래그를 보내 패킷 교환이 완료되었음을 전한다. 

    [ HTTP, STATLESS PROTOCOL ]
    -HTTP는 상태를 계속 유지하지 않는 스테이트리스(stateless)프로토콜로 리퀘스트와 리스폰스를 교환하는 동안에 상태를 관리하지 않는다. HTTP에서는 새로운 리퀘스트가 보내질 때 마다 새로운 리스폰스가 생성된다. 프로토콜로서는 과거의 리퀘스트나 리스폰스 정보를 전혀 가지고 있지 않다. 이는 많은 데이터를 매우 빠르고 확실하게 처리하는 범위성(scalability)을 확보하기 위해서 이와 같이 간단하게 설계되어 있는 것이다. 

    [ 지속연결, 파이프라인화 ]
    -HTTP/1.1와 일부 HTTP/1.0에서는 TCP 연결 문제를 해결하기 위해 지속연결(Persistent Connections)이라는 방법을 고안하였다.  지속 연결의 특징은 어느 한 쪽이 명시적으로 연결을 종료하지 않는 이상 TCP 연결을 계속 유지한다. 지속 연결은 여러 리퀘스트를 보낼 수 있도록 파이프라인(HTTP pipelining)화를 가능하게 한다. 파이프라인화에 의해서 이전에는 리퀘스트 송신 후에 리스폰스를 수신할 때까지 기다린 뒤에 리퀘스트를 발행하던 것을, 리스폰스를 기다리지 않고 바로 다음 리퀘스트를 보낼 수 있게 되었다. 지속 연결 < 파이프라인화(리퀘스트 수가 늘어날 수록 현저한 차이)

    [ STATELESS PROTOCOL 이점 ]
    -상태를 유지하지 않는다는 점에서 서버의 CPU나 메모리 같은 리소스의 소비를 억제할 수 있다. 또한, 단순한 프로토콜이기에 HTTP가 다양한 곳에서 이용되는 측면도 있다. 

    [ 쿠키 - STATELESS PROTOCOL 문제 해결 ]
    -쿠키는 리퀘스트와 리스폰스에 쿠키 정보를 추가해서 클라이언트의 상태를 파악하기 위한 시스템이다.

    [ 인코딩으로 전송 효율을 높이다 ] 
    -HTTP로 데이터를 전송할 경우 그대로 전송할 수도 있지만 전송할 때에 인코딩을 실시함으로써 전송 효율을 높일 수 있다. 전송할 때 인코딩을 하면 다량의 액세스를 효율 좋게 처리할 수 있다. 단지, 컴퓨터에서 인코딩 처리를 해야 하기 때문에 CPU 등의 리소스는 보다 많이 소비하게 된다. 

    [ 레인지 리퀘스트 (Range Request) ]
    -다운로드 중 커넥션이 끊어지게 되면 처음부터 다시 다운로드를 해야하는 문제를 해결하기 위해 일반적인 리줌(resume)이라는 기능이 필요하게 되었다. 리줌을 통해 이전에 다운로드를 한 곳에서 부터 다운로드를 재개할 수 있다. 이 기능 실현을 위해서는 엔티티의 범위를 지정해서 다운로드를 할 필요가 있다. 이와 같이 범위를 지정하여 리퀘스트 하는 것을 레인지 리퀘스트라고 부른다. 

    [ 콘텐츠 네고시에이션 ]
    - 서로 다른 언어를 주로 사용하는 브라우저가 같은 URI에 액세스할 때에 각각 영어판 웹 페이지와 한국어판 웹 페이지를 표시하는 구조를 콘텐츠 네고시에이션(Content Negotiation)이라고 부른다.
    서버 구동형 네고시에이션(서버 측에서 리퀘스트 헤더 필드의 정보를 참고해서 자동적으로 처리하는 방식)과 에이전트 구동형 네고시에이션(브라우저에서 표시 된 선택지 중에서 유저가 수동으로 선택하는 방법)이 있다.



    출처: https://brocess.tistory.com/29?category=715040 [행복한디벨로퍼]

    '⚡네트워크' 카테고리의 다른 글

    ACL(Access Control List)란?  (0) 2019.04.02
    네트워크 기본 용어 개념 정리 두번째(프록시, 게이트웨이, 캐시...)  (0) 2019.03.12
    백본 스위치  (0) 2019.03.12
    서버 가상화  (0) 2019.03.12
    웹서버와 DB서버의 분리 연동  (0) 2019.03.12
      '⚡네트워크' 카테고리의 다른 글
      • ACL(Access Control List)란?
      • 네트워크 기본 용어 개념 정리 두번째(프록시, 게이트웨이, 캐시...)
      • 백본 스위치
      • 서버 가상화
      Mark930.k
      Mark930.k
      Citrix Netscaler / Citrix VDI / KaliLinux / AWS / VMware / Window Svr

      티스토리툴바