[WebDevCurriculum] 네트워크/프로토콜

Hyo Kyun Lee·2021년 10월 27일
0

WebDevCurriculum

목록 보기
10/44

개요

네트워크 개념과 프로토콜에 대해 이해한다.

Checklist

  • 인터넷은 어떻게 동작하나요? Internet Protocol Suite의 레이어 모델에 입각하여 설명해 보세요.
    → 지역PC가 인터넷에 접근할때 인터넷 영역에서의 수많은 라우팅을 관리하는 Hob(Default Gateway)이 필요하며, 최종적으로 인터넷 사이트에 해당하는 라우터에 접근한다.
    → 보통 상대의 목적지 IP 주소는 특정 값으로 정해지지만, 인터넷의 경우엔 0.0.0.0/0으로 특정지어지지 않는다.
    → 라우팅 경로 정보가 정해져있는 정적라우팅과는 달리, 네트워크 상황에 따라 정보를 빠르게 확보할 수 있는 경로를 중심으로 패킷을 전송하는 라우팅이다.
    → 데이터 정보에 포함된 목적지 주소가 인터넷처럼 광범위하거나, 정적 라우팅을 통한 탐색이 불가능할 경우 동적 라우팅(보통 지역 통신사 등)을 통해 데이터 전달을 진행한다.

  • 근거리에서 서로 떨어진 전자기기가 유선/무선으로 서로 통신하는 프로토콜은 어떻게 동작할까요?
    → 근거리에 놓여진 두 기기의 네트워크 대역은 보통 정적 라우팅을 통해 연결하며, 라우팅테이블에 저장된 두 기기의 IP와 PORT 정보를 통해 데이터 전달이 이루어진다.
    → 와이파이를 통해 연결한다면 무선 공유기를 통한 라우팅을 진행할 것이고, 블루투를 통해 연결한다면 BLE stack 프로토콜을 기반으로 통신을 진행할 것이다.

  • 아주 멀리 떨어져 있는 두 전자기기가 유선/무선으로 서로 통신하는 프로토콜은 어떻게 동작할까요?
    → 사용하는 프로토콜은 두 기기간 거리보다는, 두 기기가 네트워크를 어떤 형태를 통해 연결하였으며 어떤 통신규약을 채용하고 있는지에 영향을 받는다.
    → 보통 멀리 떨어져 있는 기기의 경우엔 근거리 대역의 네트워크가 없어 라우팅 테이블 작성이 어려우므로, 인터넷과 같이 Hob(지역 통신사)를 통한 데이터 전달이 이루어진다.

  • 두 전자기기가 신뢰성을 가지고 통신할 수 있도록 하기 위한 프로토콜은 어떻게 동작할까요?
    → 웹과 사용자간의 대표적인 통신규약인 HTTP는, SSL인증을 적용한 HTTPS 프로토콜을 사용한 것이 가장 대표적인 보안적용의 예이다.
    → HTTP프로토콜을 통한 데이터통신 과정에 SSL/TLS 암호화 방식(양방향 암호화)을 적용하여 상대적으로 안전한 데이터 전달이 가능하도록 한 방식이다.

  • HTTP는 어떻게 동작할까요?
    → 웹(서버를 통해 운용되는 HTML 문서)과 사용자 간 정보를 주고받기 위하여 사용하는 통신규약이다.
    → 개발자가 구성한 알고리즘 및 문서구성(HTML)에 따라 데이터 및 헤더에 데이터를 저장하고, request/response를 기반으로 웹사이트 동작이 이루어진다.

부가개념

네트워크 및 계층

  • 네트워크
    → 네트워크란 기본적으로 여러 대의 컴퓨터가 존재하는 환경을 일컫는데, 보통 데이터를 통신하기 위해 그물망처럼 연결한 체계를 의미한다.
    → 데이터 통신을 위해서는 네트워크에 적용할 수 있는 규격이 반드시 있어야하고, LAN/ WAN/ MAN 등 여러 규격이 존재한다.

  • OSI 7 Layer
    → 통신규약(프로토콜)과 통신계층으로 구분하여, 네트워크에 적용하는 7계층의 시스템이다.
    → 프로토콜을 기능별/계층별로 구분하여 다양한 네트워크 계층을 적용할 수 있게 되었고, 이를 바탕으로 여러 네트워크 장비의 표준화 및 호환을 더 효율적으로 진행할 수 있게 되었다.

