물리계층(1계층)
컴퓨터들을 물리적으로 연결하거나 데이터를 전기 신호로 변환하고 제어하는 역할을 담당하는 계층
전기 신호(아날로그 신호 vs. 디지털 신호)
아날로그 신호
연속적으로 변화하는 물리량
ex) 유선 전화, 라디오 방송
아날로그 신호는 정보를 전달하는 sin 곡선으로 표현되는 경우가 많다.
연속적으로 변화한다는 건 전압과 전류의 변화 및 크기를 눈금으로 표시한다는 것과 같다.
디지털 신호
임의의 시간에서의 값이 최솟값의 정수배로 되어있고, 그 이외의 중간값은 취하지 않는 양(*일반적으로는 데이터를 한 자리씩 끊어서 다루는 방식을 뜻함)
디지털 양에 대한 각종 연산 = 컴퓨터
0 또는 1로 이루어짐
LAN 카드
2대 이상의 컴퓨터가 통신하기 위한 네트워크 환경 : LAN
네트워크 안에서 컴퓨터 간의 통신을 할 때 사용하는 장비
데이터가 내 컴퓨터 밖으로 나가는 출발점
랜카드가 컴퓨터에 설치되어 있어야 바로 랜선이 꽂히는 포트가 생기는데 요즘에는 대체적으로 메인보드에 내장되어 있다.
랜카드의 종류는 PC에 랜선을 연결해서 통신하는 유선 랜카드와 랜선 연결 없이 와이파이로 연결해서 사용하는 무선 랜카드가 있다.
무선랜은 말 그대로 해당 기기가 있는 곳 주변의 일정 영역에서 랜선(LAN Cable) 없이도 통신이 간으하도록 하는 기능이다.
+) 케이블
랜 카드가 변환한 0과 1의 비트의 전기 신호를 전달하는 역할
+) RJ45 커넥터
표준화된 통신 네트워크 인터페이스
리피터와 허브의 통신
리피터(Repeater)
전기 신호를 증폭하는 기능을 가진 네트워크 장치
전기 신호를 전송할 때 거리가 멀어지면 신호가 감쇠되는 성질이 있는데, 이 때 감쇠된 신호를 재생하여 전달하는 장치가 리피터이다.
최근에는 리피터의 기능을 허브에서 대신해줌
허브(HUB)
리피터의 확장 버전(*허브도 당연히 전기 신호를 증폭하는 기능을 갖고 있음!)
컴퓨터 여러 대를 서로 연결하는 장치
장점
직접 컴퓨터끼리 연결하지 않아도 여러 대가 데이터를 주고 받는다
단점
측정 포트를 지정해서 데이터를 보낼 수 없다.(= 더미 허브, Dummy HUB)
데이터링크 계층(2계층)
네트워크 기기 간 데이터 전송, 오류 검출 및 제어, 그리고 흐름 제어 등을 담당하는 역할을 수행하는 계층
데이터 전송의 신뢰성과 효율성에 중요한 역할을 한다고 할 수 있다.
MAC 계층과 LLC 계층
2계층에 한하여 MAC 계층과 LLC 계층으로 구분하는 데이터링크 계층
OSI 7 Layer에서 정의한 데이터링크 계층의 기본 기능 ⇒ LLC 계층
물리적인 전송 선로의 특징과 매체 간의 연결 방식에 따른 제어 부분 ⇒ MAC 계층
LLC 계충이 WAN의 데이터링크 계층과 역할이 비슷하기 때문에 LAN 환경에 MAC 계층이 추가된 것으로 볼 수 있다.
MAC(Medium Access Control) 계층
어떻게 프레임(*데이터링크 계층에서 사용하는 단위)을 전송할 것인지
전송 선로와 물리적인 특성을 반영함 ⇒ LAN 종류에 따라 특성이 구분(* point-to-point인지, 브로드캐스팅인지의 여부, 호스트의 연결 구조, 유무선 환경 등의 차이점을 MAC 계층에서 처리하여 전송 효율을 높여준다.)
MAC 계층의 종류
- CSMA/CD 방식
-
공유 버스를 이용해 호스트를 연결 - 이더넷(Ethernet) 프로토콜은 CSMA/CD를 지원
-
- 토큰 링(Token Ring) 방식
토큰이라는 특정 패턴의 제어 프레임이 링을 순환- 토큰 프레임은 1개만 사용되기 때문에 충돌 현상 발생 X
- 브로드캐스팅 방식 지원
CSMA/CD
- CS(Carrier Sensing)
- 데이터 전송 전에 특정 장비가 먼저 캐리어(*통신 매체)를 감지
- 만약 전기 신호가 없다면 데이터를 전송함
- MA(Multiple Access)
- 특정 채널에 여러 대의 장치가 접속하려고 할 때 사용
- 네트워크에서 한 채널을 여러 대의 장치가 동시에 사용하는 상황(*예를 들어 wi-fi 네트워크에서 여러 대의 컴퓨터나 스마트폰이 같은 무선 라우터에 연결되어 인터넷을 사용하는 경우)
- CD(Collusion Detection)
- 데이터 패킷이 충돌할 경우에 처리를 안내
- 데이터 패킷의 충돌을 감지하고, 충돌이 발생했을 때 어떻게 처리해야 하는지를 판단(* 충돌이 감지되면 일반적으로 충돌을 일으킨 모든 장치는 일정한 재전송 알고리즘을 통해 다시 데이터를 전송하도록 안내된다.)
전송 프레임은 버스 구조에 연결된 모든 호스트에 전송되기 때문에 연결된 모든 호스트에 도착하지만, 1번 호스트를 제외한 나머지 호스트는 이 프레임을 수신할 이유가 없으므로 버린다. (이걸 위해서 MAC 주소가 있는 것이라고 생각하면 됨)
1번 호스트는 목적지 주소가 자신이므로 프레임을 수신한다.
이더넷 프로토콜(Ethernet Protocol)
상위 계층(LLC)에서 내려온 프레임을 상대 호스트에 전송하기 위해 MAC 계층에서 정의된 프레임 구조에 맞게 포장해야 함
MAC Frame
MAC 헤더(14Bytes)와 트레일러(프레임) 정보를 추가한 것
- Preamble(프리앰블)
- 수신 호스트가 송신 호스트의 클록 동기를 맞출 수 있도록 시간 여유를 제공
- 10101010(2) 패턴으로 7바이트로 반복됨
- Start Delimiter(시작 구분자)
- 프레임이 시작된다는 의미
- Preamble과 구분하기 위해 10101011(2) 패턴을 포함
- Destination Address/Source Address(수신 호스트 주소/송신 호스트 주소)
- 호스트를 구분하기 위한 MAC 주소 (=LAN 카드 주소=이더넷 주소=물리적 주소=1, 2계층 주소)(*브로드캐스팅에선 수신 호스트 주소부의 모든 비트가 1이다.)
- Length/Type
- 필드 값(Data 값)이 1,500(0x 0600) 이하이면 Data 필드의 데이터 크기를 의미하는 Length로 해석, 아니면 Type로 해석
- Length(길이)
- Data 필드에 포함된 가변 길이의 전송 데이터 크기
- 최댓값 = 1,500
- Type(종류)
- 이더넷 프레임에 캡슐화된 상위 프로토콜의 패킷 종류 구분
-
더보기IP 프로토콜 - 0x0800
ARP 프로토콜 - 0x0806
RARP 프로토콜 - 0x0835
- Length(길이)
- 필드 값(Data 값)이 1,500(0x 0600) 이하이면 Data 필드의 데이터 크기를 의미하는 Length로 해석, 아니면 Type로 해석
- Checksum(체크섬)
- 데이터 전송 과정에서 데이터 변형 오류의 발생 여부를 수신 호스트가 확인할 수 있도록 송신 호스트가 기록해둔 값
- Preamble, Start Delimiter, Checksum을 제외한 데이터를 Hash화 해놓은 값
https://www.youtube.com/watch?v=1z0ULvg_pW8
▲허브, 스위치, 라우터의 차이
전송 방향에 따른 통신 방식
단방향 통신(Simplex Transmission)
선로가 하나만 있어서 일방 통행만 가능
비효율적.... 한 번에 여러 개 데이터를 주고받으면 더 효율적일 것이다.
양방향 통신(Multiplex Transmission)
하나의 통신 채널에서 송수신이 모두 가능한 방식
- 반이중 방식(Half Duplex)
양쪽 방향에서 통신이 가능하지만 동시에 통신할 수 없음
- 전이중 방식(Full Duplex)
채널을 두 개 두어서 양쪽 방향에서 동시에 데이터를 주고받을 수 있는 방식
스위치에서 사용하는 방식이 이것.
네트워크 계층(3계층)
송수신 호스트 사이의 패킷 전달 경로를 선택하는 라우팅
라우팅에서 일어나는 부가적인 문제들도 네트워크 계층에서 처리(*대표적인게 혼잡제어와 패킷 분할과 병합)
네트워크 계층의 기능
- 라우팅(Routing)
- 라우팅 테이블을 통해 송수신 호스트 사이의 패킷 전달 경로를 선택하는 과정
- 혼잡 제어(Congestion Control)
- 혼잡(Congestion) : 네트워크에 패킷 수가 과도하게 증가하는 현상
- 혼잡 현상을 예방하거나 제거하는 기능
- 패킷의 분할과 병합
연결형 서비스와 비연결형 서비스
비연결형 서비스(Connectionless Service)
연결형 서비스보다 신뢰성이 떨어지는 전송 방식, 따라서 전송 계층에서 네트워크 계층의 비연결형 서비스를 이용할 때는 연결형 서비스를 이용하는 경우보다 자체적으로 오류 제어와 흐름 제어 기능을 더 많이 수행해야 함
비연결형 서비스를 이용해 패킷을 전송하면 패킷이 서로 다른 경로를 통해 수신 호스트로 전달되기 때문에 패킷이 도착하는 순서가 일정하지 않을 수 있음 따라서 (상위 계층인) 전송 계층이 수신한 패킷의 순서를 재조정하는 기능이 필요
대표적인 예) IP 프로토콜, UDP 프로토콜
연결형 서비스(Connection-oriented Service)
상대적으로 신뢰성이 높은 서비스
패킷을 전송하기 전에 연결을 미리 설정하여 송신 모두 동일한 경로(가상 회선)를 이용하기 때문에 목적지에 도착하는 패킷의 순서가 송신된 순서와 동일
대표적인 예) TCP 프로토콜
라우팅(Routing)
- 연결형 방식 - 가상 현실 방식을 사용하기 때문에, 호스트의 경로 선택은 연결이 설정되는 시점에 한 번만 결정
- 한 번만 결정?
더보기이후의 패킷들은 이 경로를 따라 목적지까지 전달됨
가상 회선 방식에서 전송되는 모든 패킷이 동일 경로를 거치고, 패킷의 전달 순서도 일정하게 유지됨
- 한 번만 결정?
- 비연결형 방식 - 비연결형 방식의 데이터그램(*패킷 교환 네트워크와 관련된 기본 전송 단위)을 사용하면 연결 설정 과정이 없기 때문에 송수신 호스트 사이에 고정 경로가 존재하지 않음
- 고정 경로가 존재하지 않기 때문에 전송 패킷마다 독립적인 전달 경로를 선택해야함.
정적·동적 라우팅
정적 라우팅(Static Routing)
송수신 호스트 사이에서 패킷 전송이 이루어지기 전에 경로 정보를 라우터에 미리 저장하여 중개하는 방식
경로 정보를 라우터에 미리 저장
패킷을 중개하기 위한 최적의 경로 정보가 라우터별로 저장되어 관리하는데, 운용 중인 네트워크의 구성에 변화가 생기면 이에 적절하게 대처할 수 없다는 문제점이 있음. 즉, 라우터에 보관된 경로 정보가 고정되어 변화된 정보를 갱신하기가 쉽지 않고, 실시간으로 네트워크 내부의 혼잡도를 반영할 수 없다는 단점이 있음
동적 라우팅(Dynamic Routing)
라우터에서 사용하는 경로 정보를 네트워크 상황에 따라 적절하게 변경하는 방식
적절하게 변경
경로 정보의 변경 주기에 따라 계속 보완할 수 있음
따라서 현재의 네트워크 상황을 고려해 최적의 경로 정보를 선택할 수 있지만, 경로 정보를 수집하고 관리하는 등의 복잡한 작업이 추가로 필요함
⇒ 네트워크에 새로운 부하를 주어 성능에 부정적인 영향을 미침
동적 라우팅 방식을 사용하려면
현재의 네트워크 링크 상태를 점검해 이를 새로운 경로 배정 시 적용해야 함.
- 각 라우터에서 이웃 라우터의 존재 유무와 전송 지연 시간 등을 확인할 수 있어야 함.
- 각각의 라우터가 획득한 경로 정보를 다른 라우터들에 통보함으로써 네트워크의 최신 경로 정보를 신속하게 공유하고 갱신해야 함.
HELLO/ECHO 패킷
라우터의 초기화 과정에서 가장 먼저 할 일 = 이웃 라우터의 경로 정보를 파악하는 것
각 라우터는 이웃에 연결된 라우터에 초기화를 위한 HELLO 패킷을 전송해 경로 정보를 얻음
즉, HELLO 패킷을 전송해서 해당 라우터 간 경로가 이용 가능한지를 파악하는 것
혼잡 제어(Congestion Control)
혼잡 : 네트워크에 존재하는 전송 패킷의 수가 많아질수록 네트워크의 성능은 자연스럽게 감소하는데, 성늘 감소 현상이 급격하게 악화되는 현상을 말함
혼잡 제어 : 혼잡 문제를 해결하니 위한 방안
흐름제어는 송신 호스트와 수신 호스트 사이의 논리적인 점대점 전송 속도를 다루는 반면, 혼잡 제어는 더 넓은 관점에서 호스트와 라우터를 포함한 서브넷에서 네트워크의 전송 능력 문제를 다룸 (*쉽게 말하자면 흐름 제어는 송수신 측 사이의 패킷 수를 제어하는 기능이고, 혼잡 제어는 네트워크 내의 패킷 수를 조절하는 기능이다.)
IP 프로토콜
IP(Internet Protocol)은 호스트 주소 표기, 패킷 분할에 관한 기능을 지원하지만, 단대단 형식의 오류 제어나 흐름 제어 기능은 제공하지 않음 (*네트워크 상의 오류 제어나 흐름 제어 기능을 제공함)
IP 프로토콜에서 라우터 간의 패킷을 중개할 때는 Best Effort라는 원칙에 따라 전송 → 전송 패킷이 수신 호스트에 100% 도착하는 것을 보장하지 않음 ∴ IP 프로토콜에서 제공하지 않는 전송 오류 문제를 상위 계층(4계층)에서 고려해야함
IP 프로토콜의 주요 특징
- 비연결형 서비스를 제공한다
- 패킷을 분할/병합하는 기능을 수행하기도 한다
- 데이터 체크섬을 제공하지 않고, 헤더 체크섬만 제공한다
- Best Effort 원칙에 따른 전송 기능을 제공한다.
체크섬(Checksum)
중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법
Best Effort(최선형)
노력은 하지만 결과는 보장하지 않는다는 뜻, 전송만 빨리하면 됨
IP 패킷
- Version Nuymber(버전 번호)
- IPv4인지, IPv6인지 구분해줌
- Header Length(헤더 길이)
- 단위 1 = 4Bytes이므로, 헤더 길이가 총 20 Bytes이니 Header Length값은 최소 5라고 볼 수 있다.
- 아직까지는 IPv6가 상용화되지 않았기 때문에, 모든 패킷의 시작은 45로 시작함 (아니면 비정상이라고 생각하면 됨)
- Service Type(DS+ECN)
- 원래는 서비스 타입 필드로 정의되어 우선순위, 지연, 정송률, 신뢰성 등의 값을 지정할 수 있었으나, 현재는 사용하지 않기 때문에, IPv4일 때, 이 Service Type에 0이 아닌 값이 들어있다면 비정상
- Packet Length(패킷 길이)
- IP 헤더를 포함한 패킷 전체 길이
- 필드 길이가 16비트이므로, 최대한의 패킷 크기는 2^{16}-1, 65,535바이트가 패킷 하나의 최대 크기이지만, 대부분 1,500바이트를 최대로 한다.
- 왜?? 이더넷 프로토콜에서 Data 필드가 1,500바이트이기 때문
패킷 분할
- Identification(식별자 혹은 구분자)
- 송신 호스트가 지정하는 패킷 구분자 기능 수행
- IP 프로토콜이 분할한 패킷들에 동일한 고유 번호를 부여해서 수신 호스트가 Identification 번호가 같은 패킷을 다시 병합(Reassembly)할 수 있도록 해줌
- DF(Don't Fragment)
- 패킷이 분할되지 않도록 함
- 값을 1로 지정하면 패킷 분할을 막을 수 있음
- MF(More Fragment)
- 분할된 패킷이 뒤에 계속됨을 표시함
- 따라서 분할 패킷 중 마지막 패킷은 MF 비트를 0으로 지정하여 분할 패킷이 더 없음을 표시
- Fragment Offset(분할 옵셋)
- 패킷 분할이 이루어지면 Fragment Offset 필드를 사용
- 패킷이 분할 전 데이터에서 위치하는 상대 주소값을 알려줌
- 항상 바이트를 8로 나눈 단위로 사용
- TTL(Time to Live)
- IP 패킷이 라우터를 지나칠 때마다 라우터는 TTL 값을 1씩 감소시킴
- TTL이 0이 되면, 패킷은 더 이상 전송하지 않음
- TTL 값이 0이 될 때까지 전송하지 않는 것은 전송할 수 없다고 생각하고 패킷을 버리게 됨
- 즉, 패킷 수명을 제한하기 위해 사용하는 카운터(* 라우팅 테이블의 오류로 인해 패킷이 네트워크 상에서 영원히 떠돌아 다니는 것을 방지)
- Transport(전송 프로오콜)
- IP 프로토콜에 데이터 전송을 요청한 전송 계층의 프로토콜을 가리킴
- 패킷 수신자는 페이로드 내부에 어느 프로토콜 정보가 있는지 판단할 수 있음
-
더보기Transport 필드값
1 - ICMP6 - TCP
17 - UDP
- Header Checksum(헤더 체크섬)
- 전송 과정에서 발생할 수 있는 헤더 오류를 검출하는 기능
주소 관련 필드
- Source Address : 송신자 IP 주소
- Destination Address : 수신자 IP 주소
패킷 분할
TCP 프로토콜에서 패킷 전송 과정에 위치하는 네트워크 유형에 따라 패킷 크기를 조절하기 쉽지 않으므로 IP 프로토콜에서 이 기능을 수행해야 함
2계층의 프로토콜에 따라 데이터 필드의 크기가 다르기 때문에 패킷을 중개하는 방향에 위치한 LAN에 맞도록 프레임을 분할해야 함.
제어용 프로토콜
- ARP 프로토콜
- Address Resulution Protocol
- IP 주소 → MAC 주소
- ARP request 패킷을 보내서 ARP reply 패킷을 받아 수신 호스트의 MAC 주소를 얻어냄
- RARP 프로토콜
- MAC 주소 → IP 주소
- ICMP 프로토콜
- Internet Control Massege Protocol
- 제어 프로토콜의 대표적인 예
- 전송 과정에서 오류를 제어하는 프로토콜
- 인터넷 환경에서 오류에 관한 처리를 지원
-
더보기IP 프로토콜은 데이터 전송 과정에서 패킷 폐기 등의 오류가 발생해도 이를 보고하는 기능이 없는데, 이를 대체 지원하기 위해서 네트워크 계층 프로토콜인 ICMP가 오류가 발생한 IP 패킷에 대하여 그 원인을 송신 호스트에 전달함
ICMP는 기능적으로 IP 프로토콜과 같은 계층의 역할을 수행하는데, ICMP 메시지는 IP 프로토콜에 캡슐화되어서 전송됨
-
'네트워크 보안' 카테고리의 다른 글
네트워크관리사 자격증 2급_필기 : 네트워크 형태 및 구성장비 (0) | 2025.02.16 |
---|---|
네트워크관리사 자격증 2급_필기 : IP 클래스와 서브넷 마스크 (1) | 2025.02.07 |