공부/Network

데이터 통신 전체 흐름

해리누나 2024. 7. 3. 10:00
728x90
반응형

 

우리가 컴퓨터로 웹 사이트에 접속 할 때, OSI 모델에서 각 계층에 어떤 일이 일어나는지 전체적으로 살펴보자.

이때, 네트워크 구성은 아래와 같다고 가정한다.

네트워크 구성

 

→ 해당 네트워크는 총 3개의 네트워크로 나누어져 있다. (192.168.1.0/24, 172.16.0.0/24, 192.168.10.0/24)

이 네트워크에서 호스트가 웹 서버로 요청을 보내면 아래 그림처럼 데이터가 전송되면서 캡슐화와 역캡슐화가 진행되는데, 각각의 장치에서 어떤 일이 일어나는지 살펴보도록 하자.

 

데이터의 전송 과정

 

1. 컴퓨터의 데이터가 전기 신호로!

 

3-way handshake로 컴퓨터와 웹 서버간 연결 확립

② 웹 브라우저에 URL 입력후 enter 키를 누르면 캡슐화 시작

③ 응용 계층: HTTP 프로토콜을 통해 웹 서버에 있는 html 데이터에 대한 요청 메시지를 보낸다

- GET: 정보를 요청하기 위한 메서드. "데이터를 보내주세요~"

④ 전송 계층: 해당 메시지를 전달받아 TCP 헤더를 붙인다.

- 이때 어떤 에플리케이션에 보내야 하는지를 식별하도록 출발지와 목적지 포트 번호가 포함된다.

- 목적지가 HTTP 이니 목적지 포트 번호는 80이 된다.

- TCP 헤더를 가진 데이터: 세그먼트

⑤ 네트워크 계층

- 데이터의 출발지인 컴퓨터와 목적지인 서버의 위치 정보가 담긴 출발지와 목적지 IP 주소가 추가된다.

- 이 IP 헤더가 붙은 데이터: IP 패킷

⑥ 데이터 링크 계층

- 목적지와 출발지 MAC 주소가 담긴 이더넷 헤더를 데이터에 추가로 붙는다.

- 이때 데이터의 전송 중 오류 판별을 위한 트레일러도 붙여진다

- 이더넷 헤더가 붙은 데이터: 이더넷 프레임

⑦ 물리 계층

- 비트열로 이뤄진 데이터를 시그널(전기 신호)로 변환하여 네트워크로 전송한다.

- 변환할 때 사용되는 장비: 랜 카드

 

 

2. 스위치에서의 데이터 전달 및 처리 (스위치 A)

스위치 A에서 데이터가 처리되는 과정을 알아보자.

 

물리 계층 → 데이터 링크 계층 → 물리 계층으로 전달

① 물리 계층

- 시그널로 변환된 데이터를 수신한다.

- 수신된 전기 신호를 비트열 데이터(디지털 데이터)로 변환한다.

② 데이터 링크 계층

- 물리 계층에서 받은 비트열 데이터를 분석하여 이더넷 프레임을 복원한다.

- 프레임의 헤더와 트레일러를 확인하고, 오류 검사 및 수정 등을 수행한다.

- 목적지 MAC 주소를 기반으로 프레임을 전송한다.

③ 물리 계층

- 전달받은 프레임을 전기 신호로 변환하여 전송한다.

 

 

3. 라우터에서의 데이터 전달 및 처리 (라우터 A)

라우터 A에서 데이터가 처리되는 과정을 알아보자.

 

① 물리 계층

- 시그널로 변환된 데이터를 수신한다.

- 수신된 전기 신호를 비트열 데이터(디지털 데이터)로 변환한다.

② 데이터 링크 계층

- 물리 계층에서 받은 비트열 데이터를 분석하여 이더넷 프레임을 복원한다.

- 프레임의 무결성을 확인하기 위해 오류 검사를 수행한다.

- 이더넷 프레임의 헤더를 검사하여 목적지 MAC 주소를 확인한다.

- 이때 목적지 MAC 주소와 자신의 MAC 주소가 같으면 역캡슐화 수행

- 역캡슐화: 프레임 헤더와 트레일러를 제거하여 상위 계층에 전달할 순수한 네트워크 계층 데이터(IP 패킷)를 추출한다.

③ 네트워크 계층

- 데이터 링크 계층에서 전달된 IP 패킷의 헤더를 분석하고 목적지 IP 주소 확인

- 라우터의 라우팅 테이블을 조회하여 목적지 IP 주소에 대한 최적의 경로를 결정한다.

③ 네트워크 계층

- 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있어 라우팅 가능

- 현재 출발지 IP 주소인 192.168.1.10을 라우터의 외부 IP주소 (WAN 측)인 172.16.0.1로 변경한다.

④데이터 링크 계층

- 네트워크 계층으로부터 받은 패킷을 새 이더넷 프레임으로 캡슐화하여 다음 장치로 전달한 준비를 한다.

