• OSI 7계층 이란?
    • OSI 7계층은 통신의 접속에서부터 완료까지의 과정을 7단계로 OSI에서 정의한 국제 통신 규약입니다.

 

  • OSI 7계층이 왜 필요한가?
    • 연결되어 있는 컴퓨터들이 서로 정상적인 통신을 할 수 있으려면 정해진 규격대로 연결이 되어야지 통신을 할 수 있습니다.
    • 실제로 이 규격이 만들어지기 전까지의 통신은 각 통신 업체 장비간의 통신만 가능했다고 합니다.
    • 그래서 다른 통신 업체 장비간의 통신을 할 수 있도록 할 필요가 있었고, 통신의 흐름을 파악하기 쉽게 계층 하나하나를 모듈화 했습니다. 이 모듈화를 통해 각 계층은 독립적으로 구성이 되어있으므로 하나의 계층에 문제가 생기면 해당 계층만 고치면 되므로 유지관리가 수월해 집니다.

 

  • OSI (Open System Interconnection Reference Model)
    • 국제표준화기구(ISO)에서 개발한 모델로, 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것 입니다. (프로토콜 기능별로 나눈 것이라 보면 됩니다.)
    • 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공합니다.
    • 프로토콜 스택은 이러한 계층들로 구성된 프로토콜 시스템을 가리키는데, 하드웨어나 소프트웨어 혹은 그 둘의 혼합으로 구현될 수 있습니다.
    • 일반적으로 하위 계층은 하드웨어, 상위 계층은 소프트웨어로 구현됩니다.

 

 

 

OSI 7계층

  • 1계층 (물리 계층) : 컴퓨터간 전기적인 연결을 담당하는 계층 - 통신 케이블, 허브 사용
    • 물리 계층에서는 주로 전기적, 기계적, 기능적인 방법으로 통신 케이블을 통해 데이터를 전송합니다.
    • 물리 계층에서는 PHY칩에서 데이터를 전기적인 신호로 변환해서  전송(encoding - 0과 1의 데이터를 아날로그 신호), 수신(아날로그 신호를 0과 1의 데이터)하는 역할만 합니다.
    • 데이터가 무엇인지 어떤 에러가 있는지 신경쓰지 않습니다.
    • 이 계층에서의 대표적인 장비는 통신 케이블, 리피터, 허브가 있습니다.
    • 전송 단위 : Bit

 

  • 2계층 (데이터 링크 계층) : 노드간의 신뢰성 있는 전송을 보장하기 위한 계층으로 MAC Address를 가지고 통신합니다. - CRC(Cyclic Redundancy Check)기반의 오류 제어와 흐름제어, 이더넷 사용, 스위치 사용
    • 물리 계층에서 수신 or 물리 계층에 송신되는 데이터의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행(데이터의 앞 뒤에 특정한 비트열을 붙임)할 수 있도록 도와주는 역할을 합니다. 
    • 통신에서의 오류도 찾아주고 재전송하는 기능도 있습니다.
    • MAC 주소를 가지고 통신합니다.
    • 이 계층에서의 전송단위는 프레임이라고 하고, 대표적인 장비로는 스위치(우리가 잘 아는 공유기가 여기에 해당), 브리지 등이 있습니다. (여기서 MAC 주소 사용)
    • 브리지나 스위치를 통해 MAC 주소를 가지고 물리 계층에서 전송받은 데이터를 전달합니다.
    • 포인트 투 포인트(point to point) 간 신뢰성 있는 전송을 보장하기 위한 계층으로 CRC기반의 오류 제어와 흐름제어가 필요합니다.
    • 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류들을 찾아내고 수정하는데 필요한 기능적 수단을 제공합니다.
    • 전송 단위 : Frame

 

  • 3계층 (네트워크 계층) : 패킷을 네트워크간의 IP 주소를 통해 목적지까지 전달하는 계층입니다. - IP 사용
    • 네트워크 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)입니다. 여기에 사용되는 프로토콜의 종류도 다양하고, 라우팅하는 기술도 다양합니다.
    • 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 목적지까지 전달해주는 것이 네트워크 계층의 역할입니다.
    • 대표적인 장비는 라우터이며, 요즘은 2 계층 장비 중 스위치에 라우팅 기능을 장착한 Layer 3 스위치도 있습니다. (여기서 IP를 사용)
    • 여러개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층으로 데이터를 네트워크들을 통해 전달하고, 그 과정에서 상위 계층인 전송 계층이 요구하는 서비스 품질(Qos)를 제공하기 위한 절차적/기능적 수단을 제공합니다.
    • 네트워크 계층은 라우팅, 세그맨테이션, 오류제어, 흐름제어, 인터네트워킹등을 수행합니다.
    • 데이터를 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층입니다.
    • 전송 단위 : Datagram (Packet)

 

  • 4계층 (전송 계층) : 데이터 전송을 담당하는 계층으로 데이터 용량, 속도, 목적지 등을 처리합니다. - TCP/UDP 사용
    • 통신을 활성화하기 위한 계층입니다. 보통 TCP를 사용하며, 포트를 열어 응용프로그램들이 전송할 수 있게 합니다.
    • 만약 데이터가 왔다면, 해당 계층에서 데이터를 하나로 합쳐서 세션 계층으로 전송합니다.
    • 전송 계층은 양끝단(end to end) 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 도와주고, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해줍니다.
    • 시퀀스 넘버기반의 오류 제어 방식을 사용합니다.
    • 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고(stateful), 연결 기반(connection oriented)입니다. 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송에 실패한 패킷들을 재전송한다는 것을 뜻합니다.
    • 종단간 통신을 다루는 최하위 계층으로 기능은 오류검출 및 복구와 흐름제어, 중복 검사등을 수행합니다.
    • 전송 단위 : Segment

 

  • 5계층 (세션 계층) : 통신을 할 경우 host간 최초 연결을 하게되고 연결이 끊어지지 않게 유지하는 역할을 하는 계층입니다.
    • 데이터가 통신하기위한 논리적인 연결을 합니다. 통신을 하기위한 대문이라고 생각하면 됩니다.
    • 하지만 4계층에서도 연결을 하고 종료할 수 있기 때문에 우리가 어느 계층에서 연결이 끊어졌는지 판단하기에는 한계가 있습니다. 그러므로 세션 계층은 4계층과 무관하게 응용 프로그램 관점에서 봐야합니다.
    • 세션 설정 생성, 유지, 종료, 전송 중단시 복구(체크포인트를 통해 동기화) 등의 기능이 있습니다.
    • 세션 계층은 양 끝단 프로세스가 통신을 관리하기 위한 방법을 제공합니다.
    • 동시 수신 방식(duplex), 반이중(half-duplex) 방식, 전이중 방식(Full duplex)의 통신과 함께 체크 포인팅과 유휴, 종료, 다시 시작 등을 수행합니다.
    • 이 계층은 TCP/IP 세션을 만들고 없애는데 책임을 집니다.

 

  • 6계층 (표현 계층) : 프로그램이나 네트워크를 위해 데이터를 표현하는 계층으로 암호화/복호화 작업이 이루어집니다.
    • 코드간의 번역을 담당하여 사용자 시스템에서 데이터 형식상  차이를 다루는 부담을 응용 계층으로부터 덜어줍니다.
    • HIME 인코딩이나 암호화 등의 작업이 표현 계층에서 이루어집니다.
    • 예를 들면,  EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꾸어 주는 것, 해당 데이터가 TEXT인지, GIF인지, JPG인지 구분하는 것이 표현 계층의 역할입니다.

 

  • 7계층 (응용 계층) : 사용자가 보는 부분으로 네트워크에 접속할 수 있도록 서비스를 제공합니다.
    • 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있습니다.
    •  해당 통신 패킷들은 위의 프로토콜에 의해 전부 처리되며 우리가 사용하는 브라우저나 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용프로그램입니다. 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아닙니다.  

 

 

 

