카테고리 없음

OSI 7 계층과 TCP / IP

dev_roach 2022. 6. 14. 23:39
728x90

OSI 7 계층은 네트워크 지식을 공부하게 되면 한번쯤은 듣게 되는 용어중 하나이다.  오늘은 OSI 7 Layer 가 무엇이고, 왜 만들어졌는지를 공부해보려고 한다.

과거

과거에는 통신에 대한 규약이 정확하게 존재하지 않았다. 그래서 벤더사마다 통신규약을 다르게 정의했고, 이는 상호간의 통신규약을 통일하는데 무척 힘들게 하는 요인 중 하나였다. 그래서 이를 통일하기 위해 OSI 7 Layer 라는 표준이 등장했다.

OSI 7 Layer?

계층 영어 표기 한국어 표기 주요 프로토콜  
7계층 Application Layer 애플리케이션 계층 HTTP, FRP, SMTP L7
6계층 Presentation Layer 프리젠테이션 계층 TLS, AFP, SSH L6
5계층 Session Layer 세션 계층 L2TP, PPTP, SSH L5
4계층 Transport Layer 전송 계층 TCP, UDP, SCTP L4
3계층 Network Layer 네트워크 계층 ARP, IPv4, IPv6 L3
2계층 Data Link Layer 데이터 링크 계층 IEEE 802.2 L2
1계층 Physical Layer 피지컬 계층 RS-232, RS-449 L1

학부시절 또는 OSI 7 Layer 를 공부해봤다면 위와 같은 표를 많이 본적이 있을 것이다. 이제 우리는 각 계층이 어떤 역할을 하는지 알아보자.

1계층 (Physical Layer)

주로 물리적 연결과 관련된 정보를 정의하며, 전기신호를 전달하는데 초점이 맞추어져 있다. 1계층에서는 들어온 전기신호를 잘 전달하는 것이 목적이므로, 전기신호가 들어오면 이 전기 신호를 재생성하여 내보냅니다. 

 

1계층 주요 장비

  • 허브
  • 리피터
  • 케이블
  • 커넥터
  • 트랜시버

2계층 (Data Link Layer)

2계층은 1계층에서 온 전기신호를 바탕으로 우리가 알아볼 수 있는 데이터 형태로 처리합니다. 1 계층은 전기 신호를 손실없이 전달하는게 주 목적이였다면, 2계층은 들어온 전기 신호를 정확한 주소로 전달하는 것을 목적으로 합니다. 그래서 2계층에서는 출발지와 도착지 주소를 확인하고 내게 보낸것이 맞는지, 내가 처리해야 하는 것이 맞는지에 대한 검사를 진행한 뒤 데이터처리를 진행합니다.

원하는 주소에 정확히 전달한다는 것은, 단순히 전송한다는 것 뿐만 아니라 상대가 받을 수 있는 상황인지 확인부터 해야 합니다. 이러한 작업을 Flow Controll(흐름 제어) 이라고 합니다.

 

2계층 주요 장비

  • NIC (Network Interface Card)
    • 이를 이용하여 MAC 주소 체계를 가집니다.
  • Switch
    • 스위치는 MAC 주소를 이해할 수 있고, MAC 주소를 보고 통신해야 할 포트를 지정해 내보내는 능력이 있습니다.
      • Address Learning 과정을 통해서 어떤 단말이 어떤 MAC 주소를 가지고 있는지 학습함 (DNS Server 를 생각하면 이해하기 쉽다.)

NIC 를 통한 간단한 동작 원리

  1. 들어온 전기 신호를 데이터 형태로 만든다
  2. 목적지 MAC 주소와 출발지 MAC 주소를 확인한다
  3. 네트워크 인터페이스 카드와 MAC 주소를 확인한다
  4. 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 처리하고 다르면 데이터를 파기한다.
    1. 맞다면 상위 계층에서 이를 처리할 수 있도록 Data Frame 을 메모리에 적재함

