32) 응용 프로그램 ~ LAN 카드 → 33) 스위치 / 라우터 → 34) 웹 서버 LAN 카드 ~ 웹 서버 프로그램 까지의 흐름을 확인한다.
32) LAN 카드에서의 데이터 전달과 처리
네트워크 구성

-
위의 경우 네트워크는 3개이다.
- 192.168.1.0/24, 172.16.0.0/16, 192.168.10.0/24

-
첫번째 그림과 같이 네트워크가 구성되었다고 가정하면, 위와 흐름으로 데이터가 전달된다.
다음과 같은 과정을 거쳐간다.
- 컴퓨터에서 응용 계층 → 물리 계층 순서로 캡슐화
- 스위치에서 데이터 링크 계층까지 역캡슐화해 가야할 곳(기본 게이트웨이, 라우터 A)으로 전달
- 라우터 A, B에서는 데이터가 올 때마다 네트워크 계층까지 역캡슐화하고 ip 주소 확인, 라우팅 작업
- 스위치 B에 도달해 데이터 링크 계층까지 역캡슐화, 웹 서버로 전송
- 웹 서버에서 응용 계층까지 역 캡슐화, 데이터 확인
컴퓨터의 데이터가 전기 신호로 변환되는 과정
첫 번째 과정에 대해 알아보자. 첫 번째 과정에서 캡슐화가 연속적으로 일어나며 데이터에 추가적인 정보가 붙고, 최종적으로 전기 신호로 변환된다.
- 웹 브라우저에서 특정 url을 입력
- 3-way handshake는 이미 완료되었다고 생각
- 컴퓨터에서 응용 계층 → 물리 계층으로 캡슐화
- 응용 계층에서 http 메세지가 작성된다.
- 전송 계층으로 전달되고, 전송 계층에서는 목적지/출발지 포트 등과 같은 정보가 헤더에 담길 것.
- 이 때 웹 브라우저는 1025이상의 포트 중 무작위 포트 선택. 3000이 선택됐다고 가정하자. 목적지는 http니 80으로 생각하자.
- 네트워크 계층에서 ip 헤더 추가. 출발지, 목적지 ip 주소 등
- 데이터 링크 계층에서 ethernet 헤더, 트레일러 추가. 맥 주소 정보, FCS 등
- 물리 계층에서 LAN 카드를 통해 전기 신호로 변환 및 전송
최종 데이터는 다음과 같을 것
ETHERNET 헤더 | IP 헤더 | TCP 헤더 | HTTP | ETHERNET 트레일러 |
---|
목적지/출발지 MAC | 출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 | FCS |
라우터A/컴퓨터 | 192.168.1.10/192.168.10.5 | 3000/80 | GET /index.html … | … |
33) 스위치와 라우터에서의 데이터 전달과 처리
스위치A에서의 데이터 전달과 처리
- 컴퓨터에서 온 정보를 역 캡슐화 한다.
- 목적지 확인 MAC 주소를 확인한다. 라우터 A의 MAC 주소이므로, 다시 캡슐화해 라우터 A로 보낸다.
ETHERNET 헤더 | IP 헤더 | TCP 헤더 | HTTP | ETHERNET 트레일러 |
---|
목적지/출발지 MAC | 출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 | FCS |
라우터A/컴퓨터 | 192.168.1.10/192.168.10.5 | 3000/80 | GET /index.html … | … |
라우터A에서의 데이터 전달과 처리
- 데이터 링크 계층에서 ethernet 헤더의 목적지 MAC 주소를 확인하고, 자신의 MAC 주소와 같은지 확인한다.
- 같다면 네트워크 계층 역캡슐화를 진행한다. 아래의 데이터만 남을 것
IP 헤더 | TCP 헤더 | HTTP |
---|
출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 |
192.168.1.10/192.168.10.5 | 3000/80 | GET /index.html … |
- 네트워크 계층에서 자신의 라우팅 테이블과 목적지 IP 주소를 비교, 라우팅한다.
라우터 B로 보내야함을 여기서 알게 된다.
→ 확인
- 출발지 IP 주소를 라우터의 외부 IP 주소로 변경한다.
IP 헤더 | TCP 헤더 | HTTP |
---|
출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 |
172.16.0.1/192.168.10.5 | 3000/80 | GET /index.html … |
- 출발지 MAC 주소를 자기 자신인 라우터 A, 목적지 MAC 주소를 라우터 B로 하여 ethernet 헤더를 붙여주고, 물리 계층을 통해 전송한다.
ETHERNET 헤더 | IP 헤더 | TCP 헤더 | HTTP | ETHERNET 트레일러 |
---|
목적지/출발지 MAC | 출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 | FCS |
라우터B/라우터A | 172.16.0.1/192.168.10.5 | 3000/80 | GET /index.html … | … |
라우터B에서의 데이터 전달과 처리
- 데이터 링크 계층에서 ethernet 헤더의 목적지 MAC 주소를 확인하고, 자신의 MAC 주소와 같은지 확인한다.
- 같다면 네트워크 계층 역캡슐화를 진행한다. 아래의 데이터만 남을 것
IP 헤더 | TCP 헤더 | HTTP |
---|
출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 |
172.16.0.1/192.168.10.5 | 3000/80 | GET /index.html … |
- 네트워크 계층에서 자신의 라우팅 테이블과 목적지 IP 주소를 비교, 라우팅한다.
내부 네트워크에 있는 웹 서버로 보내야함을 여기서 알게 된다.
→ 확인
- 출발지 IP 주소를 라우터의 내부 IP 주소로 변경한다.
IP 헤더 | TCP 헤더 | HTTP |
---|
출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 |
192.168.10.1/192.168.10.5 | 3000/80 | GET /index.html … |
- 출발지 MAC 주소를 자기 자신인 라우터 B, 목적지 MAC 주소를 웹서버로 하여 ethernet 헤더를 붙여주고, 물리 계층을 통해 전송한다.
ETHERNET 헤더 | IP 헤더 | TCP 헤더 | HTTP | ETHERNET 트레일러 |
---|
목적지/출발지 MAC | 출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 | FCS |
웹서버/라우터B | 192.168.10.1/192.168.10.5 | 3000/80 | GET /index.html … | … |
스위치A에서의 데이터 전달과 처리
- 라우터B에서 온 정보를 역 캡슐화 한다.
- 목적지 확인 MAC 주소를 확인한다. 웹서버의 MAC 주소이므로, 다시 캡슐화해 웹서버로 보낸다.
ETHERNET 헤더 | IP 헤더 | TCP 헤더 | HTTP | ETHERNET 트레일러 |
---|
목적지/출발지 MAC | 출발지/목적지 IP | 출발지/목적지 PORT | 헤더 및 바디 | FCS |
웹서버/라우터B | 192.168.1.10/192.168.10.5 | 3000/80 | GET /index.html … | … |
34) 웹 서버에서의 데이터 전달과 처리
웹 서버에서의 데이터 전달과 처리
역캡슐화가 연속적으로 일어나며 각 헤더를 확인하고, 알맞은 프로세스까지 데이터를 전달한다.
- LAN 카드에서 전기 신호 수신
- 물리 계층에서 LAN 카드를 통해 데이터로 변환
- 데이터 링크 계층에서 ethernet 헤더, 트레일러 확인
- MAC 주소가 자신의 MAC 주소와 같은지 확인
- 네트워크 계층에서 ip 헤더 확인
- 목적지 IP 주소와 자신의 IP 주소가 같은지 확인
- 전송 계층에서 목적지 포트 확인
- 응용 계층에서 http 메세지 해석, 데이터 제공할 준비