네트워크의 구조
컴퓨터 간의 연결 = 컴퓨터 네트워크
인터넷은 전 세계를 연결하는 거대한 네트워크.
패킷 =컴퓨터 간의 데이터를 주고받을 때 네트워크를 통해 흘러가는 작은 데이터 조각.
큰 데이터는 작은 패킷으로 분할.
정보 양을 나타내는 단위
컴퓨터는 0과 1만 이해.
정보를 나타내는 최소 단위 = 비트
8비트 = 1바이트
숫자와 문자의 대응표 = 문자 코드 (ASCII문자)
특정 지역을 범위로 하는 네트워크를 = 랜(Local Area Network, LAN)
인터넷 서비스 제공자(ISP)가 제공하는 서비스를 사용하여 구축한 네트워크 = 왠(Wide Area Nerwork, WAN)
랜 > 왠
: 범위가 좁고 속도가 빠르며 오류가 발생할 확률이 낮다.
왠 > 랜
: 범위가 넓고 속도가 느리며 오류가 발생할 확률이 높다.
가정에서 하는 랜 구성
: 인터넷 서비스 제공자와 인터넷 회선을 결정하고 계약.
: 인터넷 서비스 제공자와 인터넷 공유기로 접속.
접속 방식
: 유선 랜 방식
: 무선 랜 방식
회사에서 하는 랜 구성
: DMZ는 외부에 공개하기 위한 네트워크.
외부에 공개하는 서버에는 주로 웹 서버, DNS 서버, 메일 서버.
: 회사의 서버는 온프레미스나 클라우드로 운영.
각 서버나 컴퓨터는 스위치나 무선 랜 기능을 사용하여 사내 랜에 접속.
네트워크의 규칙
통신하기 위한 규칙 = 프로토콜
OSI모델
: SO(국제 표준화 기구)에서 제정
: 응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층
TCP/IP 모델
: 응용 계층, 전송 계층, 인터넷 계층, 네트워크 접속 계층
캡슐화와 역캡슐화
데이터를 보낼 때는 필요한 정보에 추가하는 데이터 = 헤더
데이터에 헤더를 붙여 나가는 것 = 캡슐화
데이터를 수신할 때 각 계층에서 헤더를 제거해 나가는 것 = 역캡슐화
OSI 모델
데이터 송신 측
: 응용 계층 → 전송 계층 → 네트워크 계층 → 데이터 링크 계층 순서로 캡슐화
데이터 수신 측
: 데이터 링크 계층 → 네트워크 계층 → 전송 계층 → 응용 계층 순 역캡슐화
Vitual Private Network(가상 사설망)
: 가상 통신 터널을 만들어 거점 간을 연결하여 통신 / 외부에서 인터넷으로 사내에 접속하는 것
전기 신호 = 아날로그 신호 / 디지털 신호
아날로그 신호 = 전화 회선이나 라디오 방송에 사용
네트워크를 통해 상대방에게 데이터를 전송시, 비트열은 전기 신호로 변환 후 전송
받은 전기 신호는 다시 0과 1의 비트열로 복원
케이블의 종류와 구조
트위스터 페일 케이블 = 랜 케이블이라 지칭
랜 케이블의 양쪽 끝 RJ-45 커넥터
랜 케이블 = 다이렉트 케이블 / 크로스 케이블
왼쪽 UTP = Unshielded Twisted Pair
= 차폐 기능이 없는 기본적인 랜선. 이론상 전송 거리는 최대 100m
중간 FTP = Foil screened Twisted Pair
= 피복 안쪽을 호일로 한 번 감싸고 그 호일 안쪽에 구리접지선을 추가한 형태. 이론상 150 m의 거리
오른쪽 STP = Shielded Twisted Pair
= FTP에 꼬여있는 구리선을 한 묶음으로 나누어 한 번 더 호일을 감싸 준 형태.
= 가장 높은 차폐 능력. 가장 두껍고 비싸며 이론상 전송 거리는 200 m
리피터와 허브의 구조
리피터 = 네트워크를 중계하기 위한 장비
허브 = 리피터 허브 = 더미 허브
= 전기 신호를 정형하고 증폭하는 기능
리피터와 허브 = 받은 데이터를 보내는 대상뿐만 아니라 모든 포트에 전송
auto MDIX(auto Medium-Dependent Interface crossover)
= 다이렉트 케이블과 크로스 케이블을 자동으로 판단하는 기능
컴퓨터나 라우터의 인터페이스 = MD(Media Dependent Interface)
스위치나 허브의 인터페이스 = MDI-X(Media Dependent Interface crossover)
MDI와 MDI-X를 연결할 때는 다이렉트 케이블을 사용
MDI끼리와 MDI-X끼리 서로 연결할 때는 크로스 케이블을 사용
데이터 링크 계층의 역할과 이더넷
이더넷 = 랜에서 데이터를 정상으로 주고받기 위한 규칙. CSMA/CD 방식 사용
CSMA/CD (Carrier Sense Multiple Access/Collision Detection)
: CS는 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는 지 확인
: MA는 케이블에 데이터가 흐르고 있지 않으면 데이터를 보내도 된다는 규칙
: CD는 충돌이 발생하고 있는지 확인하는 규칙
네트워크 허브 등장
네트워크의 형태가 버스형에서 스타형으로 변경
이더넷은 실질적으로 충돌 자체가 발생하지 않는 구조로 변경
MAC 주소 = 48비트 숫자로 구성
= 앞쪽 24비트 : 랜 카드를 만든 제조사 번호 + 뒤쪽 24비트 : 제조사가 랜 카드에 붙인 일련번호
이더넷 헤더
= 목적지 MAC 주소(6바이트) + 출발지 MAC 주소(6바이트) + 유형(2바이트)
데이터 링크 계층에서 데이터 뒤에 추가하는 것 = 트레일러
스위치의 구조
스위치 = 데이터 링크 계층에서 동작
= 레이어 2 스위치 = 스위칭 허브
= MAC 주소 테이블 존재
MAC 주소 테이블 = 스위치의 포트 번호와 그 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터베이스
스위치가 수신 포트 이외의 모든 포트에서 데이터를 송신하는 것 = 플러딩
스위치에서 MAC 주소를 기준으로 목적지를 선택하는 것 =MAC 주소 필터링
데이터가 케이블에서 충돌하지 않는 구조
전이중 통신방식 = 데이터의 송신과 수신을 동시에 수행하는 통신 방식
반이중 통신 방식 = 회선 한 개로 송신과 수신을 번갈아가며 수행하는 통신 방식
데이터 충돌이 발생하고 그 충돌 영향이 미치는 범위 = 충돌 도메인
ARP: Address Resolution Protocol
= OSI 7 Layer에서 Layer 3에 위치한 프로토콜
= MAC 주소와 IP 주소를 서로 연결하는 용도
이더넷의 종류와 특징
: 10BASE5, 10BASE2, 10BASE-T, 100BASE-TX, 1000BASE-T, 10GBASE-T
: 각각의 앞 부분이 통신 속도
: 1000BASE-T는 1000Mbps UTP케이블(Cat5이상) 100m 1999년
10GBASE-T는 1000Mbps UTP케이블(Cat5이상) 100m 2006년
네트워크 계층의 역할
서로 다른 네트워크 간에 통신 > 라우터 필요
랜 안에서는 MAC 주소만으로도 통신 가능
네트워크 간에 통신은 IP 주소 필요
경로를 선택하고 목적지 IP 주소까지 어떻게 데이터를 전달할지 결정하는 것 = 라우팅
라우터의 라우팅 테이블에는 경로 정보가 등록
네트워크 계층의 대표적인 프로토콜 : IP
네트워크 계층에서는 캡슐화할 때 IP 헤더를 추가
IP 주소 : 인터넷 서비스 공급자에게 할당받음
IPv4의 IP 주소는 32비트, IPv6의 IP 주소는 128비트로 구성
공인 IP 주소 / 사설 IP 주소
IP 주소는 = 네트워크 ID /호스트 ID로 분리
IP 주소의 클래스 구조
= A~E 클래스 분리. 일반적으로는 A~C 클래스 사용
IP 주소의 클래스별 호스트 수는
= A 클래스가 1677만 7214대, B 클래스가 6만 5534대, C클래스 254대
네트워크 주소와 브로드캐스트 주소는 컴퓨터에 설정 불가
브로드캐스트 = 네트워크에 있는 모든 로컬 네트워크 호스트로 데이터를 전송하는 방식
네트워크를 분할하는 것 = 서브넷팅
분할된 네트워크 = 서브넷
서브넷팅 시
'네트워크 ID + 호스트 ID'에서 '네트워크 ID + 서브넷 ID + 호스트 ID'로 변경
서브넷 마스크 = 네트워크 주소와 호스트 주소를 식별하는 값
클래스 별로 서브넷 마스크
= A 클래스가 255.0.0.0, B 클래스가 255.255.0.0 C 클래스가 255.255.255.0
프리픽스 표기법 = 서브넷 마스크를 슬래시(/비트)로 표시
서로 다른 네트워크와 통신 > 라우터 필요
라우터 = 네트워크를 분할
=! 스위치(레이어 2)와 허브는 분할
컴퓨터에서 다른 네트워크로 데이터를 전송 > 기본 게이트웨이를 설정 필수
라우팅 = 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 방식
경로 정보가 등록되어 있는 테이블 = 라우팅 테이블
라우터 간에 라우팅 정보를 서로 교환하기 위한 프로토콜 = 라우팅 프로토콜
전송 계층의 역할
전송 계층 = 데이터를 제대로 전달하는 역할 & 오류를 점검 기능
= 전송된 데이터의 목적지가 어떤 애플리케이션인지 확인
연결형 통신 = 신뢰할 수 있고 정확하게 데이터를 전송하는 통신 방식(TCP)
비연결형 통신 = 신뢰성을 보장하지 않으면 효율적으로 데이터를 전송하는 통신 방식(UDP)
전송 계층에는 TCP 헤더가 붙음
TCP 헤더가 붙은 데이터 = 세그먼트
연결(connection)을 확립하기 위해 TCP 헤더가 있는 코드 비트를 사용
코드 비트 중 'SYN'은 연결 요청, 'ACK'는 연결 응답, 'FIN'은 연결 종료 의미
연결 확립을 위해 패킷 교환을 세 번 실시 = 이를 3-way 핸드셰이크
연결을 확립할 때는 'SYN'과 'ACK'를 사용, 연결을 종료할 때는 'FIN'과 'ACK'를 사용
3-way 핸드셰이크 이후 데이터를 전송할 때 : TCP 헤더의 일련번호와 확인 응답 번호가 사용
데이터를 재전송하는 것 = 재전송 제어
수신한 세그먼트(데이터)를 일시적으로 저장하는 장소 = 버퍼
데이터 크기가 버퍼 크기를 넘어서는 것 = 오버플로
버퍼 용량의 크기 = 윈도우 크기
포트 번호 = 어떤 애플리케이션인지 구분하는 역할
포트 번호 = 0~65535번을 사용
0~1023번은 잘 알려진 포트(well-known parts) / 1025번 이후는 랜덤 포트
UDP = 데이터를 효율적으로 빠르게 보낼 때 사용되는 프로토콜
UDP 헤더 > TCP 헤더 : 간단도
UDP 헤더가 있는 데이터 = UDP 데이터그램
UDP = 랜에서 불특정 다수에게 브로드캐스트로 데이터를 일괄 전송
응용 계층의 역할
서비스를 요청하는 측 클라이언트
서비스를 제공하는 측을 서버라고 한다.
클라이언트에서 사용하는 애플리케이션과 서버에서 사용하는 서버 프로그램 간의 통신 = 응용 계층의 프로토콜을 사용
응용 계층의 주요 프로토콜 : HTTP, FTP, DNS, SMTP, POP3 등
HTML = 하이퍼 텍스트를 작성하는 마크업 언어
= '태그'를 사용하여 문장 구조나 이미지 파일을 표시
HTML로 작성된 웹 페이지 > 웹 브라우저로 볼 수 있다.
하이퍼텍스트로 문장이나 이미지를 표시, 하이퍼링크를 사용
웹 브라우저 = 웹 서버(웹 서버 프로그램)의 80번 포트를 통해 HTTP 통신
웹 브라우저에서는 HTTP 요청을 보내고, 웹 서버에서는 HTTP 응답을 반환
HTTP/1.1 버전 = keepalive 기능 O : 데이터를 교환하는 동안에는 연결을 유지, 데이터 교환이 끝나면 연결 끊음
HTTP/2 버전 = 요청을 보낸 순서대로 응답을 반환하지 않아도 가능
DNS 서버 = '이름 해석'을 사용하여 도메인 이름을 IP 주소로 변환
URL = 호스트 이름 + 도메인 이름
Ex. www.gilbut.co.kr에서 www는 호스트 이름, gilbut.co.kr은 도메인 이름
요청받은 DNS 서버가 해당 도메인 이름의 IP 주소를 모르는 경우 > 다른 DNS 서버에 질의
DNS 서버 = 전 세계에 분포, 연계하면서 동작
메일 송신 = SMTP 25번 포트를 사용
메일 수신 = POP3 110번 포트를 사용
메일 서버 간 SMTP를 사용하여 메일을 전송
메일 서버에는 메일 박스 존재 : 메일이 보관
웹에 접속할 때는 OSI 모델의 상위 계층부터 캡슐화 진행
웹 서버에 요청을 보낼 때 HTTP를 사용
웹 서버에 있는 html 파일을 요청하는 경우
; GET /index.html HTTP/1.1과 같은 HTTP 메시지 전송
전송 계층 : TCP 헤더가 추가 = 세그먼트
네트워크 계층 : IP 헤더가 추가= IP 패킷
데이터 링크 계층 : 이더넷 헤더와 트레일러(FCS)가 추가 = 이더넷 프레임
물리 계층 : 데이터가 전기 신호로 변환되어 전송
스위치 내에 대응되는 OSI 모델의 계층
= 물리 계층과 데이터 링크 계층
라우터 내에 대응되는 OSI 모델의 계층
= 물리 계층, 데이터 링크 계층, 네트워크 계층
웹 서버 내에 해당하는 OSI 모델 계층
= 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 응용 계층
라우팅 = 정적 라우팅 / 동적 라우팅
정적 라우팅 = 관리자가 미리 라우팅 테이블에 경로를 수동으로 추가
동적 라우팅 = 네트워크 변경을 자동으로 감지하여 라우팅 테이블에 업데이트
= 네트워크 장애가 발생했을 때 라우터끼리 정보를 교환하여 최적의 경로로 전환
무선 랜의 구조
무선 랜 통신 =! 랜 케이블 필요
무선 랜 어댑터 = USB 메모리 방식 어댑터 / 컴퓨터 카드 방식 어댑터
무선 공유기 > 무선 액세스 포인트 기능 포함
무선 랜을 연결하는 방식 = 인프라스트럭처 방식 / 애드혹 방식
인프라스트럭처 방식 = 무선 AP(Wireless Access Point)를 이용
애드훅 방식 = 무선 클라이언트끼리 직접 통신하는 방식
무선 랜 = IEEE802.11 규격 (미국 기술 표준화 단체인 IEEE가 승인한 무선 규격) 준수하는 기기 구성
무선 랜의 규격 종류 = IEEE802.11ad/ac/n/a/g/b
무선 액세스 포인트 = 무선 공유기 / 무선AP
무선 액세스 포인트와 무선 클라이언트를 연결하려면 SSID라는
네트워크 이름, 인증, 암호화, 암호화 키를 설정 필수
무선 액세스 포인트는 비컨이라고 하는 자신을 알리는 신호를 네
트워크에 있는 모든 기기에 주기적으로 전송
무선 랜에서 여러 기기를 동시에 연결할 수 있도록 주파수 대역(채널) 분할
무선 액세스 포인트를 여러 대 설치 시 전파가 겹치는 부분 없도록 주의