본문 바로가기
개발공부 개발새발/Network

Network ) ISO 7 계층

by 휴일이 2024. 4. 30.

 

 

네트워크 구성

홈 네트워크

우리가 흔히 사용하는 인터넷을 사용하기 위한 홈 네트워크

구성 - 모뎀, 공유기, 단말 간의 물리적 연결

  • 무선 연결 : 무선 랜 카드 무선 신호를 보낼 수 있는 매체(공기)
  • 유선 연결 : 유선 랜 카드(이더넷 랜 카드), 랜 케이블(랜선)

데이터 센터 네트워크

안정적인 서비스 제공을 위해 다양한 이중화 기술을 사용해야하고 많은 서버와 서비스가 한 네트워크에 연결되어 있으므로 높은 통신량을 수용할 수 있어야 한다. → 10G, 25G, 40G, 100G, 400G 같은 고속 이더넷 기술 사용

 

  • 기존엔 3계층 구성이 일반적
  • 그러나 스케일 아웃 기반의 애플리케이션 등장으로 2계층 구성인 스파인 리프 구조로 변화되었다.
    • 스파인 리프 : 서버간 통신이 늘어나는 최근 트래픽 경향을 지원하기 위해 제안됨.

프로토콜

규정이나 규약, 최근에는 이더넷-TCP/IP 기반 프로토콜들로 변경되고 있다.

 

측면 예시 프로토콜
물리적 데이터 전송 매체, 신호 규약, 회선 규격 등 이더넷
논리적 장치들끼리 통신하기 위한 프로토콜 규격 TCP/IP
  • 물리 → 이더넷 / 논리 → TCP/IP

 

 

💡 하지만 애플리케이션 레벨의 프로토콜은 비트 기반이 아닌 문자 기반 프로토콜이 많이 사용 된다. 효율성은 비트 기반 프로토콜보다 떨어지지만, 다양한 확장이 가능하다. ex ) HTTP / SMTP




프로토콜 스택 Protocol Stack

TCP/IP 는 별도 계층에서 동작하는 프로토콜이지만 함께 사용하고 있는데, 이런 프로토콜 묶음은 프로토콜이 아니라 프로토콜 스택이라고 부른다.

TCP/IP 프로토콜 스택의 4개 부분

  • 물리 계층 : 이더넷
  • 네트워크 계층 : 데이터가 목적지로 찾아가게 해줌
  • 잘린 패킷을 데이터 형태로 잘 조합하도록 조와줌 : 전송 계층 / 애플리케이션 계층

OSI 7계층

과거에 통신 규약이 표준화되지 않았을 때 각 벤더에서 별도로 개발해 호환되지 않는 시스템이나 애플리케이션이 많아 통신이 불가능한 경우가 많았다. 그래서 이를 하나의 규약으로 통합하려는 노력이 현재의 OSI 7계층으로 남아있다.

OSI 레퍼런스 모델

 

계층 용어 데이터(PDU)  계층별 나누기
애플리케이션 계층 Application Layer Data 애플리케이션
프레젠테이션 계층 Presentation Layer Data 애플리케이션
세션 계층 Session Layer Data 애플리케이션
트랜스포트 계층 Transport Layer Segments 데이터 플로
네트워크 계층 Network Layer Packets 데이터 플로
데이터 링크 계층 Data Link Layer Frames 데이터 플로
피지컬 계층 Physical Layer Bits 데이터 플로
  • 데이터 플로 계층 : 데이터를 상대방에게 잘 전달하는 역할
  • 애플리케이션 계층 : 애플리케이션 개발자들이 고려하는 역할

애플리케이션 개발자는 하향식 형식으로 네트워크를 바라보고, 네트워크 엔지니어는 상향식 형식으로 네트워크를 인식한다. (어떻게 보면 당연하지 않을까 본인 기준으로 왔다갔다하는 방향이 그거니까..)

TCP/IP 프로토콜 스택

