Section3

Unit 6 - [네트워크] 심화

Heemok 2023. 6. 29. 16:42

2023-06-29(목)

이해도 자가 점검 리스트

Chapter1. TCP/IP

  • 패킷교환 방식의 이점에 대해 이해한다.
  • IP의 비순서성, 비신뢰성에 대해 이해한다.
  • TCP의 3 way handshake 및 그와 비교되는 UDP에 대해 이해한다.

Chapter2. 네트워크 계층 모델

  • 네트워크 통신을 계층별로 나눈 이유에 대해 이해한다.
  • 통신 과정에서 일어나는 데이터 캡슐화에 대해 이해한다.

Chapter3. HTTP

  • HTTP 메시지 구조를 이해한다.
  • HTTP의 무상태성과 비연결성에 대해 이해한다.
  • HTTP 헤더 중 바디를 설명하는 헤더인 표현헤더에 대해 이해한다.
  • HTTP 헤더 중 요청과 응답에서 주로 사용되는 헤더에 대해 이해한다.
  • HTTP 헤더 중 서버에 요청하는 콘텐츠를 협상할 수 있는 협상헤더에 대해 이해한다.

Chapter4. HTTPS

  • 왜 HTTPS가 HTTP보다 안전한 지 이해한다.
  • HTTPS의 암호화 방식에 대해 이해한다.
  • HTTPS에서 사용하는 대칭키, 비대칭키 방식에 대해 이해한다.
  • 직접 로컬에서 HTTPS 인증서를 발급할 수 있다.

 

챕터 4를 제외한 개념에대해 설명하고 작성한다.

챕터 4는 따로 개념학습 게시판에 작성


패킷교환 방식의 이점에 대해 이해한다.

=> 패킷교환 방식은 기존에 전화에서 사용했던 회선교환 방식의 단점을 보완한 방식

회선교환 방식은의 단점은 즉시성이 떨어진다는 것인데, 다른 사람이 회선을 사용 중이더라도 마냥 기다려야 하는 것인데

 

이를 해결하기 위해 나온것이 패킷교환 방식이며, 패킷교환 방식은 패킷이라는 단위로 데이터를 잘게 나누어

전송하는 방식입니다. 그래서 각 패킷에는 출발지와 목적지가 있고, 이에 따라 가장 효율적인 방식으로 이동가능합니다.

 

이를 이용하면 특정 회선이 전용선으로 할당되지 않기 대문에 빠르고 효율적이게 데이터를 전송할 수 있다.

 


IP의 비순서성, 비신뢰성에 대해 이해한다.

=> 비순서성의 경우 패킷을 통해 데이터를 전달할 떄, 중간에 서로 다른 노드를 통해 전달될 수 있는데

이러할 경우 클라이언트가 의도하지 않은 순서로 서버에 패킷이 도착할 수 있는 문제점이다.

 

=> 비신뢰성에 경우 중간에 서버가 데이터를 전달하던 중 장애가 생겨 패킷이 소실되거나, 노드에서 옮겨지는 과정에서

해킹을 통해 소실되어도 클라이언트는 이를 파악하지 못하는 문제점입니다.

 


TCP의 3 way handshake 및 그와 비교되는 UDP에 대해 이해한다.

=> TCP는 장치들 사이에 논리적인 접속을 성립하기 위하여 3 way handshake를 사용하는 연결지향형 프로토콜입니다.

 

TCP에 경우 위에 IP에 비순서성과 비신뢰성을 해결하기 위해 데이터 전송을 받으면 응답을 해주고,  순서대로

 데이터가 도착하지 않는다면 다시 패킷 전송을 요청할 수 있게 해주어 보완할 수 있게 되었습니다.

 

그리고 3 way handshake를 사용하여 논리적인 접속을 성립하게 해주는데 연결 방식은

 

1.  먼저 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보냅니다.

2.  서버는 SYN요청을 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN가 설정된 패킷을 발송하고 클라이언트가 다       시 ACK으로 응답하기를 기다립니다.

3. 클라이언트가 서버에게 ACK을 보내면 이 이후로부터 연결이 성립되며 데이터를 전송할 수 있습니다.

4. 만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기 때문에 데이터를 보내지 않습니다.

 

현재에는 최적화가 이루어져 3번 ACK을 보낼때 데이터를 함께 보내기도 합니다.

 

UDP와의 차이는 UDP는 TCP에서 3 way handshake를 사용하지 않고 진짜 필요한 정보만 추가된 단순한 프로토콜입니다.

그렇기 때문에 신뢰성이 낮은 대신 빠른 속도를 보장합니다. 


네트워크 통신을 계층별로 나눈 이유에 대해 이해한다.

