본문 바로가기
기타/인턴활동

네트워크 기초 교육 - 1주차(네트워크, OSI 7 Layer, Frame, IP 프로토콜, Packet, CIDR(Subnet Mask))

by Royal! 2021. 6. 15.
728x90
반응형

네트워크란?

→ 인터넷, 정보공유, 망, 통신 우리가 생각하는 것들.

Protocol이란?

→  통신 규약.

통신이란? 

→ 정보를 나르는 것.

 

∴ 인터넷에서 정해진 약속으로 통신하는 것이 네트워크 프로토콜

   (간단히 더 쉽게 네트워크는 2대의 컴퓨터가 서로 통신하는 것)

 

그렇다면 통신 약속 중 가장 유명하면서 대중적인 표준은?

→ OSI 7 계층 (Open Systems Interconnection Reference Model)

직역 : Open 공개 / System 사전에 정의된 행위를 하는 것 / Interconnection 통신 / Reference = 참조 / Model = 모델

 

만든 주체는?

→ ISO (국제표준기구)

 

컴퓨터가 네트워크 통신을 하기 위해서는 여러가지 기능과 역할이 있다.

즉, 분업화를 했다. 이것이 계층 = OSI 7 계층

 

통신을 하기  위해서는 3가지 주체가 필요하다. 

LAN카드, OS(운영체제), 응용프로그램

 

LAN 카드는 L1, L2 계층 즉 물리 계층과 데이터 계층을 담당한다.

OS(운영체제)는 L3, L4 계층 즉 네트워크 계층과 전송 계층을 담당한다.

응용 프로그램은(Application)은 L5, L6,L7 즉 세션 계층, 표현 계층, 응용 프로그램 계층을 담당한다.

 

OSI 7계층

계층 이름 역할
1계층 물리적 계층 전기적 신호 담당(0 ,1)
2계층 데이터 계층 랜 카드(=이더넷,MAC)를 통한 통신
3계층 데이터 계층 IP(유일한 식별자) 주소 관리
4계층 전송 계층 정보 확인(신뢰성 있는 통신인지)
5계층  세션 계층 동기화, 세션 유지
6계층 표현 계층 인코딩, 암호화
7계층  응용 계층 응용 프로그램 수행


Frame

 

L1과 L2 계층의 데이터와 헤더를 합친 것이 Frame(프레임)

Preamble : 사전에 정보가 온다고 신호로 알려 주는 것(받는 사람을 위해 존재, 신호는 전기적 신호(0, 1)를 말하는 것)

정확히는 송/수신 속도 일치에 주목적을 둠

SFD(Start Delimiter) : 신호가 한 박자 쉬고 간다고 알려주는 것. Bit열에서 Byte 단위로 식별 변경

Destination Address / Source Address : 목적지 주소와 출발지 주소. 즉 MAC 주소다.

Length(Type) : 2계층에서 3계층으로 넘어갈 때 어떤 식별자(어떤 프로토콜로 갈 지 알 수 없다.)

실제 3계층에는 1000개 이상의 프로토콜이 존재한다. 

EX) Wireshark에서 확인 시 Length(Type)0x0800이 대부분 이다.(IPv4)

추가 6Byte 뒤 a0~81까지 목적지주소, 0800이 Type(타입)

출발지 주소 + 목적지 주소 + Lenth(Type) = 14 Byte = 이더넷 Header 이다.

 

데이터는 최대 1500Byte

FCS(Frame Check Sequence) : 무결성 체크(4Byte)

 

밑에서 다시 애기하겠지만 TCP Header의 최소 크기 20Byte + TCP Header의 최소 크기 20Byte + Frame Header 14Byte

따라서 프레임의 최소 사이즈는 54Byte이다.


IP(IPv4) 프로토콜 개요

 

- 비 연결형 프로토콜(Connectionless Protocol) : 연결 상태를 유지하지 않기 때문에 패킷 순서를 보장하지 않음.

- 비 신뢰성 프로토콜(Unreliable Protocol) :  신뢰성 있는 통신을 보장하지 않음

- 패킷을 분할/병합하는 기능을 수행

- Header Checksum만 제공

- Best Effort 방식의 전송기능 

 

IP 프로토콜의 가장 중요한 점을 1개만 꼽자면 ?

→ 오직 빠르게만 전송하는 것이 목적이다.(쿠팡맨이라고 생각하면 된다.)

 

 

IP 프로토콜 구조

 

그림에서 볼  수 있듯 IP Header는 20Byte 이다.

0~31Bi = 4Byte