TCP/IP 는 이론보다 실용성에 중점을 둔 프로토콜이다. (맘에 든다.)

  • OSI 레퍼런스 모델은 7계층이지만 TCP/IP 모델은 4계층으로 구분한다.
  • TCP/IP 는 OSI 7계층보다 데이터를 만드는 애플리케이션 부분과 데이터를 잘 전달하는 데 집중하는 하부 계층 구분을 좀 더 확연히 한다.
  • 상위 3계층은 애플리케이션으로 묶고 1,2계층(물리 계층과 데이터 링크 계층)을 네트워크 계층으로 구분한다.

OSI 7계층별 이해

1계층(피지컬 계층)

물리적 연결과 관련된 정보를 정의. 주로 전기 신호 전달을 목적.

  • 주요 장비 : 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭
  • 전기 신호가 1계층 장비에 들어오면 전기 신호를 재생성해 내보낸다.
  • 주소 개념이 없으니 모든 포트에 같은 전기 신호를 전송.

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

전기 신호를 받아 데이터 형태로 처리, 출발지와 도착지 주소를 확인 후 내게 보낸 것이 맞는지 처리해야하는지 검사, 데이터 처리와 알맞은 주소로 통신이 되는 것에 초점.

  • 2계층 부터는 주소 체계가 생겨, 여러 통신이 한꺼번에 이루어지는 것을 구분할 수 있다.
  • 전기 신호를 모아 데이터 형태를 데이터로 처리하므로 데이터 에러를 탐지하거나 고칠 수 있으..나
    • 이더넷 기반 네트워크 2계층에서는 에러 탐지 역할만 수행 → ARP
  • 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업을 먼저 함. (플로 컨트롤)
  • 주요 장비 : 네트워크 인터페이스 카드, 스위치

MAC 주소

2계층에서 사용하는 주소 체계. 2계층의 가장 중요한 특징.

  • 네트워크 인터페이스 카드와 스위치 모두 MAC 주소를 가지고 있고 이해할 수 있다.
  • 스위치는 MAC 주소를 보고 통신 포트를 지정해 내보낸다.

네트워크 인터페이스 카드

  • 고유 MAC 주소 보유
  • 입력되는 전기 신호를 데이터 형태로 바꾸고 도착지 MAC 주소를 확인
    • 본인에게 들어오는 전기 신호가 아니면 버리고
    • 맞으면 상위 계층에서 처리할 수 있도록 메모리에 적재

스위치

  • 주소를 습득해서 적절한 포트로 포워딩
  • MAC 주소 테이블을 가지고 있다. (MAC : 포트)

3계층(네트워크 계층)

IP 주소 같은 논리적인 주소 정의, 라우터 이용(IP 주소로 경로 찾고 패킷 전송)

  • 3계층 장비는 로컬 네트워크와 원격지 네트워크를 구분 가능.
    • 원격지 네트워크로 가려면 어떻게 가야하는지 경로를 지정할 수 있다.
  • 장비 : 라우터
    • IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송해준다.

IP 주소

  • 사용자가 환경에 맞게 변경해 사용 가능 (MAC 은 하드웨어 고정)
  • 네트워크 주소와 호스트 주소 부분으로 나뉨

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

실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할 (로드밸런서, 방화벽)

  • 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아주고 재전송 요청.
    • 패킷 헤더에 보내는 순서 명시 → 시퀀스 번호
    • 받는 순서 명시 → ACK 번호
  • 장치 내의 애플리케이션 구분을 위해 포트 번호 사용
  • 주요 장비 : 로드밸런서, 방화벽
    • 포트 번호와 시퀀스, ACK 번호 정보를 이용해 부하 분산과 보안 정책을 수립해 패킷을 통과, 차단하는 기능을 수행.

5계층 (세션 계층)

양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리, 작업이 완료되면 연결을 끊는다.

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

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

