Contents

Port / ARP / RARP

   Dec 15, 2022     5 min read

1번 DHCP Discover
2번 DHCP Offer
3번 DHCP Request
4번 DHCP ACK

1

클라이언트와 서버의 4단계.

2

주의) 어느 과정이 Unicast로 이루어지는지.
어느 과정이 Broadcast로 이루어지는지 주의하기.
Unicast (1:1)로 이루어짐.

Ex. PC가 각 한 대씩 있다고 가정해보자.
PC간 통신이 되려면 각각의 ip주소가 필요하다.
각각의 ip가 1.1.1.1 / 1.1.1.2 / 1.1.1.3 이라고 가정하자.

Port

  • 방(room)의 개념.
    한 쪽은 TCP, 나머지 한 쪽은 UDP 방으로 이루어져있음. (유형이 그냥 그렇다는 말임)
    TCP, UDP 방은 각각 수도 없이 많다.
    왼쪽으로 TCP, 오른쪽으로 UDP 방으로 생각해보자.

  • 방에는 방 번호가 존재함.
    TCP, UDP 방 번호를 Port 번호라고 함.
    80번의 방이 있다고 가정했을 때, 이 방이 존재하려면 웹 서버를 깔아야 한다.
    DNS 서버를 깔면 dns 방에서 대기하고 있음.

  • 클라이언트가 http로 1.1.1.1에서 1.1.1.2로 접근하려고 한다.
    항상 ip주소를 찾아서 가야한다. 뭐든.
    http로 시작하면 방 번호는 기본적으로 80번으로 시작한다.
    이건 기본이기 때문에 눈에 보이지 않는다.
    이렇게 접근을 하는데 포트 번호가 1.1.1.1에서 랜덤으로 배정됨.
    1.1.1.2로 접근하고 싶은데 랜덤으로 포트 번호가 지정된다.
    80번과 100번 방이 접근이 되어진다.
    연결은 포트(방)으로 함. 그렇게 왔다 갔다 통신이 되어지는 것임.
    http://1.1.1.2:80 으로 하면 200번 포트랑 연결.

  • 연결할 때, 포트 단위로 연결되어 진다는 것.
    항상 IP 주소랑 포트 번호랑 같이 간다는 것.
    전송 프로토콜이기 때문에 TCP, UDP.
    TCP, UDP 에는 포트 번호가 있다는 것을 기억하자.

  • 서버는 기본적으로 UDP 포트번호를 사용함. 이 경우 67을 사용함.
    클라이언트는 UDP 포트 번호 68번을 기본적으로 사용함.
    대화할 때는 기본적으로 포트번호를 사용함.


3

  1. 주소를 요청할 때, ip 주소는 아직 없기 때문에 source 포트는 68번 포트, 목적지는 67번 포트.
    클라이언트에는 68번의 포트 번호가 대기하고 있다는 것.
  2. 67에서 받아서 출발지로 offer
    보낼 때는 67번, 목적지는 68번.
  3. request 출발지 68, 목적지 67
  4. ack 출발지 67, 목적지 68

AGET의 경우,
68 -> 67 (여기에는 에이전트가 존재) -> 1:1로 보냄(추발지 67, 목적지 67) -> 반대로 1:1 (출발지 67, 목적지 67) ->

즉, 서버들은 포트가 정해져 있다는 것.
UDP 방에 68번 방에 가면 DHCP client가 대기하고 있다는 것.
요청이 오면 바로 응답함.

4


