티스토리 뷰

IT/Network

[NETWORK] OSI 7계층이란?

젊은 아날로그 2021. 9. 18. 18:26
728x90




📌Created By: orangeblue
📌Last Edited: 2021년 9월 18일 오후 4:17
📌Tags: NETWORK










목표



목표 : OSI 7계층이란 무엇이며 이에 대한 특징을 설명할 수 있다.





개념





📌 OSI : OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것 | 위키백과

쉽게 설명하면 상대방과 데이터를 교환할 때 데이터 교환의 과정을 국제표준으로 지정하여 네트워크 통신 계층 7단계로 나누어 설명하는 것이다.







서로 다른 네트워크의 데이터 교환은 사진과 같이 7가지 계층을 통해 전달된다. 이때 각 계층에서 데이터를 처리하는 것이 다른데 아래에서 자세히 알아보자.










OSI 7계층




OSI 7계층은 상단부터 아래와 같이 구성된다. 즉 데이터의 흐름이 상단부터 하단으로 이어진다. 반대로 데이터를 받는 쪽에서는 하단부터 상단으로 데이터가 흐른다. 이 때 응용계층이 최상단, 물리계층이 최하단이 된다. 이 7계층은 미디어계층(하단계층)과 호스트계층(상단계층)으로 다시 나눌 수 있다.



  • APPLICATION LAYER ( 응용 계층 7)
  • PRESENTATION LAYER ( 표현 계층 6)
  • SESSION LAYER ( 세션 계층 5)
  • TRANSPORT LAYER ( 전송 계층 4)
  • NETWORK LAYER ( 네트워크 계층 3)
  • DATA LINK LAYER ( 데이터링크 계층 2)
  • PHYSICAL LAYER ( 물리 계층 1)




📌 미디어 계층(Media Layer) : 하위 3계층(물리, 데이터링크, 네트워크)를 포함하고 하위계층이라고도 한다. 이 계층은 서로 연결된 컴퓨터 사이의 데이터전송 및 목적지까지의 데이터 전송의 전반을 담당





📌 호스트 계층(Host Layer) : 상위 3계층(세션, 표현, 응용)과 중간계층(전송)을 포함하는 계층으로 실질적으로 사용자와 친숙한 계층이라고 할 수 있음





간단하게 이해하는 OSI7계층 예시




만약 당신이 A라는 데이터를 보낸다고 해보자.



  • APPLICATION LAYER에서 A라는 데이터를 보낸다(비밀번호, 사진 100장 등등)
  • PRESENTATION LAYER에서 데이터를 암호화한다(혹은 압축)
  • SESSION LAYER에서는 상대방에게 데이터를 보낼 수 있는지 인증체크를 한다(상대방 컴퓨터에 접근할 수 있는지)
  • TRANSPORT LAYER에서는 데이터를 어떤 전송방식으로 전달할 지 결정한다(TCP/UDP, 나중에 자세히)
  • NETWORK LAYER에서는 논리적 주소인 IP를 확인한다(공유기를 찾는다. 하나의 공유기에는 여러 컴퓨터를 가지고 있다. LAN)
  • DATA LINK LAYER에서는 NETWORK LAYER에서 확인한 물리적 주소인 MAC를 통해에 나와 데이터를 교환할 특정한 컴퓨터를 찾는다.
  • PHYSICAL LAYER에서는 광케이블같은 물리적인 설비(하드웨어)로 실제 데이터 교환가 전송된다.




📌 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)이란?



  • TCP : 연결 지향형 프로토콜(규칙)로서 데이터의 흐름 및 제어와 에러 제어 등을 통해서 데이터의 확실한 전송(순서보장)을 보장한다. TCP에서는 통신을 위해 각 컴퓨터사이의 연결을 수립하는데 이 과정을 3-WAY Handshaking이라고 한다. 또한 연결 후 세션을 종료하는 과정을 4-WAY Handshaking이라고 한다.


  • UDP : TCP와 같은 데이터의 전송을 할 수 있게 하는 프로토콜이지만 신뢰성(순서보장x, 데이터 유실 가능성)을 보장하지 않는다. 대신 TCP보다 빠른 전송속도를 가지고 있다.




📌 TCP(Transmission Control Protocol) 메커니즘



