인공지능 개발일지

[Network] 네트워크 첫 걸음(TCP/IP 모델, OSI모델, 프로토콜 등등) 본문

개발 지식/네트워크

[Network] 네트워크 첫 걸음(TCP/IP 모델, OSI모델, 프로토콜 등등)

Prcnsi 2021. 7. 2. 23:25
728x90

 

안녕하세요!

좀 tmi 긴 한데

저는 보안에 관심이 많아서 이번 방학에는 웹과 웹 해킹,

네트워크와 네트워크 해킹을 공부하려 합니다.

그 일환으로 네트워크를 알아봅시다.

 

 

 

 


 

 

 

 

이번 시간에 다룰 내용은 네트워크의 전체적인 구성입니다.

 

그러니까 네트워크가 연결되는 과정을 단계

별로 나타낸 것이 OSI 7 계층과 TCP/IP 4 계층인데, OSI는 좀 더 세부적으로 나누었고

TCP/IP 는 큼직하게 프로세스를 나누었습니다.

 

이 중 현재 사용되는 프로토콜은 TCP/IP 프로토콜입니다.

 

OSI 7 계층과 TCP/IP 프로토콜은 다른 얘기를 하는 것이

아니라 아래와 같은 연관성이 있습니다.

그러니까 위 그림과 같이 OSI 계층에서 세분화된 것이 각각 TCP/IP의 계층의

역할과 대응되는 것이죠.

 

그럼 이제 각각을 자세히 살펴봅시다.

 

 

 

 

 

 

 

 

 

1. OSI 7 계층

OSI 7 계층은 네트워크 데이터 통신을 설명할 때 반드시 있어야 하는 중요한 개념입니다.

이는 네트워크 동작을 나누어 이해하고 개발하는데 많은 도움이 되므로 네트워크의 주요

레퍼런스 모델로 활용하고 있지만 현재는 대부분의 프로토콜이 TCP/IP 프로토콜 스택 기반으로 

되어 있습니다.

 

OSI 7 계층은 아래와 같이 크게 두 덩어리로 나눌 수 있습니다.

  • 응용(애플리케이션)하는 계층 (상위): 5 ~ 7층
  • 데이터 플로 계층 (하위) :1 ~ 4층

 

먼저 응용 계층이라는 닉값에 걸맞게 상위 계층은 기초 작업 후에 응용하는 계층입니다.

데이터 플로 계층은 데이터(패킷)를 흐르게 하는 것으로 기초 작업을 뜻합니다.

 

OSI 7 계층에서 각 계층별로 키워드를 정리하면 아래와 같이 나타낼 수 있습니다.

계층 역할
7 계층 프로세스 정의, 서비스 수행
6 계층 통일 구문 변환
5 계층  세션을 만들고 없앰
4 계층 * 데이터 확인 정정
3 계층 주소 확인 전송 (IP)
2 계층 주소 확인 (MAC)
1 계층 전기 신호 전달, 주소X

 

지나치게 일반화한 경향이 없지 않아 있지만 이후 포스팅에서 각 계층별로 자세히 들어갈

예정이라 간단하게 정리해 보았습니다.

 

위 표에서 주목해야 할 핀트가 몇 개 있는데 먼저 4 계층을 봅시다.

뭐든지 변곡점인 부분은 신경을 써주어야 하는데요.

4 계층이 그렇습니다. 상위 계층과 하위 계층의 경계면에 있는

이 계층은 데이터 확인 정정이라고 대강 적어 놓았지만

대강 적힌 것과 다르게 매우 꼼꼼하게 정정하고 확인하는 역할을 하는 

중요한 계층입니다.

 

 다음으로는 2 계층과 3 계층에서 MAC 주소와 IP주소를 언급하였는데

MAC 주소는 물리적인 주소로 고정되어 있고

IP주소는 논리적인 주소로 가변적입니다. 

(여기서 논리적이라는 것은 Virtual machine에서 논리적인 서버 할 때 그 논리입니다)

 

이에 대해서는 이후 포스팅에서 자세히 언급할 예정이니 이 정도만 정리하고 넘어가겠습니다.

 

 

 

2. TCP/IP 4 계층

 

일반적으로 TCP/IP는 프로토콜이라고 부르지 않고 프로토콜 스택이라고 부릅니다.

이 TCP/IP 프로토콜 스택은 총 4개 부분(4 계층)으로 나뉩니다.

 

이 또한 간단하게 아래와 같이 정리할 수 있습니다.

 

계층 역할
4 계층  응용
3 계층 전송,패킷들을 조합해줌
2 계층 인터넷, 나침반역할 (IP)
1 계층 이더넷: 물리계층 (MAC)

 먼저 1 계층은 물리 계층으로 이더넷이라는 기술을 통해 네트워크에 접근한다.

 