ARP Protocol / RARP

  • 마찬가지고 pc가 두 대 있다고 가정하자.
    PC간 케이블이 연결되어 있고 랜카드가 연결되어 있다.
    주소줄 때 랜카드에 준 것임.(PC든 Router든)

  • 컴퓨터 간에 통신을 하기 위해서는 ip주소가 필요함.
    1.1.1.2 / 1.1.1.3 으로 가정해보자.
    주소 간 통신하기 위해서는 ip 주소는 건물의 3층에 있다.
    2층에는 MAC 주소가 있다.
    주소가 2개임 (IP / MAC)
    MAC 주소 = 랜 카드 칩에 들어가 있는 장비 식별을 위한 전 세계에서 유일한 주소.
    항상 기본적으로 이렇게 구성되어 있음.
    MAC 주소는 우리가 따로 주는 것이 아닌 제품을 만들 때 들어가 있는 것이고, ip 주소는 우리가 주는 것임.

  • 1.1.1.2랑 1.1.1.3이 통신하기 위해서는 제일 먼저 1.1.1.3의 2층 MAC 주소를 알아야 함.
    왜냐하면 그래야 3층으로 올라갈 수 있기 때문임.
    알아내는 것을 ARP과정이라고 함.
    목적지 ip주소에 대한 MAC 주소를 알아내는 것 = ARP 프로토콜 (즉, ip 주소를 MAC 주소로 맵핑 시켜주는 프로토콜)

  • ARP 과정은 자동으로 이루어짐.
    그래서 컴마다 명령프롬토콤에서 #art -a하면 볼 수 있음.
    ex.
    #art -a
    1.1.1.3 MAC3 (주소가 들어가 있음)
    arp가 자동으로 알아옴.

  • 알아두기.
    ARP : IP -> MAC
    RARP : MAC -> IP

    5

  • ping 1.1.1.3을 하면
    arp 브로드캐스트를 1.1.1.3에 던짐.
    던질 때, 출발지 : 1.1.1.2/MAC2, 목적지 : 1.1.1.3/FFFF.FFFF.FFFF(모르니까 브로드캐스트를 던짐, 즉 모두 받아라)
    응답을 할 때는 MAC2를 알고 있으니까 그대로 보냄.
    그럼 자동 등록 되어짐.

이 상태에서 다시 ping을 해 보자.
그럼 출발지 : 1.1.1.2/MAC2, 목적지 : 1.1.1.3/MAC3이고 나머지는 같음.

이게 ARP의 기본과정.
arp는 요청과 응답 2단계로 이루어져 있음.


ARP 2단계 정리

>ping 1.1.1.3 (첫 번째 ping)
s : 1.1.1.2/MAC2
D : 1.1.1.3/FFFF.FFFF.FFFF
>ping 1.1.1.3 (두 번째 ping)
s : 1.1.1.2/MAC2
D : 1.1.1.3/MAC3



6

여기서 틀린 것을 찾아보자.
Client : 스텝 01, 03
Server : 스텝 02, 04

정답 : 스텝 02의 목적지가 MAC1로 바뀌어야 함.
이유 : 주소는 모르지만 arp의 단계를 자동으로 거쳤으니깐.
그리고 스텝 03의 목적지가 MAC2로 바뀌어야 함. (아직 ip주소는 모름)
또한 스텝 04의 목적지가 MAC1로 바뀌어야 함.

스텝 02에서 제안하는 주소가 스텝 02에서 들어가 있음.
이것을 클라이언트 주소인 것처럼 목적지로 셋팅함.
따라서 어제할 때 Wireshark에서 주소가 나온 것임(서버는)

근데 클라이언트는 전부 아직 주소가 없기 때문에 255.255.255.255임

나중에 wireshark로 확인을 해 보자.
7

실제로 바뀌는 것이 아니라 wireshark에서만 바뀐다는 것.



Wireshark

8

No : 숫자
Time : 시간
Source : 출발지
Destination : 목적지
Protocol : 어떤 프로토콜이 지나가는지
Length : 크기
Info : 정보
Transactiong : 작업 단위
ex. 홍길동 : A은행 -10만원 -> B은행 +10만원



4단계를 확인할 수 있음.
트랜잭션 아이디가 또 다름.(renew를 했기 때문)
Discover부터 ACK까지가 하나의 작업 단위임.


9

하나의 작업 단위만 보자
클라이언트에서 보내는 것은 전부 브로드캐스트임

10

2계층 주소, MAC 주소를 의미함.

11

12

클라이언트는 지금 주소가 없는 상태임.
그냥 제안한 주소임.

13

우리가 DHCP 구성했던 DNS, GATEWAY, SUBNET MAKS, IP 주소 가 모두 들어가 있는 것을 확인할 수 있다.

이걸 보고 대략 무슨 말인지 이해하면 됨.
14


4단계를 지나면 이제 갱신하는 것임.
이 것이 request임. 바로 request를 함.
그 request를 보면 클라이언트 아이피 주소가 제대로 정확하게 주어진 것을 확인할 수 있음.
15



WireShark 저장하는 방법

16

빨간 네모를 누른다
그리고 Save As.