네트워크 OSI 7Layer 총정리

현지·2025년 10월 7일

OSI 7Layer 종류 및 특징

Physical Layer

  • 통신 주체끼리 연결이 수립되면 연결이 기하급수적으로 많아짐
  • Hub로 다수의 기기를 연결
  • Hub : 받은 신호를 묶여있는 다른애들한테 뿌림(확성기 같이)
    - 1:1 통신 불가. 오로지 브로드캐스팅만...
    - 충돌 제어 불가

Data Link Layer

  • Frame 단위
  • CSMA/CD(충돌 방지)
  • Mac 주소라는게 생김
    - 고유값, 변동 X, 기계에 새겨진 번호같은거(IP는 변동)
    - 유니캐스트(1:1 통신) 가능해짐
  • Switch를 사용해서 특정 네트워크 내에서 구간을 따로 관리
    - 포트별로 디바이스(MAC주소)가 매핑된 테이블이 있음

Nerwork Layer

  • Packet 단위
  • 로컬 네트워크간의 연결을 지원
  • IP : 인터넷(네트워크와 네트워크 간)에서의 주소라고 생각하면 됨
    - MAC주소는 로컬 네트워크 안에서의 주소
    - 수시로 IP 주소 변동됨
  • CIDR : 네트워크 영역을 나누기 위해 IP주소를 묶는 방식
    - ex) 172.0.1.0/24 b -> 네트워크 주소 + 호스트 주소 / 네트워크 주소 bit수
  • Router : 네트워크간 패깃을 주고받는 장치
    - IP 대역별 최적 경로 수집 및 관리
    - 로컬 네트워크 주소 아니면 라우터로 전달(외부로 보낸다는 뜻)
  • but. 한 번에 하나의 애플리케이션만 통신 가능, 인터넷상 패킷 손실 가능성 있음

Transport Layer

  • Segment 단위

  • 통신 주체끼리의 데이터 신뢰성 확보하는 층(패킷 순서, 에러 처리 등)

  • Port : IP 프로토콜에서 패킷을 올바른 프로세스로 라우팅 하기 위한 논리적 단위
    - 목적지 기기에 도착하더라도 여러 프로세스들이 돌아가고 있음
    - 포트 번호를 통해 알맞은 프로세스를 찾을 수 있음
    - 1~1023번은 보통 잘 알려진 서비스(well-known ports)를 위해 예약되어 있음 -> 사내망이나 서버 테스트용 임의 포트 지정할거면 저거 이외에 다른거 써라(ex.8080, 3000, 9000)
    - 다른 외부 서버에 요청을 보낼 때 사용하는 포트는 보통 임시로 할당받는 동적 포트를 사용

  • TCP : 신뢰성 있는 전송 보장
    - 3 way handShake를 통해 패킷의 순서나 전달여부등을 보장
    - HTTP/HTTPS/FTP/SSH/DNS 등에 사용

  • UDP : 빠르고 간단하게 데이터를 주고 받을 수 있는 방법을 정의
    - TCP와 달리 데이터의 무결성, 순서, 전달여부 노상관
    - 그래서 신뢰성은 낮지만 속도가 빠르고 세그먼트 용량이 작음
    - DNS/DHCP/VoIP(음성통화) 등에 사용

    내 노트북에서 사용중인 Port 살펴보기

    windows는 터미널 창에 netstat -ano라고 입력하면 현재 사용중인 포트들을 볼 수 있다. 내 노트북 열린 포트들도 뭐 있나 궁금해서 한 번 살펴보았다.

    뭐 이리 많아
    밑에도 한참 더 있었는데 너무 길어서 잘랐다.
    궁금해서 상위 2개 포트가 어따 쓰이나를 검색해봤는데 135번 포트는 주로 Windows 운영체제에서 RPC(원격 프로시저 호출) 서비스에 사용되고, 445번 포트는 SMB(서버 메시지 블록) 프로토콜에 사용되며, 네트워크 상에서 파일 및 프린터 공유를 가능하게 하는 Microsoft-DS 서비스에 사용된다고 한다.

Session Layer

  • 통신 주체끼리 연결을 유지할 수 있는 방법을 정의
  • HTTP Cookie 같은것

Presentation Layer

  • Application layer에서 사용할 수 있도록 데이터를 파싱, 압축 해제 함

Application Layer

  • 실제 받은 데이터를 어떻게 처리할 것인지를 정의
  • Http의 경우 Method(ex.Get, Post, Put), Header등을 처리

라우터를 통한 네트워크간 통신 과정

  1. 사용자가 www.naver.com을 입력함

  2. DNS서버를 통해 해당 도메인과 매핑된 IP주소를 반환

  3. 목적지 주소를 알았으니 IP패킷 생성

  4. 목적지 IP가 같은 네트워크인지 확인

  5. 다른 로컬 네트워크라면 라우터(게이트웨이)의 IP로 ARP패킷 브로드캐스트

  6. 라우터가 자신의 MAC주소를 알려줌. 해당 주소로 패킷 전송

    • 이 때 전송되는 패킷의 목적지 IP : 최종 목적지 IP, 목적지 MAC : 라우터의 MAC
  7. 라우터에 패킷이 도착하고, 라우터가 목적지 IP(최종 목적지) 확인

  8. 라우터가 라우팅 테이블을 통해 최적 경로 탐색

  9. NAT로 출발지의 사설 IP 주소를 라우터 자신의 공인 IP주소로 변경. (다시 돌아올때 이거 보고 돌아옴)

  10. 라우터가 출발지, 목적지 MAC주소 변경해서 전달. (라우터의 MAC주소, 다음 라우터의 MAC주소로)

  11. 다음 라우터는 목적지 IP와 자신의 네트워크 IP 주소 대조.

  12. 도착할때까지 10번 반복(ARP 브로드캐스팅 통해서 계속 MAC주소 물어봄)

  13. 해당 로컬 네트워크 라우터에 패킷이 도착하면 라우터는 ARP 브로드캐스팅을 통해 최종 목적지의 MAC주소를 얻고 마지막 전송을 함.

  • 패킷에 새겨진 MAC주소는 한 번 이동될때마다 계속 바뀌고 최종 IP 목적지주소는 절대 바뀌지 않음

왜 IP주소 개념이 필요한가?

공부하면서 이런 의문이 들었는데 MAC주소 자체가 완전 고유한 번호인데 얘만을 이용해서도 경로를 찾을 수 있지 않나? 굳이 IP주소를 도입해서 왜 주소를 2개로 만들지? 라는 생각이 들었다.

하지만 MAC주소만을 이용해 통신을 하게 되면 전 세계적 통신이 불가능했을 것이다.

우선, MAC주소는 특정 네트워크에 속해 있지 않아서, 하나하나가 인터넷이라는 방대한 공간의 노드가 되어 버린다. 이렇게 되면 효율적 경로를 통해 찾아가는 것이 불가능해지고 하나하나 대조를 해봐야 한다. 전 세계의 모든 기기에....
그리고 브로드캐스트 한 번 했다간 전 세계 사람의 컴퓨터에 요청이 간다...

IP주소는 이러한 단점을 극복하기 위해 만들어진 논리적 주소라고 할 수 있으며 기기들끼리 묶어 로컬 네트워크를 구성할 수 있게 해준다.

profile
헤맨만큼 내 땅이다

0개의 댓글