본문 바로가기

server

네트워크 기초 지식

네트워크란

컴퓨터와 컴퓨터가 그물망처럼 통신 매체로 연결되어서 데이터를 운반하는 것 

 

네트워크 장점

데이터 통신으로 컴퓨터가 가진 리소스를 공유 가능

cf. 리소스 예 : CPU 처리능력, 메모리 용량, 하드디스크 용량, 파일이나 폴더에 쓰여진 정보, 프린터 등 주변기기, 사용자가 가진 지식, 기능

 

데이터 통신 기초

  • 데이터 : 컴퓨터 상에서 리소스를 공유하기 위한 정보, Bit(0,1)로 구성
  • 데이터 통신 : 비트로 만들어진 데이터를 다른 컴퓨터에 보내거나 받는 것 
  • 인터페이스 : 2개의 서로 다른 시스템 사이에 존재하며 정보의 송수신을 중개하는 것
  • 프로토콜 : 데이터를 주고받기 위한 규칙, 보내는 쪽과 받는 쪽이 같은 프로토콜 사용해야 함 

 

회선 교환과 패킷 교환 

  • 회선 교환 : 파이프를 교체하는 방식 ex. 전화 네트워크 
  • 패킷 교환 : 패킷(묶음)으로 분할해서 송신하는 방식 ex. 컴퓨터 네트워크, 패킷에 수신처를 붙여서 패킷이 섞여도 각 수신처에 도달함. 

 

네트워크 구조 

  • 패킷 교환에서 필요한 기기 : 컴퓨터, 인터페이스, 통신 매체, 패킷 교환기로 라우터라 불리는 기기 사용 
  • 세그먼트 : 패킷 교환없이 케이블 분배기로 연결되는 범위 
  • 멀티엑세스 네트워크 : 허브라는 기기 사용으로 컴퓨터 한 대가 세그먼트 내의 어떤 컴퓨터에도 자유롭게 데이터 송수신 가능한 구조 
  • 포인트 투 포인트 네트워크 : 전용선이라고 불리는 회선을 사용하여 컴퓨터 한 대가 다른 한 대의 컴퓨터에만 데이터를 보내는 방식 
  • 패킷 교환 네트워크 : 멀티엑세스 네트워크와 포인트 투 포인트 네트워크가 조합된 네트워크 (컴퓨터 네트워크는 컴퓨터에서 라우터, 라우터에서 라우터, 라우터에서 컴퓨터라는 식으로 연결, 컴퓨터에서 라우터는 멀티엑세스, 라우터에서 라우터는 포인투 포인트 네트워크임)

 

LAN과 WAN(네트워크의 범위나 규모로 분류)

  • LAN(Local Area Network) : 지역적으로 좁은 범위에서 본인이 책임지고 구축하는 네트워크 
  • WAN(Wide Area Network) : 떨어져 있는 지역의 LAN끼리 통신사업자의 통신 케이블을 빌려서 연결한 네트워크

 

OSI 참조 모델 

  • 데이터 통신의 단계와 순서의 설계도 
  • 각 계층은 독립되어 있음
  • 하위 계층은 상위 계층을 위해 일하고 상위 계층은 하위 계층에 관여하지 않음  
  • 네트워크에 의한 데이터 통신은 단계마다의 복수의 프로토콜로 실현됨 
7계층 응용계층 사용자에게 네트워크 서비스 제공 
6계층 표현계층 데이터 형식 결정
5계층 세션계층 데이터를 주고받는 순서 등을 관리
4계층 전송계층 신뢰성 높은(에러가 적은) 전송을 함
3계층 네트워크계층 전송 규칙이나 수신처 결정
2계층 데이터링크계층 인접 기기에 대한 데이터 전송 제어
1계층 물리계층 전기, 기계적인 부분의 전송을 실시

 

캡슐화

  • 데이터 통신 시 데이터 운반하기 위해서는 데이터 이외에 다른 것(ex. 수신처, 송신처의 주소, 데이터 통신 제어 위한 데이터 등)도 필요.
  • 프로토콜 데이터 유닛(PDU) : 데이터랑 데이터를 보내기 위해 필요한 것들이 통합된 상태 
  • PDU 호칭 (3계층 PDU는 패킷이라고 부르는 경우도 있음, 다만 패킷은 PDU 자체를 가르키는 경우도 있음.)

