1. HTTP란?

- Hypert Text Transfer Protocol

- 80번 포트 사용

- 서버/클라이언트 모델을 따라 데이터를 주고받기 위한 프로토콜

- 암호화되지 않은 평문 데이터를 전송하는 프로토콜

- Application 레벨의 프로토콜이고, TCP/IP 위에서 작동

- Stateless 프로토콜

 

 

 

2. HTTPS란?

- Hyper Text Transfer Protocol Secure

- 443번 포트 사용

- 데이터 암호화가 추가된 프로토콜

- 공개키 암호화방식 사용

   (간단하게 말씀드리면 공개키 암호화방식에서는 공개키로 암호화, 개인키로 복호화는 암호화/복호화로 사용되고

     개인키로 암호화, 공개키로 복호화 하는 과정을 통해 자신이 작성한? 것임을 서명하는 용도로 사용)

 

- 통신과정

1) P기업은 HTTPS를 적용하기 위해 공개키/개인키를 발급한다.

2) CA(Certificate authority) 기업에 돈을 내고 공개키를 저장하는 인증서 발급을 요청(CA는 엄격하게 인증된 기업)

3) CA기업은 P기업의공개키 를 포함한 정보들을 기반으로 인증서를 생성하고, 이를 CA기업의 개인키로 암호화하여 P기업에 제공

4) P기업은 클라이언트(고객)에게 이 암호화된 인증서를 제공한다.

5) 브라우저는 CA기업의 공개키를 가지고 암호화된 인증서를 복호화한다. (브라우저는 인증된 CA기업의 공개키를 가지고 있음)

6) 5의과정을 통해 P기업의 공개키를 알게되었다.

7) P기업의 공개키로 데이터를 암호화해서 요청을 보낸다. (P기업의 개인키는 P기업만 알고있으므로 P기업만 요청을 확인가능하다., 중간에 제 3자는 이 암호화된 요청을 볼 수 없다.)

 

 

 

3. HTTPHTTPS의 장단점,활용

- HTTP는 보안에 취약, HTTPS는 안전하게 데이터를 주고 받을 수 있다.

- HTTPS는 암호화/복호화의 추가과정 때문에 시간이 더 소요된다고 하지만  요즘은 체감할 정도로 심하진 않다.

- CA기업 인증서 발급을 위한 추가비용 소모된다(HTTPS).

- 거의 대부분 HTTPS를 쓴다. 구글등의 검색포털에서 이를 권장하고 노출도 증가등의 이점이 있다

 

'학부생 공부 > 네트워크' 카테고리의 다른 글

쿠키 (cookie) 와 세션 (Session)  (0) 2021.05.31
OSI 7계층  (0) 2021.05.29
TCP(전송 제어 프로토콜) / IP(인터넷 프로토콜)  (0) 2021.05.28
DNS (domain name system)  (0) 2020.04.13
SMTP (E-mail)  (0) 2020.04.12

0. HTTP의 특징

- 쿠키와 세션의 필요성을 알아보기 위해

   HTTP 프로토콜의 특징을 먼저 간단하게 파악해보겠습니다.

 

  0-1. Connectionless 프로토콜 (비연결지향)

     - 클라이언트가 요청(Request) 을 보내고, 서버가 응답(Response) 을 보낸 후 연결을 유지하지 않고 끊는 방식이다.

 

  0-2. Stateless 프로토콜 (상태정보 유지 안함)

     - 클라이언트의 상태 정보를 저장하지 않는 서버 처리 방식이다.

     - 그러나, 사용자의 편의를 고려하면 데이터 유지가 필요하다.

     - 로그인 상태 유지, 장바구니 내역 등 필요한 경우가 있다.

       ( stateful하게 사용해야할 때 쿠키와 세션을 사용한다. ) - 정보유지

 

- 이는 서버의 자원을 절약하기 위한 설정이라고 보면 되겠습니다. ( 비연결성 + 비상태성 )

 

 

1. 쿠키 와 세션

- 우선 표를 먼저 확인해보자

 

 

 

