1장 : 컴퓨터 네트워크와 인터넷

Chooooo·2022년 9월 13일
0

컴퓨터네트워크

목록 보기
1/11
post-thumbnail

이번 챕터의 목표

네트워크를 이해하자 😂😂

인터넷이란 무엇인가?

1. 구성요소로 본 인터넷

인터넷에는 수많은 컴퓨터와 그에 관련된 장치들이 연결되어 있다.

  • 호스트 또는 end system
    -> 연결된 네트워크에서 모든 장치들은 호스트 혹은 종단 시스템(end system)이라 불린다.
    (종단 시스템은 개방형 시스템 간 상호 접속(OSI)에서 규정한 모든 계층(7계층)을 갖춘 시스템. 다시 말하면 네트워크에서 서로 통신하는 송신 시스템과 수신 시스템을 말하며, 호스트라고도 불림)
  • 통신 링크(동축케이블, 구리선 등 다양한 물리매체)
  • 라우터 (최종 목적지 방향으로 패킷 전달)
    이런 네트워크에서의 모든 장치들, 즉 종단 시스템들은 통신 링크패킷 스위치를 통해 네트워크로 연결된다. 이런 연결은 동축 케이블, 구리선, 광케이블과 같은 물리적 매체를 통해 이루어진다. 그리고 데이터들의 속도를 따지는 전송률(transmission rate)이 있는데 단위는 bps다.

패킷 스위치로는 라우터(router), 링크 계층 스위치가 있다. 이들의 목적은 패킷의 전송으로, 링크 계층 스위치는 액세스 네트워크에 쓰이고, 라우터는 네트워크 코어에 쓰인다. 코어 망과 액세스 망에 대해서는 이후의 챕터에서 자세히 공부할 예정.

종단 시스템(일반적으로 우리가 사용하는 PC)은 ISP(internet service provider) 를 통해 인터넷에 접속하며, 각 ISP는 패킷 스위치(라우터, 링크계층 스위치)와 통신 링크로 이루어진 네트워크다. 이 네트워크 통신에는 규약이 존재하는데, 이를 프로토콜(protocol) 이라고 한다. 그 예시로 유명한 것으론 TCP/IP 가 있다. IP 프로토콜은 라우터와 종단 시스템 사이에서 송수신되는 패킷 포맷을 기술한다.

2. 서비스 측면에서의 인터넷

애플리케이션끼리 데이터를 교환하는 많은 종단 시스템을 포함하고 있는 분산 애플리케이션

3. 프로토콜

프로그램끼리 데이터를 주고 받기 위해서는 사전에 정의된 규약이 있어야 한다. 그렇지 않으면 어떤 형식의 데이터이며, 어떻게 처리해야 할 지 알 수가 없기 때문! 😂
그래서 프로토콜은 둘 이상의 통신 개체간에 교환되는 메세지의 포맷과 순서, 다른 이벤트에 따른 행돌들을 정의한다.

네트워크 개체들 사이에 주고 받는 메세지의 포맷과 순서를 정의하고, 메세지 송신과 수신에 관련된 행위를 정의한다.
사람 프로토콜 : 사람 <--> 사람
컴퓨터 네트워크 프로토콜 : 컴퓨터 <--> 컴퓨터 ex) TCP 연결 요청

2. 네트워크의 가장자리(Edge)

Network Edge : 우리가 일반적으로 사용하고 있는 컴퓨터. 즉 호스트 또는 end syste(종단 시스템)을 의미한다.

접속 네트워크

네트워크의 종류에 대해 알아보자
오늘날 널리 보급된 광대역 가정 접속 유형은 DSL(digital subsriber line - 디지털 가입자회선)이다. 각 DSL은 지역 중앙국에 위치한 DSLAM(digital subscriber line access multiplexer - 디지털 가입자 회선 접속 멀티플렉서)와 데이터를 교환한다. 여기서 DSL은 기존의 전화선인 꼬임쌍선을 이용하여 데이터를 주고 받는다. 케이블 인터넷은 기존의 케이블 TV를 기반으로 하여 광케이블과 동축케이블을 사용하여 데이터를 주고 받는다.

데이터 통신에 널리 사용되는 물리매체는 ...

  • 꼬임쌍선 : 가정에서 널리 쓰이는 매체
  • 동축 케이블
  • 광섬유
  • 지상 라디오 채널 : 전파기 스펙트럼 매체
  • 위성 라디오 채널

