먹었으면 뇌를 쓰자
7. 네트워크의 전체 흐름 본문
네트워크의 전체 흐름 살펴보기
힘들었다. 여기까지 달려오느라. 그렇지만 네트워크를 이루는 나무의 이름과 모습을 하나하나 살펴보고 왔기 때문에, 이제 네트워크라는 커다란 숲을 한눈에 바라볼 수 있게 되었다. 대단하다. 물론 숲을 보면서도 '저 나무 이름이 뭐였지...?' 라는 생각이 들 것이다. 하지만 이런 상황을 대비해서 나는 7개의 게시물을 작성해놓았다. 까먹으면 다시 보러 가면 된다.
- 랜 카드에서의 데이터 전달과 처리
- 스위치와 라우터에서의 데이터 전달과 처리
- 웹 서버에서의 데이터 전달과 처리
네트워크의 전체 흐름을 위와 같이 3가지의 연속적 단계로 파악해보자. 즉, 내 컴퓨터(클라이언트)에서 웹 서버(서버)로 정보를 요청하는 과정을 따라가보는 것이다. 이번엔 각을 잡고, 예쁘게 아름답게 정리할 것이다.
1. 랜 카드에서의 데이터 전달과 처리
OST 모델의 계층별 역할
응용 계층은 애플리케이션에서 사용하는 데이터를 송수신하는 데 필요하다.
전송 계층은 목적지에 데이터를 정확하게 전달하는 데 필요하다.
네트워크 계층은 다른 네트워크에 있는 목적지를 파악하는 데 필요하다.
데이터 링크 계층은 랜에서 데이터를 송수신하는 데 필요하다.
물리 계층은 데이터를 전기 신호로 변환하는 데 필요하다.
예제 네트워크 구성
다음과 같은 네트워크를 가정해서 랜 카드 내부의 프로세스를 살펴보자.
상황은 다음과 같다. 컴퓨터의 웹 브라우저에서 웹 사이트 URL을 입력하면, 이 데이터가 웹 서버로 도착해서 컴퓨터에게 웹 사이트를 반환한다. 이 과정에서 OSI 모델의 캡슐화와 역캡슐화를 살펴본다.
응용 계층에서는...
(전송 계층에서 클라이언트와 서버 사이 3-Way 핸드셰이크를 완료해 연결이 확립되어 있다는 전제)
HTTP 프로토콜에 맞춰 GET 방식으로 데이터(html 형식의 웹 사이트 화면)를 요청한다.
전송 계층에서는...
TCP 프로토콜에 맞춰 TCP 헤더(출발지 포트번호,목적지 포트번호 포함)를 부착한 세그먼트가 된다.
출발지(웹 브라우저)에는 임의 포트번호 3500번, 목적지(HTTP)는 잘 알려진 포트번호 80번이다.
네트워크 계층에서는...
IP 프로토콜에 맞춰 IP 헤더(출발지 IP주소, 목적지 IP주소 포함)를 부착한 IP 패킷이 된다.
출발지(컴퓨터) IP주소는 192.168.1.10, 목적지(웹 서버) IP주소는 192.168.10.5 이다.
데이터 링크 계층에서는...
이더넷 프로토콜에 맞춰 이더넷 헤더(출발지 MAC주소, 목적지 MAC주소 포함)와 트레일러를 부착한 이더넷 프레임이 된다. 출발지 MAC주소는 컴퓨터, 목적지 MAC주소는 라우터A이다.
물리 계층에서는...
전기 신호로 변환되어 네트워크로 전송된다. 랜 카드가 변환해주고, 랜선을 타고 스위치A로 들어간다.
<현재 MAC주소와 IP주소 상태>
출발지 MAC주소 : 컴퓨터
목적지 MAC주소 : 라우터A
출발지 IP주소 : 컴퓨터(192.168.1.10)
목적지 IP주소 : 웹 서버(192.168.10.5)
2. 스위치와 라우터에서의 데이터 전달과 처리
스위치A에서의 데이터 전달과 처리
스위치A로 들어와 물리 계층, 데이터 링크 계층을 거친 이더넷 프레임은 물리 계층에서 다시 전기 신호로 변환되어 라우터A로 보내진다. 스위치는 랜의 문지기같은 역할을 수행하므로, 다른 네트워크로 데이터를 전달할 때 큰 활약이 없다.
라우터에서의 데이터 전달과 처리 ① 라우터A
(라우터에는 고유한 물리 주소인 MAC주소가 있다)
라우터A는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC주소와 자신의 MAC주소를 비교한다. 이 때 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화가 일어난다.
(라우터에는 LAN용 내부 IP주소, WAN용 외부 IP주소가 있다)
다음으로 네트워크 계층에서 목적지 IP주소(웹 서버 IP주소 192.168.10.5)와 자신의 라우팅 테이블을 비교한다. 이 때 라우팅 테이블에 웹 서버 IP주소가 있으면 최적의 경로를 찾는 라우팅을 하게 된다. 현재 출발지 IP주소(컴퓨터 IP주소 192.168.1.10)를 라우터 외부 IP주소(WAN에서 쓰임, 172.16.0.1)로 변경한다.
그 다음 이더넷 프레임을 다시 데이터 링크 계층으로 보내 출발지 MAC주소를 라우터A, 목적지 MAC주소를 라우터B로 변경해서 캡슐화한다. 이걸 물리 계층으로 보내 네트워크(WAN)로 전달한다.
<현재 MAC주소와 IP주소 상태>
출발지 MAC주소 : 라우터A
목적지 MAC주소 : 라우터B
출발지 IP주소 : 라우터A(172.16.0.1)
목적지 IP주소 : 웹 서버(192.168.10.5)
라우터에서의 데이터 전달과 처리 ② 라우터B
위의 내용을 그대로 복붙하면 된다.
라우터B는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC주소와 자신의 MAC주소를 비교한다. 이 때 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화가 일어난다.
다음으로 네트워크 계층에서 목적지 IP주소(웹 서버 IP주소 192.168.10.5)와 자신의 라우팅 테이블을 비교한다. 이 때 라우팅 테이블에 웹 서버 IP주소가 있으면 최적의 경로를 찾는 라우팅을 하게 된다. 현재 출발지 IP주소(라우터A IP주소 172.16.0.1)를 라우터 내부 IP주소(LAN에서 쓰임, 192.168.10.1)로 변경한다.
그 다음 이더넷 프레임을 다시 데이터 링크 계층으로, 물리 계층으로 보낸다. 이때 출발지 MAC주소와 도착지 MAC 주소는 들어올 때 그대로를 쓴다.
<현재 MAC주소와 IP주소 상태>
출발지 MAC주소 : 라우터A
목적지 MAC주소 : 라우터B
출발지 IP주소 : 라우터B(192.168.10.1)
목적지 IP주소 : 웹 서버(192.168.10.5)
스위치B에서의 데이터 전달과 처리
이더넷 프레임은 스위치B로 들어와 물리 계층을 거쳐, 데이터 링크 계층에서 출발지 MAC주소가 스위치B, 목적지 MAC주소가 웹 서버로 바뀐다. 이는 물리 계층에서 다시 전기 신호로 변환되어 웹 서버로 보내진다.
<현재 MAC주소와 IP주소 상태>
출발지 MAC주소 : 스위치B
목적지 MAC주소 : 웹 서버
출발지 IP주소 : 라우터B(192.168.10.1)
목적지 IP주소 : 웹 서버(192.168.10.5)
3. 웹 서버에서의 데이터 전달과 처리
데이터 링크 계층에서 이더넷 프레임의 목적지 MAC주소와 자신의 MAC주소를 비교한다. 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 한다.
네트워크 계층에서 목적지 IP주소와 자신의 IP주소를 비교한다. 주소가 같으면 IP 헤더를 분리하는 역캡슐화를 한다.
전송 계층에서 목적지 포트번호를 확인하고 TCP 헤더를 분리하는 역캡슐화를 한다.
응용 계층에 도착한다.
이제 맨 처음 GET 방식 데이터 요청("html 형식의 웹 사이트 화면 보여달라")만 남는다.
솔직히 이만큼 정리해놓고도 말로 설명하라 하면 잘 못하겠다. 심각하게 복잡하다. 그래서 귀여운 고양이 짤을 검색했다. 약간 마음이 누그러진다. 이제 이해될 때까지 계속 이 페이지를 읽으면 된다. 마지막 고양이들을 보기 위해 열심히 이해하며 읽자. 화이팅.
* 이 게시물은 미즈구치 카츠야의 책 '모두의 네트워크'에 담긴 내용을 개인 공부 목적으로 정리한 것입니다.
모두의 네트워크 | 미즈구치 카츠야 - 교보문고
모두의 네트워크 | 네트워크를 전혀 몰라도 괜찮다! 초보자와 비전공자를 위한 가장 쉬운 네트워크 입문서[모두의 네트워크]는 이제 막 네트워크를 공부하기 시작했거나 공부해야겠다고 마음먹
product.kyobobook.co.kr
'네트워크' 카테고리의 다른 글
서브넷팅 진짜 쉽게 하는 방법 (0) | 2022.12.01 |
---|---|
8. 무선 랜과 와이파이 (0) | 2022.11.04 |
6. 응용 계층의 프로토콜(HTTP, FTP, SMTP/POP3, DNS) (0) | 2022.11.02 |
5. 전송 계층, TCP와 UDP (0) | 2022.10.31 |
4. 네트워크 계층, IP/IP 주소, 게이트웨이, 라우팅, 라우터 (1) | 2022.10.30 |