OSI 7계층, 프로토콜, 캡슐레이션
23년 이전 글/네트워크

OSI 7계층, 프로토콜, 캡슐레이션

많은 장비들이 계속해서 새로이 나오고 있으나 네트워크 자체는 바뀌는게 크게 없음.  정확하게 배워두면 크게 새로이 배울일이 없을 것

단 여러 상황이 계속해서 바뀌기 때문에 규칙을 정해서 유지하고 있음

OSI 7계층

 

RFC(Request  for Comments)

프로토콜은 일종의 규칙이며, 표준화를 위한 RFC 문서가 필요함(스펙을 납득할 수 있게끔)

다른 장비간에도 통신할 수 있도록 규칙화, 표준화가 되어야 함, 표준화를 위한 document가 필요한데 이게 RFC

RFC문서 스펙을 볼 줄 알아야한다.

 

IANA PORT assignment(iana.org 참조)

 

프로토콜의 종류 여러가지가 있음

tcp, udp scp ip 등등 스펙이 존재하고, 모르는 스펙의 개발을 해야할 때 RFC 문서를 체크하고, 상황에 맞는 개발을 해야함

(보통은 누군가 만들어준 코드를 가지고 개발하겠지만)

 

프로토콜은 7개의 계층을 거쳐야 하다보니, 어떤 계층은 전기로(0,1), pc로 넘어가게 되면 디지털 신호(모니터 등)로 넘어가기도 함

 

프로토콜

네트워크에서 통신할 때 규약을 프로토콜이라 하며, 어떤 협회나 워킹그룹이 만들었는지 또는 어떤 회사에서 사용하느냐에 따라 특징이 달라지고, 다양한 프로토콜이 존재함

여러 프로토콜 기술이 이더넷-TCP/IP기반 프로토콜들로 변경

  • 한정된 자원으로 통신을 수행해야 하다 보니 최대한 효율적인 프로토콜을 정의하고 사용해야 했음
  • 네트워크 서비스 초기 개발 환경은 1900년대로 상상 이상으로 열악해 자연어를 처리할 수 없었음
  • 적은 컴퓨팅 자원, 느린 네트워크 속도를 이용해 효율적으로 통신하는게 목표다 보니 2진수 비트 기반으로 만들어졌음
  • 최소한 비트 내용을 전송하기 위해 매우 치밀하게 약속을 정의해야했음
  • 몇번째 전기 신호는 보내는 사람 주소, 몇 번째 전기 신호는 받는 사람 주소, 그 뒤는 상위 프로토콜 지시자, 등과 같이 미리 약속을 정하고 약속을 지켜야 통신을 수행할 수 있음
  • 애플리케이션 레벨 프로토콜은 비트 기반이 아닌 문자 기반 프로토콜들이 많이 사용됨
  • HTTP와 SMTP와 같은 프로토콜이 대표적
  • 문자 자체를 이용해 헤더와 헤더 값, 데이터를 표현하고 전송

 

OSI 7계층과 TCP/IP

과거에는 통신 규약이 난잡했고, 벤더에서 별도로 개발하여 호환되즈 않는 시스템, 어플리케이션이 많았기 때문에 이를 하나의 규약으로 통합하려는 노력이 현재의 OSI 7계층 탄생 배경이 됨. 현재는 대부분 프로토콜이 TCP/IP 프로토콜 스택 기반

OSI 7계층과 데이터
OSI 7계층과 TCP/IP

 

계층 별 프로토콜과 장비

 

 

1계층(피지컬 계층)

  • 물리적 연결과 관련된 정보, 주로 전기 신호 전달이 핵심
  • 주요 장비 : 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭
  • 1계층 장비에 전기 신호를 그대로 잘 전달하기 위한 계층이며, 1계층 장비에 들어오면 전기 신호를 재생성하여 내보내며, 주소의 개념이 없어 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호 전송 

 

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

가장 중요한 특징은 MAC 주소라는 주소 체계가 있다는 것이며, 네트워크 인터페이스 카드와 스위치 모두 MAC 주소 이해 가능

스위치는 MAC 주소를 보고 통신해야하는 포트를 지정해 내보내는 능력이 있음

