1. 데이터그램 포워딩 : IP실제 동작
- ip가 패킷을 보내면 이더넷을 통해 전달이 된다.
- ip가 그때그때 어떻게 전달 명령을 수행하는지 알아보자. 이는 호스트, 라우터 상관없이 동일하게 동작한다.
- ip의 포워딩 테이블을 살펴보자. (라우터 R2의 테이블)
- ip주소가 계층적으로 구성되어있기 때문에 목적지 주소의 뒷부분은 볼 필요가 없다. 따라서 포워딩 테이블에 network number를 적는다.
- next hop예를 살펴보자. 2번 네트워크로 가려면 R1을 지나라는 뜻이다. 3으로 보내려면 직접 보내라는 뜻이고, 1번 네트워크로 보내고 싶다면 R3를 거치라는 뜻이다.
- 목적지 네트워크가 직접 연결되어 있다면 호스트로 직접 포워드를 하고 직접 연결되어 있지 않다면 다른 라우터에게 포워드해야하기 때문에 이전에 배운 포트번호로는 충분하지 않다.
- h8에서 h7로 보내야 한다면 직접 연결되어있기 때문에 호스트로 바로 보낸다. 만약 H4에게 보내야 한다면 전송을 다른 라우터에게 위임한다.
- 그렇다면 데이터그램의 목적지 주소를 보고 직접 연결되어 있는지 아닌지를 어떻게 판단할 수 있을까? 라우터나 아이피가 자기의 network주소와 목적지 주소의 network부분이 동일한지 보면 된다.
- 네트워크 주소가 같다면 바로 MAC주소(네트워크/링크주소)로 보낸다. 만약 다르다면 라우터로 보내야 하니까 해당 라우터의 MAC주소로 encapsulation해서 보낸다.
2. (연습) H7 -> H8
- ip가 데이터에 헤더를 붙인다. (SA, DA)
- 이 전체를 ethernet에게 내려보낸다. 데이터와 더불어 ethernet이 알아들을 수 있는 수준으로 destination 주소를 함께 알려준다.
- 이더넷은 주소를 확인한다.
- 목적지와 나의 네트워크 주소가 1로 동일하다. -> 직접전달 -> H8의 MAC주소를 붙여서 하위 계층으로 전달
3. (연습) H7 -> H1
- ip가 데이터에 헤더를 붙인다. (SA, DA)
- 이 전체를 ethernet에게 내려보낸다. 데이터와 더불어 ethernet이 알아들을 수 있는 수준으로 destination 주소를 함께 알려준다.
- 이더넷은 주소를 확인한다.
- 목적지와 나의 네트워크 주소가 서로 동일하다. -> 라우터에게 전달 -> 라우터의 MAC주소를 붙여서 하위 계층으로 전달
- 이 패킷을 R3가 수신한다.
- 헤더를 떼고 아까 H7이 했던 동작을 똑같이 수행한다.
- 자기 자신 R3의 주소와 H1 목적지 네트워크 주소 다름 -> 라우터에게 전달 -> 라우터의 MAC주소를 붙여서 하위 계층으로 전달
- 목적지에 닿을때까지 동일하게 반복
4. 복습 정리
- a에서 b로(서로 다른 네트워크) 패킷을 전달하는 과정을 다시 정리해보자.
- a는 b의 ip주소를 알고 있다고 가정한다. 이게 어떻게 가능하냐면 www.google.com으로부터 ip를 꺼내주는 DNS(domain name service) 덕분이다.
- 또한 a는 자기가 외부로 나가기 위해 거쳐야 하는 라우터 주소도 알고있다고 가정한다. (DHCP 프로토콜로 호스트가 이 정보를 알 수 있다.)
- a는 r의 ip를 가지고 mac주소를 알수 있다. (ARP프로토콜이 알려줌)
- 라우터는 자기가 연결하고 있는 두 네트워크를 위해 두개의 주소를 갖는다. 마찬가지로 각 ip에 해당하는 physical network주소인 mac주소를 가진다.
- ip 패킷을 만들어서 아래 계층으로 전달(send down)
- ethernet에서는 자신의 network주소와 목적지의 network주소가 다르기 때문에 router의 맥주소를 패킷에 붙여서(encapsulation) 하위 계층으로 전달한다.
- 라우터가 이를 받아 작업을 수행하고 ip로 패킷을 올려보낸다.
- 이전과 동일한 작업을 forwarding table을 보고 수행한다.
- 자신의 네트워크 주소와 목적지의 주소가 동일하다 -> 222.222.222.222의 MAC주소를 찾아서 직접 전달
- decapsulation해서 패킷 수신
'ComputerScience > Network' 카테고리의 다른 글
컴퓨터통신 - 23. 공유기 (0) | 2021.12.06 |
---|---|
컴퓨터 통신 - 22. 주소 번역 (Address Translation) (0) | 2021.12.06 |
컴퓨터통신 - 20. 인터네트워킹(Internetworking) (0) | 2021.12.06 |
컴퓨터통신 - 19. 브리지 (0) | 2021.11.22 |
컴퓨터통신 - 18. 패킷 스위칭 (0) | 2021.11.22 |