[네트워크]OSI 7 계층

김은지·2022년 6월 6일
0

백엔드로드맵

목록 보기
2/3

무지성 외우기를 멈추고자 다시 정리해보는 OSI 7계층

아래 링크의 내용을 참고하였습니다.
다른 자료 보는 것 보다 이 영상을 한 번 보는게 훨씬 이해가 잘 됩니다...
0. [10분 테코톡] 🔮 히히의 OSI 7 Layer

1. OSI 7 Layer 쉽게 이해하기
2. OSI 7 계층이란?, OSI 7 계층을 나눈 이유
3. OSI 7 Layer /7계층 개념 및 역할, 구조까지 한번에 알아보기

OSI 7 계층 이란?

OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.

정처기 필기를 공부하며 무지성암기로 물-데-네-전-세-표-응 이라고 외웠던... 1층 - 7층까지의 구조는 아래 사진과 같다.

1층으로 가까워질수록 '물리적 연결'구간에 가까워지고, 7층에 가까워 질수록 '실제 프로그램'에 가까워진다.
데이터를 보내는 쪽은 7-1층을 거쳐 전송하게 되고, 받는 쪽은 다시 1-7 단계를 거쳐 데이터를 받게된다.

OSI 7 계층의 단계별 역할

OSI의 각 계층은 자신의 하위계층의 기능만을 이용하고, 상위계층에게는 기능을 제공한다.
링크의 강의를 듣고 작성하였다. [10분 테코톡] 🔮 히히의 OSI 7 Layer
- 지금까지 본 어떤 자료보다 이해가 잘 되는 영상이니 꼭 보시기를 추천합니다...!

1계층 : 물리 계층

말 그대로 물리적인 계층이다. 데이터(0과 1의 나열)를 전기신호(아날로그 신호)로 변환(encoding)해서 통신하는 기능을 한다.(받는 측에서는 전기신호를 decoding 하여 0과 1의 나열로 해석하여 받아들인다.)

1계층의 기술은 하드웨어적(PHY칩)으로 구현되어 있다.

2계층 : 데이터 링크 계층