TCP는 확실한 데이터전송을 위한 규칙이라고 할 수 있는데 어떤 식으로 TCP가 이루어지는지 간단한 과정을 설명하자면,



  • A가 B에게 "JSON1"라는 정보를 보낸다.(A가 B에게 SYN을 보냄)

  • B가 정보를 받았다면 ACK라는 것을 A에게 보낸다.(B가 잘 받으면 A에게 SYN-ACK을 보냄)

    • ACK가 제대로 전달되면 A는 다음 정보"JSON2"를 보낸다.(A가 B에게 ACK을 보냄)

    • A가 다음 정보"JSON2"를 보냈는데 ACK가 오지 않는다면 다시 정보"JSON2"를 보낸다.

    • 이때 B에게서 ACK가 온다면 다음 정보"JSON3"를 보낸다 ( 순서 보장 O)





📌 UDP(User Datagram Protocol) 메커니즘



  • A가 B에게 "JSON1","JSON2","JSON3"을 보낸다.
  • B가 받았는지 안받았는지 신경쓰지 않는다.
    • 만약 "JSON2"가 유실될 수도 있다. ( 순서 보장 X)




속성 TCP UDP
연결 방식 연결형 비연결형
패킷 교환 방식 가상회선방식 데이터그램방식
전송 순서 전송 순서 보장 전송 순서 보장 못함
수신여부 확인 수신여부를 확인 수신 여부를 확인하지 않음
통신 방식 1:1통신 1:1 OR 1:N OR N:N 통신
신뢰성 높다 낮다
속도 상대적으로 느리다 상대적으로 빠르다

TCP, UDP는 다음 포스팅에서 더 자세히...





📌 TCP와 UDP는 언제 사용할까?



  • TCP는 신뢰성이 관건인 파일전송이나 전화연결 등에 사용된다. 반면에 신뢰성은 TCP보다 떨어지지만 속도면에서 우위가 있는 UDP는 빠른 속도가 관건이거나 몇 개의 데이터 전송 누락을 무시해도 되는 상황에서 많이 사용한다. 예컨대 스타크래프트나 롤과 같은 다양한 게임에서 UDP를 사용한다.




APPLICATION LAYER(응용계층)




사용자와 응용프로그램이 정보교환을 할 수 있도록 네트워크에 접속할 수 있게 도와주는 역할



  • 사용자와 가장 밀접한 계층으로 인터페이스 역할을 담당
  • 응용 프로세스 간의 정보 교환이 이루어짐
  • 간단하게 응용프로그램의 정보 교환이라고 생각하면 된다.
  • HTTP나 FTP, DNS 등의 프로토콜이 이에 해당
  • 예컨대 메일을 보낼 때 하이퍼텍스트 교환이 발생해야 하는데 이 때 HTTP 프로토콜 규격을 통해 처리하게 된다.




PRESENTATION LAYER(표현계층)




응용계층으로부터 데이터를 받거나 세션계층으로부터 받은 데이터를 풀어서 응용계층에게 전달하는 역할



  • 데이터를 어떻게 표현할 지 정하는 역할
  • 세 가지 기능을 주로 담당
    • 데이터의 암호화, 복호화
      • MIME 인코딩이나 암호화 등의 동작이 표현계층에서 이루어짐. EBCDIC로 인코딩된 파일을 ASCII 로 인코딩된 파일로 바꿔주는 것이 한가지 예
    • 데이터의 압축
    • 응용 계층과의 데이터 교환을 위한 변환

  • 공통 표현 방식으로 ASN.1을 채택하고 있음
    • 1:1 통신이라면 각각의 인코딩과 디코딩방식을 정하면 되지만 N:N통신에서는 서로 여러 사람들이 동시에 통신해야하므로 공통된 표현 방식이 필요하다. 이 때 사용하는 규격이 ASN.1이라고 생각하면 된다.




SESSION LAYER(세션 계층)




네트워크 상 양쪽을 연결을 관리하고 연결을 지속시켜주는 역할



  • 연결 세션에서 데이터 교환과 에러 발생 시 복구
  • 전이중, 반이중 통신 방식으로 통신 장치 간의 상호작용 및 동기화 제공
  • 전반적인 TCP/IP 세션을 만들고 없애는 책임




TRANSPORT LAYER(전송 계층)




양 끝단(END TO END, A사람과 B사람) 데이터를 전송하고 받으며 이 과정에서 오류가 발생하면 다시 맞춰주고 컴퓨터에서 실행중인 프로세스까지 도달을 책임지는 역할



  • TCP / UDP 프로토콜을 포함
  • 종단 간의 정확한 데이터 전송을 위한 오류 검출, 데이터 흐름을 제어
  • 프로세스까지 도달해야 하므로 데이터 전송을 위한 PORT 번호를 사용
  • 전송계층의 데이터 단위는 세그먼트(Segment)




