본문 바로가기
컴퓨터/네트워크

[네트워크] OSI 7계층 - 물리계층/데이터링크계층/네트워크계층

by 우유식빵 2020. 2. 10.

다들 많이 들어봤을텐데, 네트워크는 OSI 7계층으로 나누어져있다.

 

네트워크에 왜 계층구조가 필요할까?

네트워크 구조가 한 덩어리라면, 정보를 주고받을 때

한번에 모든 기능이 실행되어야한다.

 

다양한 네트워크 장비들을 한번에 통제할 수 있는 프로토콜을 만들어서

데이터를 주고 받기에는 정말 복잡하고 비효율적이다.

 

공장의 분업화와 같은 개념으로

네트워크 구조도 작은 계층으로 나눈다면,

이를 관리하기 편하다.

 

초반에 네트워크가 만들어 질때는, 컴퓨터 회사별로 네트워크 계층을 통일하지 않아

서로 다른 컴퓨터 기종끼리는 통신하기 어려워 ISO(International Organiztion for Standardization)에서

다른 기종끼리도 상호 소통이 가능한 표준 네트워크를 제정하자고 요구했고 이로인해

OSI(Open System Interconnection)네트워크 모델이 만들어졌다.

 

ISO는 IOS가아니라 왜 ISO인지 모르겠다 IOS라고 해야하는 거 아니냐는 의문이 머리를 떠나지 않는다 

 

 

7계층을 살펴보자면

1. 물리 (Physical Layer)

2. 데이터링크 (Data Link Layer)

3. 네트워크 (Network Layer)

4. 전송 (Transport Layer)

5. 세션 (Session Layer)

6. 표현 (Presentation Layer)

7. 응용 (Application Layer)

 

대학교에서 데이터 통신 / 네트워크 수업을 듣게 된다면

당연히 억지로라도 이름을 외워야하는 7 계층.

 

 

 

각각 자세히 살펴보자.

 

1. 물리계층

가장 이해하기 쉬운 계층이다. 물리계층은 시스템간의 연결선이다.

LAN선이라던가, 시스템을 연결하는 어떠한 케이블들. 그런 것들을 생각하면된다.

네트워크는 마냥 보이지않는 추상적인 것으로 생각하는데 이렇게 갑자기 현실물리영역으로 확장되어 처음엔 매우 기분이 이상했다.

 

1계층에 사용되는 케이블을 데이터속도에따라 CAT1~6나눈다. 또 케이블 내 구리선 보호방법이나 꼬임 방법에 따라서 케이블을 UTP/FTP/STP로도 구분한다. 보통 우리가 사용하는 것은 UTP중 CAT5~6인 10/100/1000 BASE(IEEE 802.3) 선이다. 우리집선도 이거다.

케이블 밖에도 허브도 1계층 장비중 하나이다.

 

2.데이터링크계층

랜카드나 네트워크 장비의 하드웨어 주소만으로 통신하는 계층. 각 네트워크 장비에는 고유한 이름이 붙는데 이를 MAC주소라고한다 (Media Access Control) 나는 이게 처음에 맥북에 주소가 있다는 건줄 알았다. 

프로토콜을 설명할 때 각 계층간 독립적으로 프로토콜이 있다고 말했는데, 데이터링크계층의 대표적인 프로토콜은 이더넷프로토콜이다.

이더넷, 엄청 많이 들어봤을 것이다.

 

이더넷 프로토콜의 패킷구조는 Preamble - Start Frame Delimiter(SFD) - Destination MAC Address - Source Mac Address - Length or Type - Data - Pad - Frame Check Sequence (FCS) 다. 이 정보를 다 합쳐서 최소길이는 64KBytes, 최대길이는 1,518KByte이다.

참고로 내가 헷갈려서 쓰는데, 1Byte는 8bit이다. 맨날 헷갈린다.

 

데이터 링크계층의 관련 장비로는 브릿지(랜과 랜을 연결), 스위치(L2)가 있다. 

2계층 스위치의 메모리에는 포트별로 MAC 주소가 매칭된 테이블이 존재하고, 갱신된다. 하지만 3계층 정보인 IP주소는 기억하지 않는다.

 