2. 쿠키( Cookie )

- 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일

- 웹 사이트에 접속할 때 생성되는 정보를 담은 파일 ( 임시 파일 )

- 쿠키는 서버가 사용자의 웹 브라우저에 저장하는 데이터이다. ( 클라이언트 측에 저장 )

- 소프트웨어는 아니다. 단지 (key/value) 쌍의 string 형태이다. + ( 만료일, 경로 )

- 브라우저 간의 공유는 되지 않는다 ( 당연한가 )

- 아이디 저장 , 장바구니, " 더 이상 보지 않기"

- 저장 용량의 한계가 있다. ( 4KB, 총 300개, 도메인당 20개 )

- Session Cookie ( 브라우저 종료시 쿠키 삭제 ), Persistent Cookie ( 장기간, 브라우조 종료와 관계 x )

  Secure Cookie (HTTPS에서 사용, 쿠키 정보가 암호화되어 전송) 등 여러가지 종료가 있다.

 

  2.1 사용목적

    - 세션관리 ( 아이디, 장바구니 등 ) : 서버가 알아야할 정보들을 저장해놓는다.

    - 개인화 : 사용자마다 다르게 정보를 제공할 수 있다.

    - 트래킹 : 사용자의 행동을 기록하고 분석한다.

     

  2.2 단점

    - 쿠키에 대한 정보를 헤더에 매번 담아보내야하므로, 오버헤드가 발생한다.

    - 쿠키의 정보가 유출되는 보안에 취약한 문제점이 있다. (클라이언트 측에 저장되므로)

    - 쿠키를 거부하도록 설정할 수 있지만, 사용에 있어 불편함을 느낄 수 있다.

 

 

3. 세션( Session )

 - 쿠키 기반이며, 동작원리도 비슷합니다.

 - 클라이언트가 요청을 보내면, 서버는 헤더를 보고 session-id를 보냈는지 확인한다.

 - 존재하지 않으면, 서버는 세션 ID를 생성해 클라이언트에게 돌려주고, 클라이언트는 이를 사용해 서버에 저장한다.

 - 세션 ID가 1개씩 생성되어 웹 컨테이너에 저장된다.

 - 클라이언트 측이 아닌 서버측에 저장한다.

 - 이로인해, 많은 요청이 일어날 경우 서버에 과부화를 줄 수 있습니다.

 - 서버리소스를 초과하지 않는 함 상대적으로 용량의 한계가 없는 편

 - 서버 측에 저장하기 때문에 보안적인 측면에서 유리하다. (서버 측에서 관리)

 

 

 3.1 사용목적

    - 쿠키와 크게 다르지 않다.

 

 3.2 단점

    - 서버에 과부화를 줄 수 있다.

    - 쿠키보다 속도가 느리다. 서버에서 추가적인 처리가 필요하기 때문

 

 

4. 쿠키와 세션의 차이점

  - 가장 큰 차이점은 저장위치 ( 클라이언트(쿠키), 서버(세션) )

  - 그에 따른 보안과 속도의 차이 ( 위의 표에 적혀 있음 )

  - 라이프 사이클 (만료기간) 관점에서 쿠키는 만료기간 설정에 따라 넉넉하게 잡으면 오래 유지가 가능하다.

     반면 세션은 만료시간을 정해두어도 브라우저가 종료되면 만료시간에 상관없이 삭제된다.

  - 보안과 성능의 관점에서 저장할 정보들을 보고 적절하게 두가지를 잘 사용할 필요가 있겠습니다.

'학부생 공부 > 네트워크' 카테고리의 다른 글

HTTPS vs HTTPS  (0) 2021.09.19
OSI 7계층  (0) 2021.05.29
TCP(전송 제어 프로토콜) / IP(인터넷 프로토콜)  (0) 2021.05.28
DNS (domain name system)  (0) 2020.04.13
SMTP (E-mail)  (0) 2020.04.12

0. OSI 7계층 ? 왜 ?

- OSI 계층은 네트워크에서 통신이 일어나는 과정을 나눈 것을 말한다.