=> 지금은 상상하기 어렵지만 같은 회사에서 만든 컴퓨터끼리만 통신이 가능했던 시절이 있었습니다. 따라서 다른 회사의 시스템이라도 네트워크 유형에 관계없이 상호 통신이 가능한 규약, 즉 프로토콜(Protocol)이 필요했습니다. 그래서 ISO에서는 제조사에 상관없이 공통으로 사용할 수 있는 네트워크 표준 규격을 정의했습니다.

 


통신 과정에서 일어나는 데이터 캡슐화에 대해 이해한다.

OSI 7계층 모델은 송신 측의 7계층과 수신 측의 7계층을 통해 데이터를 주고받습니다.

각 계층은 독립적이므로 데이터가 전달되는 동안에 다른 계층의 영향을 받지 않습니다.

 

데이터를 전송하는 쪽은 데이터를 보내기 위해서 상위 계층에서 하위 계층으로 데이터를 전달합니다.

이때 데이터를 상대방에게 보낼 때 각 계층에서 필요한 정보를 데이터에 추가하는데 이 정보를

헤더(데이터링크 계층에서는 트레일러)라고 합니다. 그리고 이렇게 헤더를 붙여나가는 것을 캡슐화라고 합니다.

 

마지막 물리 계층에 도달하며 송신 측의 데이터링크 계층에서 만들어진 데이터가 전기 신호로 변환되어

수신 측에 전송됩니다. 데이터를 받는 쪽은 하위 계층에서 상위 계층으로 각 계층을 통해 전달된 데이터를 받게 됩니다.

 

이때 상위 계층으로 데이터를 전달하며 각 계층에서 헤더(데이터링크 계층에서는 트레일러)를 제거해 나가는 것을

역캡슐화라고 합니다. 역캡슐화를 거쳐 마지막 응용 계층에 도달하면 드디어 전달하고자 했던 원본 데이터만 남게 됩니다.


HTTP 메시지 구조를 이해한다.

- Request Response 구조

- 클라이언트는 서버에 요청을 보내고, 응답을 대기

- 서버가 요청에 대한 결과를 만들어 응답


HTTP의 무상태성과 비연결성에 대해 이해한다.

무상태 프로토콜 (Stateless)

-서버가 클라이언트의 상태를 보존하지 않음

   - 장점 : 서버 확장성 높음

   - 단점 : 클라이언트가 추가 데이터 전

 

비연결성 (Connectionless)

- 서버 연결 유지 X, 최소한의 자원 사용

- 비연결성을 가지는 HTTP에서는 실제로 요청을 주고받을 때만 연결을 유지하고 응답을 주고 TCP/IP 연결을 끊습니다.

- 일반적으로 초 단위 이하의 빠른 속도로 응답


HTTP 헤더 중 바디를 설명하는 헤더인 표현헤더에 대해 이해한다.

-표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공

- 헤더 형식 <field-name> : <field-value> 

- 필요 시 임의의 헤더 추가 가능하다.


HTTP 헤더 중 요청과 응답에서 주로 사용되는 헤더에 대해 이해한다.

 

From: 유저 에이전트의 이메일 정보

  • 일반적으로 잘 사용하지 않음
  • 검색 엔진에서 주로 사용
  • 요청에서 사용

Referer: 이전 웹 페이지 주소

  • 현재 요청된 페이지의 이전 웹 페이지 주소
  • A → B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청
  • Referer를 사용하면 유입경로 수집 가능
  • 요청에서 사용
  • referer는 단어 referrer의 오탈자이지만 스펙으로 굳어짐

User-Agent: 유저 에이전트 애플리케이션 정보

  • 클라이언트의 애플리케이션 정보(웹 브라우저 정보, 등등)
  • 통계 정보
  • 어떤 종류의 브라우저에서 장애가 발생하는지 파악 가능
  • 요청에서 사용
  • e.g.
    • user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/ 537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36

Host: 요청한 호스트 정보(도메인)

  • 요청에서 사용
  • 필수 헤더
  • 하나의 서버가 여러 도메인을 처리해야 할 때 호스트 정보를 명시하기 위해 사용
  • 하나의 IP 주소에 여러 도메인이 적용되어 있을 때 호스트 정보를 명시하기 위해 사용

'Section3' 카테고리의 다른 글

Unit5 - [사용자 친화 웹] 웹 표준 & 접근성  (0) 2023.06.26
Unit-4 Redux  (0) 2023.06.22
[React] 상태관리 - 1  (0) 2023.06.21
Unit 3 - [React] Custom Component  (1) 2023.06.16
Unit 2 - [ 사용자 친화 웹 ] UI/UX  (0) 2023.06.13