ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1일차 - 웹과 네트워크의 기본
    CS지식/네트워크 2021. 4. 16. 21:27

    오늘부터 네트워크 공부도 시작을 했다.

    데이터베이스와 운영체제는 KOCW강의를 토대로 공부를 하고 있지만 네트워크는 다른 방식으로 공부를 시작했다.

    왜냐하면, 대학교에서 데이터 통신과목과 컴퓨터 네트워크 과목을 수강해서 어느정보 기본지식은 가지고 있는 상태이기 때문이다.

    그래서 네트워크 공부를 위해 어떻게 공부를 할까 생각을 하다가 유튜브에서 책을 추천받았다.

    (참고한 유튜브1: www.youtube.com/watch?v=ugP3iNPtf0w)

    먼저, 그림으로 배우는 HTTP & Network basic이라는 책으로 공부를 시작하려고 한다.

    책은 총 11장으로 구성되어 하루에 1장을 공부하는 것으로 목표로 하여 시작했다.

     

     

     

     

     

    1. 웹을 나타내는 법

    우리는 웹 브라우저에서 원하는 웹 페이지의 주소를 입력하면 웹 페이지가 보인다.

    웹 페이지가 보여지는 과정에는 웹 브라우저가 주소 입력란에 쓴 URL에 의지해서 웹 서버로부터 리소스를 얻는 것이다.

    여기서 서버에 의뢰를 하는 웹 브라우저와 같은 것들은 클라이언트라고 부른다.

    지금 대략적인 그림을 그려보면 웹 브라우저(클라이언트)와 웹 서버가 서로 대화를 통해 우리가 웹 페이지를 볼 수 있다고 보여진다.

     

    우리가 대화를 할 때를 생각해보자.

    한국인끼리 얘기를 하면 한국어, 미국인과 얘기를 하려면 영어 등을 사용해야하고 어른과 얘기를 하려면 존댓말을 써야하는 일종의 규칙이 정해져있다.

    웹 브라우저와 웹 서버에서도 동일하다.

    일종의 규칙 혹은 약속이 정해져 있어 일련의 흐름을 결정하는 것이 HTTP이다.

    즉, 웹에서는 HTTP라는 약속으로 통신이 이루어 지는 것이다.

     

     

    2. HTTP(HyperText Transfer Protocol)

    1장에서는 HTTP에 대해 자세히 배우기 전에 HTTP의 등장배경에 대해 배웠다.

    간단히 얘기하면 멀리 떨어져 있는 연구자들끼리 지식을 공유하고자 WWW(World WIde Web)을 고안했고 이 기술 구성요소 중 문서 전송 프로토콜로 HTTTP를 사용한 것이다.

     

    이렇게 처음에는 주로 텍스트를 전송하기 위한 프로토콜로 사용되었지만 현재는 여러 기능이 추가되어 다양하게 사용되고 있다.

     

     

    3. TCP/IP

    HTTP를 이해하기 위해서는 TCP/IP에 대해 알고있어야한다.

    TCP/IP 프로토콜은 계층으로 나누어 관리한다.

    계층은 애플리케이션계층, 트랜스포트 계층, 데이터링크 계층, 링크 계층 4가지가 있다.

    이렇게 계층으로 나누어 통신이 되면 어떠한 장점이 있을까?

     

    첫번째로 사양이 변경된 경우에 전체 프로토콜을 바꾸는 것이 아닌 해당 계층만 바꾸면 된다.

    두번째로 설계가 편하다.

    해당 계층은 자신의 역할만 생각하여 동작하면 되므로 설계가 편해진다.

     

    각 계층은 어떠한 역할을 할까?

     

    1) 애플리케이션 계층

    애플리케이션 계층은 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정한다.

    HTTP도 애플리케이션 계층에 포함된다.

    애플리케이션은 간단하게 어떠한 기능을 구현하는 것이라고 생각하면 될 거같다.

     

    2) 트랜스포트 계층

    트랜스포트 계층은 네트워크로 접속되어 있는 컴퓨터 사이의 데이터 흐름을 제공한다.

    이 계층에는 TCP와 UDP 두 가지 프로토콜이 대표적인 예이고 두 프로토콜은 서로 다른 특징을 가지고 있다.

     

    3) 네트워크 계층

    네트워크 계층은 어떠한 경로를 거쳐 목적지까지 패킷을 보낼지를 결정하는 역할을 한다.

    여기서 패킷은 전송 데이터의 최소 단위이다.

     

    4) 링크 계층

    링크 계층은 네트워크에 접속하는 하드웨어적인 면을 다룬다.

    예를 들어 디바이스 드라이버, 케이블 등과 같은 것이 링크 계층에 포함된다.

     

     

    4. IP(Internet Protocol)

    IP에 대해 더 자세하게 알아보자.

    IP는 네트워크 계층에 해당하는 프로토콜로 인터넷을 활용하는 대부분의 시스템이 IP를 사용한다.

    IP의 역활로 패킷을 목적지로 전달하는 것이다.

    우리가 택배를 보낸 경험이 있다면 다 알 듯이 수신자와 송신자의 주소에 의해 움직인다.

    인터넷에서도 마찬가지로 주소를 통해 패킷이 이동하고 주소에는 IP주소와 MAC주소가 있다.

    IP주소는 각 노드에 부여된 주소를 의미하며 변경이 가능하다.

    MAC주소는 각 네트워크 카드에 할당된 고유의 주소로 변경이 불가능하다.

    쉽계 얘기하자면 우리가 컴퓨터를 사면 네트워크 카드가 내장되어 있고 이 네트워크 카드 주소는 이미 정해져 있다.

    그리고 우리가 임의로 변경이 불가능하다.

    그리고 인터넷을 연결하기 위해 와이파이나 랜선을 어떠한 공간에서 연결한다.

    그렇게 연결을 해서 주어지는 것은 IP주소이고 IP주소는 변경이 가능하고 우리가 공간을 옮기면 IP주소도 변경이 된다.

     

     

    5. TCP(Transfer Control Protocol)

    TCP는 트랜스포트 계층에 해당하는 프로토콜로 신뢰성있는 바이트 스트림 서비스를 제공한다.

    여기서 신뢰성이 있다는 것은 우리가 보내고자 하는 데이터가 정확히 정달되는 것을 보장한다는 것이다.

    그리고 바이트 스트림 서비스란 용량이 큰 데이터를 TCP 세그먼트라고 불리는 단위 패킷으로 분해하여 관리하는 것이다.

     

    그러면 신뢰성 있는 서비스, 목적지에 데이터를 확실하게 보낸다는 것은 어떻게 하면 되는 것일까?

    방법 중 하나가 쓰리웨이 핸드셰이킹(three wat handshaking)이다.

    쓰리웨이 핸드셰이킹은 패킷을 보낸 후 수신자가 패킷을 잘 수신했는지 확인하는 작업이 들어간 것이다.

    수신여부를 확인하기 위해 SYN, ACK 플래그를 사용한다.

    더 자세히 절차를 설명하면

    먼저, 송신자가 SYN플래그와 함께 패킷을 전달한다.

    패킷을 받은 수신자는 잘 받았다는 의미로 SYN/ACK 플래그로 송신자에게 전달한다.

    마지막으로, 송신자가 ACK 플래그를 보내 패킷 교환이 완료되었음을 전한다.

     

     

    6. DNS (Domain Name System)

    DNS는 애플리케이션 계층에서 동작하는 프로토콜로 도메인명에서 IP주소를 조사하거나 IP주소로부터 도메인명을 조사하는 서비스를 제공한다.

    도메인명이란 럷은 의미로는 네트워크상에서 컴퓨터를 식별하는 호스트명을 가리키며, 좁은 의미에서는 도메인 레지스트리에게서 등록된 이름을 의미한다.

    예를 들어, 우리는 웹 페이지에 접속할 때 숫자로 표현된 IP주소보다는 영문이나 한글로 표현된 도메인명을 즐겨 사용한다. 하지만, 컴퓨터는 숫자로 표현된 IP주소가 편하기 때문에 이를 해결하기 위해 DNS가 사용되는 것이다.

    댓글

Designed by Tistory.