개발관련 도서/IT엔지니어를 위한 네트워크 입문

OSI 7계층

prden 2022. 2. 26. 17:54

1. OSI 7 계층

가. 1 계층(피지컬 계층) : 물리계층

전기신호를 전달하는 데 초점이 맞추어져 있다. 주요 장비로는 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭이 있다. 

a) 허브, 리피터 : 네트워크 통신을 중재하는 네트워크 장비

b) 케이블, 커넥터 : 케이블 본체를 구성

c) 트랜시버 : 컴퓨터의 랜카드와 케이블 연결

d) 탭 : 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제

-> 1 계층에서는 들어온 신호를 그대로 잘 전달하는 것이 목적이므로, 전기신호를 재 생성하여 내보낸다. 주소의 개념이 없으므로 전기신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송한다. 

 

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

전기신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리한다. 2 계층에서는 출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 또는 내가 처리해야 하는지에 대해 검사한 후 데이터 처리를 수행한다. 

전기 신호를 모아 데이터 형태로 처리하므로 데이터에 대한 에러를 탐지하거나 고치는 역할을 수행할 수 있다. 또한, 주소체계가 생긴다는 것은 한 명과 통신하는 것이 아닌 여러 명과 통신할 수 있다는 것으로 무작정 데이터를 던지는 것이 아니라 받는 사람이 현재 데이터를 받을 수 있는지 확인부터 해야 한다. 이 역할을 플로 컨트롤이라고 부른다. 

 

2 계층에서 동작하는 네트워크 구성요소는 네트워크 인터페이스 카드, 스위치가 있다. MAC 주소 체계.. 2 계층에서는 동작하는 네트워크 인터페이스 카드와 스위치 모드 MAC 주소를 이해할 수 있고 스위치는 MAC 주소를 보고 통신해야 할 포트를 지정해 내보내는 능력이 있다. 

 

* 네트워크 인터페이스 카드 =NIC = 랜카드 = 네트워크 카드 =물리 네트워크 인터페이스(물리적으로 컴퓨터의 내부와 외부를 연결해주는 중간지점이라는 의미) = 네트워크 어댑터

-> 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치

 

 네트워크 인터페이스 카드의 동작 방식

 1) 전기신호를 데이터 형태로 만든다.

 2) 목적지 MAC 주소와 출발지 MAC 주소를 확인한다.

 3) 네트워크 인터페이스 카드의 MAC 주소를 확인한다.

 4) 목적지 MAC 주소와 네트워크 인터페이스 카드가 갖고 있는 MAC 주소가 맞으면 데이터를 처리하고 다르면 데이터를 폐기.

 

스위치의 동작 방식

스위치는 단말이 어떤 MAC 주소인지, 연결된 포트는 어떤 것인지 주소 습득 과정에서 알 수 있다. 이 데이터를 기반으로 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩해준다. 

 

다. 3 계층(네트워크 계층)

3 계층에서는 IP 주소와 같은 논리적인 주소가 정의된다. 데이터 통신을 할 때는 두 가지 주소가 사용되는데 2 계층의 물리적인 MAC 주소와 3 계층의 논리적인 IP주소이다.  MAC주소와 달리 IP주소는 사용자가 환경에 맞게 변경해 사용할 수 있고 네트워크 주소(호스트들을 모은 네트워크를 지칭하는 주소, 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고) 부분과 호스트 주소 부분(하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소)으로 나뉜다. 

3 계층을 이해할 수 있는 장비나 단말은 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크를 가려면 어디로 가야 하는지 경로를 지정하는 능력이 있다.

172.31.0.1

(31까지가 네트워크 주소)(그 뒤가 호스트 주소 부분)

 

라우터는 IP 주소를 사용해 최적의 경로를 찾아주고, 해당 경로로 패킷을 전송하는 역할을 한다. 

 

※ IP 주소, 다른 프로토콜 스택의 3계층 주소의 특징 : 

1) 사용자가 변경 가능한 논리 주소

2) 주소에 레벨이 있다. 그룹을 의미하는 네트워크 주소와 호스트 주소

