OSI 7 Layer

oyeon·2021년 9월 19일
4

Server

목록 보기
15/16

네트워크 개념

1. 네트워크의 구성 형태

Mesh Topology (망형)

  • 컴퓨터와 컴퓨터마다 전선을 두는 방식은 통신하려는 컴퓨터가 많아질수록 비용면에서 비효율적
  • 따라서, 전선 하나를 가지고 여러 컴퓨터와 통신할 방법을 모색해야 한다.

Bus Topology (버스형)

  • Bus Topology 형태의 전기가 통하는 구리 선에 여러 대의 컴퓨터가 연결되었다고 가정해보자.
  • 한 컴퓨터에서 다른 컴퓨터로 0010 0100 데이터를 보내고 싶다면, 0010 0100에 해당하는 전자기파를 구리 선으로 흘려보낸다.
  • 구리 선은 전기가 통하므로, 신호는 구리 선의 모든 곳으로 전달되어 모든 컴퓨터에 전달된다.
  • 원하는 컴퓨터에 전송하는 데 성공했지만, 다른 컴퓨터도 데이터를 받았다.

Star Topology (성형)

  • 허브를 중심으로 컴퓨터들이 연결된 구조

2. 허브 vs 스위치 vs 라우터

더비 허브 (허브)

  • 한 컴퓨터에서 다른 컴퓨터로 데이터를 보낼 때, 다른 컴퓨터도 메시지를 읽을 수 있다.
  • Collision Domain(충돌 영역)을 나누지 못하고 한 PC가 BroadCast를 뿌리게 되면,
  • 허브에 연결된 모든 PC, Server들은 BroadCast 패킷을 받게 된다.
  • 이 경우 허브에 연결된 모든 네트워크에서는 충돌이 발생할 수 있으며, 속도가 저하된다.

스위칭 허브 (스위치)

  • 메시지의 목적을 확인해서 특정 컴퓨터에만 메시지를 전달할 수 있다.
  • 각 Port 별로 Bandwidth를 제공하며 Switch는 자기에게 주어진 PC, Server들의 MAC 주소를 저장.
  • Collision Domain(충돌 영역)을 나눌 수 있다.

라우터

  • 스위치와 스위치를 연결해서 서로 다른 네트워크에 속한 컴퓨터끼리 통신이 가능하게 해주는 장비
  • 라우터가 스위치 역할까지 하는 경우도 있다. ex. 가정용 무선 라우터

허브 vs 스위치

  • 허브는 연결된 기기 중 하나에서 전송된 패킷이 허브에 연결된 모든 기기로 브로드캐스팅 된다.
  • 스위치는 패킷의 목적지 주소로 지정된 기기로 이어지는 포트로만 패킷이 전달된다.

스위치 vs 라우터

  • 라우터는 계층 3(네트워크 계층)에서 작동하며 네트워크를 다른 네트워크로 연결하는 데 사용
  • 스위치를 LAN에서 사용되는 것, 라우터를 WAN에서 사용되는 것으로 이해하면 쉽다.

TCP/IP Updated Layer

  • 현재 인터넷에서 사용하는 TCP/IP updated 모델을 중심으로 알아보자.

1. Physical Layer

  • 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려보내고(Encoding)
  • 아날로그 신호가 들어오면 0과 1의 나열로 해석하여(Decoding)
  • 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈(Module)
  • PHY칩에 하드웨어적으로 구현되어 있다.
  • 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받는 데 필요한 모듈
  • 2계층 Encoder는 들어온 Data에 Framing 처리를 한다.
  • 랜카드에 하드웨어적으로 구현되어 있다.

Framing

  • Data-link Layer에 속하는 작업 중 하나이다.
  • 한 컴퓨터에 여러 데이터가 들어올 때, 이를 구분하려는 방법
  • Ex. 송신자가 데이터를 보낼 때 데이터 시작 부분에 1111, 데이터 마지막 부분에 0000을 붙인다.
  • 이렇게 데이터들을 감싸서 보내면, 수신자가 여러 데이터를 받더라도 그 데이터를 구분할 수 있다.

