Skip to content

Latest commit

 

History

History
100 lines (75 loc) · 4.17 KB

OSI 7Layer.md

File metadata and controls

100 lines (75 loc) · 4.17 KB

OSI 7 계층

OSI 7계층 이란?

  • 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동하는 방식을 정해 놓은 것 이다. 이는 ISO(국제표준화기구)에서 개발한 모델이다.
     

1계층 물리 (Physical)

2 대의 컴퓨터가 통신하는 법

💎 모든 파일과 프로그램은 0과 1의 나열이므로 결국 0과 1만 주고받을 수 있으면 된다!!

하지만 두 컴퓨터를 전선으로 이어줘도 컴퓨터는 통신이 불가능하다.

안되는 이유

수직선과 수평선이 있는 전자기파는 항상 0 ~ 무한대 Hz의 주파수 범위를 가지는데 0 ~ 무한대 Hz의 전자기파를 통과 시킬 수 있는 전선은 존재 하지 않기 때문이다.

해결 방법

간단하다 아래와 같은 아날로그 신호로 바꿔서 전송하면 된다. 예를 들어 0101 0101 이라는 데이터를 전송하고 싶으면 0101 0101 을 아날로그 신호로 바꿔서 전선을 통해 전송하면 된다. 아날로그 신호를 받은 컴퓨터는 이를 해석해서 0101 0101 이라는 데이터를 얻는다

결론

  • 0 과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보낸다. (encoding)
  • 아날로그 신호가 들어오면 0과 1의 나열로 해석한다. (decoding)
  • 물리적으로 연결된 두대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈(module)

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

여러 대의 컴퓨터가 통신하는 법

❓ 만약 2대 이상의 컴퓨터가 통신하려면 어떻게 해야할까?

매우 간단하다. 또 전선을 이어주면 된다. 하지만 이러한 방식은 비효율적이다.

아래와 같은 방식으로 전선을 연결하면 되는 것이다.

Untitled

하지만 이렇게 되면 원하는 컴퓨터는 커녕 모든 컴퓨터에 데이터가 전송 될 것이다.

이를 방지하기 위해 데이터의 목적지를 확인하여 전송가능하게 만드는 것이 L2스위치 라고 한다.

만약 여러 대의 컴퓨터가 한 컴퓨터에 데이터를 거의 동시에 전송했다고 가정해보자. 데이터를 받는 컴퓨터는 데이터를 구분해야만 한다. 이 때 구분하기 위해 전송하는 컴퓨터는 데이터를 감싸서 보낸다.

이때 데이터를 감싸는 행위를 Framing 이라고 한다.

Framing

Untitled

Untitled

Preamble (8bytes)

  • 데이터 신호 동기화
    • 동일한 패턴(101010..)의 신호를 7bytes 연속으로 보내서 데이터 전송을 알림
  • 2계층 header의 시작을 알리는 역할
    • 마지막 1byte의 1bit를 1로 만들어 2계층 Header가 시작됨을 알림(10101011)

Destination Address (6bytes)

  • 목적지 MAC Address

Source Address (6bytes)

  • 출발지 MAC Address

Type (2bytes)

  • 정확한 명칭은 Ether Type Code
  • 상위 계층의 Protocol 코드 값( IP : 0x0800, ARP: 0x0806 등..)
  • 최소 코드 값은 16진수 값 0x0600(1536) 부터 사용

Payload[Data] (46~1500bytes)

  • 상위 계층에서 내려온 데이터
  • 2계층의 Payload는 최대 1500bytes(MTU)까지만 사용 가능

FCS[Frame Checksum Sequence) (4bytes)

  • 오류 체크를 위한 값
  • Header[머리]부터 Payload[꼬리]까지의 값을 CRC32 알고리즘을 사용해서 계산한 결과 값

받는 컴퓨터는 Preamble을 수신하면 이제부터 프레임 신호가 온다는 것을 판단한다.

이제 받는 컴퓨터는 판단 기준을 얻었으므로 여러 데이터를 구분 할 수 있다.

결론

  • 같은 네트워크에 있는 여러 대의 컴퓨터가 데이터를 주고받기 위해서 필요한 모듈