11. Other Network-Layer Related Protocols

나는컴공생·2024년 6월 13일

Computer Network

목록 보기
3/4

Address Resolution Protocol(ARP)

  • 논리적 주소: IP 주소(통신용 주소)
    • Network층에서 사용한다.
    • "호스트가 인터넷에 연결되었을 때" 부여된다.
  • 물리적 주소: Ethernet MAC 주소
    • DataLink층에서 사용된다
    • hardware가 제조사에서 나왔을 때 부여된다.

ARP 사용하는 이유?

  • frame: header + payload(IPheader + data)이므로, datalink 층에서는 IP 주소를 알 수 없다.
  • 대신, frame 전송할 때에는 MAC 주소를 이용한다.
    • 라우팅할 때 des IP 주소 안다. 해당 IP 주소를 가진 MAC 주소를 알아야한다.
    • ARP가 "이 IP 주소 가진 사람 누구니? MAC 주소 알려줘"

ARP 어떻게 하는거니?

  • 송신자는 네트워크 내의 모든 장치에게 ARP 요청 (broadcast)
    • 이 IP 가진 장치의 MAC 주소 무엇이니?
  • ARP 응답: 송신자에게 자신의 MAC 주소 보낸다. (unicast)
    • 나머지 호스트들은 받은 패킷 버린다.
    • 송신자의 mac 주소 알기 때문에
  • 자신의 ARP table에 저장한다.
    • 동일한 장치에 데이터를 다시 보낼 때 마다 MAC 주소를 물어볼 필요가 없어집니다.
  • datalink protocol로 여긴다.

ARP packet format

  • Hardware type: network type (Ethernet)
  • Protocoal type: ARP를 사용하는 protocol (IP)
  • Hardware length: physical address length
    e.g Ethernet = 6
  • Protocol length: logical address length
    e.g.: IP = 4
  • Operation: ARP request or reply

Encapsulation of ARP packet

  • data link frame의 data 부분에 캡슐화 된다.

ex)


Dynamic Host Configuration Protocol

  • Ethernet(physical) 주소: 제조업자가 만듦
  • IP(logical)주소:
    • 인터넷워크의 구조를 반영해야 하며, 장치가 위치한 네트워크에 따라 달라진다.
    • 장치가 이동할 때마다 IP 주소가 변경되어야 한다.
    • 이는 수동으로 IP 주소를 설정하는 것이 번거롭고 오류가 발생하기 쉽다는 것을 의미합니다.
  • DHCP 서버가 자동으로 IP 할당한다.
  • 호스트에게 일정 시간 동안 IP 주소를 대여(lease)하고, 호스트가 계속해서 해당 주소를 사용하고자 할 경우, 주소 재배정을 허용한다.
  • 응용계층에 속한다.
  • 새로 부팅되거나 네트워크에 연결된 호스트는 DHCPDISCOVER 메시지를 특별한 IP 주소(255.255.255.255)로 보낸다. 이것은 네트워크 상의 모든 장치에 메시지를 브로드캐스트하는 방식입니다.
  • DHCP realy agent는 이 메시지를 DHCP 서버로 유니캐스트하여 전송하고, 서버로부터의 응답을 기다립니다.

ICMP(Internet Control Message Pool

IP(NETOWRK layer) 는 손실 발생 시 error을 알려주는 매커니즘을 가지고 있지 않는다.
-> ICMP(NETWORK layer): source destination에게 error 알려주기
하는 일: error reporting & Query(network 상태정보 알기)

ICMP format

Error reporting

  • ICMP는 아래 상황에서 source IP address로 error reporting을 한다.(오류 수정X)
    • destination unreachable(routing table에서 prefix 매칭이 안된경우)
    • source quench(근원지 억제)
      • 라우터 혹은 host의 queue가 꽉 찬 경우(data drop된다)
    • Time exceeded
      • TTL이 0이 되고, 목적지가 아닌 경우, packet이 버려진다
    • Parameter Problems
      • header을 보니 이상한 점 발견(ex IPV7이라고 쓰인 경우)
    • redirection(재지정)
      • multiple gateway routers가 있을 때
      • host가 default gateway로 보냈는데,
      • router가 보기에, 더 좋은 길을 찾으면, source node에게 gateway router를 재할당하라는 report를 보낸다.
  • ICMP packet이 ICMP packet을 만들어 내지 않는다.(위의 상황이 나타나더라도)
  • 절단된 패킷들의 ICMP 패킷이 발생하면, ICMP 패킷은 첫번째 fragment에 대해서만 발생한다.
  • ICMP 는 multicast packets 들을 위해서는 안마들어진다.(unicast만!)
  • ICMP는 special destination address를 가지고서는 안만들어진다.

    Query

  • Echo request & reply
    • 다른 라우터나 호스트가 활성화 되었는지?
    • ping, tracerroute와 같은 디버깅 도구에서 확인 가능
    • 왕복시간 체크도 가능
  • Time stamp request & reply
    • 목적지까지의 왕복 시간 확인
  • Address mask request & reply
  • IP address를 알고, mask를 모를때 address mask request를 broadcast,
  • any address mask를 가진 node가 reply
  • router solicitation and advertisement
    • 내 주변 어떤 라우터들이 있니? 내가 있어!

Ping

  • [query]echo request & reply message 사용

traceroute(tracert) operation (중요)

  • source와 destination 호스트 사이 router들 trace
  • [error reporting] time exceeded 와 unreachable message 이용
  • 첫번째 traceroute message: TTL = 1 -> 첫번쨰 라우터 IP 주소 얻음
  • 두번쩨 : TTL = 2 -> 두번째 라우터
  • n 번째 : TTL = n+1 -> unreachable destination
    (port번호를 찾을 수 없어) -> 목적지 도착 의미

Network Address Translation


: 네트워크 주소 변환
[문제] IP 주소 부족해 -> 사설 IP

  • 사설 주소와 범용 주소 mapping
  • 사설 네트워크 생성, 외부 네트워크는 볼 수 없고, 범용 주소만 보임
  • NAT 라우터만 알고있다.

주소 변환

  • 라우터에서 나갈 때 (src 사설주소->범용주소)
  • 라우터로 들어올 때 (des 범용주소->사설주소)

사설 주소

  • LAN에서 사용된다.
  • 범용 주소로 사용되지 않는다.
  • unique한 IP가 아니다

Port Forwarding

  • client안에 server가 있을 때, client는 서버에 address 할 수 없다.
    -> 내가 어떤 destination port에서 기다리고 있는지 local IP address에게 알려주기

0개의 댓글