본문 바로가기

별걸다하는 IT/네트워크_소켓_통신

[네트워크 OSI] 3계층 네트워크 계층 하는 역할이 뭔가요? 네비게이터가 길 찾는법

반응형

안녕하세요 ㅎㅎ
미루고 미루다.. 의외로 네트워크 게시글을 좋아해주시는 분들이 꽤 있어
그 다음 계층인 3계층에 대해 알아보는 포스팅을 들고 왔어요.

이번에도 최대한 쉽게 설명할 수 있도록 노력해보겠습니다~!!
이전 포스팅을 아직 못 보고 오신 분들은~

2021.02.14 - [별걸다하는 IT/네트워크_소켓_통신] - [네트워크 OSI ] 2계층 데이터링크 계층 Data Link Layer가 뭔지 궁금해?! 쉽게 설명해줄게~!
요 글을 보고 오시면 좀 더 이해가 수월할거예요.

제 3계층 네트워크 계층에 대한 서론

네트워크 계층에 들어가기 전에, 전체적인 내용을 한 번 쭉 정리해볼까요
서로 통신을 하기 위해, OSI 7계층이라는 참조 모델이라는게 필요했고~~~ 7단계로 이루어졌다.

그 중 가장 첫 번째 레이어가 물리계층이고, 물리계층은 말그대로 물리적!! 실제 데이터가 오가는 통신채널을 담당하고 있다 했어요.
두 번째 계층은 데이터링크 계층으로, 바로 옆에 노드와 통신하는 주요 역할을 담당하고 있죠.
그 다음 계층인 네트워크 계층은 어떤 일을 할까요?
아마 많은 사람들이 짐작했겠지만, 바로 옆 노드 통신을 넘어서 최적의 길찾기 역할을 합니다.

출처: https://www.euroscientist.com/imagine-a-social-network-like-facebook-with-no-facebook/

한국에 살고 있는 '아리'가 미국에 살고 있는 '철수'에게 메일을 보냈는데,
2계층까지밖에 없다면 영미는 바로 옆 노드에 있는 장치로밖에 전달을 못해요.

도대체 '철수'에게 편지를 전달하려면 오른쪽으로 가야하냐, 왼쪽으로 가야하냐 '철수' 너는 도대체 어디에 있는 것이냐!!

최종 목적지에 도달하려면 어떻게 가야하는지 마치 네비처럼 알려주는 것,
이걸 라우팅이라고 하는데 라우팅 해주는 계층이 네트워크 계층입니다. 경로선정인거죠.
근데 컴퓨터가 어디로 가야 '철수네'인지 도대체 어떻게 아는거야??
바로 이것이 우리가 오늘 중점적으로 알아볼 이야기예요.

제 3계층 네트워크 계층 크게 이해하기

[데이터링크 계층 네트워크 계층 차이]

데이터링크 계층에서는 일단 바로 연결된 이웃 컴퓨터와의 통신만을 생각한다고 했었어요.
컴퓨터가 우리가 쓰는 노트북, 데탑 이런것만 컴퓨터라 하는건 아니고,
라우터 스위치등 주소가 부여되어 통신을 할 수 있는걸 컴퓨터로 통칭한다 생각하면 돼요.
데이터링크가 옆 노드를 신경쓴다면 네트워크 계층은, 출발지에서 목적지, 즉 END TO END를 신경씁니다.

컴퓨터 세상에서 사용하는 주소는 IP주소이죠?
'철수'에게 메일을 보내기 위해, 목적지에 데이터를 전송하기 위해 필요한건 결국 IP예요.
옆 노드가 어떤지 저쩐지 사실 우리가 신경쓰지 않죠.
여러분 '철수'에게 택배를 보낼 때 어디어디 거쳐가는지 신경쓰나요? ㄴㄴ
마찬가지로 내 컴퓨터랑 이어진 컴터가 어떤 컴퓨터인지 메일 쓸때 모르잖아요~
결국 우리가 실제로 사용하는 계층은 2계층이 아니라 3계층, 4계층 입니다.
그러므로 어떻게 동작하는지도 알아야하고 특히 더 중요해요.

 

