본문으로 바로가기

OSI 7계층에 대한 이해

category 🌐 Network/🌐 Network 2021. 3. 8. 03:53

간단한 이론

* 네트워크 이론의 기반인 OSI 7계층 반면, 사실상 표준인 TCP/IP 기반 프로토콜 스택

* TCP/IP 기반 프로토콜 중 비트 기반이 아닌 문자를 이용한 여러 다양한 프로토콜 파생. http, smtp 등등

* 일반적인 가정집의 네트워크 구성도

인터넷 -(케이블) - 모뎀 - (케이블) - 공유기 - (케이블 혹은 공기) -  노트북/스마트폰/데스크톱

* 데이터 센터 네트워크 구성도

최근에는 3계층보다 2계층 구성인 스파인-리프 구조로 되어 있음.

 

* OSI 7 계층과 TCP/IP의 비교

5~7 계층 : 애플리케이션 계층, 상위 계층 => 코더의 영역

1~4 계층 : 데이터 플로우 계층, 하위 계층 => 네트워크 엔지니어의 영역

 

‘코딩’을 하는 개발자는 어플리케이션 단의 코드를 작성하기 위해 하향식으로 접근하지만

네트워크 엔지니어를 전기 신호가 들어오는 피지컬 계층부터 상향식으로 접근하게 된다.

 

이런 이분법을 TCP/IP 모델에서는 더욱 간략하게 표현한다. 5~7을 어플리케이션 계층으로 통으로 묶고

트랜스포트 계층, 인터넷, 네트워크 인터페이스로 하위 계층을 본다.

 

피지컬 계층 (1계층)

 

[목적]

1계층의 목적은 들어온 전기 신호를 잘 전달해주는 것입니다. 주소의 개념? 그런 거 없습니다.

 

[장비]

주요 장비로 허브, 리피터, 모뎀, 케이블, 커넥터, 트랜시버, 탭이 존재합니다.

허브, 리피터는 네트워크 통신을 중재하는 장비

케이블과 커넥터는 말 그대로 케이블. 전송 장치입니다.

트랜시버는 컴퓨터 랜카드와 케이블을 연결해줌

탭은 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 곳에 복제해주는 장치

 

허브, 리피터, 모뎀

 

 

 

전송매체(케이블)

 

물리계층에 연결 가능한 케이블들이 있습니다.

UTP 케이블과 광 케이블이 주로 사용됩니다. UTP의 약자는 Unshielded Twisted Pair Cable의 약자입니다.

 

 

 

 

데이터 링크 계층 (2계층)

 

[목적]

전기 신호를 모아서 우리가 볼 수 있는 데이터 형태로 처리함. 

따라서, 주소 정보를 정의하고, 정확한 주소로 통신이 되게끔 하는 것이 목적임

전기 신호를 모아 데이터로 처리하므로 데이터에 대한 에러 감지 등도 가능함

 

[장비]

주요 장비는 네트워크 인터페이스 카드(NIC), 스위치 존재

두 장치 모두 MAC 주소를 이해할 수 있고 스위치는 MAC 주소를 보고 통신해야 할 포트를 지정해 내보내는 능력이 있음

 

[NIC]

NIC는 별명이 참 많은데, 랜카드 = 네트워크카드 = 이더넷 카드 = 네트워크 어댑터

NIC는 고유 MAC주소가 있어 자신에게 오는 데이터가 맞는지 확인한다.

 

NIC가 작동하는 방법은 

  1. 전기 신호를 데이터 형태로 만든다
  2. 목적지 MAC 주소와 출발지 MAC 주소를 확인한다
  3. NIC의 MAC 주소를 확인한다.
  4. 목적지 MAC 주소와 NIC의 MAC 주소가 일치하면 데이터를 처리하고 아니면 폐기한다.

[스위치 (L2 스위치)] 

눈치챘겠지만, layer 2에 있는 스위치가 L2 스위치라고 불린다. 

스위치는 전기 신호로 만들어진 데이터를 MAC주소 , 연결된 포트는 어디인지를 알 수 있다. 

단말들이 통신할 때 포트를 적절히 필터링하고, 정확한 포트로 포워딩해준다.

통신하고 싶은 노드가 어떤 포트와 연결되어 있는지를 MAC 주소로 판단하고 패킷을 전송하는 장비라고 기억해두자.

 

1계층에 있던허브 전기를 우선 받으면 전체 포트로 쏘는데, 스위치는 필터링과 포워딩이 가능하여 통신이 필요한 포트만 사용하여 네트워크의 효율성을 높일 있음

 

L2 스위치는 이렇게 생겼습니다.

 