다음으로 2 계층에서 나침반 역할이 무슨 말이냐면 데이터들의 나침반이라는 뜻이다.

즉 데이터가 갈 곳을 알려주고 확인하고 정정하는 역할을 합니다.

 

다음 3 계층에서는 말 그대로 패킷들을 조합해서 전송하는 역할을 한다.

바로 다음 절에서 다루겠지만 여기서 3계층에서 4 계층으로 갈 때 데이터를 "조합"해서 보내는 것에

신경 쓰길 바란다. (3->4)

 

마지막 4 계층에서는 OSI 7 계층에서의 7 계층과 마찬가지로 애플리케이션 계층으로 응용하는 역할을 한다.

 

이렇게 TCP/IP와 OSI 모델을 살펴보았다.

다음으로는 데이터의 기본 인캡슐레이션 디캡슐레이션에 대해 알아봅시다.

 

 

 

3. 인/디캡슐레이션

이게 상당히 흥미로운데 결국에 이 단원에서는 쪼개는 게 핀트입니다.

뒤에서도 랜카드를 쪼개는 VLAN이란 개념이 나오는데 이처럼 쪼개서 관리하면 효율적인 경우가 많습니다.

데이터 또한 마찬가지입니다. 

 

간단한 예시로 집에서 공유기로 와이파이를 사용할 때 데이터가 상호작용을 하는데 이때 왔다 갔다 하는

이 데이터가 통째로 왔다 갔다 하는 게 아니라 "패킷"이라는 단위로 쪼개져서 이동하는 것입니다.

 

다시 한번 정리하자면 데이터를 패킷이라는 작은 단위로 쪼개 보내는 것입니다. 

데이터를 패킷으로 쪼개고 네트워크를 이용해 목적지로 보내면

받는 쪽에서는 패킷을 다시 큰 데이터 형태로 결합(조합)해 사용합니다.

 

 

서론이 길었는데 여하튼 이렇게 데이터가 이동합니다.

이 개념을 위에서 배운 TCP/IP와 OSI 모델에 적용하면 하위 계층에서 상위 계층으로 

올라갈 때는 데이터를 결합해서 보내고 

내려올 때는 데이터를 패킷으로 쪼개서 보냅니다.

 

그래서 데이터를 결합할 때는 순서가 필요합니다.

이는 바로 다음에 언급됩니다.

 

3.1 인캡슐레이션

인캡슐레이션은 상위 계층에서 아래 계층으로 데이터를 쪼개 보내는 것입니다.

이렇게 내려 보낼 때 헤더가 추가됩니다.

헤더는 목적지의 정보를 담은 데이터입니다. 내려갈 때는 그냥 내려가면 되지만

올라갈 때는 한 계층 안에도 종류가 여러 개 있어 목적지를 지명해 주어야 하기 때문이죠.

 

3.2 디캡슐레이션

디캡슐레이션은 하위 계층에서 상위 계층으로 데이터를 결합해 보내는 것입니다.

이때 헤더가 벗겨집니다.

 

구체적으로 헤더에 꼭 들어가야 할 정보로는 아래 두 가지가 있습니다.

  1. 현재 계층에서 정의하는 정보 (원래 것)
  2. 상위 프로토콜 지시자 (목적지)

  

 

 

 

4. 프로토콜

프로토콜이 종종 언급되는데 이는 무엇일까요?
프로토콜은 네트워크에서 통신할 때의 규약입니다. 

 

이는 어디서 만들고 사용하는지에 다양한 프로토콜이 있는데

최근에는 TCP/IP 기반 프로토콜들이 주로 쓰입니다.

 

프로토콜은 비트 기반으로 표현할 수도 있고 문자 기반으로 표현할 수도 있습니다.

보통 응용 계층에서는 문자 기반으로 많이 사용합니다.

 

이의 특징은 아래와 같이 정리할 수 있습니다.

(중요한 건 아니니 그렇구나 하고 참고만 하시면 됩니다)

대표적인 문자 기반 프로토콜은 HTTP와 SMTP가 있습니다.

이 HTTP 헤더는 눈으로 봐도 비트 기반보다는 이해가 갑니다.

따라서 편리성이 높다고 하였습니다.

 

 

 

 


 

 

 

 

이상으로 네트워크 입문에 필요한 내용들을 정리해 보았습니다.

최대한 요약한다고 했는데 어쩌다 보니 구구절절이 된 것 같군요.

이해가 잘 가시나요? 다음 포스팅은 물리적인 네트워크와 네트워크의 주소 등등이 예정되어 있습니다.

여기까지 읽어주셔서 감사합니다.

좋은 하루 보내세요!

728x90

'개발 지식 > 네트워크' 카테고리의 다른 글

[Network] MAC/IP 주소와 서브넷 마스크  (0) 2021.07.16