표현 방식이 다른 애플리케이션/시스템의 통신을 하나의 통일된 구문 형식으로 변환시키는 기능 수행

  • 사용자 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 덜어주는 일종의 변환기
  • 예 ) MIME 인코딩, 암호화, 압축, 코드 변환

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

애플리케이션의 프로세스 정의하고 서비스 수행 (UI 나 사용자 입출력)

  • 대표 프로토콜 : FTP, SMTP, HTTP, TELNET

인캡슐레이션 및 디캡슐레이션

현대 패킷 기반 네트워크에서 물리 계층 ~~~ 애플리케이션 계층에서 데이터 전송을 위해 패킷의 형태를 바꾸는 과정

 

 

인캡슐레이션

애플리케이션 계층 → 데이터플로 계층으로 데이터를 내려보내며 패킷에 데이터를 넣을 수 있도록 분할하는 과정

  • 네트워크 상황을 고려, 적절한 크기로 데이터를 쪼갬
  • 네트워크 전송을 위한 정보를 헤더에 붙임.
    • 4,3,2,1 계층에서 내려가며 각각 본인들이 필요한 정보를 비트 단위로 추가

디캡슐레이션

받은 전기 신호를 데이터 형태로 만들어 애플리케이션 계층까지 올려보내는 과정

  • 각 계층에서 송신자가 작성한 n계층 헤더에 포함된 정보를 확인
  • 목적지가 자신이 아니라면 버림.
  • 맞으면 올려보내는데 이 때, 본인 계층 헤더 정보는 더 이상 필요 없으므로 벗겨내고 올려보냄(2계층 헤더 정보는 3계층 부터는 필요 없으니)

데이터 흐름 요약

상위 계층에서 데이터 플로 계층으로 내려오고, 다시 하위 계층에서 상위 계층으로 전달된다.

  • 상위계층에서 패킷 형태로 하나씩 인캡슐레이션되며 내려옴
  • 랜카드에서 전기 형태로 변환 → 목적지 전달
  • 전기 신호를 받은 목적지에서 데이터 형태로 변환 → 상위 계층으로 올려줌
  • 패킷을 조합해 데이터 형태로 만든다. (디캡슐레이션)

참고

현재 계층에서 추가하는 헤더 정보는 받는 상대방이 확인하는 정보.

  • 만약 4계층에서 헤더를 추가했다면 그 정보는 받는 쪽 4계층에서 확인

헤더 필수 정보

  • 현재 계층에서 정의하는 정보
  • 상위 프로토콜 지시자

현재 계층에서 정의하는 정보

  • 4계층 프로토콜 TCP → 시퀀스, 아크 번호로 데이터 표현
  • 3계층 → IP 주소
  • 2계층 → MAC 주소

상위 프로토콜 지시자

  • 프로토콜 스택은 상위 계층으로 올라갈수록 종류가 많아짐
    • 3계층 IP 는 → 4계층에서는 TCP 또는 UDP → 더 상위에서는 FTP, HTTP, SMTP … 등등
  • 디캡슐레이션하는 목적지 쪽에서 상위 프로토콜 지시자를 확인하고 어떤 상위 프로토콜로 보내줘야하는지 알아야 함.

상위 프로토콜 지시자를 계층마다 부르는 법

4계층 포트 번호
3계층 프로토콜 번호
2계층 이더 타입
  • 포트 번호는 4계층 헤더 정보이지만 애플리케이션 계층에서 프로토콜 종류를 나타내주는 정보.
  • 어떤 상위 프로토콜로 보내야 할지 구분이 필요하므로 동작하는 계층보다 한 계층 위의 정보가 적혀있음.

MSS & MTU (데이터 크기 조절)

MTU

2계층 네트워크에서 한 번에 보낼 수 있는 데이터 크기(이더넷에서는 일반적으로 1,500바이트)

MSS

4계층 네트워크에서 수용할 수 있는 크기를 역산정해 데이터가 4계층으로 내려올 때 적절한 크기로 쪼개질 수 있도록 유도, 그 값.

728x90