- 7계층으로 불리기도 하고, 5,6 계층을 제외하고 통상 OSI 5 계층이라고 불리기도 한다.

- 계층을 나눔으로써, 통신상의 오류가 발생했을 때 문제의 범위, 규모, 증상 등을 보고 

  비교적 빠르고, 쉽게 문제점을 찾아낼 수 있다. (독립적인 역할)

- 물론 이해를 편하게 해주기도 한다.

 

- 즉 OSI 모델은 프로토콜을 기능별로 나눈 것이다. 

- 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다.

- 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구성된다.

 

 

1. 물리 계층 ( Physical Layer )

- 전기적, 기계적인 특성을 이용해서 데이터를 통신 케이블을 통해 전송한다.

- 비트 단위 통신을 하며, 즉 0과 1의 상태이다.

- 전기적인 신호를 주고 받는 계층

- 대표 장비: 통신케이블, 허브, 리피터 ...

 

 

2. 데이터 링크 계층 ( DataLink Layer )

- 제가 네트워크시간에 배웠을 때는 Link Layer로 불렀는데 책마다 약간씩 차이는 있는 것 같습니다.

- 첫번째 계층 ( 물리 계층 )에서 송수신 되는 정보를 관리하여 정보 전달 수행을 도와준다.

- 통신상의 오류를 찾아주기도 하고, 재전송을 해주기도 한다.

- MAC 주소를 이용해서 통신을 한다. ( 전송단위는 Frame 이다 )

- 대표 장비 : 스위치, 브리지

- 스위치, 브리지 를 통해 MAC address 를 이용하여 물리계층에서 받은 정보를 전달하는 계층이다.

- Point to Point 로 전송을 신뢰성있게 해주기 위한 계층이다. 

- Mac address는 물리적으로 할당 받은 값이다. (ex ethernet) 

- 핵심 역할은 Frame 에 주소부여 (MAC) , 에러검출, 흐름제어, 재전송 

 

 

3. 네트워크 계층 ( Network Layer )

- "라우팅" 의 핵심 계층이다.

- 데이터를 원하는 목적지 까지 안전하고 빠르게 전달한다.

- 물리적인 주소가 아닌 논리적인 주소 (IP) 를 이용한다. (계층적인 구조이다)

- ( 전송단위는 Packet 이다. )

- 네트워크 관리자가 직접 주소를 할당하는 구조이다.

- 다양한 라우팅 기술과 프로토콜 종류가 있다.

- 대표 장비: 라우터

- 핵심 역할은 주소할당(IP), 경로 설정 (라우팅)

 

 

4. 전송 계층 ( Transport Layer )

- 통신을 활성화하기 위한 계층

- TCP, UDP 등의 프로토콜이 있다.

- TCP 프로토콜( Connection oriented )을 많이 이용하며, TCP와 UDP(빠르고 오버헤드가 적음) 를 섞어서 사용하기도 한다.

- End to End  종단 간 통신을 다루는 것에 있어서 최하위 계층이다.

- 종단 간 신뢰성 있고, 효율적인 데이터 전송을 하며, 오류 검출 및 복구, 흐름제어, 중복검사 등을 수행한다.

- Process 별로 data integrity(데이터 무결성), timing, throughput(처리속도), security 등에 대해서

  다양한 요구사항을 가지는데 이러한 요구를 잘 맞추어 주는 것이 중요하다.

- ( 전송단위는 Segment 이다. )

- 핵심 역할은 패킷 생성, 전송, 오류검출, 재전송

 

 

5. 세션 계층 ( Session Layer )

- 데이터가 통신하기 위한 논리적인 연결

- 저는 네트워크 시간에 주로 5계층을 기준으로 설명을 하셔서, 5,6 계층에 대해서는 아는바 가 별로 없습니다...ㅠ

 

 

6. 표현 계층 (Presentation Layer )

- 데이터 표현이 서로 다른 응용 프로세스의 독립성을 제공하고, 암호화 해준다.

- 암호화, 번역, 포장

 

 