스위치는 연결된 시스템이 늘어날 수록 패킷간 충돌 때문에 매우 낮은 속도로 동작하는 더미 허브의 문제점을 해결하는 방안이다.

 

 

3.네트워크계층

네트워크 계층은 데이터링크계층의 한계점을 보완한다.

데이터링크계층은 서로 연결된 하드웨어의 주소를 이용해 작동한다.

하지만 모든 네트워크들이 직접 물리계층을 연결한채로 존재하지 않는다 (당연)

랜 간 통신이 불가능하므로 네트워크계층에서는 IP주소를 이용한다.

IP주소는 각 랜의 주소, 네트워크의 주소다.

 

그렇다고 1계층 2계층없이 3계층만 있으면 된다는 이야기가 아니고, 3계층에서 IP주소를 가지고 MAC주소를 알아내어

상대의 2계층,1계층과 소통이 될 수 있도록 한다.  IP주소로 MAC주소를 알아내는 프로토콜을 ARP(Address Resolution Protocol)라고한다.

 

네트워크/보안이 왜 컴퓨터분야에서 제일 어렵다고 하는지 알 것 같다.

의과 처럼 외워야할 것들, 외워야할 이름들이 너무 많다. 아주그냥 너무 많아. 딱 질색인데 할 수 있을 지 모르겠다.

 

ARP프로토콜의 패킷의 구조는 Hardware Type(HRD) - Protocol Type(PRO) - Hardware Address Length(HLN) - Protocol Address Length(PLN) - Opcode(OP) - Sender Hardware Address(SHA) - Sender Protocol Address(SPA) - Target Hardware Address(THA) - Target Protocol Address(TPA)다.

OPcode 에서 RARP라는 TCP/IP 인터넷 프로토콜을 사용하는데 이를 통해 자신의 IP주소를 서버로 부터 얻어낸다. 

 

IP(internet protocol)는 위에서 말했다 싶이, 하위계층의(1,2계층) 서비스를 이용하여 두 노드(2계층은 LAN, 3계층은 WAN)간의 데이터 전송 경로를 확립해 주는 역할을 주로한다.

IP패킷의 구조는 Version - Internet Header Length(IHL) - Type Of Service(TOS) - Total Length(TL) - Identification - Flag - Fragment Offset - Time To Live(TTL) - Protocol - Header Checksum - Source Address - Destination Address - Options - Padding - Data 다.

Protocol 에서는 IP계층의 서비스를 사용하는 상위계층 프로토콜을 정의한다.

IP는 32자리 2진수로 8자리마다 점을 찍어 구분하고 개수가 제한되어있기 때문에 A~E클래스로 구분한다.

 

아까 IP패킷의 Protocol구간에서 정의된 상위계층 프로토콜 중 ICMP(internet Control Message Protocol)이라는 게 있다.

이놈은 호스트 서버와 인터넷 게이트웨이 사이에서 메세지를 제어하고 오류를 알려주는 프로토콜이다.

게임할때 우리가 ping ping 거리는데 그 ping이라는 툴이 ICMP를 사용한다.

 

IP 는 비연결지향형프로토콜로 패킷이 확실히 전송이 안될 수 도있다.

이 경우 네트워크 연결 상태를 확인하기위해 ICMP를 이용한다. ICMP는 TCP/UDP 전송 계층 프로토콜과는 별개다.

ICMP 패킷 구조는

Type- Code - Checksum - Data 이다.

Type은 메세지 타입을 가르키며 Echo Reply, Source Quench, Redirect, Echo Request, Time Exceeded가 있다.

송신측에서 라우터를 통해 수신측으로 ICMP Echo Request 를 보내고 ICMP Echo Reply를 수신하면 패킷이 무사히 전송된 것으로 인식한다.

 

하... 진짜 길다.

 

네트워크계층 관련장비에는 라우터가 있다. 라우터는 게이트웨이라고도 불리며, 역할은 패킷 교환망에서 패킷의 최적 경로를 찾기위한 라우팅 테이블을 구성하고, 이 라우팅 테이블에 따라 패킷을 목적지까지 가장 빠르게 보내는 것이다.

댓글