[3계층 캡슐화]

사진 출처: https://www.cspsprotocol.com/data-link-layer-osi-model/

그림의 왼쪽에서 오른쪽으로 메일을 보낸다고 생각해볼게요.
메일 작성은 7계층 응용계층에서 작성이 돼요. 그리고 회선으로 데이터를 흘러보내려면 물리계층까지 결국 가야하는데,
4계층에서 3계층으로 내려가고 3계층에서 2계층으로 내려가고,, 계층 내려갈때 통신하기 위해 필요한 이런저런 데이터들이 앞뒤에 붙습니다.

전송계층에서 네트워크 계층으로 내려오면, 네트워크 계층에서는 헤더에 IP주소 같은 정보를 넣어 데이터를 감싸요.

IP 헤더

'안녕!'이라는 메일 내용만 있으면 우리 컴퓨터는 목적지를 찾아갈 수 없겠죠?!
하물며 인간세상(?)에서도 택배를 보내려면 보내는사람 주소, 받는 사람 주소가 있어야 발송이 되잖아요.
간단히 말하면 그 받는사람 보내는사람 주소를 붙여서 데이터링크 계층으로 보내는 겁니다.
가장 대표적인 정보를 말한거지, 그 외에 필요한 다른 정보도 추가로 붙어요 궁금하신 분은 위의 IP헤더 사진을 참고하시면 됩니다.

사진 출처: https://www.researchgate.net/figure/Packet-encapsulation-TCP-IP-architecture-encapsulates-the-data-from-the-upper-layer-by_fig4_49288737

내가 보낸 메일은 단순히 '안녕'뿐인데, 실제로는 계층 내려갈때마다 이것저것 덕지덕지 뭐가 붙어서 결국 물리계층 갈때에는 데이터가 불어나있는거~
요렇게 감싸지는걸 캡슐화라고 합니다.

2021.02.15 - [별걸다하는 IT/네트워크_소켓_통신] - 맥 어드레스란 무엇인가? IP주소와 맥주소(MAC address) 차이, 맥 주소 확인하는 법 - 네트워크 기초
IP주소와 맥주소의 차이가 궁금한 분들은 위 포스팅을 참고하시면 도움이 많이 될거예요.

 

[네트워크 계층의 역할]

네트워크 계층의 데이터를 패킷이라고 합니다.
참고로 전송계층의 데이터 단위는 세그먼트, 데이터링크 계층의 데이터는 프레임이라고 해요.

네트워크 계층의 주된 임무가 종단간의 데이터 전달이라고 강조를 했었어요!
그 종단간 데이터 전달에 필요한게 길찾기인데 그걸 라우팅이라고 한다고 했었고~~~
IP주소를 포함한 헤더를 붙여 캡슐화를 해서 내려보낸다는것도 위에서 얘기했었죠~~
다 아는 얘기 정리 한 번 해본거예요.

 

길은 어떻게 찾나?

3계층은 이 포스팅 하나로 끝낼 수 없습니다. 내용이 너무 방대하기 때문..
사실 길찾기도 한 포스팅으로 끝내긴 너무 압축하는 느낌..
그러므로 오늘은 얉고~~~ 넓게~~~ 대충 이런 느낌으로 찾아가는구나 정도만 이해하고.. 끝낼거예요.

프로토콜도 네트워크 프로토콜은 IP만 있는게 아닌데
우리가 대표적으로 쓰는게 IP이기 때문에 IP프로토콜로 위에서 예시로 든거예요.
그러니까 오늘은 그림만 그려나가는 정도로 가볍게 훑으면 될 것 같아요~~~

출처:https://content.v.kakao.com/v/5fab9fd69731a95960a96988

사실 컴퓨터가 길찾는 방법은 택배시스템과 굉장히 유사해요.
어찌보면 예전세대의 공중전화 시스템과 비슷한거 같기도 하고..?
둘다 주소체계라 그런가 결국 사람이 주소를 사용하는 체계와 유사하다고 할 수 있죠.
이 시스템에 컴퓨터 시스템을 대입해보면 쉽게 이해할 수 있답니다.

 