같은 네트워크(스위치(보내고자 하는 데이터가 목적지로 갈 수 있도록 해주는 컴퓨터)에 있는 여러대의 컴퓨터들이 데이터를 주고받기 위해 필요한 모듈.
만일 두 대 이상의 컴퓨터가 한 대의 컴퓨터에 동시에 데이터를 전송한다고 했을 때, 데이터의 범위가 모호할 수 있기 때문에 데이터 앞, 뒤로 비트 정보를 붙이는데 이 작업을 '프레이밍' 이라고 하고,
데이터 링크 계층은 프레이밍을 수행한다.

송신의 경우, 2계층 인코더를 통해 데이터를 넣으면 프레이밍을 수행하고 이 데이터가 다시 1계층 인코더를 통해 전기신호로 변환되어 전선을 통해 전달되는 것.

데이터링크 계층의 기술은 '랜카드'에 구현되어 있다. - 역시 하드웨어적으로 구현

3계층 : 네트워크 계층

A가 B에게 데이터를 전송한다고 할 때, A는 B의 IP 주소(각 컴퓨터들이 갖는 고유한 주소)를 알아야 한다.(도메인 이름을 IP로 변환해주는 DNS 덕분에 도메인 이름을 아는 것도 IP 주소를 아는 것)

패킷 = '목적지의 IP주소' + 데이터

패킷이 B에게 전달되는 과정을 살펴보면(영상 링크의 26분 즈음)
1. A는 패킷을 연결 된 라우터 보낸다.
2. A와 직접연결 된 라우터 '가'는, 패킷을 열어 자신과 연결된 또 ㄱ,ㄴ,ㄷ 중 같은 IP주소를 가진 컴퓨터가 없다는 것을 확인하고 패킷을 다시 포장한다.
3. 라우터 '가'는 자신과 직접연결 된 라우터 '마'에게 패킷을 전달한다.
4. 라우터 '마' 역시 패킷을 열어 목적지가 'B'라는 것 확인하고, 자신과 연결된 라우터 중 어느 전선으로 패킷을 내보내야 하는지 고민하다 답을 찾는다(어떻게 답을 찾는지는 Routing을 자세히 공부해보도록 합시다.)
5. 라우터 '마'는 다시 패킷을 포장해서 라우터 '바'에게 넘겨주고,
6. 라우터 '바'는 B와 직접 연결되어있는 라우터 '라'에게 패킷을 넘겨준다.
7. 라우터 '라'는 B에게 전달! 끝

수많은 네트워크들의 연결로 이루어지는 inter-network 속에서
어딘가에 있는 목적지 컴퓨터로 데이터를 전송하기 위해
IP주소를 이용해 길을 찾고,(routing)
자신의 다음 라우터에게 데이터를 넘겨주는 것(forwarding)이 네트워크 계층의 역할

3계층 인코더에 데이터를 삽입하면
ip_address + data를 붙여서 하나의 구조체(객체)가 나오고
이것을 2계층 인코더에 넣는 식
이런식으로 1계층 인코더까지 나오게 되면
아날로그 신호로 변환되어 다른 라우터로 전달되게 되고

그럼 전달된 라우터에서
다시 1-2-3 계층 디코더를 통과하여 목적지 ip 주소를 확인하고
다시 3-2-1 계층 인코더를 통과하며 전기신호로 변환되어 전달되는 식.

네트워크 기술은 운영체제의 커널에 소프트웨어적으로 구현되어있다.

4계층 : 전송 계층

1,2,3계층을 통해 전세계의 컴퓨터가 서로와 통신 가능해졌다.
수신자가 전 세계로 부터 데이터를 받아
자신의 컴퓨터에서 실행중인 프로그램(프로세스)에 나눠주어야 한다고 할 때 필요한 것이 포트번호!(Port number: 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야 하는 정수 값)

데이터를 보내는 사람은 데이터에
수신자의 컴퓨터에 있는 프로세스의 포트번호를 붙여서 보내야 한다.
(도메인 이름에는 포트번호가 생략되어 있는 것)

포트번호를 사용하여
도착지컴퓨터의 최종 목적지인 '프로세스'에 까지
데이터가 도달하게 하는 모듈

인코딩과 디코딩 과정을 살펴보면
4계층 인코더에 데이터를 넣으면 포트번호가 데이터의 앞에 붙어서 빠져나온다.
이 후 3-2-1계층의 인코더를 통과하면 목적지주소가 추가되고, 프레이밍을 하고, 아날로그신호로 변환해서 전달된다.
데이터를 받는 측에서는 1-2-3-4계층 디코딩 과정을 수행해서 데이터를 꺼낼 수 있다.

전송계층 기술 역시 운영체제의 커널에 소프트웨어 적으로 구현되어 있다.

우선 사용자와 가장 가까운

5계층 : 세션 계층, 6계층 : 표현 계층

  • TCP/IP모델 역시 네트워크 시스템에 대한 모델인데
  • 시장경쟁에서 TCP/IP모델이 승리했기 때문에
  • 현대의 인터넷은 OSI 모델이 아닌, TCP/IP모델을 따르고 있다.

TCP/IP 모델을 살펴보면
tcp/ip모델

현재는 updated된 TCP/IP모델이 많이 사용되고 있으므로 이 부분은 건너뛰고,
7계층으로 우선은 넘어가도록 하겠다.
+이후 내용 추가할 예정

7계층 : 응용프로그램 계층

TCP/IP 소켓프로그래밍
운영체제의 Transport Layer에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것을
TCP/IP 소켓(네트워크 환경에 연결할 수 있게 만들어진 연결부)프로그래밍 또는 네트워크 프로그래밍 이라고 한다.

뿐만 아니라 TCP/IP 소켓프로그래밍을 통해서 누구나 자신만의 Application Layer 인코더와 디코더를 만들 수 있다.
누구든 자신만의 Application Layer 프로토콜을 만들어서 사용할 수 있다는 뜻.

Application Layer도 다른 계층과 마찬가지로 인코더와 디코더가 있는데,
대표적인 Application Layer 프로토콜인 HTTP로 인코딩& 디코딩을 살펴보자!

HTTP

http추가예정

마치며

  • MVC패턴은 소프트웨어 아키텍처 중 하나이다.
  • MVC와 마찬가지로 소프트웨어 아키텍처 중에 Layered Architecture라는 것이 있다.
  • Layered 아키텍처를 따르는 대표적인 예가 네트워크 시스템
  • 네트워크 시스템은 하나의 커다란 소프트웨어라고 할 수 있음.
  • OSI 7 계층 모델은 거대한 네트워크 소프트웨어의 구조를 설명하는 것

: 네트워크 시스템 자체가 계층구조로 설계되어있는 하나의 소프트웨어. OSI 7 계층은 네트워크라는 소프트웨어의 구조가 어떻게 되어있는지 설명하는 것.


여러 글도 읽어보고 책도 찾아보고 했지만 이게 뭐지?하는 의문만 남았었는데,
영상으로 잘 설명되어 있어서 정리해 보았다.
사실 정리가 아니라 영상에서 설명하신 내용을 받아적은 스크립트에 불과해서 부끄럽지만
이해하기를 포기하지 않기 위해서 필요한 기록이었다.
앞으로 추가적으로 이해한 내용은 추가로 작성하려고 한다.

0개의 댓글