- 이 새로운 프레임 헤더에 목적지 MAC 주소(라우터 B의 MAC 주소)와 출발지 MAC가 추가된다.

⑤물리 계층

 

- 데티터를 전기 신호로 변환하여 네트워크로 전달

 

 

4. 라우터에서의 데이터 전달 및 처리 (라우터 B)

다음으로 라우터 B에서 데이터가 처리되는 과정을 알아보자.

① 물리 계층

- 시그널로 변환된 데이터를 수신한다.

- 수신된 전기 신호를 비트열 데이터(디지털 데이터)로 변환한다.

② 데이터 링크 계층

- 물리 계층에서 받은 비트열 데이터를 분석하여 이더넷 프레임을 복원한다.

- 프레임의 무결성을 확인하기 위해 오류 검사를 수행한다.

- 이더넷 프레임의 헤더를 검사하여 목적지 MAC 주소를 확인한다.

- 이때 목적지 MAC 주소와 자신의 MAC 주소가 같으면 역캡슐화 수행

- 역캡슐화: 프레임 헤더와 트레일러를 제거하여 상위 계층에 전달할 순수한 네트워크 계층 데이터(IP 패킷)를 추출한다.

③ 네트워크 계층

- 데이터 링크 계층에서 전달된 IP 패킷의 헤더를 분석하고 목적지 IP 주소 확인

- 라우터의 라우팅 테이블을 조회하여 목적지 IP 주소에 대한 최적의 경로를 결정한다.

③ 네트워크 계층

- 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있어 라우팅 가능

- 현재 출발지 IP 주소인 172.16.0.1을 라우터 B의 내부 IP 주소(LAN 측)인192.168.1.10로 변경한다.

④데이터 링크 계층

- 네트워크 계층으로부터 받은 패킷에 이더넷 헤더와 트레일러를 붙인다 (캡슐화).

⑤물리 계층

- 데티터를 전기 신호로 변환하여 네트워크로 전달

 

 

5. 스위치에서의 데이터 전달 및 처리 (스위치 B)

스위치 B에서 데이터가 처리되는 과정을 알아보자.

물리 계층 → 데이터 링크 계층 → 물리 계층으로 전달

① 물리 계층

- 시그널로 변환된 데이터를 수신한다.

- 수신된 전기 신호를 비트열 데이터(디지털 데이터)로 변환한다.

② 데이터 링크 계층

- 물리 계층에서 받은 비트열 데이터를 분석하여 이더넷 프레임을 복원한다.

- 프레임의 헤더와 트레일러를 확인하고, 오류 검사 및 수정 등을 수행한다.

- 목적지 MAC 주소를 기반으로 프레임을 전송한다.

③ 물리 계층

- 전달받은 프레임을 전기 신호로 변환하여 전송한다.

 

 

7. 웹 서버에서의 데이터 전달 및 처리 (스위치 B)

마지막으로 웹 서버에서 데이터가 처리되는 과정을 알아보자.

① 물리 계층

- 시그널로 변환된 데이터를 수신한다.

- 수신된 전기 신호를 비트열 데이터(디지털 데이터)로 변환한다.

② 데이터 링크 계층

- 물리 계층에서 받은 비트열 데이터를 분석하여 이더넷 프레임을 복원한다.

- 프레임의 무결성을 확인하기 위해 오류 검사를 수행한다.

- 이더넷 프레임의 헤더를 검사하여 목적지 MAC 주소를 확인한다.

- 이때 목적지 MAC 주소와 자신의 MAC 주소가 같으면 역캡슐화 수행

- 역캡슐화: 프레임 헤더와 트레일러를 제거하여 상위 계층에 전달할 순수한 네트워크 계층 데이터(IP 패킷)를 추출한다.

③ 네트워크 계층

- 데이터 링크 계층에서 전달된 IP 패킷의 헤더를 분석하고

- 목적지 IP 주소와 웹 서버의 IP 주소가 같은지 확인한다.

- 주소가 같으면 IP 헤더를 분리하여 전송 계층에 전달한다 (역캡슐화).

④ 전송 계층

- 목적지 포트 번호를 확인하여 어떤 애플리케이션으로 데이터를 전달해야 되는지를 판단한다.

- TCP 헤더를 분리하여 응용 계층에 전달한다.

⑤ 응용 계층

- 드디어 데이터가 웹 서버의 응용 계층에 도착하였다!

 

이다음에는 서버에서 컴퓨터로 다시 응답을 보내겠지... 아무튼 이렇듯 사용자의 컴퓨터에서 웹 서버까지 데이터가 도달하려면 많은 네트워크 단계를 거쳐가야 한다.

 

 

 

 

 

참고

책: 10일만에 배우는 네트워크 기초, 모두의 네트워크 | 미즈구치 카츠야 | 이승룡 옮김

https://gunjoon.tistory.com/64

 

 

 

728x90
반응형