본 포스트는 교보 DTS의 CDA 교육과정의 강의 내용과 교재 내용을 토대로 작성되었음.




1. 물리 계층 (Physical Layer)

  • 장치를 연결하기 위한 매체의 물리적인 사항(전압, 주기, 시간, 전선의 규격, 거리 등)을 정의
  • 주요 단위: 비트(Bit)
  • 대표 구성 요소: 케이블, 안테나, RF 등 전송 매체, 허브, 리피터

허브(Hub)

  • Physical Layer 단위에서 다수의 기기들을 연결해주는 장치
  • 특징
    • 에러 / 충돌 / 디바이스 별 제어 기능 없음
    • 받은 내용을 그대로 전달 → 무조건 브로드캐스트(Broadcast)(모든 기기에 신호를 보냄)
    • 브로드캐스트를 해서 목적지 IP가 아니더라도 신호를 일단 받아야 하기 때문에 다른 동작을 동시에 수행할 수 없음
    • 신호가 전달 과정에서 죽으려고 하면 증폭해주는 역할도 수행




  • 물리적인 통신을 제어하며 디바이스와 디바이스간의 통신 및 전송을 안정화하기 위한 프로토콜
  • 주요 단위: 프레임(Frame)
  • 주요 구성 요소: MAC Address, Switch, LAN 카드
  • 특징
    • CSMA/CD(Carrier-Sense Multiple Access with Collision Detection) 방식을 활용해서 충돌을 감지하며 각 디바이스가느이 통신을 원활하게 연결
    • 대상을 구별하여 디바이스간의 통신을 지원(유니캐스트, Unicast) + 브로드캐스트로 지원

MAC Address

  • 네트워크 인터페이스에 부여된 고유의 주소 (데이터가 지정한 대상에게 잘 전달될 수 있도록 대상 식별에 사용됨)
  • 2개의 Hexadeciaml(=byte) 단위로 6개를 나열 = 48 bits = 6 bytes
    • ex) 00:1A:2B:3C:4D:5E
    • 첫 3 bytes: OUI, 제조사에 부여된 고유 식별자
    • 나머지 3 bytes: NIC, 네트워크 인터페이스 별 고유 번호
  • MAC Address는 고유의 값이며 변하지 않음 (MAC Address와는 달리 IP는 변할 수 있음)
  • LAN 카드가 MAC Address를 이용해서 패킷을 올릴 건지, 버릴 건지 결정함

스위치(Switch)

  • MAC Address Table을 저장하고 있음
  • 목적지 MAC Address가 Table에 저장되어 있지 않다면, 브로드캐스트로 모든 기기에 신호를 보낸 후 응답이 온 MAC Address를 저장한다.
  • 무조건 브로드캐스트를 하는 허브와는 달리, MAC Address에 저장되어 목적지 MAC Address가 저장되어 있다면 해당 MACC Address로만 데이터를 전달한다.




3. 네트워크 계층 (Network Layer)

  • 여러 노드의 경로를 찾고 올바르게 전달될 수 있는 기능과 수단을 정의
  • 주요 단위: 패킷(Packet)
  • 주요 구성 요소: 라우터, IP, ARP
  • 서로 떨어진 Local Network 간의 통신을 지원

IP Address

  • Internet Protocol 상에서 통신 주체를 식별하기 위한 아이디
  • 종류
    • IPv4: 32Bits (2^32=약 43억개)
    • IPv6: 128Bits (2^128개)
  • MAC Address와 다르게 수시로 변동 가능
  • Subnet Mask (서브넷 마스크)
    • 어느 부분이 네트워크 주소인지, 호스트 주소인지 구분해주는 마스크
    • 네트워크 비트 수만큼 1인 마스크를 IP에 적용하면 네트워크 비트만 추출 가능

라우터(Router)

  • 네트워크 간에 패킷을 주고 받는 3계층 장치
  • Route Table을 이용해서 어떤 경로의 노드를 경유해야 가장 효율적으로 대상에 도착하는지 알고 있음
  • 패킷의 네트워크 주소가 자신의 로컬 네트워크 주소가 아니라면 라우터로 전달 (외부 네트워크의 다른 라우터로 전달하기 위함)
  • MAC 주소는 모르지만 IP 주소는 아는 경우 → ARP 실행




4. 전송 계층 (Transport Layer)

  • 통신 주체끼리 데이터 전달의 신뢰성을 확보하는 방법을 정의
  • 주요 단위: 세그먼트(Segment)
  • 주요 구성 요소: TCP/UDP
  • 패킷의 순서 보장, 에러 처리, 포트 기반 분할 등을 담당

포트(Port)

  • 프로세스 여러 개를 도잇에 사용하려고 한다면 어떤 서버와 연결해야 하는지 알 수 없기 때문에 포트 번호를 사용함
  • Well Known PortEphemeral Port로 구성
    • Well Known Port: 주로 서버에서 사용하는 어플리케이션/프로토콜 별로 미리 지정된 포트
      • 80: HTTP
      • 443: HTTPS
      • 22: SSH
      • 3306: MySQL
    • Ephemeral Port: 클라이언트에서 사용하는 포트로 연결할 때마다 임의로 지정

TCP

  • 분할된 패킷을 잘 분할하고 수신 측이 잘 조합하도록 패킷에 순서를 주고 응답 번호를 부여
    • 시퀀스 번호: 패킷에 순서를 부여하는 것
    • ACK 번호: 응답 번호를 부여하는 것

      1. Client에서 시퀀스 번호를 500으로 보낸다. (Seq.Num: 500)
      2. Server에서는 500번 패킷을 잘 받았다는 표시로 응답 번호인 Ack.Num에 501을 적어 응답한다. 이때 Server 측에서는 자신이 처음 보내는 패킷이므로 자신의 패킷에 시퀀스 번호 250을 부여한다.
      3. 이 패킷을 받은 Client 측은 시퀀스 번호를 501로(Server 측이 ACK 번호로 501번 패킷을 달라고 요청했으므로), ACK 번호는 상대방의 250번 시퀀스를 잘 받았다는 의미로 시퀀스 번호를 251로 부여해 다시 송신한다.




5. 셰션 계층 (Session Layer)

  • 통신 주체끼리 연결을 유지할 수 있는 방법을 정의
  • HTTP와 Cookie처럼 4계층 이상의 추가적인 차원에서 지속적인 연결(셰션)이 필요한 경우에는 셰션 계층이 사용됨




6. 표현 계층 (Presentation Layer)

  • 받은 데이터를 해석하는 방법을 정의
  • 파싱, 압축 해제, 복호화 등 Application Layer에서 사용할 수 있는 형식으로 변환을 담당




7. 응용 계층 (Application Layer)

  • 실제 받은 데이터를 처리하는 방법을 정의
  • 데이터를 가지고 무엇을 어떻게 처리할지에 관한 레이어
  • 예시
    • HTTP
    • Method
    • Status Code
    • Header




글로벌소프트웨어캠퍼스와 교보DTS가 함께 진행하는 챌린지입니다.

6개의 댓글

comment-user-thumbnail
2024년 7월 28일

알고 싶었던 내용 감사합니다!

1개의 답글
comment-user-thumbnail
2024년 7월 28일

깔끔한 정리입니다!

1개의 답글
comment-user-thumbnail
2024년 7월 29일

우와 진짜 깔끔하게 적어주셨네욥!! 컬러까지 이쁘게 넣어주셔서 핵심이 더 쏙쏙 잘 보입니다 짱짱!!

1개의 답글