Computer Science/네트워크

[컴퓨터네트워크] 05. 통신절차

lumana 2024. 4. 10. 23:27

통신절차


데이터 교환 절차

  • 실제 통신이 이루어지는 절차
  • 패킷과 프레임의 교환 과정 이해
  • IP Address / MAC Address / ARP의 이해
  • Address Resolution Protocol(ARP)
    • 실제 Local 통신에서는 MAC 주소가 필요함
      • end to end 통신에서 IP를 사용하지만
      • 인접 시스템간 통신에서는 MAC을 사용
    • 통신하려는 IP 주소를 갖는 시스템의 MAC주소를 해결(알아야 함)
    • ARP 요청은 Broadcast됨 --> 모든 Station이 수신
    • ARP 응답은 Unicast임 --> MAC 주소 해결

MAC 주소

  • IEEE 할당, 48비트(6 Bytes)
    • 24비트는 제조 회사 할당, 24비트는 Serial Number
  • 16진 표시
    • 60-EB-69-83-74-D7 or 60:EB:69:83:74:D7
    • 16진수 12개, 즉 옥텟 6개로 나타낸다
  • MAC 주소 종류
    • Broadcast
      • 모든 Station이 수신하는 주소
      • FF:FF:FF:FF:FF:FF(모든 비트가 1)
      • IP Broadcast나 ARP 요청에서 사용됨
    • Multicast
      • 그룹에 가입한 Station 수신하는 주소 (즉. 특정 Station만 수신)
      • Multicast IP를 가지고 만든다
    • Unicast
      • 특정한 하나의 스테이션 주소
      • LAN 카드에 내장된 주소

패킷과 프레임 교환


패킷과 프레임 전달

  • 데이터 전달은 컴퓨터와 컴퓨터, 컴퓨터와 라우터 간에 IP 패킷 전달을 통해 이루어짐
  • 하나의 Station(IP를 sa, MAC을 SA라고 하자)이 인접한 다른 스테이션(IP를 da, MAC을 DA라고 하자)으로 패킷을 보내려 할 때
    • 프레임을 만들어 패킷을 담아보내야 함
    • 프레임을 만들 때는 목적지 MAC 주소(DA)와 발신자 MAC 주소(SA)가 필요
    • 발신자 MAC 주소(SA)는 자신의 LAN 카드에 있음
    • 목적지 MAC 주소(DA)를 알 수 있는 방안이 필요함
      • ARP가 목적지 MAC 주소(DA)를 해결

패킷과 프레임 구조

  • IP packet
    • Header(sa, da), Data
  • MAC Frame(Ethernet)
    • DA(6바이트)
    • SA(6바이트)
    • Type(2바이트)
    • DATA(~1500바이트, IP packet에 해당하는 부분)
    • FCS(4바이트)

ARP 동작

  • 패킷을 보내려는 스테이션은 목적지 스테이션의 MAC주소를 찾는 ARP 요청 패킷을 방송(Broadcast)
  • 연결된 모든 스테이션이 ARP 요청 패킷을 수신
  • 목적지 스테이션이 자신의 MAC 주소 정보를 담은 ARP 응답 패킷을 전송(Unicast)
  • 송신 스테이션은 목적지 IP 주소와 MAC 주소 매핑정보를 ARP 캐시에 저장하고 일정기간 사용
    • ARP cache = 목적지 IP 주소 + MAC 주소
  • 사용하지 않는 시간이 길어지면, 타임아웃되어 매핑 정보가 캐시에서 사라짐
  • ex) A->B ping
arp -a // 모든 arp 테이블을 확인, 초기에 아무것도 없는 상태
ping 192.168.1.10
  • 프레임에 담아서 보내야 함 --> MAC주소 필요 --> ARP Broadcast
  • ARP
ff:ff:ff:ff:ff:ff:을 Broadcast
192.168.1.10가 수신하고 MAC 주소를 reply함(0:1:3:1d:98:b8)
echo request // ping을 보냄
echo reply // B가 response

arp -a // ARP 캐시
192.168.1.10 at 00:01:03:1D:98:B8 ...

스테이션의 수신 동작

  • 모든 스테이션은 브로드캐스트 프레임을 수신함
  • 각 스테이션은 자신이 가입한 멀티캐스트 프레임을 수신함
  • 각 스테이션은 목적지 MAC 주소가 자신의 MAC 주소와 일치하는 Unicast Frame 수신
  • 브리지는 모든 프레임을 수신하여 처리(Promiscuous Mode)
  • 라우터는 일반 스테이션과 같이, 모든 브로드캐스트, 가입된 멀티캐스트, 자신에게 오는 유니캐스트 프레임 수신

