[모두의 네트워크] -08 네트워크의 전체 흐름 살펴보기
이전에 작성한 글에서는 OSI 모델의 계층에 대해 설명했다.
이번에는 웹 사이트에 방문했을 때 이루어지는 전체적인 데이터 처리 과정을 알아보겠다.
- 네트워크의 구성
물리 계층 | 데이터를 전기 신호로 변환하는데 필요 |
데이터 링크 계층 | 랜에서 데이터를 송수신하는데 필요 |
네트워크 계층 | 다른 네트워크에 있는 목적지에 데이터를 전달하는데 필요 |
전송 계층 | 목적지에 데이터를 정확하게 전달하는데 필요 |
응용계층 (세선계층, 표현계층 포함) |
애플리케이션 등에서 사용하는 데이터를 송수신하는데 필요 |
다음의 그림에서 네트워크를 살펴보자
이 네트워크는 총 192.168.10,0/24 , 172.16.0.0/16, 192.168.20.0/24 총 세개이다.
네트워크를 OSI 모델로 나타내면 위와 같이 구성된다.
이렇게 데이터가 전달되기 위해서는 랜 카드에서 전기 신호로 변환이 되어야 한다.
- 응용계층
먼저 웹 사이트에 접속을 한다고 가정하면 응용 계층에서 시작한다.
웹 브라우저에 URL(google.com)을 입력하고 엔터키를 누르면 캡슐화가 진행된다.
웹 서버에 접속 요청을 보내기 위해 HTTP 프로토콜을 사용하여 메시지를 보낸다.
여기서 GET은 데이터를 보내달라는 의미이다.
- 전송계층
이제 데이터는 전송 계층에 전달된다. 전송 계층에서는 TCP 헤더가 붙는다.
전송 계층에서 데이터를 보내기위해 출발지 포트 번호와 목적지 포트 번호가 필요하다.
여기서 출발지는 우리의 컴퓨터(클라이언트)이며 출발지의 포트번호는 1025번 이상의 포트에서 무작위로 선택된다.
목적지 포트는 HTTP이므로 80번 포트가 된다.
그러면 예를 들어 1025번 포트에서 80번 포트로 데이터가 전송이 되는 것이다. 이렇게 TCP 데이터를 가진 데이터를 세그먼트라고 한다.
- 네트워크 계층
그 다음에 데이터는 네트워크 계층으로 전달된다. 이때 네트워크 계층에서는 IP 헤더가 붙는다.
네트워크 계층에서는 출발지 IP 주소와 목적지 IP 주소가 IP헤더에 포함되어 전송 계층에서 전달된 세그먼트에 붙는다.
이렇게 IP 헤더가 붙은 데이터는 IP 패킷이 된다.
- 데이터 링크 계층
데이터 링크 계층에서는 이더넷 헤더가 붙는다
이더넷 헤더가 있는 데이터는 이더넷 프레임이라고 부른다.
- 물리 계층
이렇게 물리 계층에 도착한 데이터는 전기 신호로 변환되어 네트워크로 전송되게 되는 것이다.
- 전기 신호 변환
전기 신호는 랜 카드에서 변환해준다.
- 스위치에서의 데이터 전달
스위치는 데이터 링크 계층에서 데이터를 전기 신호로 변환하여 라우터로 전송한다.
이렇게 전달된 데이터는 스위치 1에서 라우터 1로 전기신호로 전달된다.
이렇게 라우터 1에 도착한 데이터는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.
이때 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 수행한다.
다음으로 네트워크 계층에 전달하고 자신의 라우팅 테이블과 목적지 IP 주소를 비교한다.
라우터 1의 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으므로 라우팅이 가능하다.
그래서 현재 출발지 IP인 192.168.10.20을 172.16.0.1로 변경한다.
이후 데이터 링크 계층으로 전달하여 라우터 2로 데이터에 이더넷 헤더와 트레일러를 붙인 뒤 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크에 전달한다.
- 라우터 B의 역캡슐화와 캡슐화
전기 신호로 변환되어 라우터 2에 전달되면 라우터 2는 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.
주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 진행한다.
그 다음 네트워크 계층으로 전달되면 자신의 라우팅 테이블과 목적지 IP 주소를 비교한다.
라우터 2의 라우팅 테이블을 확인해보면 목적지 IP 주소의 경로를 알 수 있다.
따라서 출발지 주소 172.16.0.1을 192.168.20.1로 변경한다.
이후 데이터 링크 계층에 전달하여 이더넷 헤더와 트레일러를 붙힌 후 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크로 전달한다.
스위치 2는 전기 신호를 데이터 링크 계층에서 처리하고 웹 서버에 데이터를 전기 신호로 전달한다.
이렇게 데이터의 전송이 마무리 되었다.
- 웹 서버에서의 데이터 전달
스위치 2로부터 전기 신호가 전달되었다.
- 물리 계층, 데이터 링크 계층
웹 서버는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.
주소가 같으면 이더넷 헤더와 트레일러를 분리하고 네트워크 계층에 전달한다.
- 네트워크 계층
네트워크 계층에서는 목적지 IP 주소와 웹 서버의 IP 주소가 같은지 확인한다.
주소가 같으면 IP 헤더를 분리하고 전송 계층에 전달한다.
- 전송 계층
전송 계층에서는 목적지 포트 번호를 확인하여 어떤 애플리케이션으로 전달해야 되는지 판단하고 TCP 헤더를 분리하여 응용 계층에 전달한다.
- 응용 계층
이렇게 HTML 데이터를 요청하는 데이터가 전달되었다.