3계층 (Network Layer)

3계층은 논리적인 주소가 정의되는 곳이다. 2계층에서는 MAC Address 를 통한 물리적인 주소가 정의되지만, 3계층에서는 사용자가 환경에 맞게 변경도 시킬수 있는 논리적인 주소가 정의된다. 학부시절에는 ARP Protocol 등을 배웠었는데, ARP Protocol 을 통해 논리 주소 IP 로 MAC address 를 binding 할수 있다.

 

3계층 주요 장비

  • Router
    • 3계층에서 정의한 IP 를 이해할 수 있으며, IP 주소를 사용해 최적의 경로로 패킷을 전송하는 역할을 한다.

4계층 (Transport Layer)

4계층은 주로 실제로 해당 데이터들이 잘 보내지도록 확인하는 역할을 수행한다. 부가적으로 흔히 불리는 Data Flow Layer의 End Point 로  5,6,7 Layer 에서 하위 Layer 에 대한 관심사를 줄 일 수 있도록 도와주는 역할을 또한 수행한다. 우리는 Packet 을 Network 에 실어 보내는데 이러한 과정에서 유실되거나, Packet 의 순서가 뒤바뀔 수 있다. 이러한 문제를 4계층에서 해결해준다.

패킷을 보낼때 Sequnce Number 를 통해서 보낸 순서를 기록하고, 받는 순서를 나타낸것이 ACK 이다. 또한 4계층 장비는 장치내의 포트번호를 구분하여 많은 어플리케이션을 구분할 수 있도록 도와준다.

 

4계층 주요 장비

  • Load Balancer (L4)
    • Application Port Number, Sequence Number, ACK Number 등을 이용하여 부하를 분산한다.
  • Firewall
    • 보안 정책을 수립하여 패킷을 통과, 차단하는 기능을 수행합니다.

5계층 (Session Layer)

5계층인 세션 계층은 End-Point 간 Application Process 의 연결이 성립되도록 도와주고, 연결이 안정적으로 유지되도록 관리하고 완료후에는 연결을 끊는 역할을 합니다. 우리가 흔히 많이 쓰는 Connection.close() 등이나 Connection.connect() 등이 이 계층에서 관리 된다.

6계층 (Presentation Layer)

6계층은 표현방식이 다른 Application 이나 System 간의 통신을 돕기 위해 하나의 통일된 구문으로 변환해주는 역할을 수행한다. MIME 인코딩, 암호화, 압축, 코드 변환 과 같은 작업이 Presentation Layer 에서 이루어진다.

7계층 (Application Layer)

7계층은 Application Process 를 정의하고, Application Service 를 수행한다. 애플리케이션 계층의 프로토콜은 여러가지가 있으나 대표적인것은, HTTP, SMTP, FTP 등이 있다.

 

OSI 7 Layer 가 주는 이점

잘 생각해보면 우리가 깊게 생각하지 않고, 단순한 프로젝트를 진행할때 1 ~ 4 계층을 생각해본적이 있는가? 아마도 대부분 없을 것이다. OSI 7 Layer 의 계층들은 각각 Top-Down, 혹은 Bottom-Up 되면서 상위 또는 하위 계층으로 갈수록 신경써야 할 관심사가 줄어든다. 즉, 각자 관심사 분리가 잘되어있다는 뜻이다. 그래서 우리는 1 ~ 4계층을 생각하지 않고 코드를 작성할 수 있게 된다.

 

참고

https://books.google.co.kr/books/about/IT_%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A5%BC_%EC%9C%84%ED%95%9C_%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC.html?id=fJoFEAAAQBAJ&source=kp_book_description&redir_esc=y 

https://osi-model.com/session-layer/

 

Session Layer | Layer 5 | The OSI-Model

Learn about the OSI Layer 5. The Session Layer. Sessions are used as transport lane for network traffic. Including all the relevant session layer protocols.

osi-model.com

 

728x90