PACKET TRAVEL 1

Celina·2024년 8월 1일

network

목록 보기
2/10

이 역시 노션으로 정리해두려 했으나,, 다소 번잡스러운 관계로 velog에 따로 빼놓습니다
참고: https://www.youtube.com/watch?v=CjnKNIyREHA&t=321s

0.네트워크 내 패킷 전달 과정

1. 라우팅 테이블 확인: 패킷 전송 시, 출발지 장치를 A라 하자. A는 라우팅 테이블을 참고하여(라우팅 테이블에 대해선 notion참고) 목적지 장치 B로 가는 최적의 경로 찾음

2. 프레임 작성: A는 다음 라우터의 IP를 확인하고, 해당 IP 에 맞는 MAC주소 알아냄 (ARP사용) -> 패킷 전송

3.스위치: 스위치가 패킷을 받아 스위칭 테이블 이용해 목적지 MAC주소에 맞는 포트로 패킷 전달

4. 라우터: 3계층 패킷 열어 목적지 IP 확인하고 라우팅 테이블 참고해 다음 경로로 패킷 보내며, 필요시 프레임 재작성

5. 최종 목적지 도착!: 최종 목적지 네트워크 도착 -> 해당 내 스위치가 최종적으로 B로 패킷 전달

뭐 전체적으로 요약하면 이렇긴 한데,,,
사실 우리가 궁금한 건 이런 게 아닐 것이다
본인 역시도..


더 자세히 알아보자

그 전에 ARP는 미리 아는 게 좋을 것 같아 초반에 언급합니다

ARP?: Address Resolution Protocol
IP 주소 -> MAC주소

패킷 전달 과정

본인이 전에 언급했듯이, 라우터 테이블은 본인 테이블에 없는 네트워크 대역은 갈 수 없다
본인한테 없으면 다른 데로 가야지...해서 속해있는 게이트웨이로 나가게 된다
(netstat -r 명령어로 라우팅 테이블 확인 가능)

글로만 보면 다소 헷갈릴 수 있다
그림으로 보자

여기서 A의 라우팅 테이블에 B가 있으니까 전달이 가능하다
이때, ICMP로 통신 확인만 해보자

ICMP: ping, Traceroute 명령어

자 보면, 이더넷 프레임 내부에 IPv4 패킷이 포함되어 있고, IPv4 패킷 내부에 ICMP 요청 메시지가 포함되어 있어 패킷이 캡슐화된 것을 볼 수 있다.
(이더넷 프레임 > IPv4 packet > ICMP)
근데, 2계층인 이더넷 프로토콜에 들어가는 첫번째 MAC주소는 어디가 될까?

이 된다
이더넷은 가까운 곳에서 통신할 때만 쓰는 것이다
왜냐고? => 2계층 프로토콜이기 때문에 본인 네트워크에서만 전달할 수 있다 (이건 언급한 적이 있음)
이더넷 프로토콜을 작성할 때는 GW(=가장 가까운 라우터)에 MAC주소가 들어간다

근데 첫 째로 가기 전에 중간에 스위치가 있는 것을 볼 수 있다 여기서 스위치가 2계층 장비라는 것을 생각해내야 한다
이 말은 즉슨, 2계층까지만 확인한다는 말!
그렇기에 이더넷을 확인해보니,,, => CC CC한테 가래 (각각 목적지 자리, 출발지 자리)

그래서 무사히 도착했다 여기서 2계층을 까보고 잘 왔다는 걸 확인한 후, 3계층을 까본다
-> 이것 또한 3계층 장비이기 때문에 ,,,

여기서 목적지 IP 주소와 출발지 IP 주소를 확인할 수 있다
근데, 보면 해당 목적지 주소가 본인 주소가 아닌 걸 볼 수 있다

라우터가 자신의 라우팅 테이블을 확인하는 과정을 거치다보니, 해당되는 IP주소가 발견되었네?
보니까, 옆에 있는 라우터에 가라고 써있구나

그러면 얘가 이걸 확인한 후에 이더넷 프로토콜 (2계층) 을 다시 만든대!

즉, 까보고 자기 것이 아니니 포장을 다시 하는데 내용을 바꿔서 하는데,
목적지 MAC주소랑 출발지 MAC주소를 지금 해당 (옆에 있는) 네트워크 대역에서 통신할 수 있는 걸로 바꿔야 무난하게 통신이 가능하겠지?

자 그럼 다음 과정을 진행해보자
얘 역시 2계층 까보고 잘 왔다는 것을 확인한 후, 3계층을 까본다
어?보니까 얘도 전과 같은 현상이 발생했네?
얘 역시도 같은 과정을 거치고 이렇게 최종 목적지에 도착한다
(반복되는 작업이기에 생략)

보니까 ICMP요청이 왔네? -> 응답해줘야 함

응답은 어떻게 하냐고?
그야 이제까지 했던 작업을 출발지와 목적지가 바뀐 상태에서 똑같이 해주면 됨

0개의 댓글