계층호칭내용

사용자 데이터(Data) 송수신하고 싶은 데이터

7계층 PDU

6계층 PDU

5계층 PDU

메세지(Message) 데이터를 통신용으로 변환한 것과 7계층 헤더
4계층 PDU

세그먼트(Segment)

데이터그램(Datagram)

메세지와 4계층 헤더
3계층 PDU 데이터그램(Datagram) 세그먼트, 데이터그램과 3계층 헤더
2계층 PDU 프레임(Frame) 데이터그램과 2계층 헤더
1계층 신호 프레임을 전송매체로 운반하기 위한 신호로 변환

 

  • 캡슐화(Encapsulation) : 데이터에 제어정보를 덧붙여 PDU로 완성하는 것 , 수신한 쪽에서는 캡슐을 벗겨가게 되는 것 
  • 데이터 앞에 붙이면 헤더(Header), 뒤에 붙이면 꼬리부(Trailer)

 

프로토콜

  • 데이터 통신에 필요한 프로토콜은 한 개가 아니라 복수의 프로토콜로 이루어짐 
  • 인터페이스 : 프로토콜과 프로토콜의 중개역, 상하의 프로토콜을 연결함  
  • 프로토콜군(Protocol Suite) : 각각의 계층에서 사용되는 프로토콜을 통합한 것
  • 데이터의 내용, 헤더의 내용은 프로토콜로 정해져 있음  
  • 프로토콜은 데이터를 송수신하는 순서와 내용도 결정
  • 인터넷에서 사실표준으로써 TCP/IP 프로토콜군이 사용되고 있음 

 

TCP/IP 모델 

  • TCP/IP 모델 → TCP/IP 프로토콜군 
4계층 애플리케이션 계층

HTTP(Hyper Text Transfer Protocol)

FTP(File Transfer Protocol)

SMTP(Simple Mail Transfer Protocol)

3계층 트랜스포트 계층

TCP(Transmission Control Protocol)

UDP(User Datagram Protocol)

2계층 인터넷 계층

IP(Internet Protocol)

ARP(Address Resolution Protocol)

1계층 인터페이스 계층 이더넷, 프레임 릴레이, PPP(Point-to Point Protocol) 등을 이용

 

1계층의 역할과 개요

  • 1계층의 역할 : 케이블이 연결되어 있는 기기에 신호 전달 (수신처에 데이터 전달)
  • 통신 매체 : 신호가 지나는 파이프 역할 (유선/무선)
  • UTP(Unshielded Twist Pair cable) : 동선 케이블 종류, 이 케이블에 신호를 보내고 받는 기계가 인터페이스 
  • 인터페이스 : 컴퓨터와 케이블의 중개역, LAN용 케이블용 인터페이스는 NIC(Network Interface Card)가 일반적, WAN의 경우 DCE(Data Circuit terminating Equipment : 회선종단기기)라는 별도 신호 변환기 사용

 

신호와 충돌

  • 인터페이스 : 비트를 신호로, 신호를 비트로 변환하는 기기 
  • 신호의 종류 : 아날로그 신호, 디지털 신호, 데이터 통신에는 일반적으로 디지털 신호 사용
  • 신호의 형태와 전송방법에 따라 통신속도 결정
  • bps(bit per second) : 1초동안 전해지는 비트 수 
  • 신호에 발생하는 문제 : 신호의 감쇠, 노이즈,간섭, 충돌  

 

허브 

  • 허브에 케이블로 연결되어 있는 기기는 동일 케이블에 연결되어 있는 것과 같음 
  • 포트 : 허브의 케이블 삽입구 (포트의 수는 제품에 따라 4, 8, 16, 32개 등)
  • 허브의 기능 : 신호의 증폭과 재생, 복수의 기기를 연결해서 네트워크를 구축하는 기능(허브에 연결되어 있는 기기끼리 신호 주고받기 가능)
  • 연속 접속(Cascade Connection) : 허브끼리 접속하여 신호가 도달하는 범위 넓힘 
  • 플러딩(flooding) : 수신한 포트 이외의 모든 포트에 수신한 신호 송신  
  • 충돌 도메인(Collision Domain) : 신호를 송신하면 충돌이 발생할지도 모르는 범위, 충돌 도메인은 작아야만 함(충돌 도메인 내의 컴퓨터 수가 적다)

 