호스트 간의 관계

  • 클라이언트 / 서버 모델 : 클라이언트는 서버에게 서비스를 요청하고 서버로부터 서비스를 받는다.
  • peer to peer 모델 : 화상회의

데이터를 주고 받기 위해 어떤 종류의 서비스를 제공받는가?

TCP : Transmission Control Protocol

  • 데이터를 전송하기 전에 handshake를 한다.
  • 신뢰성, 순서 보장, 혼잡제어, 흐름제어
    ex) HTTP, FTP, Telnet, SMTP
    UDP : User Datagram Protocol
  • handshake를 하지 않고 바로 데이터를 전송
  • 신뢰성 x 흐름제어 x 혼잡제어 x
    ex) 스트리밍 영상, Teleconferencing

3. 네트워크 코어

Network Core : 인터넷의 end system들을 서로 연결하는 라우터들의 망 조직 (패킷 스위치들과 링크들의 연결망)

라우터를 통한 데이터 전송은 어떻게 이루어 지는가?

  • 패킷교환과 회선교환으로 나누어진다.

패킷교환

대부분의 패킷교환은 저장 후 전달 전송(store and forward transmission)방식을 사용한다. 따라서 라우터는 한 개의 패킷을 버퍼에 저장한 후에 목적지로 송신.
수신이 완료된 패킷은 출력 버퍼에 저장된 다음에 전송되는데, 이때 출력 작업이 진행중이면 대기를 해야한다. (이렇게 대기하는 것은 큐잉 지연이라고 한다.)

만약 출력버퍼가 가득차서 패킷을 저장할 수 없다면, 패킷은 버려지게 된다. 이렇게 버려지는 것을 패킷 손실(packet loss)라고 한다. 패킷의 헤더에는 목적지인 IP 주소가 포함되어 있는데, 라우터는 이 IP주소를 출력링크에 맵핑하는 전달 데이블(forwarding table)을 가지고 있다.

회선교환

end system 간 통신에 링크를 독점적으로 예약해서 사용한다. 다른 데이터가 예약되어 있고 사용하지 않고 있는 링크를 사용할 수 없어, 효율성이 떨어진다. (회신 교환을 하는 동안에 경로상 필요한 자원들이 할당된다. ex 전화망)

한 링크 내에서 채널을 나누는 기준

  • 회선 방식에서는 할당 된 자원이 었어서 일정한 속도를 보장받는다. 이런 회선 교환의 방법으로는 주파수-분할 다중화(frequency-division multiplexing - FDM) -> (채널을 주파수 대역별로 나누는 방식), 시-분할 다중화(time-division multiplexing - TDM) -> (채널을 시간대별로 나누는 방식)가 있다.

현재는 패킷 스위칭을 더 많이 쓰고 있다. 그 이유는 같은 네트워크를 사용할 때, 패킷스위칭을 사용하면, 더 많은 사용자들이 네트워크를 이용할 수 있기 때문이다.
그러나 네트워크를 부하가 과중되면, 패킷 딜레이 또는 패킷 손실이 발생할 수 있다. 🤔🤔


4. 패킷교환 네트워크에서의 지연, 손실과 처리율

패킷 교환과 네트워크에서의 지연개요

패킷은 한 호스트(종단 시스템(end system))에서 출발하여 여러 노드들을 거치면서 다른 호스트에 도착하게 된다. 이 과정에서 다양한 지연을 겪게 되는데, 노드 처리 지연, 큐잉 지연, 전송 지연, 전파 지연... 이런 지연들이 쌓여서 전체 노드 지연을 일으키게 된다! 😢😢

각 패킷 스위치(라우터, 링크 계층 스위치)에는 여러 개의 링크가 연결되어 있고, 각각의 링크에 대해 패킷 스위치는 출력 버퍼를 가지고 있다.
출력 버퍼는 링크에 보낼 패킷을 담고 있으며, 패킷 교환에 중요한 역할을 한다. ex) 만약 패킷이 도착하면 링크에 전송해야 하지만, 링크가 혼잡하다면 패킷은 출력 버퍼에서 대기(큐잉 지연), 만약 패킷이 도착했을 때 이미 출력 버퍼가 다 차 있으면 패킷 손실 발생, 도착한 패킷이나 큐 안에 있는 패킷이 손실된다.

지연의 종류

