정보보안 공부/네트워크

[네트워크] 네트워크 계층 구조 - OSI 7계층, TCP/IP

pxatd 2021. 8. 7. 09:36
728x90

*양대일_네트워크 해킹과 보안 책 참고

*공부 백업하는 이유 : 분명 난 여러번 봐야 이해할 것이기 때문에 내 언어로 정리한 글 보고 쉽게 이해하려고 

 책 참고 + 그림 정보는 구글링 + 공부하다가 모르는 내용도 구글링으로 덧붙임 


1. 네트워크 계층화가 필요한 이유 

: 어떤 웹사이트에서 파일을 다운받는다고 하자 그렇게 하기 위해서는 해당 웹사이트 네트워크 주소를 확인하고 몇 개의 라우터와 네트워크를 지나 웹사이트에 원하는 페이지를 요청한다. 웹 서버는 이 일을 여러번 반복할 것이다. 이것을 한번에 한다고 생각해보면, 중간에 있는 많은 네트워크 장비들을 한 번에 통제할 수 있는 프로토콜을 만들어서 데이터 전송을 성공시킬 수 있을까? 거의 불가능하다. 이해할 수 있는 쉬운 단위로 쪼개야 한다. ->네트워크계층화를 하는 이유

=> 네트워크 계층화를 통해 네트워크의 추가, 변경, 유지, 보수 등의 문제를 편리하게 해결할 수 있다. 

 

1980년대 초 ISO는 여러 업체가 만든 시스템에 대한 상호연동이 필요한 표준 네트워크 모델을 제정할 필요성을 인식하고, 이런 요구를 수용해 OSI 네트워크 모델을 발표함 

 

 

 

2. OSI 7계층

2.1 물리계층-1계층

실제 장치를 연결하는데 필요한 전기적, 물리적 세부사항 정의

장비: 허브, 리피터

*리피터: 네트워크 연장 장치, 불분명해진 신호 세기를 다시 증가시키는 역할을 함 

 

 

 

2.2 데이터 링크 계층-2계층

신뢰성 있는 전송을 보장하기 위한 계층, CRC기반의 오류제어와 흐름 제어가 필요하다. 네트워크를 구성하는 개체들 사이에 데이터를 전달하고, 물리계층에서 발생할 수 있는 오류를 찾고 수정하는 데 필요한 기능적, 정차적 수단을 제공한다. 주소값은 물리적으로 할당받는데, 이는 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해져있다는 뜻

장비: 브리지, 스위치 (지금은 잘 사용 x) 

*2계층 장비인 스위치는 IP주소를 기억하지 않는다. MAC주소를 기억함 (ARP스푸핑에서 중요)

데이터 링크 계층의 대표적인 프로토콜은 이더넷 프로토콜이다. 

 

 

 

2.3 네트워크 계층-3계층

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

다양한 길이의 데이터를 네트워크를 통해 전달한다. 네트워크 계층은 라우팅, 흐름제어, 단편화, 오류제어 등을 수행한다.

장치: 라우터, L3 스위치 

 

 OSI 7계층 중 데이터 링크 계층 만으로도 네트워크가 가능하다. 그럼 네트워크 계층은 왜 필요한가? 

데이터 링크 계층의 한계는 물리적 주소인 맥(MAC)주소로만 통신한다는 것이다. 즉, 통신하고자 하는 하드웨어의 맥 주소를 알아야 하는데 모든 네트워크의 맥주소를 알 수는 없다.

그래서  IP주소로 통신하는 네트워크 계층이 필요하다. 

 

장비 : 라우터 (게이트웨이)

게이트웨이는 원래 다른 프로토콜을 사용하는 네트워크를 연결해주는 장비다. 라우터의 특성을 살펴보면 우선 게이트웨이처럼 논리적으로 분리된 둘 이상의 네트워크를 연결하는 역할을 한다. 라우터의 가장 중요한 기능은 패킷 교한망에서 패킷의 최적 경로를 찾기 위한 라우팅 테이블을 구성하고, 이 라우팅 테이블에 따라 패킷을 목적지까지 가장 빠르게 보내는 길잡이 역할을 한다. 

 

*라우팅 : 라우팅(영어: routing)은 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다. 최적의 경로는 주어진 데이터를 가장 짧은 거리로 또는 가장 적은 시간 안에 전송할 수 있는 경로다.

-정적 라우팅 : 관리자 권한으로 특정 경로를 통해서만 패킷이 지날 수 있도록 설정한 것이다. 정적 라우팅은 네트워크에 변경사항이 생기면 라우팅 테이블을 수동으로 직접 고쳐야 한다.

-동적 라우팅 : 라우터가 스스로 연결상태를 파악하여 최적의 경로를 선택해 전송하는 방식이다. 동적 라우팅은 네트워크 연결 형태가 변경되어도 자동으로 문제를 해결할 수 있다는 장점이 있다. 

 

네트워크 계층 대표 프로토콜: IP. ARP, ICMP 등

 

2.3.1 ARP

ARP 는 MAC 주소를 사용해 통신하지만 정보로 담는 값은 IP기 때문에 데이터 링크 계층과 네트워크 계층의 중간에 위치한다고 볼 수 있다. 
ARP는 선택된 매체에 브로드캐스트를 통해 특정  IP 줏를 사용하는 호스트가 응답을 하도록 요구하는 방식이다. 목적지 호스트가 응답하면 송신 호스트와 연결을 맺고 데이터를 전송하기 시작한다. 

