CS 스터디 -네트워크 1편

Alex·2025년 1월 6일
0

CS를 공부하자

목록 보기
7/74

네트워크 기초

네트워크란 '둘 이상의 컴퓨터와 이들을 연결하는 링크 조합'이다. 단말기 간 통신을 위한 연결다리라고 생각하면 된다.

연결은 네트워크 통신을 위해선 유선/무선 연결이 필요하다. 가까운 거리는 무선으로 연결해도 속도가 괜찮지만, 국가 단위의 연결은 아직 유선 케이블을 주로 이용한다.

MAC Addresss는 NIC(Network interface Controller)에 해당되는 물리적 주소다. ip주소와동일하게 유니크하다.

BGP는 Border Gateway Protocol로, 라우팅 정보는 교환하는 프로토콜이다.

N-S & E-W

N-S (North-South)
주로 외부와 내부 네트워크 간 트래픽을 의미한다(클라이언트가 서버에 접속)

E-W (East-West)
같은 내부망사이의 트래픽을 의미한다(내부망 서버가 내부망에 위치한 DB와 통신)

inbound & outbound
inbound는 외부에서 내부로 들어오는 데이터를 의미하며, outbound는 반대로 내부에서 외부로 나가는 데이터를 의미한다.

DSR (Direct Server Return)
DSR은 Direct Server Return의 약자로 LB를 통해 들어온 트래픽을 바로 서버로 리턴하는 방식을 의미한다.

클라이언트 트래픽은 로드밸런서로 서버로 전송되며, 서버 응답은 로드밸런서를 통해 다시 클라이언트로 전송된다. 이렇게 진행되면 라우터 부하카 커진다. 특히 outbound 부하가 크기에 DSR로 라우터 부하를 최소하ㅗ한다.

주요 지표

대역폭(BandWidth)
처리량/처리속도로 단위 시간 당 전송되는 데이터 양을 의미한다.
10bps는 1초에 10bit를 전송하는 의미.

지연시간
데이터가 발신 시점에서 수신 지점까지 전달되는 데 걸리는 시간이다. 주로 RTT라는 용어를 자주 쓴다.

주요 장비

스위치
네트워크를 통해 디바이스를 연결준다. 라우터와 다르게 오직 하나의 디바이스에만 데이터를 전송한다. L2, L3 스위치가 존재한다. MAC을 기반으로 하면 L2, IP를 기반으로 하면 L3 스위치다.

라우터
패킷이 네트워크를 통과해서 목적지에 도달할 수 있는 경로를 선택한다. 라우터는 외부 인터넷과 연결이 필요하기도 하지만 스위치는 내부 필요한 장비와 연결만 되있으면 된다.

OSI 7 계층

네트워크 통신이 일어나는 과정을 7단계로 나눈 것

  • 통신이 일어나는 과정을 단계별로 파악할 수 있고
  • 7단계 중 특정한 곳에 이상이 생기면 다른 단게의 장비와 소프트웨어를 건들이지 않고도 이상이 생긴 부분을 고칠 수 있다.

1단계 물리계층(Physical Layer)

  • 전기, 기계, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송한다.
  • 통신단위는 비트이며, 1과 0으로 나타난다. (전기의 on, off)
  • 전달할 데이터가 무엇인지, 어떤 에러가 있는지 전혀 신경쓰지 않는다.
  • 대표적인 장비로는 통신 케이블, 리피터, 허브가 있다.

2단계 데이터링크 계층

  • 물리 계층으로 송수신되는 정보의 오류와 흐름을 관리해 안전한 정보전달을 돕는다.
  • 통신 오류를 찾아주고 재전송 기능이 있다.
  • 맥주소로 통신한다.
  • 대표적 장비로는 브릿지, 스위치로 MAC 주소를 가지고 물리 계층에서 받는 정보를 전달한다.
  • 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아내고, 수정하는데 필요한 기능적, 절차적 수단을 제공한다

