인프라/네트워크

[네트워크] OSI 7계층

인프라베어 2023. 11. 21. 23:52

OSI 7계층은 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 계층별로 작동할 수 있는 방법(프로토콜)을 정해놓은 것이다. 이러한 기준은 ISO(국제 표준화 기구, International Organization for Standardization)에서 개발한 모델이다.

 

하지만, 나의 경우에는 데이터 통신과 같은 전공과목에서 TCP/IP를 기준으로 한 TCP/IP모델을 기준으로 학습하였기 때문에 면접대비에 걱정이 있어 이를 정리해보려 한다.

 

나는 아래의 책을 통해 수업을 들었는데 교수님이 수업도 잘하시고 책의 내용도 좋아서 네트워크를 한번 알아보고 싶다면 보기 좋을 책이라고 생각한다.

TCP/IP모델 같은 경우 OSI 모델에 비해 하위영역을 더 간단하게 표현했다는 특징이 있다.

모델별 계층비교

본인은 원래 전기전자공학을 전공으로 했기에 L1(Physical Layer)가 처음에는 익숙했다. 하지만 나중에는 간단한 비트 연산, 서브넷 계산을 할 때 이러한 지식이 도움이 되었다.

 

L1(물리계층, Physical Layer)

물리계층은 아날로그 신호를 디지털로 변환한다.

예를 들어 전화를 생각할 수 있다. 휴대전화의 마이크는 사람의 목소리를 진동으로 구분하며 이는 ADC, DAC와 같은 컨버터를 통해 아날로그 신호(continuous)를 디지털신호(1,0, discrete)로 변환한다.

아날로그 신호를 디지털 신호로 변환한다가 핵심인데 이러한 부분은 디지털 신호 처리와 같은 과목에서 자세히 알 수 있다.

Fourier Transform, z-transform, FFT 등등, ... 공학적 관심이 있다면 찾아보시라

실제 장비를 예로 들자면 RJ45가 있다.

흰주-주-흰초-파-흰파-초-흰갈-갈...

L2(데이터링크, Data Link Layer)

대표적인 예시가 스위치인데 목적지의 MAC주소를 통해 패킷을 전달한다. 1 홉(hop) 통신을 담당한다고도 한다. 홉(hop)은 네트워크의 한 노드에서 다른 노드로 한번 이동하는 것을 1 홉이라고 한다.

스위치는 맥주소를 기반으로 포워딩 테이블을 생성한다.

스위치는 이 맥 테이블을 가지고 egress interface를 결정하며 스위치의 맥테이블은 스위치에 특정 포트에서 패킷이 전달되면 이를 기억하여 테이블을 생성한다. - 5분의 timeout 존재

목적지가 맥테이블에 존재하지 않으면 Flooding을 통해 어떤 인터페이스에 어떤 장치들이 있는지를 확인한다.

Flooding - 패킷을 수신한 포트를 제외한 모든 포트에 패킷을 전송하여 각 장치는 자신의 맥주소를 스위치에 전달한다. 이를 통해 스위치는 맥주소를 학습할 수 있다.

 

물리계층을 통해 송,수신되는 정보의 오류, 데이터가 변환될때의 오류를 감지한다.

CRC(Cyclic Redundancy Check)

패킷에 CRC 값을 추가하여 데이터를 보내고 데이터를 받는 측에서 이 CRC값을 계산하여 두 값이 일치하는 지를 확인하여 오류를 검출한다. 만약 값이 다르면 오류이므로 프레임을 드랍시키거나 재전송을 요청한다.

 

 

L3(네트워크 계층, Network Layer)

네트워크계층에서는 패킷의 라우팅을 담당한다. 2홉이상의 통신을 담당하며 라우팅 알고리즘을 통해 패킷의 최적경로를 선택하는데 이를 라우팅(Routing)이라고 한다.

 