4Byte가 총 5개 Ver(Version Number)~DA IP(Destination IP)까지 20Byte가 Header이다.

 

1층의 Version Number(0.5Byte) : IPv4프로토콜을 담고있다. Version 4를 쓰면 IPv4가 들어간다.

IPv4는 대부분의 패킷이 4로 시작한다.(WireShark를 통해 확인 할 수 있다.)

 

Header Length : Header 크기ㅏ 20Byte인데 Header Length안에서는 단위가 다르다. 4Byte가 1로 들어온다.

따라서 Header 크기가 20이므로 5가 들어간다.(IHL이 Heder Length이다)

 

WireShark로 보면 대부분 패킷이 45로 시작한다.(IPv4에서 Header Length가 5 이므로)

4(IPv4)와 5가 합쳐져서 45이다.

 

Packet Length(Total Length)는 1500이 넘으면 잡아낸다. Frame Data에서 1500Byte밖에 못 보내므로

 

Identification(ID값) : 같은 영화를 분류하면 ID값이 같다. ex) A영화를 분할하면 A ID값만 존재. B영화를 분할하면 B영화 ID값으로만 나뉜다.

 

MF(More Framgment)  : 마지막 패킷인지 아닌지 확인하는 것 마지막 패킷이면 0이 들어간다. 처음과 중간 패킷이면 1이 들어간다.

 

DF(Don't Fragment) :  이 패킷이 완벽하면 더 이상 나누지 말라는 뜻. 패킷 분할 금지

 

Time to Live(TTL) : 라우터를 거칠 때 마다 -1 이 된다. TTL값이 0이 되면 라우터에서 Drop이 된다. 즉 쓰레기 값이 된다.(버려진다는 뜻)

 

Nmap으로 상대방의 OS를 알 수 있는 이유가 TTL 때문이다.

OS 마다 TTL 초기값이 정해져 있다. 따라서 tracert로 알아 낼 수 있는 이유(TTL 값과 초기값을 빼서 비교해보면 된다.)

 


CIDR(Subnet Mask)

 

네트워크 기본 클래스

A, B, C 는 유니캐스트 통신에 사용한다.

멀티캐스트 사용 시 쓰는 주소

D Class (맨 앞에 비트가 1110인 공통 비트 클래스)

224.0.0.0 ~ 239.255.255.255                   Subnet mask 없다.

1100000.    1110 1111.

 

IANA 예비용으로 예약한 주소

E Class (240~255)

240.0.0.0 ~ 255.255.255

예비용 주소라 사용할 일이 거의 드물다.

 

설정이 불가능한 주소

- D Class 224.0.0.0 ~ 239.255.255.255 사용 O , 설정 X

- E Class 240.0.0.0 ~ 255.255.255.255  사용 X , 설정 X

- 0.x.x.x  0.0.0.0    ~ 0.255.255.255      사용 X,  설정 X

- Local loopback 127.0.0.0 ~ 127.255.255.255 사용 O, 설정 X

- 네트워크 이름, 서브넷 브로드케스트 주소 사용 O, 설정 X

EX) 121.160.42.11 255.255.255.0

네트워크 주소 121.160.42.0  브로드캐스트 주소 121.160.42.255

 

서브넷 마스크 

Prefix Mask /  설정 가능한 IP 주소 개수

 

Prefix Mask는 앞에서 부터 1로 표기하는 것

255.255.255.255      /32

255.255.255.0         /24      네트워크 주소가 24개 따라서 호스트 주소는 8개 

255.255.0.0            /16

255.0.0.0                 /8

0.0.0.0                    /0

 

설정 가능한 IP 주소 개수 

255.255.255.255

255.255.255.0      2^8 - 2 = 254개 ( 2개 빼는 이유는 네트워크와 브로드캐스트 주소를 뺸 것)

255.255.0.0         2^16 -2 = 65,534개 

255.0.0.0            2^24 - 2 = 16,777,214개

0.0.0.0  

 

다른 예제

255.255.255.252   /30       2^2 -2 = 2개

255.255.255.240   /28       2^4  -2 =14개

255.255.255.224   /27       2^5  -2 = 30개

255.255.255.128   /25       2^7 -2 = 126개

255.255.254.0      /23       2^9 -2 = 510개

255.255.248.0      /21       2^11 -2 = *개

 

즉, 앞에서 부터 1의 개수를 표기한 것


Classful vs Classless

 

Classful : Subnet을 무시하고 기존 Class 형태를 따른다

Classless : Subnet의 형태에 따라 네트워크 형태를 가진다

728x90
반응형