3단계 네트워크 계층

  • 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이다.
  • 경로를 선택하고, 주소를 정하고 경로에 따라 패킷을 전달해준다.
  • 대표적 장비는 라우터이고, 요즘은 2계층 장비 중 스위치에 라우팅을 장착한 Layer3 스위치도 있다.
  • 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다.
  • 논리적인 주소 구소(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적이다.

IP 계층

TCP/IP 상에서 IP 계층이란, 네트워크 주소를정의하고 IP 패킷의 전달 및 라우팅을 담당하는 계층이다.

IP 프로토콜

주요 특징

'신뢰성(에러제어)' 및 '흐름제어' 기능이 전혀 없음 -> Best-Effort Service
-> 한편, 신뢰성을 확보하려면 IP 계층 위의 TCP와 같은 상위 트랜스포트 계층에 의존해야 함.
비연결성 데이터그램 방식으로 전달되는 프로토콜 -> Connectionless
패킷의 완전한 전달(소실, 중복, 지연, 순서 바뀜 등이 없게 함)을 보장하지 않음 -> Unreliable
IP 헤더 내 바이트 전달 순서: 최상위 바이트(MSB)를 먼저 보냄 -> Big-endian
경우에 따라, 단편화가 필요함
TCP, UDP, ICMP, IGMP 등이 IP 데이터그램에 실려서 전송

4단계 전송 계층(트랜스포트 레이어)

  • 통신을 활성화하기 위한 계층
  • 보통 TCP 프로토콜을 이용하고, 포트를 열어서 응용 프로그램들이 전송할 수 있게 해준다.
  • 데이터가 왔으면 4계층에서 데이터를 합쳐서 5계층으로 전달한다.
  • 양 끝단(End to End)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
  • 시퀀스 넘버 기반의 오류 제어 방식을 사용한다.
  • 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜을 상태 개념이 있고(stateful), 연결 기반(connection oriented)이다.
    이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.
  • 기능: 오류 검출 및 복구와 흐름 제어, 중복 검사 등을 수행

TCP 프로토콜(Transmission Control Protocol)

신뢰성 있음
패킷 손실, 중복, 순서 바뀜 등이 없도록 보장
TCP 하위 계층인 IP 계층의 신뢰성 없는 서비스에 대해 다방면으로 신뢰성을 제공
연결 지향적
같은 전송 계층의 UDP가 비연결성인 것과 달리, TCP는 연결지향적이다.
연결 관리를 위한 연결 설정 및 연결 해제 필요 -> TCP 연결 설정, TCP 연결 종료
양단간 어플리케이션 및 프로세스는 TCP가 제공하는 연결성 회선을 통하여 서로 통신

UDP 프로토콜(User Datagram Protocol)

신뢰성이 낮은 프로토콜로써 완전성을 보증하지 않으나, 가상회선을 굳이 확립할 필요가 없고, 유연하며, 효율적인 응용의 데이타 전송에 사용
비연결성, 신뢰성이 없음, 순서화 되지 않은 Datagram 서비스 제공
메시지가 제대로 도착했는지 확인하지 않음(확인 응답 없음)
수신된 메시지의 순서를 맞추지 않음(순서 제어 없음)
흐름 제어를 위한 피드백을 제공하지 않음(흐름 제어 없음)
검사합을 제외한 특별한 오류 및 검출 제어 없음 -> UDP를 사용하는 프로그램 쪽에서 오류 제어 기능을 스스로 갖추어야 함
데이터그램 지향의 전송계층용 프로토콜(논리적인 가상회선 연결이 필요 없음) -> 비연결접속상태 하에서 통신

실시간 응용 및 멀티캐스팅 가능

빠른 요청과 응답이 필요한 실시간 응용에 적합
여러 다수 지점에 전송 가능(1:다)
헤더가 단순함
UDP는 TCP처럼 16비트의 포트 번호를 사용하나, 헤더는 고정 크기의 8 바이트(TCP는 20 바이트)만 사용 -> 즉 헤더처리에 많은 시간과 노력을 요하지 않는다.

5단계 세션 계층

  • 데이터 통신을 위한 대문
  • 세션 설정, 유지, 종료, 전송 중단, 복구 등의 기능이 있다.
  • 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다 -> 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.

통신하는 사용자들을 동기화 하고 오류 복구 명령들을 일괄적으로 다룬다.
통신을 하기 위한 세션을 확립/유지/중단(운영 체제가 해줌)

6단계 표현 계층

  • 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화 한다.
  • 코드 간의 번역을 담당하여 사용자 시스템에서 데이터 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어준다.
  • MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다.
    예를 들면, EBCDIC로 인코딩 된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것, 해당 데이터가 TEXT인지, 그림인지, GIF인지 JP인지 등의 구분 등이 표현 계층의 몫이다.

7단계 응용계층

  • 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.
  • 해당 통신 패킷들은 방금 나열한 프로토콜에 의해 모두 처리되며 우리가 사용하는 브라우저나, 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용프로그램이다. 한마디로 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아니다.
  • 일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다.
    응용 서비스의 예로, 가상 터미널(예를 들어, 텔넷), "Job transfer and Manipulation protocol" (JTM, 표준 ISO/IEC 8832) 등이 있다.

인터넷과 IP

인터넷은 공통 프토토콜을 사용하고 공동 서비스를 제공하는 이기종 네트워크들의 거대한집합이다.

인터넷을 구성하는 모든 장치는 인터넷 용어로는 호스트, 또는 종단 시스템이라고 한다.

  • 호스트 : 클라이언트와 서버 역할을 모두 한다. IP를 사용해서 데이터 통신이 가능한 장치를 말한다.
  • 종단 시스템 : 네트워크의 끝에서 사용자 애플리케이션을 시작하거나, 데이터를 생성/저장/처리하는 역할이다. 호스트의 하위 개념이다.

흐름 이해하기
1. 종단 시스템은 통신 링크와 패킷스위치를 통해 네트워크로 연결되는데, 가각그이 링크들은 다양한 전송률을 이용해 데이터를 전송한다.
2. 한 종단 시스템이 다른 종단 시스템으로 데이터를 보내기 위해서 그 데이터를 세그먼트로 나누고, 각각의 세그먼트에 헤더를 붙인다. 이렇게 만들어진 정보를 패킷이라고 한다.
3. 패킷 스위치는 입력 통신 링크의 하나로 도착하는 패킷을 받아서 그 패킷을 전달한다. 가장 많이 사용되는 것이 라우터와 링크 계층 스위치다.
4. 패킷이 송신 종단 시스템에서 수신 종단 시스템에 도달하는 동안 거쳐온 일련의 통신 링크와 패킷 스위치를 네트워크 상의 경로(route, path)라고 한다.
5. 종단 시스템은 isp를 통해 인터넷에 접속한다.

프로토콜
둘 이상의 개체 간에 데이터를 송수신하기 위한 통신 규약이다. 데이터를 일관된게 교환하고, 해석할 수 있도록 보장한다.

IP
IP는 네트워크 계층에서 동작하는 프로토콜이며, 인터넷에서 데이터를 전송하기 위한 규칙을 정의한다.

주요 기능은 다음과 같다.

패킷화 → 데이터를 작은 패킷으로 분할한다.
라우팅 → 패킷이 최적의 경로를 통해 목적지에 도달하도록 경로를 설정한다.
주소처리 → IP주소를 사용해서 데이터를 전달한다.

네트워크 관리방식

IP 주소 클래스

IP클래스는 IPv4를 사용할 때 IP를 할당받는 방법을 말한다. 지금은 클래스 방식이 아닌 다른 방식(CIDR)을 쓰도록 1993년에 바뀌었지만, 서브넷팅의 기본 개념을 위해서 알아야 한다.

IP주소를 8비트로 4등분하면, 각각을 옥탯이라고 한다.
각 옥탯별로 0~255개의 범위가 되므로 각각 256개가 들어갈 수 있다.

이 옥택별로 IP의 클래스를 A,B,C로 나눌 수 있다.

A클래스

처음 8bit가 네트워크 ID이며, 나머지 24bit가 host ID로 사용된다.
첫번째 옥텟의 비트는 0으로 고정된다.
A클래스의 범위는 첫 옥텟이 1~126사이의 숫자로 시작한다.
A클래스는 호스트 ID대역이 24bit이므로, 네트워크 당 나올 수 있는 호스트 주소 개수는 1670만개이다. 대규모 네트워크에 적합하다.
B클래스

B클래스는 처음 16비트가 네트워크 ID이며, 나머지 16bit가 호스트 ID로 사용된다.
B클래스의 첫번째 옥텍의 두번째 비트가 10으로 고정된다.
B클래스의 범위는 첫 옥텍이 128~191사이 숫자로 시작한다.
호스트 대역이 16bit이므로 네트워크당 나올 수 있는 호스트 수는 약 65000개이므로 중규모 네크워크에 적합하다.

처음 24bit가 네트워크 ID, 나머지 8bit가 호스트 ID로 사용된다.
C클래스는 첫번째 옥텟의 세번째비트가 110으로 고정된다.
C클래스의 범위는 첫 옥텟이 192~223사이에 숫자로 시작된다.
호스트 대역이 256개 이므로, 소규모 네트워크에 적합하다.
아이피 주소에서 사용할 수 없는 주소가 두가지 존재한다. 가장 첫번째 호스트 주소는 네트워크 자체를 지칭하며, 마지막 주소는 브로드캐스트용 주소로 쓰인다.

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글