7. 응용 계층 ( Application Layer )

- HTTP, FTP, SMTP, POP3 , IMAP 등과 같이 친숙한 프로토콜들이 많이 있다.

- 모든 통신의 양 끝단에 위치해 있는 프로토콜들이 있는 계층

- 통신 패킷들은 이러한 프로토콜들에 의해서 처리된다.

- router라던가, core 쪽은 신경쓰지 않아도 된다.

- (Client - Server), (peer to peer(P2P)) structure가 있다.

- Process 는 Socket을 통해서 메시지를 주고 받는다. (소켓은 문이라 생각)

- IP address 만으로는 부족하다. (ex. 스마트폰 에서 단 하나의 프로세스만 실행하지 않는다.)

- 따라서 해당 프로세스가 가지고 있는 고유의 port number를 이용한다.

- IP address + Port number + protocol -----> 하나의 flow

 

 

** 참고 : https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95

'학부생 공부 > 네트워크' 카테고리의 다른 글

HTTPS vs HTTPS  (0) 2021.09.19
쿠키 (cookie) 와 세션 (Session)  (0) 2021.05.31
TCP(전송 제어 프로토콜) / IP(인터넷 프로토콜)  (0) 2021.05.28
DNS (domain name system)  (0) 2020.04.13
SMTP (E-mail)  (0) 2020.04.12

1. DNS란?

 - 사람들은 각각을 구분해주는 예를들면 주민등록번호 같은 것 들이 있다 

 - IP address와 name을 binding

 - IP address를 직접 다루는 건 어렵기 때문에 다루기 쉽게 name으로 변환

 

2. Domain Name System

 - distributed database

 - application-layer protocol 이다.

 (core internet function 이지만 5계층 application-layer에 구현되어 있다.)

 

3. DNS services

 - 1. hostname to IP address translation

 - 2. host aliasing

 - 3. mail server aliasing

 - 4. load distribution (traffic을 분산시킨다.)

 

4. why not centralize DNS?

 (centralized DNS라면 )

 - single point of failure (그 서버하나가 죽으면 끝이다 이럴경우)

 - traffic volume (traffic이 몰림)

 - distant centralized database (먼 곳에서는 속도가 저하)

 - maintenance (유지보수가 어려움)

 - doesn't scale ! (확장성이 낮다)

 

5. a distributed, hierarchical database (관리가 편하다나는 장점)

6. DNS : root name servers

 - local name server에 접근해보고 없을 경우 root name server로 올라간다.

 - 전 세계적으로 13개의 root name servers가 있다.

 - 우리랑 가까운 지역의 root name server는 도쿄에 있다.

 

7. Local DNS name server

 - doesn't not strictly belong to hierarchy

 - " default name server"라고도 불리운다

 - 일단 여기서 찾아보고 없을경우 top level로 간다.

 - proxy server가 하는 역할과 비슷하다.

 

8. local DNS - root DNS

 - iterated query 방식 (local DNS에 로드가 많이 걸린다.)

 - recursive query 방식 ( like stack )

'학부생 공부 > 네트워크' 카테고리의 다른 글

OSI 7계층  (0) 2021.05.29
TCP(전송 제어 프로토콜) / IP(인터넷 프로토콜)  (0) 2021.05.28
SMTP (E-mail)  (0) 2020.04.12
FTP  (0) 2020.04.12
Web and HTTP  (0) 2020.04.06

** TCP: Transmission Control Protocol

 - reliable transport (between sending and recieving process)

 - flow control : sender won't overwhelm receiver (받는 쪽의 버퍼 사이즈 이상으로 

                                보내지 않는다)

 - connection - oriented (연결 지향형) - 클라이언트와 서버간의 통신전 setup이 요구된다

                                                                              ( 데이터를 보내기전에 connection 을 먼저 만든다 )

 - timing,  minimum throughput 은 보장하지 않는다.

 

**UDP : User Datagram Protocol

 - unreliable data transfer (between sending and recieving process)

 - TCP보다 빠르다.

 - 지원하지 않는 것이 많다 (reliability, flow control, timing, throughput, security )

 