IP 주소는 32비트인 IPv4 주소, 128비트인 IPv6 주소가 있다. 

IPv4 주소를 표기할 때 4개의 옥텟이라고 부르는 8비트 단위로 나누고 각 옥텟은.으로 구분한다. 

 

IP 주소의 네트워크 주소와 호스트 주소는 이 둘을 구분하는 경계점이 고정되어 있지 않다. IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스 개념을 도입했다. A 클래스는 가장 큰 주소를 갖는데 약 1600만 개의 IP 주소를 가질 수 있다. B클래스는 약 6만 5천 개, C클래스는 약 250개의 IP주소를 가질 수 있다. A 클래스는 첫 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있고 B클래스는 두 번째 옥텟, C클래스는 세 번째 옥텟에 구분자가 있다. 이 구분자를 서브넷 마스크(네트워크와 호스트주소를 나누는 구분자)라고 함.

 

클래스 풀에서는 한 개의 클래스 네트워크가 한 조직에 할당되면 아무리 비어 있는 주소라도 IP를 분할해 다른 기관이 사용하도록 할 수 없다. 이 문제를 해결하기 위해 클래스 개념 자체를 버리는데 이를 클래스 리스라고부른다. 

현재 우리가 사용하는 주소 체계는 클래스 개념을 적용하지 않는 클래스리스 기반 주소체계이다.

 

클래스리스 네트워크에서는 별도의 네트워크와 호스트 주소를 나누는 구분자를 사용해야 하는데 이 구분자를 서브넷 마스크라고 부른다. 

서브넷 마스크는 IP주소와 네트워크 주소를 구분할 때 사용하는데 2진수 숫자 1은 네트워크 주소, 0은 호스트 주소로 표시한다. 10진수로 표시하면 255.0.0.0 // 255.255.0.0 // 255.255.255.0과 같이 표현한다. 2진수 11111111을 10진수로 표현하면 255가 되어 255는 네트워크 주소 부분, 0은 호스트 주소 부분으로 구분된다. 

예를 드렁 103.9.32.146 주소에 255.255.255.0이 서브넷 마스크를 사용하는 IP는 네트워크 주소가 103.9.32.0이고 호스트 주소는 0.0.0.146이 된다. 

 

1) 서브 네팅

원래 부여된 클래스의 기준을 무시하고 새로운 네트워크-호스트 구분 기분을 사용자가 정해 원래 클래스 풀 단위의 네트워크보다 더 쪼개 사용하는 것을 서브 네팅이라고 한다. 실제로 옥텟 단위보다 더 잘게 네트워크를 쪼개 2진수의 1비트 단위로 네트워크를 분할한다. 

 

서브네팅을 고민해야하는 경우는 2가지(p88 ~ p94)

가) 네트워크 디자인 단계에서 네트워크 설계자가 네트워크를 효율적으로 어떻게 분할할 것인지 계획하는 경우(네트워크 설계자 입장)

나) 이미 분할된 네트워크에서 사용자가 자신의 네트워크와 원격지 네트워크를 구분해야 하는 경우(네트워크 사용자 입장)

 

라. 4계층

7계층에서 하위 4계층은 데이터를 잘 쪼개 보내고 받는 역할을 중심적으로 고려하고 네트워크 애플리케이션에서 하위 4계층의 역할을 별도로 고민하지 않고 도와준다. 애플리케이션에서는 데이터를 하위 4개 계층으로 내려보내기만 하면 이 데이터를 쪼개 정보를 붙여 목적지가지 잘 전달한다. 하위 계층인 1,2,3계층은 신호와 데이터를 올바른 위치로 보내고 실제 신호를 잘 만들어 보내는 데 집중한다. 하지만 4계층은 실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 한다. 패킷에 보내는 순서를 명시한 것이 시퀀스번호이고 받는 순서를 나타낸 것이 ACK번호이다. 이뿐만 아니라 장치 내의 많은 애플리케이션을 구분할 수 있도록 포트번호를 사용해 상위애플리케이션을 구분한다. 

 

마. 5계층

양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후에는 이 연결을 끊는 역할을 한다. 세션을 관리하는 것이 주요 역할인 세션 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.