라우터는 보통 하나의 네트워크와 다른 네트워크를 연결하는 기능을 하며 여러개의 노드를 거칠때마다 헤더를 통해 경로를 찾아준다.

네트워크 계층은 라우팅, 흐름제어, inter-networking을 담당한다.

 

아래는 학교다닐 때 정리한 내용이다...

네트워크 레이어

1) 데이터 평면(data plane)

2) 제어 평면(Control plane)

 

네트워크 계층의 서비스와 데이터 평면

네트워크 레이어: transport layer에서부터 segment를 받아 다른 host에게 전달하는 역할

Segment를 데이터그램으로 캡슐화하여 다른 호스트에게 전송한다.

Network layer protocols는 모든 host router에 존재한다. 라우터들은 모든 IP데이터그램의 header field를 검사하고 통과시킨다.

 

네트워크 계층의 두가지 주요기능

Forwarding: 라우터의 인풋 포트로 들어온 패킷을 적절한부터 아웃풋 포트로 보내는 것 (데이터 평면)

Routing: sender로부터 receiver까지의 라우터 내부가 아닌 네트워크에서의 경로를 설정하는 것(source로부터 destination까지의 packet의 경로를 설정하는 것), 제어 평면

 

Data plane

- 지역적이며 라우터별로 작업을 수행한다.

- 포워딩기능을 수행한다.(데이터그램이 라우터의 인풋포트로 들어왔을 때 적절한 아웃풋 포트를 결정하는 포워딩 기능을 수행한다.)

Control plane

- 네트워크 전체에 걸쳐서 작업이 수행되며 데이터그램이 어떤 라우터를 거쳐서 목적지에 도달할 것인지에 대한 경로를 설정하는 라우팅과정을 수행한다.

- 컨트롤 플레인에는 traditional routing algorithmsoftware defined networking(SDN)가 있다.

 

L4(전송 계층, Transport Layer)

하위계층에 신뢰할 수 있는 데이터 전송서비스를 제공하는 것에 의미가 있다.

컴퓨터들과 컴퓨터들(호스트와 호스트) 사이에 신뢰성있는 데이터를 서로 주고 받을 수 있도록 해주어 신뢰성 있는 데이터를 보장한다.(TCP, UDP)

TCP(Transmission Control Protocol)

  •  3-way handshaking을 통해 연결하고 4-way-handshaking을 통해 연결을 끊는다.
  • 흐름제어 및 혼잡제어(CPU사용)
  • 높은 신뢰성보장
  • UPD보다 속도가 느리다

UDP(User Datagram Protocol)

  • 호스트와의 연결을 먼저 맺는것이 아닌 데이터전송을 목적으로 한다.
  • 흐름제어, 혼잡제어 기능 X
  • 속도는 TCP보다 빠르다
  • 전송 순서를 보장하지 않는다.

L5(세션 계층, Session Layer)

두 컴퓨터간의 세견을 관리하며 TCP/IP세션을 만들고 없애는 등의 통신 세션을 관리한다.

장치간의 연결이 전이중(Full duplex)인지 반이중(Half duplex)인지 확인하고 호스트와의 연결이 정상적인지를 확인한다.

L6(표현 계층, Presentation Layer)

응용계층으로부터 전달받은 데이터를 읽을 수 있는 형식으로 표현하는데 응용계층의 부담을 덜어주는 역할을 하기도 한다. 응용계층으로 전달해야 할 데이터의 인코딩과 디코딩이 이 계층에서 이루어진다.

ASCII, UTF-8

웹 페이지의 이미지, 텍스트, 비디오 파일 등은 표현 계층을 통해 적절한 표준으로 변환됨

L7(응용 계층, Application Layer)

최상위 계층으로 사용자가 네트워크 자원에 접근하는 방법을 제공한다.

최종적으로 사용자가 볼 수 있는 계층인데 모든 네트워크활동의 기반이 되는 사용자가 실행시킨 모든 응용프로그램들이 이 계층에 속한다(텔넷, 구글크롬, 이메일)