MAC은 하드웨어 어드레스 스맛폰, dmb 등 모든 네트워크 사용 가능한 장비들 다 가지고 있음, 이게 IP(랜카드랑)만나서 한쌍이 됨

  • 전기신호를 모아 사람이 알아볼 수 있는 형태로 처리
  • 주소 정보를 정의하고, 정확한 주소로 통신이 되도록 하는게 중점
  • 1계층은 출발지와 목적지 구분이 불가, 2계층은 출발지 도착지 주소 확인 후, 내게 보낸 것 맞는지, 내가 처리해야하는지 검사 후 데이터 처리
  • 데이터에 대한 에러를 탐지하고 고치는 역할 가능
  • 이더넷 기반 네트워크 2계층에선 에러 탐지 역할만 수행
  • 동시에 여러명과 통신할 수 있음
  • 상대가 데이터를 받을 수 있는지 확인부터 하는데, 이 역할을 플로 컨트롤(Flow Control)이라 함

서버와 스위치 간 통신

HA를 가지고 고가용성을 구성하기 위한 랜카드, 시피유, 디스크를 묶는 작업 hpc(cpu 묶기), raid(디스크 묶기), bonding(랜카드 묶기) 등에 이용할 수 있는 개념

IP 주소 의미
네트워크

*ARP, RARP : 2.5 계층 정도로 이해하면 되는데, 주소 변환 프로토콜인데, MAC 주소와 IP를 변환해줌

 

4계층(트랜스포트 계층)

PORT 중요한 정보

  • 애플리케이션에선 데이터를 하위 4개 계층으로 내려보내기만 하면 데이터를 쪼개어 목적지까지 전달
  • 하위 계층인 1,2,3계층은 신호와 데이터를 올바른 위치로 보내고, 실제 신호를 잘 만들어 보내는데 집중
  • 실제로 해당 데이터가 정상적으로 보내지는지 확인
  • 패킷네트워크는 데이터를 분할해 패킷에 실어보내므로, 중간에 패킷이 유실되거나 순서가 바뀌는 경우 발생할 수 있는데, 이 때 바로잡아 주는 역할이 4계층
  • 패킷 헤더에 보내는 순서와 받는 순서를 적어 통신
  • 순서를 명시한 것이 시퀀스 번호(Sequence Number)이고, 받는 순서를 나타낸 것이 ACK 번호(Acknowledgement Number)
  • 많은 애플리케이션을 구분할 수 있도록 포트 번호(Port Number)를 사용해 상위 애플리케이션 구분

 

주요장비

로드 밸런서, 방화벽

애플리케이션 구분자(포트 번호)와 시퀀스, ACK 번호 정보를 이용해 부하를 분산하거나 보안 정책을 수립해 패킷 통과 차단 역할을 수행함

 

실무 용어

  • 4계층에서 패킷 순서와 응답 번호를 지칭하는 용어는 시퀀스 번호와 ACK 번호
  • 실무에선 seq, ack number 또는 한글화해 순서 번호, 응답 번호로 사용하기도 함

 

5계층(세션 계층)

양 끝단의 응용 프로세스 연결을 도와주고 안정적으로 유지되도록 관리하고 작업 완료 후 연결을 끊는 역할

  • TCP/IP 세션을 만들고 없애는 책임
  • 에러로 중단된 통신에 대한 에러 복구와 재전송 수행

 

6계층(프레젠테이션 계층)

표현방식이 다른 애플리케이션이나 시스템 간 통신을 돕기 위해 하나의 통일된 구분 형식으로 변환시키는 기능 수행          예) jpg를 그림으로 보는 것, wav를 소리 파일로 보는 것, 폰트, 코덱, 암호화 등, 압축

  • 일종의 번역기, 변환기 역할을 수행하고, 이런 기능은 사용자 시스템 응용 계층에서 데이터 형식 차이를 부담을 덜어줌
  • MIME 인코딩이나 암호화, 압축, 코드 변환과 같은 동작이 이 계층에서 이루어짐

 

7계층(애플리케이션 계층)

애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행

  • 소프트웨어 UI 부분이나 사용자 입.출력 부분을 정의하는 애플리케이션 계층 역할
  • 많은 종류가 있지만 대표 프로토콜로는 FTP, SMTP, HTTP, TELNET 등

 

이해를 돕는 예시 메모)

포트가 같다 = 같은 응용 프로그램

포트가 다르다 = 다른 프로그램이다

같은 프로그램이다 = 세션으로 확인한다

새로운 게임 = 새로운 포트 = 새로운 프로토콜을 쓴다

외부주소의 포트의 다름 = 세션의 다름

netstat -ant 를 cmd에 쳐보면 현재 존재하는 서비스, 포트 등을 확인할 수 있음

 