TCP/IP 4계층

 

  • 1계층 (링크 계층) 
    • 물리적인 영역의 표준화에 대한 결과입니다. 가장 기본이 되는 영역으로 LAN,WAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역입니다.

 

  • 2계층 (인터넷 계층)
    • 경로검색을 해주는 계층입니다.  IP자체는 비연결지향형이며 신뢰할 수 없는 포로토콜입니다. 데이터를 전송할 때마다 경로를 선택해주지만, 일정하지 않습니다. 
    • 특히 데이터 전송 도중 경로상에 문제가 생기면 다른 경로로 선택해 주는데, 이 과정에서 데이터가 손실되거나 오류 등의 문제가 발생해도 해결해주지 않습니다.

 

  • 3계층 (전송 계층)
    • 데이터의 실제 송수신을 담당합니다. UDP는 TCP에 비해 상대적으로 간단하며, TCP는 신뢰성 있는 데이터 전송을 담당합니다. 하지만 TCP가 데이터를 보낼 때 기반이 되는 프로토콜은 IP입니다. 
    • IP 계층은 문제가 발생해도 해결해주지 않는 신뢰할 수 없는 프로토콜입니다. TCP가 이것을 해결해줍니다.
    • 데이터가 순서에 맞게 전송이 되었는지 확인해주며 대화를 주고 받습니다. 확인 절차를 거쳐 신뢰성 없는 IP에 신뢰성을 부여해줍니다.

 

  • 4계층 (응용 계층)
    • 서버와 클라이언트를 만드는 과정에서 프로그램의 성격에 따라서 데이터 송수신에 대한 규칙들이 정해지기 마련인데, 이를 통틀어서 응용 프로토콜이라고 합니다.

'Network' 카테고리의 다른 글

[Network] 쿠키와 세션  (0) 2021.10.21
[Network] HTTP Method  (0) 2021.10.21
[Network] HTTP와 HTTPS  (0) 2021.10.21
[Network] 3-way-handshake와 4-way-hanshake  (0) 2021.10.17
[Network] TCP와 UDP  (0) 2021.10.17

+ Recent posts