3. Network Layer

  • 수많은 네트워크의 연결로 이루어지는 inter-network 속에서
  • 어딘가에 있는 목적지 컴퓨터로 데이터를 전송하기 위해
  • IP 주소를 이용해서 길을 찾고 (routing)
  • 자신 다음의 라우터에 데이터를 넘겨주는 것 (forwarding)
  • 3계층 Encoder는 들어온 Data의 앞에 목적지 IP 주소를 추가시켜준다.
  • 운영체제의 커널에 소프트웨어적으로 구현되어 있다.

1계층~3계층 과정 정리

용어

  • 패킷 : 목적지 IP 주소 + Data로 이루어진 구조체
  • Framing : Data-link Layer 설명 참고

Data를 보내는 컴퓨터

3 → 2

  • Data를 보내는 컴퓨터의 Data가 들어오면, 3계층 Encoder에서 패킷을 만들어 2계층에 전송

2 → 1

  • 3계층에서 패킷이 들어오면, 2계층 Encoder에서 패킷을 Framing을 통해 감싸 1계층에 전송

1 → 1

  • 2계층에서 Framing에 감싸진 패킷이 들어오면, 1계층 Encoder가 아날로그 신호로 바꿔 인접한 라우터에 흘려보낸다.
  • 인접한 라우터에 아날로그 신호가 들어온다.

라우터

1 → 2

  • 들어온 아날로그 신호를 1계층 Decoder를 통해 0과 1로 해석한다. 이를 통해 얻은 Framing으로 감싸진 패킷을 2계층으로 보낸다.

2 → 3

  • 1계층에서 Framing으로 감싸진 패킷이 들어오면, 2계층 Decoder를 통해 Framing(0000, 1111)을 제거한다. 이후 패킷을 3계층에 전송

3 → 3

  • 2계층에서 패킷이 들어오면, 3계층 Decoder를 통해 목적지 IP 주소가 사용되고
  • 다시 3계층 Encoder로 들어간다.

3 → 2

  • 들어온 Data를 3계층 Encoder를 통해 패킷을 만들어 2계층에 전송

2 → 1

  • 3계층에서 패킷이 들어오면, 2계층 Encoder에서 패킷을 Framing을 통해 감싸 1계층에 전송

1 → 1

  • 다음 순서 라우터에 전달.

위에 작성한 라우터에서 일어나는 일(라우팅 과정) 반복

4. Transport Layer

  • 포트 번호를 사용하여 도착지 컴퓨터의 최종 도착지인 프로세스(실행중인 프로그램)까지 데이터가 도달하게 하는 모듈
  • 데이터를 받고자 하는 프로세스들은 포트 번호를 가져야 한다.
  • 4계층 Encoder는 들어온 Data의 앞에 포트 번호를 추가시켜준다.
  • 운영체제의 커널에 소프트웨어적으로 구현되어 있다.

5. Application Layer

TCP/IP 소켓 프로그래밍

  • 운영체제의 Transport layer에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것을 TCP/IP 소켓 프로그래밍, 또는 네트워크 프로그래밍이라고 한다.
  • 소켓 프로그래밍만으로도 클라이언트, 서버 프로그램을 따로 만들어 동작시킬 수 있다.
  • TCP/IP 소켓 프로그래밍을 통해 자신만의 Application Layer 인코더와 디코더를 만들 수 있다. 즉, Application Layer 프로토콜을 만들어서 사용할 수 있다.
  • 대표적인 Application Layer 프로토콜인 HTTP로 인코딩, 디코딩을 살펴보자.

마무리

  • 네트워크 시스템은 Layerd Architecture를 따르는 대표적인 예시로써, 하나의 거대한 소프트웨어라고 할 수 있다.
  • 결국, OSI 7 Layers 모델은 거대한 네트워크 소프트웨어의 구조를 설명한다.

reference
https://www.youtube.com/watch?v=1pfTxp25MA8
https://mslee89.tistory.com/49
https://velog.io/@amuse/OSI-7-Layers
https://www.itworld.co.kr/news/167585
https://levelup-teddybear.tistory.com/19
https://security-nanglam.tistory.com/176
http://ko.rfidctek.com/news/difference-between-analog-and-digital-signals-21014371.html

profile
Enjoy to study

2개의 댓글

comment-user-thumbnail
2021년 9월 27일

많은 도움이 되었읍니다,,,,,,,,,,,,,,,,,,,,,,,,,

1개의 답글