**그렇다면 왜 UDP를 버리지 않고 사용하는 곳이 있을까?

 - 예를들면, 비디오나 오디오를 다운받을 때 데이터의 약간의 변형 정도는 허용이 될때 TCP보다 빠르게 전송할 수 있다.

 - streaming multimedia 나 Internet telephony  등에서 TCP와 UDP를 섞어서 사용한다.

 

'학부생 공부 > 네트워크' 카테고리의 다른 글

FTP  (0) 2020.04.12
Web and HTTP  (0) 2020.04.06
Application Layer  (0) 2020.04.04
Internet structure  (0) 2020.03.26
Network Core  (0) 2020.03.25

 

 

 ** Layer 계층 

 -- 5계층 : Application Layer

 -- 4계층 : Transport Layer

 -- 3계층 : Network Layer

 -- 2계층 : Linked Layer

 -- 1계층 : Physical Layer

 

 ** applications  의 가능한 구조들

 -- client, server

 -- peer-to-peer(P2P)

 

 ** Client - server architecture

 -- server : 항상 켜져 있어야 한다.

               IP가 일정해야 한다. (변동이 없는)

               확장이 가능 해야 한다

 -- clients : 서버와 통신

               간헐적(즉, 항상 켜져있지 않아도 된다.)

               dynamic IP adresses

               peer to peer 간의 서로 직접적인 연결은 되지 않는다.

               (서버로 가서 db를 뒤져서 친구의 ip주소를 찾고 연결하는 방식은 가능)

 

 ** P2P architecture

 - 항상 켜져있는 서버가 필요 없다.

 - 직접적 통신이 가능

 - self scalability (서로가 스스로 확장하게 되는 구조)

 - 항상 연결 되어 있는 것이 아니므로 ip가 바뀐다 (dynamic)

 - complex management

 

**Processes communicating

 - 한 호스트 안에 있는 프로세스들은 IPC(inter-process-communication)을 통해 주고 받는다

 - 다른 호스트 사이에서는 messages를 교환 

 - 하나의 device가 (client, server) 두가지 역할을 모두 수행하는 것이 P2P architecture

 

** Sockets

 - 프로세스들은 소켓을 통해 메시지를 주고 받는다.( 마치 문 같은....) 

 - 소켓을 통해 나가 infrastructure을 통하여 통신

 

** Addressing processes

 - messages를 받기 위해서는 프로세스는 identifier를 반드시 가지고 있어야 한다.

 - host device는 IPv4의 경우 32bit IP address를 가지고 있다 (unique)

 - 하지만 스마트폰이나 컴퓨터에서 하나의 프로세스만 실행하지는 않는다.

     --> 즉 ip address만으로는 부족하다.

 - 따라서 ip address + port numbers + protocol network flow를 정의 한다.

 - 이 flow는 같은 sender와 reciever 사이에서 여러개가 정의 가능하다.

 

 ** application이 요구하는 것

 - 각 어플리케이션 별로 요구사항이 다를 수 있다. (다양)

 - 예를 들면, 영상을 다운받을 때는 너무 느리면 안되겠지만 그렇다고 처리속도(throughput)에 그렇게 예민하지는 않다

 - 게임 같은 경우에는 data loss에는 덜 민감해도 time sensitive는 매우 중요하다.

     1. data integrity(데이터 무결성) 

     2. timing

     3. throughput

     4. security

     5. ......

'학부생 공부 > 네트워크' 카테고리의 다른 글

Web and HTTP  (0) 2020.04.06
TCP, UDP  (0) 2020.04.06
Internet structure  (0) 2020.03.26
Network Core  (0) 2020.03.25
인터넷(Internet) 이란 ?  (0) 2020.03.22

** 모든 (each ISP) 를 서로에게 모두 연결 한다면?

 - 각각의 회선이 굉장히 빠르다.

 - 다양한 경로제공이 가능하다

 - 단, 비용이 매우 많이 든다.

 