2계층의 역할과 개요

  • 2계층의 역할 : 신호가 닿는 범위에서의 데이터 전송에 대한 규정, 세그먼트 범위에서의 데이터 전송 

cf. 세그먼트 범위 : 멀티엑세스 네트워크라면 허브에 의해 연결되어 있는 범위, 포인트 투 포인트 네트워크라면 컴퓨터와 라우터, 라우터와 라우터 사이 

  • 2계층에서는 1계층에서 사용하고 있는 케이블이나 신호에 따라 사용하는 규격이 다름 (LAN용/WAN용)
  • 이더넷(Ethernet) : LAN 의 사실표준 
  • 프레이밍 : 송수신되는 비트열에 의미를 주어(프리엠블) 데이터로 취급할 수 있게 함 → 수신측에서 비트를 읽는 타이밍을 맞추게됨

 

2계층 주소와 이더넷

  • 주소(Address)  : 이더넷이 사용되는 주소, 데이터를 보내는 상대와 자신을 특정하는 데이터 
  • 주소는 데이터 전송 방법에 따라 3종류가 있음 (유니캐스트, 브로드캐스트, 멀티캐스트)
  • 유니캐스트 : 1대1 데이터 통신(특정 1대만 수신처인 데이터 통신)
  • 브로드캐스트 : 1대 전체, 모두(세그먼트내의 모든기기)에게 메시지를 보내는 데이터 통신 
  • 멀티캐스트 : 1대 다수, 지정된 복수의 기기(기기의 그룹)로 메시지를 보내는 데이터 통신 
  • 각각의 기기는 유니캐스트 주소를 적어도 한 개는 가지고 있음
  • 인터페이스마다 유니캐스트 주소를 적어도 1개 이상 가짐 이때 유니캐스트 주소는 유일
  • 이더넷에서는 MAC 주소가 사용됨 
  • MAC 주소(Media Access Control) : 인터페이스에 지정된 고정 주소, 48비트로 16진수 12자리로 표기되는 주소 

 

이더넷 

  • LAN에서의 2계층은 이더넷이라는 규칙이 적용됨 
  • 이더넷 헤더 + 이더넷 트레일러 → 이더넷 프레임 , 이더넷에서는 수신처와 송신처의 MAC 주소, 에러 체크 등을 헤더, 트레일러로 붙임 
  • FCS(Frame Check Sequence) : 에러 체크용 비트열 
  •  송신 컴퓨터가 유니캐스트로 프레임을 송신하면 모든 기기에 도달함 → 수신한 프레임의 수신처 MAC 주소가 자신의 MAC 주소가 아닌 컴퓨터는 프레임을 파기한다(송신측에 알리지 않는다)
  • CSMA/CD(Carrier Sense Multiple Access/Collision Detection) : 엑세스 제어 , 이더넷에서 신호를 보내는 타이밍을 겹치지 않게 하여 충돌 예방 (CS - 신호감지, MA - 다중 액세스, CD - 충돌검사)

 

스위치 

  • 충돌이 발생하지 않도록 하기 위해서 신호를 나누는 방법 (허브 대신에 사용)
  • 스위치 안에서 수신처가 다른 프레임이 동시에 스위치에 도달해도 수신한 프레임을 따로따로 보낼 수 있도록 처리해서 충돌을 막음 → MAC 주소 필터링, 버퍼링 사용
  • MAC 주소 필터링 :수신처 MAC 주소에 대응한 포트만 프레임을 송신하는 것 
  • 학습에 의해  스위치는 포트에 연결되어 있는 컴퓨터의 MAC 주소를 기억하여 대응표(어드레스 테이블)를 만듬
  • 어드레스 테이블에서 수신처 MAC 주소에 대응하는 포트를 찾아내 그 포트로부터만 송신 

 

