읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 사용해보면서 배운 점을 정리한 글입니다.
  • 기술면접만을 준비하기보다 비전공자 입장에서 Network의 기본적인 내용만 짚기 위해 작성되었습니다.

TCP/IP의 계층

  • TCP/IP : TCP와 IP 중심의 프로토콜 집합, 네트워크의 공통 언어
    • 호스트 : TCP/IP로 통신하는 네트워크 기기 전반을 일컬어 부르는 용어
    • 현재는 거의 TCP/IP가 주요하다.

TCP/IP의 계층 구조

  • 네트워크 인터페이스 층 : 이더넷, 무선 LAN, PPP 등의 프로토콜로 자유롭게 선택하여 통신하며 상대방과 동일한 방식을 채택할 필요는 없다.

  • 인터넷 층 : IP, ICMP, ARP 등의 프로토콜로 엔드투엔드 통신을 담당

  • 트랜스포트 층 : TCP, UDP가 있다. 애플리케이션 데이터를 할당한다.

  • 애플리케이션 층 : HTTP, SMTP, POP3, DHCP, DNS 등이 있다. 애플리케이션에서 다룰 데이터 형식과 절차를 결정한다.

  • OSI 7계층도 있으나 거의 4계층 위주로 통신이 진행된다. (네트워크 엔지니어라면 7계층 모두 숙지해야 할지도)

  • 네트워크 인터페이스 층

    • 네트워크 범위 : 라우터와 레이어 3 스위치로 묶이는 범위 or 레이어 2 스위치로 구성되는 범위

    • 하나의 네트워크 안에서 데이터를 전송

    • 레이어 2 스위치에 연결된 PC 간 통신

      ex) 유선(이더넷), 무선 LAN(Wi-Fi), PPP 등이 있음

Technical_Interview_Network_002_001.png

  • 인터넷 층

    • 거대한 네트워크 안에서 데이터를 전송하는 역할
    • 라우터 : 네트워크끼리 연결하고 데이터를 전송하는 기기
      • 라우팅 : 라우터에 의한 네트워크 간 전송
    • 엔드 투 엔드 통신 : 원격지 네트워크에서 최종 출발지와 목적지 간 데이터 전송
    • IP / ICMP / ARP 프로토콜 존재
    • IP : 엔드 투 엔드 통신에 이용되는 프로토콜
    • ICMP / ARP : IP를 보조하는 프로토콜

Technical_Interview_Network_002_002.png

  • 트랜스포트 층

    • PC 사용 시 복수의 네트워크 애플리케이션 동작이 가능하게끔 기능
    • 최하층부터 트랜스포트 층까지 도달 시 출발지 - 목적지 간 애플리케이션끼리 데이터 송/수신 가능
    • TCP와 UDP 프로토콜 존재
    • TCP : 엔드 투 엔드 통신의 신뢰성을 확보하는 프로토콜
  • 애플리케이션 층

    • 애플리케이션의 기능 실행을 위한 데이터의 형식과 처리 절차를 결정
    • HTTP, SMTP, POP3, DHCP, DNS 등 다양함
    • DHCP와 DNS는 애플리케이션에서 사용하지 않고 애플리케이션의 통신을 준비하는 프로토콜이다.

데이터의 송/수신

  • TCP/IP에서는 TCP 4계층에 따라 4개의 프로토콜을 조합한다.
  • 헤더 : 각 프로토콜의 기능 실행을 위해 정보를 담는 구조체
    • 각 프로토콜은 데이터 전송 시 헤더를 같이 추가하여 보낸다.
  • 캡슐화 : 프로토콜이 데이터 전송 시 헤더를 추가하는 과정을 의미
  • 비캡슐화 : 프로토콜이 데이터 수신 시 첨부된 프로토콜의 헤더를 참고하여 적절히 처리 후 헤더를 벗긴 뒤 다른 프로토콜로 넘기는 과정

Technical_Interview_Network_002_003.png

데이터 송신 과정 - HTTP 통신

  1. 웹 브라우저의 데이터는 HTTP 헤더를 앞에 첨부하여 TCP로 전달
  2. TCP 프로토콜이 TCP 헤더를 첨부, IP로 전달
  3. IP 프로토콜이 IP 헤더 첨부, 이더넷으로 전달
  4. 이더넷 프로토콜이 이더넷 헤더와 FCS 추가
    • FCS(Frame Check Sequence) : 에러 체크를 위한 정보
  • 4번까지 수행하면 네트워크로 내보낼 데이터 전체가 완성된다.

Technical_Interview_Network_002_004.png

데이터 수신 과정 - HTTP 통신

  1. 데이터 수신 시 물리적 신호를 디지털로 변환, 이더넷 헤더 참조하여 자신이 수신처가 맞는지 확인하고 FCS로 데이터의 오류 여부를 체크하나. 이상이 없다면 이더넷 헤더, FCS를 제거하고 IP로 넘긴다.
  2. IP에서 IP헤더를 참조해 수신처가 맞는지 확인, 이후 IP 헤더를 제거하고 TCP로 넘긴다.
  3. TCP에서 TCP 헤더를 참조해 어느 애플리케이션 데이터인지 확인한다.(여기서는 HTTP) 이후 TCP 헤더를 제거하고 웹 애플리케이션으로 넘긴다.
  4. 웹 애플리케이션이 HTTP 헤더와 그 뒤의 데이터 부분을 처리한다.

Technical_Interview_Network_002_005.png

계층별 데이터 구분

  • 기기가 다루는 단계에 따라 주목할 계층을 특정하기 위해 호칭을 구분하기도 한다.
  • 애플리케이션 층 : 메시지(ex. HTTP 메시지)
  • 트랜스포트 층 : 세그먼트 / 데이터그램(ex. TCP 세그먼트, UDP 데이터그램)
  • 인터넷 층 : 패킷 / 데이터그램(ex. IP 패킷, IP 데이터그램)
  • 네트워크 인터페이스 층 : 프레임(ex. 이더넷 프레임)

+ Recent posts