목적지가 같은 네트워크에 있는 경우

  • 송신자와 수신자는 인접 시스템임(직접 통신 가능함)
  • 송신 스테이션은 목적지 MAC 주소를 DA에 넣고, SA에 자신의 MAC 주소를 담은 프레임을 넣고, 프레임의 데이터 영역에 패킷을 넣어 전송
  • 모든 스테이션은 프레임을 감지하다가, DA 주소와 자신의 MAC 주소와 일치하는 프레임 수신
  • 수신 스테이션이 MAC 프레임 수신 후 오류검사
  • 프레임으로 부터 패킷을 분리하여 상위계층으로 전달

목적지가 같은 네트워크 인지 판단

  • 스테이션의 서브넷 마스크를 이용해 판단
  • 같은 네트워크인 경우
    • Source IP & Subnet Mask 결과와 destination IP & Subnet Mask의 결과가 같음 --> 직접 통신 가능
    • ex) 10.10.1.1, 10.10.2.1, 255.255.252.0
  • 다른 네트워크인 경우
    • Source IP & Subnet Mask 결과와 destination IP & Subnet Mask의 결과가 다름 --> 직접 통신 불가능
      • 라우터에게 보내면 라우터가 알아서 전달
    • ex) 10.10.1.1, 10.10.2.1, 255.255.255.0

목적지가 같은 네트워크인 경우 동작

  • Source -> (목적지MAC) ARP 요청 담은 프레임 전송 -> Destination
  • Destination -> (목적지MAC) ARP 응답 담은 프레임 전송 -> Source
    • MAC 주소 해결
  • 패킷을 담은 프레임을 목적지로 전송

다른 네트워크인 경우 동작

  • 소스 노드에서 목적지가 다른 네트워크에 있다고 판단되는 경우, 패킷을 라우터로 보내기 위한 동작 개시
  • 라우터의 MAC 주소를 ARP를 통해 해결
  • 라우터의 MAC 주소를 MAC 프레임의 DA 필드에 넣고, 보내려는 패킷을 DATA 필드에 넣은 프레임을 만들어 송신
    • 프레임을 라우터가 수신함
  • 라우터는 패킷의 헤더에 있는 목적지 주소를 보고, 라우팅 테이블을 참조하여 패킷을 목적지로 전달

목적지가 다른 네트워크인 경우 동작

  • Source -> (라우터MAC) ARP 요청 담은 프레임 전송 -> Router
  • Router -> (라우터MAC) ARP 응답 담은 프레임 전송 -> Source
    • MAC 주소 해결
    • Source -> 목적지로 가는 패킷을 담은 프레임을 라우터로 전송 -> Router
      • 프레임 : DA + 라우터의 MAC 주소
  • 라우터가 패킷을 풀면 진짜 목적지의 주소가 있음 --> 목적지 방향으로 전달

DNS 이름을 사용하는 경우

  • 목적지 주소가 www.google.co.kr과 같이 도메인 이름을 입력한 경우
    • DNS 서버에게 질의하여 도메인 이름에 해당하는 IP 주소 값을 먼저 해결해야 함
  • DNS 서버로 가는 패킷을 만들어 보내는 절차가 선행됨
  • DNS 서버가 같은 네트워크에 있을 수 있고, 다른 네트워크에 있을 수도 있음
    • Subnet mask로 판단
  • 같은 네트워크인 경우
    • ARP로 DNS 서버의 MAC 주소를 해결해서 보내야 함
  • 다른 네트워크인 경우
    • DNS 서버로 보내는 질의 패킷을 라우터로 보내야 함

목적지와 DNS 서버가 다른 네트워크인 경우 동작

  • Source -> (라우터MAC) ARP 요청 담은 프레임 전송 -> Router
  • Router -> (라우터MAC) ARP 응답 담은 프레임 전송 -> Source
    • MAC 주소 해결
  • Source -> DNS 질의 패킷 담은 프레임 라우터로 전송 -> Router
    • Router -> DNS 질의 패킷을 담은 프레임을 DNS로 전달 -> DNS
    • DNS -> DNS 질의 응답 패킷 담은 프레임을 라우터가 수신 -> Router
  • Router -> DNS 질의 응답 패킷 담은 프레임 전송 -> Source
    • 목적지 IP 주소 확인
  • Source -> 목적지로 가는 패킷을 담은 프레임을 라우터로 전송 -> Router
  • Router -> 목적지 방향으로 전달

IP 주소 할당

  • 통신에 필요한 주소관련 정보
    • IP 주소
    • 서브넷마스크
    • 게이트웨이주소(라우터 주소)
    • DNS 서버 주소
    • 보조 DNS 서버 주소
  • 자동 할당
    • DHCP
    • 임대시간 만료 후 재할당
  • 수동 할당
    • 사람이 직접 입력
    • 계속 사용
    • 중복되는 주소가 있는 경우 통신이 안되거나, 해당 네트워크 비활성화