전이중 이더넷 

  • 수신처가 같은 프레임이 동시에 도달했을 시 충돌 방지 → 버퍼링 
  • 버퍼 : 버퍼는 일시적으로 데이터를 기록해 둘 수 있는 기억기기(메모리)
  • 버퍼링 : 충돌할 것 같은 프레임을 버퍼에 일시적으로 저장해둔 것, 첫번째 프레임 송신이 끝나면 저장해 두었던 프레임을 송신시키는 것 
  • 버퍼 용량 부족한 경우 백 프레셔 또는 IEEE802.3x 규격 사용하여 송신 조정 (버퍼 부족 판단 시 송신 중지) 
  • 충돌 도메인(그 범위에 있는 기기에서 충돌 가능성이 있다는 범위)는 스위치에 의해 분할 됨 (데이터 통신 효율 높임)
  •  전이중 이더넷 : 스위치 사용해 전이중 통신(송신과 수신을 동시에 가능)을 하는 것 , 스위치 사용 시 CSMA/CD(반이중 통신) 사용 필요없음, 단 스위치와 컴퓨터의 인터페이스 양쪽 모두 전이중 이더넷 대응 제품이어야 함

3계층의 역할과 개요

  • 세그먼트(segment) : 라우터와 라우터 간의 범위 
  • 3계층 : 세그먼트 간에서의 데이터 송수신 cf. 세그먼트 내에서 데이터 송수신 → 2계층
  • 3계층에서의 Network : 라우터와 라우터로 분배된 컴퓨터 그룹 
  • 인터넷작업(InternetWork) : 다른 네트워크 간의 데이터 송수신

 

인터넷 프로토콜(Internet Protocol)

  • 어드레싱(Addressing), 라우팅(Routing) → 인터넷 작업 실현 가능 
  • 3계층에서는 2계층에서 사용한 MAC 주소(물리주소) 사용안함
  • 논리주소 : 3계층에서 사용하는 주소(위치정보 포함, 어디 네트워크에 있는 어느 컴퓨터) 
  • 라우팅(routing) : 수신처까지 어떤 경로로 갈지 결정 (경유하는 네트워크 결정) → 라우팅을 행하는 기기가 라우터 
  • 어드레싱과 라우팅에 의해 인터넷 작업을 수행하기 위한 TCP/IP 프로토콜 → IP(Internet Protocol)
  • TCP/IP에서 인터넷 작업을 수행하는 것이 IP 

 

IP주소

  • 논리주소 → 네트워크 접속시마다 붙이므로 소속된 네트워크 변경 시 논리주소도 변경됨.
  • IP주소는 네트워크 번호와 컴퓨터 번호의 조합
  • 네트워크 번호는 접속되어 있는 모든 네트워크에서 유일해야 하고, 컴퓨터 번호는 그 네트워크 내에서 유일해야함
  • IPv4(32bit), IPv6(128bit)
  • 8비트를 1옥텟(Octet)으로 하여 4개의 옥텟으로 분할해 표기 
  • 인터넷에서는 ICANN(The Internet Corporation for Assigned Names and Number) 라는 조직에서 실제로 번호를 사용하는 조직에 할당 
  • IP 주소를 조직의 규모에 따라 A~E로 나누고 그 범위의 주소를 할당함.

클래스규모네트워크의 수1개의 네트워크가 가진 IP 주소 개수

A 정부, 연구기관, 대기업 128개 16,777,216개
B 대~중규모 기업 16,384개 65,536개
C 중~소규모 기업 프로바이더 2,097,125개 256개
D 멀티캐스트용
E 연구용
  • 클래스에 의해 컴퓨터 번호의 비트수가 정해지고 이것으로 조직이 가질 수 있는 IP 주소 수량이 결정됨 
  • 클래스풀 어드레싱(Classful Addressing) : 클래스로 나누어 IP 주소를 할당하는 방식 
  • 호스트 번호의 비트가 모두 0인 주소는 네트워크 주소
  • 호스트 번호의 비트가 모두 1인 주소는 브로드캐스트 주소 

 

서브네팅(Subnetting)

  • 네트워크를 작은 네트워크(Subnet)으로 나눔 
  • Subnet을 사용할 경우 IP 주소는 네트워크 번호, 서브넷 번호, 호스트 번호가 됨
  • 서브넷 부분의 비트 수에 의해 서브넷의 수와 서브넷마다 사용할 수 있는 IP 주소의 수가 결정됨 
  • 네트워크 번호, 서브넷 번호의 비트수를 나타내기 위해(어디까지가 서브넷 번호인지) 서브넷 마스크 사용
  • Subnet의 숫자를 크게 하면 각 서브넷의 호스트 수는 감소함 
  • 서브넷마스크(Subnetmask) :  IP 주소와 같은 32비트, 네트워크번호, 서브넷 번호의 비트를 모두1, 호스트번호를 0으로 함 
  • IP 주소와 Subnetmask는 반드시 세트로 기술함

 