큐잉지연 : 패킷이 큐에서 링크로 전송되기를 기다리는 시간(출력버퍼에서 대기), 몇개의 패킷이 큐에 있는지에 따라 결정된다. (큐가 비어있으면 지연 시간은 0)
처리지연 : 패킷의 헤더를 확인하고 패킷이 어디로 가야하는지 결정하는 시간, 이 과정 이후 라우터는 패킷을 링크된 라우터의 큐로 보낸다.
전송지연 : 패킷 길이를 L, 링크의 전송률(transmission rate)을 R/bps 라고 할 경우에 전송 지연 시간은 L/R 이 된다. 즉, 패킷의 모든 비트를 링크로 밀어내는 시간이다.
전파지연 : 링크의 시작부터 목적 라우터까지의 전파에 필요한 시간. --> 링크의 전파 속도, 물리적 매체에 따라 다르다.

종단 간 지연(end-to-end)

종단 간 지연은 말 그대로 종단 간의 통신에 걸리는 시간.

5. 프로토콜 계층과 서비스 모델

계층구조

네트워크는 몇 가지 계층적 구조는 복잡한데, 이를 단순화 하기 위해서 몇 가지 계층으로 나누었다. 인터넷 프로토콜은 5개, OSI 참조 모델은 7개다.

애플리케이션
애플리케이션 계층은 애플리케이션 및 애플리케이션 계층의 프로토콜이 있는 곳이다. 이 계층엔 HTTP, SMTP, FTP 같은 프로토콜들이 존재한다. 애플리케이션 계층에서 종단 간의 정보 패킷을 교환하는데, 이를 메세지 라고 부른다.
트랜스포트
트랜스포트 계층은 클라이언트와 서버 사이의 애플리케이션 메시지를 전송하는 서비스를 제공한다. 인터넷엔 UDP, TCP라는 2가지 트랜스포트 프로토콜이 있다. TCP는 연결지향형 서비스를 제공하고, UDP는 비연결형 서비스를 제공한다. 이 계층에서 패킷을 세그먼트 라고 한다.
네트워크
인터넷의 네트워크 계층은 호스트에서 다른 호스트로 데이터그램을 라우팅하는 일을 한다. 트랜스포트 계층에서 세그먼트(패킷..?)를 전달해주면, 네트워크 계층은 이를 다른 호스트의 트랜스포트 계층으로 세그먼트를 전달 해준다. 이 계층은 IP 프로토콜을 지니고 있으며, 이 프로토콜을 수행하여 목적지를 찾아간다.
링크
네트워크 계층에서 다른 노드로 패킷을 전송하기 위해 링크 계층에 의지해야 한다. 링크 계층은 패킷 스위치(라우터)를 통해서 데이터그램을 전달한다. 이 계층의 서비스는 프로토콜에 의해 결정이 되는데, 그 예로 이더넷, 와이파이, DOCSIS가 있다. 또한, 여러 링크를 거치므로 여러 프로토콜을 만나게 될 수도 있다. 이 계층에서 패킷을 프레임이라 칭한다.
물리
프레임(링크계층에서의 패킷) 내부의 각 비트를 노드에서 노드로 전달을 하는 역할을 한다. 이 계층은 실질적인 전송 수단으로서, 각 전송 매체마다의 프로토콜이 존재한다(꼬임쌍선, 단일 모드 광케이블).
OSI 모델
ISO(국제 표준 기구)에서 7계층 컴퓨터 네트워크를 제안하였고, 이것이 OSI 모델이 되었다. 여기서 프리젠테이션 계층, 세션 계층이 추가되었다. 프리젠테이션 계층은 데이트를 해석하는 서비스를 제공하고, 세션 계층은 데이터 교환의 경계 및 동기화를 제공한다.

TCP/IP 4계층

  • 어플리케이션계층
  • 전송계층
  • 인터넷 계층
  • 네트워크 접속 계층

6. 공격받는 네트워크

오늘날의 네트워크는 여러가지 방법으로 공격을 받고있다. 어떤 종류의 공격이 있는지 간단하게 확인하자

  • 맬웨어(악성코드)를 침투시켜서 공격하기
  • 네트워크 취약성, 대역폭 플러딩(flooding), 연결 플러딩 공격
  • 패킷 스니핑을 통한 패킷 감청
  • IP 스푸핑을 하여 사용자 도용
profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글