Network
JWT
JWT에 대해 학습했던 내용들을 정리하고자 한다. JWTJWT(Json Web Token)은 Json 형태의 토큰으로, 디지털 서명이 포함되어 있어 데이터가 위조되지 않았음을 보장할 수 있다. 개방형 표준(RFC-7519)이다.개방형 표준: 기술 표준이 문서가 공개되어 있으며 사용이 자유로운 경우를 가리키는 용어 JWT는서버가 세션을 관리할 필요가 없다.무상태이기 때문에 토큰을 저장하지 않아도 된다.인증 및 인가를 위해 요청이 올 때마다 토큰을 검증해 인증을 처리한다.확장성이 뛰어난 시스템을 구축할 수 있다. JWT 구조JWT는 세 부분(헤더(header), 페이로드(payload), 서명(signature))으로 나뉜다.형태는 xxxxx.yyyyy.zzzzz로, dot(.)으로 세 부분을 구분한다. 예..
Network - OSI 7 Layer: 네트워크 흐름 정리 및 이해
이전까지 학습한 OSI 계층들을 바탕으로 동작을 확인하면서 흐름을 정리해 보자. OSI 7계층 정리와 이동 방향 OSI 7계층을 간단하게 확인해 보자. 각 계층에서의 작업은 아래와 같다. 그리고 데이터의 이동은 아래와 같다. 이를 좀 더 명확히 이해하기 위해 웹 브라우저에서 데이터를 입력할 때의 과정을 알아보자. 송신자 관점에서의 네트워크 흐름 사용자가 컴퓨터와 상호작용하는 것은 응용 계층(7계층)이다. 3-Way Handshake로 서버와 연결이 된 상태에서 사용자는 http://www.google.com을 입력한다. 이는 HTTP(80번 포트)를 이용하겠다는 의미이며 해당 데이터는 google 사이트의 첫 페이지를 보여달라는 요청 정보를 담은 상태로 전송 계층(4계층)으로 이동한다. 실제로는 http..
Network - OSI 7 Layer: 응용 계층(7 Layer)
OSI 7계층 중 7계층(응용 계층)을 알아보자. 응용 계층(Application Layer) 응용 계층은 사용하는 애플리케이션이 동작하는 계층이다. 각 애플리케이션마다 활용하는 프로토콜이 다른데 이번에 알아볼 응용 계층의 프로토콜은 아래와 같다. 프로토콜을 하나씩 살펴보자. HTTP 사용자가 웹 브라우저에 URL을 입력하는 형태로 서비스를 요청하면 서버에선 해당 페이지 정보를 보내 응답한다. 이처럼 웹에서 데이터를 주고받는 것에서 HTTP를 활용한다. HTTP(HyperText Transfer Protocol)은 Client와 Server가 어떻게 데이터를 교환할지 정해놓은 규칙으로 80번 포트를 사용한다. HTTP Request와 Response는 아래의 구조를 가진다. StartLine과 Statu..
Network - OSI 7 Layer: 전송 계층(4 Layer)
OSI 7계층 중 4계층(전송 계층)을 알아보자. 전송 계층(Transport Layer) 전송 계층은 오류 없이 데이터를 전달하기 위한 단계로 데이터가 제대로 넘어갔는지, 오류는 없는지, 데이터를 어떤 애플리케이션으로 전달해야 하는지 등을 식별하는 기능을 담당한다. 오류 제어 혼잡 제어(Congestion Control) 네트워크로 들어가는 정보량을 조절하여 네트워크가 혼잡해지지 않게 조절하는 방법 송신자는 가장 먼저 하나의 데이터를 보낸 후 정상적으로 ACK이 오면 전송량을 2배씩 증가시킨다. 이후 Time Out이 발생하거나 동일한 ACK을 여러 번 받으면 정상적이지 않은 상황으로 보고 보내는 데이터를 줄이는 형태로 데이터 전송량을 조절한다. 흐름 제어 정지-대기 방식과 동일하게 동작한다. 하나의 ..
Network - OSI 7 Layer: 네트워크 계층(3 Layer)
OSI 7계층 중 3계층(네트워크 계층)을 알아보자. 네트워크 계층(Network Layer) 2계층의 스위치만으로는 멀리 있는 컴퓨터와 통신할 수 없다. 이때 필요한 장비가 라우터(Router)이다. 라우터는 데이터가 어떤 경로로 전달되어야 하는지를 알려주며 MAC 주소가 아닌 IP 주소를 필요로 한다. 네트워크 계층은 이러한 IP주소와 라우터를 비롯한 내용을 포함한다. 이에 대해 알아보자. IP 주소 IP(Internet Protocol) 주소는 인터넷상에 있는 컴퓨터의 고유한 주소이다. 따라서 인터넷에 접속하려면 IP 주소가 필요하다. 이를 이용해 다른 컴퓨터와 데이터를 주고받을 수 있다. 그렇다면 IP 주소는 어떻게 얻을까? ISP(Internet Service Provider) IP 주소는 IS..
Network - OSI 7 Layer: 데이터 링크 계층(2 Layer)
OSI 7계층 중 2계층(데이터 링크 계층)을 알아보자. 데이터 링크 계층(DataLink Layer) 2계층인 데이터 링크 계층은 네트워크에서 데이터를 관리하고 전달하는 계층으로 데이터를 작은 프레임 단위로 분할하고 MAC 주소를 활용해 장비를 식별하며 신호 충돌 등의 오류를 탐지하고 수정한다. 이에 대해 알아보자. MAC 주소 MAC(Media Access Control) 주소는 랜 카드에 할당된 값이며 전 세계에서 유일하다. MAC 주소는 48bit로 표현되며 상위 24bit는 OUI(Organizational Unique Identifier), 하위 24bit는 UAA(Universally Administered Address), NIC Specific or Extended dentifier라고 ..
Network - OSI 7 Layer: 물리 계층(1 Layer)
OSI 7계층 중 1계층(물리 계층)을 알아보자. 물리 계층(Physical Layer) 1계층인 물리 계층은 컴퓨터들을 물리적으로 연결하거나 데이터를 전기 신호로 변환하고 제어하는 역할을 담당한다. 전기 신호는 아날로그 신호와 디지털 신호로 구분되는데 아날로그 신호는 빛, 소리 등 연속적인 모양의 신호로 라디오 방송 등에 사용되며 디지털 신호는 특정 값을 기준으로 불연속적으로 변하는 막대 모양의 신호로 컴퓨터, 스마트폰 등에 사용된다. 컴퓨터가 전기 디지털 신호로 데이터를 전송한다는 것은 알았다. 그렇다면 어떻게 데이터를 전기 신호로 변환할까? 랜 카드(LAN Card) 해당 작업은 랜 카드에서 한다. 랜 카드는 내 컴퓨터와 인터넷을 연결하는 필수 장치로 랜 포트(LAN Port)가 있으며 추가로 랜 ..
Network - 네트워크 통신 규약(OSI 7계층, TCP/IP 4계층)
사람이 대화를 할 때 이야기를 주고받듯이 네트워크에서 노드 간 통신을 할 때에도 대화가 필요하다. 네트워크 통신 규약은 이러한 대화를 규칙화한 것이다. 이에 대해 알아보자. 프로토콜 프로토콜(Protocol)은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다. 즉, 원활한 통신을 위해 서로 약속한 통신 규약이다. HTTP, HTTPS, FTP, Telnet, POP3, SMTP, SSH, ARP 등 매우 다양한 종류의 프로토콜이 있다. OSI 7계층 OSI 7계층(OSI 7 Layer)은 컴퓨터와 컴퓨터의 통신을 위해 필요한 과정을 7개의 계층으로 구분한 것이다. 7계층과 각 작업은 아래와 같다. OSI 7계층으로 나누는 것으로 가지는 장점은 아래와 같다. 통신이 일어나는 과..