네트워크의 이해

slee2·2021년 9월 14일
0

보안

목록 보기
6/8

OSI 7계층

국제 표준화기구는 다양한 네트워크 간의 호환을 위해 OSI 7계층이라는 표준 네트워크 모델을 만듬.

1계층 물리 계층 : 실제 장치를 연결하기 위한 전기적, 물리적 세부사항을 정의한 계층
2계층 데이터 링크 계층 : 두 지점 간의 신뢰성 있는 전송을 보장하기 위한 계층
3계층 네트워크 계층(network layer) : 여러 개의 노드를 거칠 때마다 경로를 찾아주는 계층
4계층 전송 계층 : 양 끝단의 사용자가 신뢰성 있는 데이터를 주고받게 하여 상위 계층이 데이터 전달의 유효성이나 효율성을 신경 쓰지 않게 해주는 계층
5계층 세션 계층 : 양 끝단의 응용 프로세스가 통신을 관리하는 방법을 제공하는 계층
6계층 표현 계층 : 코드 간 번역을 담당하는 계층
7계층 응용 프로그램 계층 : 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 계층

물리 계층(1계층)

  • 시스템 간의 연결을 의미하는 것으로 전자 파장을 전달하는 공간 또는 물질 자체가 물리 계층임
  • 물리 계층에 쓰이는 케이블을 데이터의 속도에 따라 분류. 이 때 CAT 1부터 CAT 7은 케이블의 굵기와 구리선의 가닥수로 구분
  • 케이블 내 구리선의 보호 방법이나 꼬이 방법에 따라서 케이블을 분류하기도 함.

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

  • 두 포인트(Point to Point)간 신뢰성 있는 전송을 보호하기 위한 계층
  • 상호 통신을 위해 할당받는 MAC 주소는 ipconfig /all명령으로 확인할 수 있음

MAC 주소는 총 12개의 16진수 숫자로 구성

  • 앞쪽 6개의 16진수는 네트워크 카드를 만든 회사를 나타내는 것으로 OUI라고 함.
  • 뒤쪽 6개의 16진수는 각 회사에서 임의로 붙이는 일종의 시리얼을 나타내는 것으로 Host Identifier라고 함.
  • 데이터 링크 계층의 대표적인 네트워크 장비는 스위치, MAC, 계층에서 동작하는 대표적인 프로토콜은 이더넷(Ethernet)
  • 1계층과 2계층에서의 이더넷 동작

스위치의 동작 원리

네트워크 계층(3계층)

  • 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층.
  • 다양한 길이의 데이터를 네트워크를 통해 전달하며 그 과정에서 라우팅, 흐름 제어, 세그멘테이션, 오류 제어 등을 수행
  • 네티워크 계층에서 여러 개의 노드를 거쳐 경로를 찾기 위한 주소는 IP로 대표됨.
  • IP 주소는 8비트의 수 4개로 구성(32 자리의 2진수로 8자리마다 점을 찍어 구분)
  • IP 주소는 A, B, C, D, E 클래스로 구분
    • A 클래스 첫 번째 자리가 네트워크 주소, 나머지 세 자리는 호스트주소
    • B 클래스 두 번째 자리가 네트워크 주소, 나머지 세 자리는 호스트주소
    • C 클래스 tp 번째 자리가 네트워크 주소, 나머지 세 자리는 호스트주소

네트워크 계층에서의 패킷 전달 구조

  • 시스템에서 생성된 패킷이 어떤 프로세스로 인터넷으로 나가는지 살펴보기 위한 예
  • 인터넷으로 보내는 패킷의 기본 구조


전송계층(4계층)

  • 양 끝단(End to end)의 사용자들의 신뢰성 있는 데이터를 주고받을 수 있도록 하여 상위 계층이 데이터 전달의 유효성이나 효율성을 신경 쓰지 않도록 해줌.
  • 가장 잘 알려진 전송 프로토콜은 TCP(Transmission Control Protocol)
  • MAC 주소가 네트워크 카드의 고유 식별자이고 IP가 시스템 주소라면 포트는 시스템에 도착한 후 패킷이 찾아갈 응용 프로그램과 통하는 통로 번호를 볼 수 있음.

주요 포트와 서비스

3계층과 4계층 정보는 netstat -an 명령어로 쉽게 확인할 수 있음

netstat -an 명령을 실행한 결과 담고 있는 정보

3-웨어 핸드셰이킹(3-way handshaking)


1 단계: 두 시스템이 통신을 하기 전에 클라이언트는 포트가 닫힌 Closed 상태, 서버는 해당 포트로 항상 서비스를 제공할 수 있는 Listen 상태.
2 단계: 클라이언트가 처음 통신을 하려면 임의의 포트 번호가 클라이언트 프로그램에 할당되고, 클라이언트는 서버에 연결하고 싶다는 의사 표시로 SYN Sent 상태가 됨.
3 단계: 클라이언트의 연결 요청을 받은 서버는 SYN Received 상태가 되고, 클라이언트에 연결을 해도 좋다는 의미로 SYN + ACK 패킷을 보냄.
4 단계: 클라이언트는 연결 요청에 대한 서버의 응답을 확인했다는 표시로 ACK 패킷을 서버로 보냄.

TCP 연결 해제 과정


1 단계: 통신 중에는 클라이언트와 서버 모두 Established 상태.
2 단계: 통신을 끊으려는 클라이언트가 서버에 FIN 패킷을 보내고 클라이언트는 Close Wait 상태가 됨.
3 단계: 서버는 클라이언트의 연결 종료 요청을 확인하고 응답으로 클라이언트에 ACK 패킷을 보내면 서버도 클라이언트의 연결을 종료하겠다는 의미로 FIN 패킷을 보내고 Close Wait 상태가 됨.
4 단계: 클라이언트는 연결 종료를 요청한 것에 대한 서버의 응답을 확인했다는 표시로 ACK 패킷을 서버에 보냄.

TCP와 UDP

  • TCP: 연결 지향형 프로토콜로 수신측이 데이터를 흘려버리지 않게 데이터 흐름 제어(Flow Control)와 전송 중 에러가 발생할 경우 자동으로 재전송하는 에러 제어(Error Control) 등의 기능을 통해 데이터의 확실한 전송을 보장함. 하지만 완전하지는 않아 해커들에게 많은 공격을 받게 됨.
  • UDP(User Datagram Protocol): TCP와 달리 데이터의 신뢰성 있는 전송을 보장하지는 않음. 그러나 신뢰성이 매우 높은 회선을 사용하거나 데이터의 확실한 전송을 요구하지 않는 통신을 하거나 한 번에 많은 상대에게 메시지를 전송하고자 하는 경우에는 전송 경로 확립을 위한 번잡함을 생략하고 시간을 절약할 수 있어 UDP가 더 효과적임.

세션 계층(5계층)

  • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공
  • 전송 계층이 종단 간의 논리적인 설정을 담당한다면 세션 계층은 이런 연결에 정보 교환을 효과적으로 할 수 있게 추가 서비스를 함.

표현 계층(6계층)

  • 코드 간의 번역을 담당.
  • 사용자 시스템에서 데이터 구조를 하나의 통일된 형식으로 표현하여 응용 계층의 데이터 형식 차이로 인한 부담을 덜어줌.

응용 프로그램 계층(7계층)

  • 사용자나 응용 프로그램 사이에 데이터 교환이 가능하게 하는 계층
  • HTTP, FTP, 터미널 서비스, 메일 프로그램, 디렉터리 서비스 등을 제공

0개의 댓글