클래스리스 어드레싱(Classless Addressing)

  • 현재는 기존의 클래스풀 어드레싱(Classful Addressing) 사용 안함 → 클래스에 딱 맞지 않으면 사용하지 않는 IP주소가 생김 (낭비)
  • 클래스리스 어드레싱(Classless Addressing) : 클래스에 따른 고정된 할당을 하지 않고 자유롭게 할당, 필요한 IP 주소의 개수로부터 네트워크 번호를 결정하는 방식 
  • 슈퍼넷(Super Network) : 기존의 클래스풀 어드레싱의 클래스 네트워크를 통합해서 하나로 운영하는 것 
  • 프리픽스 길이(Prefix-Length) : 네트워크 번호의 비트 수 나타냄 cf. 클래스풀 어드레싱 → 서브넷마스크  

 

DHCP

  • 이더넷 사용해서 IP 데이터그램 송수신 위해서는 4개의 주소 필요 → 수신처 MAC 주소, 송신처 MAC 주소, 수신처 IP 주소, 송신처 IP 주소 
  • 송신처 MAC 주소의 경우 송신할 인터페이스의 MAC 주소 사용 (NIC 장치하면 자동적으로 알 수 있음), 송신처 IP 주소의 경우 송신할 인터페이스의 수동이나 DHCP 에서 설정된 IP 주소 사용 
  • IP 주소는 정적(수동으로 IP 주소 입력), 동적 설정으로 나뉨
  • DHCP(Dynamic Host Configuration Protocol) : IP 주소가 자동으로 컴퓨터에 설정되는 방법 
  • IP 주소 풀(IP pool) : 관리자가 할당할 주소의 범위 
  • DHCP 서버는 설정된 IP 주소 풀 중에서 요청한 클라이언트에게 각각 유일한 것이 되도록 주소를 할당 
  • DHCP Message 는 주소와 옵션(메시지타입, 클라이언트 설정(서브넷마스크, 디폴트게이트웨이, DNS 서버주소, 대여기간 등)) 등의 정보를 갖음
  • DHCP는 DISCOVER, OFFER, REQUEST, ACK 4종류의 메시지를 클라이언트와 서버 간에 브로드캐스트를 사용해서 주고받음 

 

ARP

  • 수신처 MAC 주소는 수신처의 IP 주소가 결정된 후에 ARP로 알 수 있음
  • ARP(Address Resolution Protocol)  : '이 IP 주소의 호스트님, 당신의 MAC주소를 알려주세요' 라고 질문하는 프로토콜 
  • ARP Table : IP 주소와 MAC 주소의 대응표 
  • ARP 요청은 브로드캐스트로 네트워크 내의 모든 컴퓨터에 송신됨 
  • ARP 요청을 송신한 측의 컴퓨터는 ARP의 결과를 ARP 테이블에 기재하여 수신처의 MAC 주소가 결정됨 
  • 인터페이스 고장 등으로 MAC 주소가 변경되어도 대응하기 위해서 ARP 테이블은 일정 시간 경과 시 파기됨

 

DNS

  • 도메인명 (Domain Name) : 송신할 상대의 컴퓨터 이름  
  • DNS(Domain Name System) : 이름과 IP 주소를 대응시킨 시스템, DNS 서버(이름과 IP 주소의 대응 데이터베이스)에 문의하여 수신처의 IP 주소 입수 
  • 다른 조직의 도메인 명에 대응하는 IP 주소는 그 조직의 DNS 서버에 문의해서 입수 

**데이터 전송을 하기까지의 흐름 

DHCP, ARP, DNS를 사용하여 4개의 주소를 결정함 

① 자신의 IP 주소는 수동 또는 DHCP에서 할당 받고, MAC 주소는 자동적으로 안다 

② 사용자 애플리케이션이 수신처의 도메인 명을 결정하면 DNS로 IP 주소를 취득한다 

③ IP 주소가 결정된 후, ARP에 의해 MAC 주소를 취득한다.

④ 이것으로 송신처, 수신처의 MAC 주소, IP 주소를 알았기 때문에 데이터 전송이 가능해짐