OSI 7 Layer

이 7 Layer 중 많이 접하는 계층을 중심으로 기술하면 다음과 같다.

N5, Session (IP/포트통신의 table화)

  • local 간 통신, 원격 application 간 IP/Port의 연결을 table화 하여 관리하는 계층이다.
  • 프로토콜/로컬주소(출발지, 포트번호)/외부주소(목적지)/상태(유지 및 종료 등)로 기재된 정보입니다.

N4, Transport (포트통신)

  • 호스트(Client측에서 요청을 요하는 목적지) 간 데이터 전송, 즉 IP통신 이후의 웹서비스와 DNS서비스, 메일 서비스 등을 포트로 정의하는 계층(단계)이다.
  • 하위 단계에서 누적한 오류를 감지하고 제어하며, TCP통신을 통해 완벽한 데이터 전송을 보장합니다.
  • TCP/UDP 프로토콜을 사용한다.

N3, Network (IP통신)

  • 다른 네트워크 대역에서의 데이터 전송을 담당하는 계층으로, IP주소통신이 가능한 계층이다.
  • 통신의 규모가 팀 간(PC)에서 전사적인 규모로 넘어가며, 출발지 IP에서 목적지 IP로 데이터 통신시 중간에서 라우팅 처리가 진행됩니다.
  • IP통신, 라우팅이 통신방식이며, L3스위치(백본) 및 라우터 등이 있습니다.

위에서 이루어지는 데이터들은 해당 계층의 정보를 담은 상태에서, 다른 계층으로부터 전달받은 정보를 헤더라는 공간에 저장한다.

라우팅 / switch

  • 라우팅
    → 하나의 네트워크 대역은 다른 대역의 네트워크와 통신하기 위해 일련의 과정을 거쳐야 하며, 이 과정을 라우팅이라 일컫는다.
    → 네트워크 계층에서는 패킷 포워딩이 이루어지며, 특히 인터넷 네트워킹을 위해 사용하는 통신규약은 IP가 가장 대표적이다.
    → 인터넷(네트워크 간 연결을 통해 구축되는 환경) 환경의 기반이다.

  • switch
    → 동일한 네트워크 대역 안에서 이루어지는 데이터 통신을 switch라 한다.
    → 라우팅에 비해 규모가 적은 통신방법이며, switch loop 등 통신오류를 최소화하기 위해 지속적으로 알고리즘이 개선되어 왔다.

socket

  • socket
    → 인터넷 통신의 기반이 되는 네트워크에서 데이터 통신은 대부분 Network socket을 통해 진행된다.
    → 기본적으로 다른 네트워크 대역, 다른 컴퓨터와 통신을 할때 소켓을 활용하며 이때 소켓은 TCP/UDP 프로토콜을 사용하는 N4 layer에 해당되어 적절한 알고리즘에 따라 동작한다.
    → 소켓은 운영체제 등에 따라 형태가 다르므로 적절한 프로그래밍이 필요하다.

정리

0. why

  • 흔히 알고있는 인터넷/데이터 통신이 어떠한 방식으로 이루어지고, 어떠한 구조로 되어있는지에 대해 이해한다.

1. what

  • 목적지 주소가 불명확한 인터넷 통신이 이루어지는 과정을 이해한다.
  • 통신이 이루어지기 위한 통신규약(프로토콜)에 대해 이해한다.

2. how

  • 네트워크 프로그래밍이 어떠한 원리로 이루어지고, 어떠한 부분을 유의하면서 진행해야 하는지 생각해본다.
  • 개발자로서 네트워크 이론 및 원리를 어떠한 형태와 방식으로 실무에 적용할 수 있을지 고민해본다.

3. 참조링크

OSI 7 layer
https://madplay.github.io/post/network-osi-7-layer

블루투스 프로토콜
https://neosla.tistory.com/49

SSL/TLS
https://www.comworld.co.kr/news/articleView.html?idxno=49687

네트워크와 소켓
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kbh3983&logNo=220788898350
https://blog.neonkid.xyz/117

0개의 댓글