[MAC 주소를 직접 확인하고 싶은데요]

 

window 환경에서는 ipconfig/all 명령어를 통해

MAC 주소를 확인할 수 있습니다.

 

 

네트워크 계층

2계층이 물리적 주소인 MAC 주소를 사용했다면 3계층은 논리적 주소인 IP 주소를 사용한다.

IP 주소의 클래스와 이에 따른 네트워크 주소, 호스트 주소의 구분은 아래 글을 참고하자. 읽어보면 쉽다!

darrengwon.tistory.com/1278?category=907881

 

IP class, (서브)넷마스크, 네트워크 주소, 브로드캐스트 주소, 서브네팅

# IPv4, IPv6 IPv4는 32비트 (보통 8비트[1byte]로 쪼갠다)를 사용하므로 255.255.255.255가 끝이고, 결국 256^4 = 2^32 개의 유니크한 주소만 가질 수 있다. IPv4의 주소가 부족해짐에 따라 도입된 IPv6의..

darrengwon.tistory.com

 

[장비]

 

대표적인 장비로 라우터 L3 스위치가 있습니다. 이런 장비는 패킷을 어디에서 어디로 전송할지에 대한 정보를 저장하는 라우팅 테이블(routing table)을 관리합니다. 이 테이블을 기반으로 루트를 정하는 정적 라우트(Static Route)와 라우팅 프로토콜에서 설정된 동적 라우트(Dynamic Route)가 있습니다. L3 스위치는 라우터와 동일한 기능을 하드웨어로 처리하는 장비입니다. 따라서, 그냥 라우터 하나 있다고 생각해도 무방합니다.

 

 

[라우터, L3 스위치]

라우터는 IP 주소를 사용하여 최적의 경로를 찾고 해당 경로로 패킷을 포워딩(전송)한다.

익숙하게 생겼습니다 ㅋㅋ

 

트랜스포트 계층 (4계층)

 

어플리케이션을 작성하는 코더는 데이터를 4계층인 트랜스포트 계층에 내려보내기만 하면 데이터를 쪼개 전기신호로 변환하고 목적지까지 전달합니다. ‘트랜스포트’니깐요. 실제로 데이터가 잘 보내지는 지, 패킷의 순서와 유실 정보를 확인하고 바로 잡는 역할을 합니다.

 

패킷을 쪼개다 보내면, 순서가 섞일 때가 있는데 패킷의 순서를 바로 잡는 역할을 트랜스포트 계층에서 합니다.

 

조금 더 유식한 용어로 말하자면 다음과 같습니다.

 

[받는 입장]

데이터 계층이 노드 간 전달을 담당하는 반면 네트워크 계층은 송신지에서 최종 수신지까지 데이터를 안전하게 전달하는 것을 담당합니다. 이를 위해 패킷의 이동량이 많을 때는 패킷의 흐름을 제어하는 흐름제어(flow control) 기능과 전송 중 분실되는 패킷을 감지하고 재전송을 요구하는 오류 제어 기능을 가지고 있습니다.

 

[보내는 입장]

보낼 데이터의 용량, 속도, 목적지 등을 처리합니다. 세션 계층에서 보낸 메시지를 세그먼트로 나누고 각 세그먼트의 순서 번호를 기록해서 네트워크 계층으로 보내면 받는 쪽에서는 이를 다시 조립합니다. 이런 방식으로 전송 오류의 검출이나 재전송을 규정합니다. 대표적인 프로토콜로는 TCP와 UDP가 있습니다.

 

참고로, 패킷을 보내는 순서를 ‘시퀀스 번호’, 받는 순서를 ‘ACK 번호’라 합니다.

줄여서 seq, ack라고 부르기도 합니다.

 

세션 계층 (5계층)

응용 프로세스가 연결을 하도록 관리하는 역할을 합니다.

로그인 관련 코드 짜실 때 세션 관리하셨죠? 그 세션을 관리하는 부분입니다.

 

프레젠테이션 계층  (6계층)

표현 방식이 다른 어플리케이션, 시스템의 통신을 돕기 위해 변환 작업을 합니다. 번역기죠.

MIME 인코딩(미디어 타입이 좀 더 친숙한 용어입니다), 암호화, 압축 등을 진행합니다.

 

어플리케이션 계층 (7계층)

드디어 우리가 코드를 작성하는 계층까지 올라왔습니다.

어플리케이션 계층의 프로토콜을 나열하자면,

ftp, smtp, http, https, telnet 등등이 있습니다. 많이들 사용해보셨죠?

 

 

계층에 따른 프로토콜 좀 봅시다.

 

 

about:blank


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체