CS/Network

기술면접을 위한 Network 개념정리 04 - IP

8iggy 2021. 9. 25. 23:45

읽기 전

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

IP

  • IP(Internet Protocol) : 네트워크의 어떤 PC에서 다른 PC로 데이터를 전송하는 역할
  • 목적지가 다른 네트워크에 있다면 경로 상의 라우터가 IP 헤더를 참조해 IP 패킷을 전송하는 라우팅을 수행

Technical_Interview_Network_004_001.png

  • IP 주소 : TCP/IP에서 통신 상대 호스트를 식별하기 위한 식별 정보(호스트의 인터페이스에 할당된 주소)
  • 유니캐스트 : 한 개의 호스트로 데이터를 전송
  • 브로드캐스트 : 같은 네트워크 상의 모든 호스트에게 동일한 데이터를 전송
    • 브로드캐스트의 IP범위 : 255.255.255.255
  • 멀티캐스트 : 동일 애플리케이션이 동작하는 특정 그룹의 호스트들에 데이터를 전송
    • 멀티캐스트 그룹의 호스트가 동일 네트워크에 존재한다고 확언할 수는 없다.
    • 멀티캐스트 IP : 224.0.0.0 ~ 239.255.255.255
  • 서브넷(subnet) : 작은 네트워크
    • 건물의 a동에 해당하는 주소가 서브넷(네트워크부 or 네트워크 주소)
    • a동의 b호에 해당하는 주소가 네트워크 인터페이스에 할당된 호스트 주소(호스트부 or 호스트 주소)
    • 네트워크부와 호스트부를 합해 IP주소를 만든다.
  • IP 주소의 표기 방법/구조

Technical_Interview_Network_004_002.png

  • 서브넷 마스크 : 네트워크부와 호스트부의 경계가 고정이 아닌 가변적임에 따라 어디까지가 네트워크부인지 명시하는 마스크

  • 공인 IP 주소(Public IP) : 인터넷에서 사용하는 IP주소로 인터넷 통신을 위해 반드시 필요

  • 사설 IP 주소(Private IP) : 공인 IP 주소범위가 부족함에 따라 대표 공인 IP 주소를 두고 산하의 네트워크에 사설 IP 주소를 배포하여 IP 주소 부족 문제 해결

    • 10.0.0.0 ~ 10.255.255.255
    • 192.16.0.0 ~ 172.31.255.255
    • 192.168.0.0 ~ 192.168.255.255
    • 사설 IP 주소는 사설 네트워크에서는 자유로이 사용가능하며 다른 네트워크의 사설 주소가 겹치더라도 통신은 공인 IP 주소를 거쳐서 들어오기 때문에 문제가 없다.
  • NAT(Network Address Translation) : 인터넷은 공인 IP 주소만 사용하므로 사설 네트워크에서 인터넷으로 통신하기 위해서는 공인 IP 주소로 바꿔야 하는데 그 과정을 말한다.

    1. 사설 네트워크에서 인터넷으로 요청 전송 시 출발지 IP 주소 변환
    2. 라우터는 다시 되돌리기 위해 변환한 주소의 쌍을 NAT 테이블에 저장
    3. 요청에 대한 응답이 라우터로 돌아오면 목적지 IP 주소를 NAT 테이블로 참조하여 변환

Technical_Interview_Network_004_003.png

  • NAPT(Network Address Port Tanslation) : 복수의 사설 주소를 하나의 글로벌 주소에 대응
  • ICMP(Internet Control Message Protocol) : IP가 통신이 정상적으로 이루어지는지 확인하지 않기 때문에 그 기능을 수행하는 프로토콜
    • 에러 리포트 : 어떤 사유로 IP 패킷이 폐기되었다면 폐기한 기기가 ICMP를 이용해 폐기한 IP 패킷의 출발지로 에러 리포트(도달불능 메시지) 전송
    • 진단 기능 : IP의 엔드투엔드 통신이 가능한지 확인(ex. Ping command)

Technical_Interview_Network_004_004.png

  • ARP : 인터페이스를 식별하기 위한 MAC 주소를 대응

    • 이더넷 인터페이스에서 IP 패킷 전송 시 이더넷 헤더를 첨부하는데 목적지 MAC 주소를 지정해야 한다.
    • 목적지 IP 주소에 대응하는 MAC 주소를 구하기 위해 ARP 사용, 이 과정을 주소 해석이라 한다.
    1. ARP 요청하여 IP 주소에 대응하는 MAC 주소 질의
    2. 질의받은 IP 주소를 가진 호스트가 ARP 응답으로 MAC 주소 회신
    3. 주소 해석한 IP 주소와 MAC 주소 쌍을 ARP 캐시에 저장
    4. 이후 이더넷 헤더에 목적지 MAC 주소, 출발지 MAC 주소를 적어서(캡슐화) 전송

Technical_Interview_Network_004_005.png

포트

  • 호스트에서 동작하는 애플리케이션에 데이터를 배분하기 위해서는 각각의 애플리케이션 식별 정보가 필요하다.
  • 포트 번호 : TCP/IP의 애플리케이션을 식별하는 번호로 TCP/UDP 헤더에 지정
    • 총 16비트로 0~65535까지 지정 가능
    • 웰노운 포트(well-known port) : 사전에 정해진 포트 번호
      • 범위는 0 ~ 1023까지로 서버 애플리케이션 용으로 예약된 포트 번호이다.
      • 주요 웰노운 포트 번호 : HTTP(80), HTTPS(443), SMTP(25), FTP(20/21), DHCP(67/68)
    • 등록된 포트(registered port) : 웰노운 포트를 제외하고 사전에 지정된 자주 이용되는 애플리케이션의 서버쪽 포트 번호
      • 범위는 1024~44151이다.
    • 동적/사설 포트 : 클라이언트 애플리케이션을 식별하기 위한 포트 번호
      • 요청마다 매번 바꿀 수 있으며 클라이언트가 통신할 때 동적으로 할당
      • 범위는 44152~65535이다.