계층 주요 프로토콜 장비
애플리케이션 계층 HTTP, SMP, SMTP, STUN, TFTP, TELNET ADC, NGFW, WAF
프레젠테이션 계층 TLS, AFP, SSH  
세션 계층 L2TP, PPTP, NFS, RPC, RTCP, SIP, SSH  
트랜스포트 계층 TCP, UDP, SCTP, DCCP, AH, AEP 로드밸런서, 방화벽
네트워크 계층 ARP, IPv4, IPv6, NAT, IPSec, VRRP, 라우팅 프로토콜 라우터, L3 스위치
데이터 링크 계층 IEEE 802.2. FDDI 스위치, 브릿지, 네트워크 카드
피지컬 계층 RS-232, RS-449, V.35, S등의 케이블 케이블, 허브, 탭(TAP)

 

인캡슐레이션과 디캡슐레이션

 

인캡슐레이션 디캡슐레이션 과정

  • 현대 네트워크는 대부분 패킷 기반 네트워크
  • 패킷 네트워크는 데이터를 패킷이라는 작은 단위로 쪼개 보내며, 이런 기법은 하나의 통신이 회선 전체를 점유하지 않고 여러 단말이 통신가능하도록 함
  • 데이터를 패킷으로 쪼개고, 네트워크를 이용해 목적지로 보내며 받는 쪽에선 패킷을 다시 큰 데이터 형태로 결합해 사용

 

인캡슐레이션

애플리케이션 데이터를 데이터 플로 계층(1~4계층)으로 내려보내면서 패킷에 데이터를 넣을 수 있도록 분할하는데 이 과정을 인캡슐레이션이라고 함

  • 4계층부터 네트워크 전송을 위한 정보를 헤더에 붙여 넣음
  • 4계층부터 2계층까지 각 자신이 필요한 정보를 추가하는데 이는 미리 정의된 비트 단위로 씀

 

디캡슐레이션

인캡슐레이션의 반대 과정을 거친다고 보면 됨

  • 2계층에서 송신자가 작성한 2계층 헤더 정보를 확인하고, 목적지가 잘못된 것이라면 버림(랜카드 역할)
  • 3계층으로 갈 때 2계층 헤더 정보는 필요 없으므로 제외하고 3계층으로 전달
  • 3계층에서 헤더 정보 확인 후 자신에게 온 것을 확인하고 3계층 헤더 정보 제거 후 4계층으로 전달
  • 4계층도 3계층과 동일한 과정을 거친 후 데이터를 애플리케이션에 전달

 

헤더 비교

  • 헤더에 포함되는 정보들이 많아 모두 이해하기 어려우나 이 헤더에도 규칙이 있음(계층 정의 정보, 상위 프로토콜 지시자)

OSI 7계층과 TCP/IP, 프로토콜
상위프로토콜 지시자 프로토콜 번호

 

프로토콜 지시자 포트 번호

 

 

MTU와 MSS 차이

 

 

Physical layer

상위의 LLC 부계층 : MAC 부계층과 망계층(layer 3)간의 접속 담당

하위으 MAC 부계층 : 물리계층 상의 토폴로지나 기타 특성에 맞추어주는 제어를 담당

LLC 부계층

기본적으로 두지점 간에 신뢰성이 있는 패킷 링크로 전환

여러 다른 MAC 부계층 프로토콜을 사용하게하여, 망의 구조, 구성에 상관없이 통신을 가능하게 해준다

  • 망내에 모든 노드들에 동등한 지위를 가지게 한다
  • MAC부계층과 독립적으로 위치

 

MAC 부계층

공유매체를 통해서 신뢰성이 없이 패킷에 대한 전송서비스 제공

 

주소 변환 프로토콜 예시

강의실 내에서 바로 옆에 있는 PC에 데이터를 전송하려 하더라도, ip를 통해서 바로 보내는 것이 아님(osi 3계층의 네트워크를 통하는 것이 아니기 때문)

따라서 해당 pc의 맥 어드레스만 확인한 상태에서 스위칭 장비만 거쳐 데이터가 전송 될 것임

ARP는 맥 어드레스를 학습하기 위해서 브로드 캐스팅을 하고 있는데, 이게 네트워크 대역폭을 깎아 먹게 됨

IPv6에선 선택된 다수에게 멀티캐스팅이 되기 때문에 덜함

외부로 향할 땐 IP가 필요하기 때문에, IP 정보를 포함 전송하여 식별을 위한 정보를 보내게 됨

 

 

반응형

'23년 이전 글 > 네트워크' 카테고리의 다른 글

HTTP  (0) 2022.07.15
DNS, Terminal,Routing ,Http, Ftp, Web, Application  (0) 2022.07.14
프로토콜, TCP, UDP  (0) 2022.07.13
Information Protocol, IP  (0) 2022.07.12