** 하나의 Global ISP를 구성 한다면 ?

 - 이 또한 굉장히 좋지만 이런 global ISP를 구성하는 것이 현실 여건상 쉽지가 않다.

 

**현재 Internet structure

-->

 - IXP : Internet exchange point

 - peering link 에 의해 가격에 관한 문제가 발생하기도 한다.

 - regional net으로 clustering을 하여 조금 더 빠르게 한다.

 - 최근에는 구글 같은 content provider network도 직접 이에 관여 하고 있다.

 - 우리가 아는 SKT, KT 등이 Tier 1 ISP 이다.

 

 

 

'학부생 공부 > 네트워크' 카테고리의 다른 글

Web and HTTP  (0) 2020.04.06
TCP, UDP  (0) 2020.04.06
Application Layer  (0) 2020.04.04
Network Core  (0) 2020.03.25
인터넷(Internet) 이란 ?  (0) 2020.03.22

** 인터넷이란? 

 - "network of networks"

 - mobile network, global ISP, home network, regional ISP, institutional network 등등 을 과 연결된 모든 네트워크

 - client에게 서비스를 제공하는 인프라

 

 

** IETF: Internet Engineering Task Force (승인 해주는 기관) - Standard

 

 

** 프로토콜이란? (what's a protocol)

 - 컴퓨터와 컴퓨터사이, 또는 한 장치와 다른 장치 사이에서 데이터를 원활히 주고받기 위하여 약속한 여러 가지 규약

    ( 출처: 네이버 사전)

 -  ex )  TCP connection request(client) 를 보내면 TCP connection response(server) 그후 자료 요청 밑 파일 전송 등

 

 

** 네트워크의 구조들( network structure)

 -  network edge (host: client and server(서버는 때때로 데이터센터(data centers)에 있다)

 -  네트워크에 접근 하는 physical media (유선, 무선 등)

 -  network core (interconnected routers, network of networks)

 

** physical media들의 네트워크 접근

 - residential access nets (집)

 - institutional access network ( 학교, 회사 등)

 - mobile access networks (스마트폰,,,,)

 - 공유매체일수도 있고 전용매체 일 수도 있다. (shared or dedicated? )

 

 

** 네트워크 연결 방식

 -  1. DSL(digital subscriber line) : 옛날에 주로 쓰던 연결 방식이다.

                                            전화 라인을 사용 , 속도가 비대칭적이다.

                                            ( 주로 데이터를 업로드(<1Mbps) 하려기보다 받으려고(<10Mbps) 하는 경우가 많았                                               기 때문에)

 - 2.  cable network : 원룸 등에서 분리배선 시키는 방식 (shared network)

                            HFC(hybrid fiber coax) -- 광섬유와 동축케이블을 함계 사용하는 선로망.

                                                             이 네트워크는 전부 광섬유로 구선하는 네트워크보다 비용이

                                                             적게 들면서 광섬유의 안정성 및 전송 속도 이점을 최대한 이용.

                            DSL 방식은 중앙서버에 전용 노선을 가지는 것과 달리 이 방식은 ISProuter을 통한 shared access                              network 이다.

 - 3. home netwok : cable 또는  DSL을 통해 들어와서 ROUTER를 사용하여 무선 또는 유선 통신 (wireless or wired )

 - 4. Enterprise access networks( Ethernet) : 학교나 회사 등등

                                                         더 높은 계층의 장비가 필요 (2계층 스위치, 3계층 라우터 등을 통해 연결)

 

** phsical media

 - 1. coaxial cable (동축 케이블) 

 - 2. fiber optic cable (광케이블) - 빠른속도, 단 잘 휘지(?) 않는다.

 - 3. radio - 반사, 간섭, 장애물 등에 의해 통신오류가 발생할 수 있다.

 

'학부생 공부 > 네트워크' 카테고리의 다른 글

Web and HTTP  (0) 2020.04.06
TCP, UDP  (0) 2020.04.06
Application Layer  (0) 2020.04.04
Internet structure  (0) 2020.03.26
Network Core  (0) 2020.03.25

+ Recent posts