이번에는 PC A가 PC B에 통신하는 과정을 상세히 아는 과정을 배워보겠습니다. 이 과정을 이해하는 것이, Network를 이해하는 기초입니다.
Q-1) A와 B가 통신이 되는 상황. A에서 보낸 Data를 B가 받았을 때, B가 받은 Source Mac은 무엇인가?
Q-2) PC A의 arp cache table 정보를 기입하시오.
Q-3) A – B통신에 사용된 모든 protocol을 쓰시오.
Q-4) A에서 B로 갈 때, data이동에 따른 정보를 쓰시오.
단계 Ⅰ) Host A가 첫번째 패킷을 보낼 때의 과정
Ⅰ- ①) Host A는 G/W의 MAC을 알아온다.
▶ Host A가 ICMP패킷을 만들 때, Host A는 목적지 network가 동일한 network 인지 판단한다.
▶ 현재 다른 network이기 때문에 default GW로 보낸다. 그런데 현재 Default GW의 MAC주소를 모르기 때문에 Arp로default GW를 알아와야 한다.
▶ Broadcast Domain으로 Default GW의 MAC을 알아오는 Packet을 Flooding한다.
Ⅰ- ②) 스위치는 MAC주소를 학습한 뒤, Broadcast로 Flooding한다.
▶ Switch는 해당 MAC주소를 학습한다.(어떤 MAC이 어떤 포트로 보냈는지 학습) 해당 패킷은 broadcast임을 안다.(Flooding된 패킷)
▶ Decapsulation한 뒤, 자신에게 맞는 IP가 아님을 인지한다.
▶ Broadcast임으로 나머지 포트에 해당 패킷을 flooding한다.
Ⅰ- ③) Router은 IP를 확인한 뒤에 MAC주소 등록한다.
▶ 라우터는 Broadcast로 온 패킷을 받는다. Decap한뒤 자신에게 온 IP임을 인지한다.
▶ 해당 MAC주소를 ARP테이블에 기록한다.
Ⅰ - ④) Router은 Host A에게 응답한다.
▶ 자신에게 온 Mac Address이 므로 Src Mac은 자신의 Mac, Dst Mac은 Host A의 Mac으로 보낸다.
Ⅰ - ⑤) Host A는 G/W의 MAC주소를 학습한다.
▶ Host A는 해당 패킷을 decap을 한 뒤 이것이 자신이 보낸 packet의 Reply임을 알고, arp테이블에 등록을 시킨다.
▶ 그 후, MAC주소를 몰라서 arp를 기다렸던 ICMP패킷을 만든다.
단계 Ⅱ) ARP로 Host A가 G/W의 MAC을 학습한 이후, 두번째 패킷을 보내는 과정
Ⅱ - ①) Host A는 G/W를 통해 자신의 Network와 다른 Packet을 보낸다.
▶ Host A는 첫번째 패킷을 통해, G/W의 MAC를 파악하였다. 이제 Host B에 Packet을 보낸다.
▶ Host B는 Network가 다르기 때문에 G/W로 보내야한다. 따라서, MAC주소는 Router로, IP주소는 Host B로 해서 보낸다.
Ⅱ - ②) Router 1은 Routing Table을 참조한 뒤에 보낼 MAC주소를 가져온다.
▶ Router 1은 Switch로부터 Packet을 받았고, 해당 목적지가 자신의 IP가 아니고, Routing Table에 있음을 알았다.
▶ 라우팅 테이블에 따르면, Router 2의 10.1.2.6(특정 포트)으로 보내야 한다. 그래서 해당 방향으로 보내려고 했는데, Router2의 MAC주소가 없다.
▶ 그래서 Arp packet을 만들어서 해당 network로 flooding한다.
Ⅱ - ③) Router 2은 Router 1의 MAC주소 응답을 한다.
▶ Router2는 해당 패킷을 decap한 뒤, 자신에게 온 IP임을확인한다.
▶ ARP 테이블을 업데이트한 뒤, 단계Ⅰ에서 했던 것처럼 Src Mac은 자신으로, Dst Mac은 Router1로 바꿔서 보낸다.
Ⅱ - ④) Router1은 ARP 테이블을 업데이트한다.
▶ Router1은 해당 패킷이 자신이 보낸 packet의 reply임을 알고 테이블을 업데이트한다.
단계 Ⅲ) Host A가 응답이 오지 않아, Dest B로 다시 패킷을 보내는 과정
Ⅲ - ①) Host A가 패킷을 재전송한다.
▶ Host A는 ping에 응답이 오지 않아서, 다음의 Echo Type 8의 ping을 다시 보낸다.
Ⅲ - ②) Switch는 받은 패킷을 MAC 테이블과 비교한뒤 맞는 port로 보낸다.
▶ Switch는 해당 Packet을 열어본 뒤, 자신의 Mac Table에 맞는 port로 보낸다.
Ⅲ - ③) Router1은 Router2로 패킷을 전송한다.
▶ Router는 해당 Packet을 열어본뒤, Cisco Express Forwarding (CEF) / Routing Table에 있음을 인지하고, 해당 IP의 MAC주소로 encap 한뒤 Forwarding한다.
Ⅲ - ⑤) Router2에는 Dest Mac주소가 없다
▶ Host B(해당 PC)는 해당 packet을 받고, 자신의 IP와 맞음을 확인한 뒤, Router2로 자신의 MAC주소를 알리는 arp를 보낸다.
Ⅲ - ⑥) Router2는 Host B의 MAC주소를 학습한다.
단계 - Ⅳ) Host A가 다시 Host B에게 패킷을 보내는 과정
단계 3의 과정을 거쳐서 Host B에게 패킷이 들어왔다. Host B는 해당 패킷을 응답한다.
Ⅳ - ①) Host B는 Src IP를 본인 IP로, Dest IP를 Host A로 해서 G/W로 보낸다.
▶ Router2는 Host B에게 패킷을 보낸다. Host B는 Host A가 본인에게 패킷을 줄 때와 마찬가지로 G/W로 보낸다.
Ⅳ - ②) Router 2는 Router 1의 MAC주소로 해당 패킷을 보낸다.
▶ Router 2는 Mac주소를 Switching해서 보낸다.
Ⅳ - ③) Router 1은 MAC주소를 HOST A로 바꿔서 보낸다.
▶ Router 1도 MAC주소를 Host A로 해서 보낸다.
Ⅳ - ④) Ping 성공
▶ Switch는 Port를 확인한 뒤에 Host A에게 보낸다.
'컴퓨터 일반 > 네트워크' 카테고리의 다른 글
[rtmp] (0) | 2020.06.21 |
---|---|
[CCNA]서브넷 마스크란? (0) | 2019.10.13 |