ARP 스푸핑은 근거리 통신망(LAN)에서 주소 결정 프로토콜(ARP) 메시지를 이용하여 상대방의 데이터 패킷을 중간에서 가로채는 중간자 공격 기법이다.

 

2.3.2 IP

IP는 가장 대표적인 네트워크 계층의 프로토콜로 하위 계층 서비스를 이용하여 두 노드 간의 데이터 전송 경로를 확립해주는 역할을 한다. 여기서 하위계층으로 분류되는 데이터 링크 계층은 같은 회선 (LAN)에 있는 두 노드 사이의 데이터를 전송하고, 네트워크 계층은 회선이 서로 다른 두 노드 사이 (WAN)의 데이터를 전송한다. 

IP패킷구조

 

 

 

2.4 전송계층-4계층

양 끝단의 사용자들이 신뢰성 있는 데이터를 주고받을 수 있게 하여 상위 계층이 데이터 전달의 유효성이나 효율성을 고려하지 않아도 되게 해준다. 전송 계층에서 동작하는 프로토콜 중 TCP는 연결지향 프로토콜이다. 이는 전송 계층에서 패킷 전송이 유효한지 확인하고 전송에 실패한 패킷은 재전송함을 뜻한다. 

 

전송 계층 대표 프로토콜: TCP 

 

TCP도 주소를 가지고 있는데 이를 포트(port)라고 한다. 맥 주소가 네트워크 카드의 고유 식별자고  IP가 시스템의 논리적인 주소라면, 포트는 시스템에 도착한 후 패킷이 찾아갈 응용 프로그램과 통하는 통로 번호이다. 

 

포트는 0~(2^16-1) 번 까지 존재하며 0~1023번까지는 잘 알려진 포트 ( well known port ) 라고 부른다. 보통 0번 포트는 사용하지 않으며 유명한 포트 몇 개는 숙지하는 것이 좋다. (ex. HTTP : 80)

표에 나와있는 것은 대부분 목적지 포트다. 출발지 포트는 1024~65535(2^16-1) 사이에서 사용하지 않는 임의의 포트를 응용 프로그램 별로 할당하여 사용한다. 

 

2.4.1 TCP (연결 지향성 프로토콜)

TCP 특징 : 

-높은 신뢰성

-가상 회선 연결 방식

-연결의 설정과 해제

-시간 초과와 재전송

-데이터 체크섬 (체크섬: 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.)

-시간 초과와 재정송

-데이터 흐름 제어

 

TCP는 일단 열결이 설정되면 해제되기 전까지 송신 시스템과 목적지 시스템이 계속해서 대화를 시도한다. 송신 시스템에서는 보내는 시스템에 데이터를 전송하고, 목적지 시스템은 데이터를 받은 경우 이를 응답하도록 되어 있다. 만약 목적지 시스템이 받은 데이터에 대한 응답을 하지 않을 경우 송신 시스템은 일정 시간을 대기한 후 같은 데이터를 재전송 한다. 

 

*3 way handshake

TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 three-way handshake를 사용한다.

TCP 3 Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.

융보개에서 이 특징을 활용한 공격이 SYN Flooding이라고 했다.

 

2.4.2 UDP (비연결 지향성 프로토콜)

UDP 특징 요약

-비연결 지향성

-네트워크 부하 감소

-비신뢰성

-전송된 데이터의 일부가 손실됨

 

상대방이 보낸 응답을 확인하지 않으며 송신 시스템이 전송하는 데이터에 대한 목적지 시스템의 확인 절차를 생략하므로 네트워크에 부하를 주지 않는다는 장점이 있다. 그러나 데이터 자체의 신뢰성이 없으므로 수신한 데이터는 무결성을 보장받지 못한다. 

그러나 최근에는 네트워크 신뢰도가 상대적으로 매우 높아져 수신된 데이터의 무결성을 보장받지 못하더라도 UDP를 사용하면 효율성 높은 데이터 전송을 제공하는 경우가 많아 점차 많이 사용되고 있다. 

 

 

 

2.5 세션계층-5계층

동시 송수신 방식, 반이중 방식, 전이중 방식의 통신과 함께 체크 포인팅과 유휴, 종료, 재시작 과정 등을 수행한다. 이 계칭은 TCP/IP 세션을 만들고 없앤다. 

 

 

 

2.6 표현계층-6계층

다른 기종의 여러 시스템들이 서로 다른 데이터 표현 방식을 사용하는 경우에 이를 하나의 통일된 구문 형식으로 변환시키는 기능을 수행하는 계층

예를들어 EBCDIC로 인코딩 된 파일을 아스키로 바꿔주는 것 (ASN.1)

또한 데이터 압축과 암호화 기능을 수행함 

표현 계층에서는 데이터 암호화 방식과 암축 방식에 대한 설명을 헤더 정보에 붙인다. 

 

 

 

 

2.7 응용계층-7계층

사용자나 응용 프로그램 사이에 데이터 교환을 가능하게 하는 계층이다. 

HTTP, FTP, 터미널서비스 등을 제공한다. 

 

OSI 7계층과 각각의 프로토콜은 다음과 같이 맵핑 가능 

 

 

 

 

3. TCP/IP 4계층

거의 유사하다. 각 계층의 명칭만 조금씩 다르다. 

728x90