📌 포트(port)번호 : 컴퓨터에는 65,536(2의 16제곱)개의 포트번호가 존재하며 각 프로그램마다 통신을 위한 포트 번호를 사용한다(mariadb는 3306포트번호를 사용). 잘 알려진 포트번호(Well Known Port)란 0부터 1,023번까지의 이미 사용 용도가 정해진 포트 번호를 말하며 세계적으로 사용하고 있는 포트 번호 표준이다. 예컨대 HTTP는 80포트 번호를 사용한다.









📌PORT 번호 확인 방법



  • windows 명령프롬프트(cmd)창에서 netstat라는 명령어를 사용한다. netstat를 사용하면 해당 컴퓨터가 어떤 IP, PORT와 연결되어 있는지 알 수 있으며 백도어나 해킹시도를 점검하기 위해서도 많이 사용한다.
    • netstat -all : netstat 에서 사용되는 모든 명령어를 파악할 수 있음
    • netstat -an : 현재 네트워크상에서 이루어지고 있는 프로토콜의 종류, 클라이언트, 수신 상태 등을 파악할 수 있음
    • netstat -na : 각종 포트를 이용한 네트워크 송수신 사항을 파악할 수 있음. 이를 통해 좀비pc나 트로이목마같은 이상 포트로의 송수신을 이 명령어를 통해 추측할 수 있음
    • netstat -nap tcp | find LISTEN : TCP 결과 중에서 LISTEN 상태만을 점검
    • netstat -ano | findstr /c 포트번호 : -ano로 나온 결과의 수를 알려줌

  • 만약에 mariadb를 사용하는데 이미 사용하고 있다고 한다면, 연결되어 있는 port를 찾아서 프로세스를 kill해야하는데 이 때 netstat -ano | findstr 3306을 하면 3306포트를 사용중인 프로세스를 찾아주고 프로세스 id를 대상으로 kill해주면 다시 연결 할 수 있다.




NETWORK LAYER(네트워크 계층)




여러 노드를 거칠 때 경로를 찾아주는 역할

전송 데이터가 목적지까지 찾아갈 수 있게 경로를 탐색해주는 역할



  • 주소(IP)를 정하고, 경로(Route)를 선택
  • 라우팅 기능을 맡고 있는 계층
  • 데이터단위인 패킷(Packet - IP정보가 담겨있음)을 전달
  • 장비는 라우터, L3 스위치 등이 있음




DATA-LINK LAYER(데이터링크 계층)




물리적 계층에 데이터를 전송하는 역할



  • 물리적 연결을 통하여 인접한 두 장치 간의 신뢰성 있는 정보 전송
  • 물리적 계층에 데이터 전송 시 오류 감지 및 재전송 기능
  • 물리적 주소인 MAC주소(중복되지 않는 랜카드의 주소)를 통해 통신
  • 데이터단위인 프레임(Frame)을 전달
  • 장비는 브리지, 스위치 등이 있음




📌 Ip주소 및 MAC 주소 확인 방법



  • windows 명령프롬프트 cmd창에서 > ipconfig /all이라는 명령어를 치면 이더넷 어댑터 이더넷이란 곳에 물리적 주소라는 것이 여기서 말하는 MAC주소이다. 또한 IPv4(8비트 4개, 총 32비트) 주소는 ip주소이다.
  • 만약 wi-fi를 사용하고 있다면, 무선 LAN 어댑터 wi-fi부분을 살펴보면 된다.
  • 98-2C-BC-16-00-17 이런 식으로 MAC주소가 구성되는데 앞의 6자리는 해당 네트워크 인터페이스를 만든 회사의 고유번호이고 뒤에 6자리는 자신의 장치의 고유번호이다.




PHYSICAL LAYER(물리 계층)




물리적인(하드웨어)설비를 통해 전기 신호를 사용하여 비트 스트림을 전달하는 역할



  • 주로 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송
  • 데이터는 0과 1의 비트열, ON OFF의 전기적 신호상태로 이루어져 해당 계층은 단지 데이터만 전달
  • 데이터 전달이외의 기능은 없음
  • 장비는 케이블, 리피터, 허브 등이 있음









정리




📌 컴퓨터 사이에 데이터를 교환할 때에 필요한 여러 과정이 있으며 이 때 이 과정을 국제표준화기구에서 만든 OSI 7계층으로 표현할 수 있다.


📌 각 계층은 최 상단부터 APPLICATION, PRESENTATION, SESSION, TRANSPORT, NETWORK, DATA-LINK, PHYSICAL LAYER로 구성된다.


📌 이 계층을 통해 일련의 과정을 거쳐 나와 상대방은 데이터를 주고 받을 수 있다.





참고









댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함