데이터링크 계층에서 길 찾기

사진 출처: https://www.researchgate.net/figure/The-college-computer-network-topology_fig2_319683388

내가 사용하는 로컬 네트워크의 범위를 LAN이라고 하는데, 뭐 어찌보면 컴퓨터들의 동네인거죠.
LAN은 위 그림처럼 스위치를 기준으로 컴퓨터들이 붙어있습니다. 

참고로 스위치는 2계층 장비예요.
스위치로 연결된 컴퓨터는 하나의 LAN에 속한다고 볼 수 있는거죠.

그러니까 우리는 모두 같은 마을에 사는 친구들!

2계층 데이터링크는 바로 옆 노드간 통신을 담당한다고 했었죠?
베인이네에서 철수네 통신하려면 베인이네(NodeB) 데스크탑에 붙어있는 스위치로 나가 철수네 도달하게 됩니다.
근데 스위치는 어떻게 철수네를 찾아주는가? 스위치가 주소 정보를 갖고 있기 때문이예요.

철수네로 가려면 아래로 내려가!

아리네로 가려면 왼쪽으로가! 

 

옛날 핸드폰이 발달하기 전(?)에는 공중전화기에 이렇게 전화번호부가 있었다고 하죠
내가 철수네 전화번호를 모를 경우에는 공중전화기 가서

지역 전화번호부에서 철수네 정보를 뒤지는거예요

철수네 전화번호 어디있니 어딨니 어딨니..

이 공중전화 부스를 스위치라하고, 그 안 공중전화부스에는 지역전화번호부가 있다 가정햇을때

그 전화번호부를 맥 어드레스 테이블이라고 생각하면 돼요.

맥(MAC)은 철수, 아리, 베인 이름처럼(중복이 안된다는 가정하에 마치 주민등록번호처럼)

고유명사(?) 고유ID? 고유주소? 아무튼 그 친구를 찾을 수 있는 고유한 번호예요.

베인이네가 스위치로 가서 철수네 맥어드레스를 찾아보니 Port3 통로로 나가면 갈 수 있다네~!?

글로가야하는구나~ 요렇게 찾아가는거죠~

다시 한 번 정리해서 말하자면, 요기 스위치 장비에서 관리하고 있는 주소는 맥주소예요.
IP주소가 논리적주소라면 맥주소는 물리적 주소인데요
논리적에서 알 수 있듯이 우리가 흔히 사용하는 '서울시 중구 어쩌구저쭈구' 이런 계층형 방식이 논리적 주소고


물리적 주소(MAC)는 변하지않는 그 장치의 고유번호로

맥 어드레스 테이블(Mac Address Table)은 갈림길에 있는 표지판과같아요.

'오른쪽 화살표에 포춘네'

'왼쪽 화살표에 아리네'
현재 위치에서 갈림길에 대한 정보는 알지만 그 다음 갈림길에 대해서는 모름!

즉 스위치는 바로 옆 노드에 대한 길찾기만 적혀있는 갈림길 표지판이라고 생각하면 됩니다. 
대충 무슨 느낌인지는 알겠죠?!? 원리는 동일해요.


넘 멀리있는 놈꺼까지 길찾기를 표시판에 표기할 수 없으니까
결국 로컬하게 범위를 담당하게 되는데 이때 사용하는 주소가 바로 MAC주소인거죠.
스위치가 맥어드레스테이블(MAC table)을 통해 옆 노드간의 통신을 담당하고 있는거~

스위치에서 에이징 타임이라던가 브로드캐스팅 플러딩 ARP 등등
자세한 내용들은 일단 생략하도록 할게요. 테이블 등록되어있을 때 기준으로 설명하게씀~

암튼 스위치는 이웃들의 맥어드레스 테이블을 갖고 있고 그거로 스위치와 연결된 노드를 찾아갈 수 있다.
근데 우리가 오늘 살펴보고자 하는건 네트워크 계층이죠.
설명하다보니, 데이터링크 계층부터 설명해부렸네

동일한 구역, 즉 스위치로 연결된 동일 LAN에서의 통신을 원하는게 아니고 다른 네트워크간의 통신이 가능하게끔 하고 싶은거예요.

 

3계층에서 길 찾기, 라우팅 테이블

대전에는 아리, 베인, 철수, 포춘이 사는데,
대전에 사는 아리네가 서울사는 영희에게 편지 전달해줘~~ 했다고 합시다.
일단 대전과 서울은 같은 LAN에 있지 않죠. 네트워크 대역대 자체가 달라요.
스위치는 이웃간의 맥 주소들만 관리하고 있기 때문에 다른 네트워크에 있는  '영희' 맥주소를 물어봐봤자 모릅니다.

그래서 아리네는 보내기전 네트워크 대역대를 보고, 아 영희가 멀리 사는 애구나라는걸 먼저 인지해요.
대전광역시가 아니라, 서울시인걸 보고, 아 얘는 스위치에 문의해봤자 모르겠구나 싶은거죠.
그래서 편지를 내보낼 때 목적지 MAC주소를, 영희네 맥주소가 아니라, 게이트웨이, 라우터 맥주소로 설정해서 편지를 보냅니다.

라우터가 하는 역할이 뭐길래 라우터맥주소로 보내느냐.
택배시스템과 유사한데요 대전에 A가 서울에 사는 Z한테 택배를 보내면 집배원은 대전에서 보내는 A,B,C,D 사람들의 택배를 일단 다 대전 한 곳에 모은다고 합시다. (실제 이럴지는 모르지만..)
그리고 대전 물류센터에서 서울가는 택배들, 강원도가는 택배들, 제주도가 목적지인 애들  분류해서, 그쪽의 물류창고에 뭉텅이로 내보내는거죠.

요기서 개개인에게 편지를 직접 전달받은 집배원은 스위치에 해당하고, 각 지역의 물류창고는 라우터라고 생각하면 됩니다.
집배원은, 그 지역 사람들의 편지를 배달받지만
물류창고는 사람A, 사람B, 사람C  개개인의 주소는 몰라요. 다만 서울에 보내야할 택배 뭉텅이를 한 번에 서울물류창고로 보내버리죠.
즉 대전물류창고는 보내는사람 개개인은 모르지만 서울물류창고, 제주도물류창고 등 큼직큼직한 거점에 대한 정보를 알고 있다.

조기 보이는게 다 라우터라고 생각하면 편하죠?
제주도 라우터가 서울 라우터랑 연결되어있죠~
이말은 뭐다? 스위치가 물리적 주소의 지도를 갖고 있듯이 라우터도 논리적 주소 지도를 관리하고 있습니다.
이를 라우팅 테이블이라고 해요.

라우팅 테이블에는 바로 이웃 컴퓨터를 관리하는게 아니기 때문에 MAC주소는 없고, 논리적 주소인 IP로 허브들을 관리하고 있어요. 네트워크 대역대만 보고 몰아서 보내버리기 떄문인거죠.
택배 배달할때 허브에서 '강원도'냐, '경기도'냐, '전라도'냐 이 부분만 보고, 뒤의 몇동 몇호는 확인하지 않죠,
목적지가 경기도일 경우, 세부주소가 어떻든 경기도 물류창고로 일단 다 몰아버리는거랑 같은 이치예요.

자 이제 데이터링크계층과 네트워크 계층의 하는 일이 어떻게 다른지 이해가 되었을 거라 생각합니다.

■ 데이터링크 계층
옆 노드간 데이터 통신을 담당한다.
옆 노드간 데이터 통신을 위해서는 맥 주소가 필요하다.
대표적으로 스위치가 제 2계층 장비이다.

■ 네트워크 계층
종단간 데이터 통신을 담당한다.
네트워크간의 통신을 위해서는 IP주소가 필요하다.
대표적으로 라우터가 제 3계층 장비이다.

오늘 포스팅은 여기까지입니다~~!
도움이 되었다면 광고보답, 공감, 댓글 등은 큰 힘이 됩니다.

반응형