Lesson 32. 랜 카드에서의 데이터 전달과 처리
네트워크의 구성
이제 앞서 다룬 OSI 7계층에서 웹 사이트 접속 시 담당하는 일들을 살펴보겠습니다.
- 응용 계층 : 애플리케이션 등에서 사용하는 데이터 송수신
- 전송 계층 : 목적지에 데이터를 정확하게 전달
- 네트워크 계층 : 다른 네트워크에 있는 목적지에 데이터를 전달
- 데이터 링크 계층 : 랜에서 데이터를 송수신
- 물리 계층 : 데이터를 전기 신호로 변환
예를 들어 아래와 같이 컴퓨터, 스위치, 라우터, 웹 서버로 구성된 네트워크가 있다고 가정하여 웹 사이트의 접속 과정을 설명해보겠습니다.
컴퓨터의 웹 사이트 전송을 위한 요청 데이터는 아래와 같이 흘러가 웹 서버에 도착하게 될 것입니다.
컴퓨터의 데이터가 전기 신호로 변환되는 과정
가장 먼저 컴퓨터에서 스위치 A까지 가기 위해서 데이터를 전기 신호로 변환하는 과정을 다시 확인해봅시다. 즉, 캡슐화 과정을 복습해보는 것입니다.
우선 컴퓨터와 웹 서버에서의 3-way handshake가 완료되어 연결이 확립되었다고 가정합니다.
가장 먼저 URL을 입력하고 엔터를 누를 떄, 컴퓨터는 캡슐화를 시작합니다. 입력한 URL에 해당하는 html 파일을 요청하는 데이터를 전송하게 되죠. 이 때, GET 요청과 버전 정보 등의 다양한 정보를 붙여서 보낸다고 하였습니다.
이제 응용 계층 다음인 전송 계층입니다. 전송 계층에서는 신뢰성있고 정확한 데이터를 전달하거나 효율적으로 데이터를 전송하는 역할을 합니다. TCP와 UDP가 있고 HTTP 요청은 TCP 요청으로 진행됩니다.
TCP 요청은 데이터에 헤더를 붙이게 되는데, TCP에서 붙여지는 헤더는 TCP 헤더이고, TCP 헤더와 데이터가 결합된 것을 세그먼트라고 하였습니다.
또한 어느 애플리케이션으로 데이터를 보내야하는지에 대한 정보를 TCP 헤더에 넣게 되는데 이 정보에 해당하는 것이 출발지 포트 번호와 도착지 포트 번호입니다. 이 포트번호는 well-known ports를 제외한 1025번 이상으로 구성되어 있을 것입니다.
여기서 출발지 포트 번호는 3500번이라고 가정하고, 웹 서버는 HTTP를 이용하므로 도착지 포트 번호는 80 포트가 될 것입니다.
이 다음 네트워크 계층으로 전달됩니다. 네트워크 계층에서는 네트워크 간의 통신을 담당하는 역할을 합니다. 데이터에 IP 헤더라는 헤더가 붙게 되고 이와 세그먼트를 결합하여 IP 패킷을 만들어줍니다.
여기서는 출발지 IP 주소와 도착지 IP 주소의 정보가 추가되게 됩니다.
이후에는 데이터 링크 계층으로 전달됩니다. 데이터 링크 계층에서는 이더넷 헤더가 붙게 되고, 이더넷 헤더와 IP 패킷이 결합된 것을 이더넷 프레임이라고 합니다.
이더넷 헤더에는 출발지 MAC 주소와 목적지 MAC 주소가 붙게 됩니다. 여기서 목적지 MAC 주소는 웹 서버의 MAC 주소가 아닙니다. 다른 네트워크에 있는 기기의 MAC 주소는 알 수 없으므로, 같은 네트워크에 있는 라우터의 MAC 주소가 들어가게 됩니다.
Lesson 33. 스위치와 라우터에서의 데이터 전달과 처리
스위치에서의 데이터 전달과 처리
이제 스위치 A에서 라우터 A로 데이터가 전달되는 과정을 알아봅시다.
우선 스위치에서는 데이터 링크 계층에서 랜 카드를 이용하여 데이터를 전기 신호로 변환하여 라우터 A로 전송합니다.
라우터에서의 데이터 전달과 처리
이제 스위치가 라우터에게 데이터를 받았으니, 라우터에서는 어떻게 라우터로 데이터를 전달하는지 확인해봅시다.
우선 라우터는 전기 신호를 받게 되면, 데이터 링크 계층에서 랜 카드를 이용해 전기 신호를 데이터로 변환하며 목적지 MAC 주소와 자신의 MAC 주소를 비교합니다. 만약 이 MAC 주소가 일치하게 되면 이더넷 헤더와 트레일러를 분리하고, 네트워크 계층에 전달합니다.
네트워크 계정에서는 라우팅 테이블과 목적지 IP 주소를 비교합니다. 그렇다면 목적지 IP 주소까지의 라우팅이 가능해집니다. 이제 다시 데이터 링크 계층으로 전송해야하는데, 그 전에 출발지 IP 주소를 외부 IP 주소로 변경합니다.
이후 데이터 링크 계층으로 전달되어 캡슐화가 이루어지며, 물리 계층에서 데이터가 전기 신호로 변환되어 전송합니다.
이후 라우터 B는 데이터를 수신하였고 받은 전기 신호를 역캡슐화 진행합니다.
해당 라우터에서는 목적지 MAC 주소와 자신의 MAC 주소를 비교하며, 일치하면 역캡슐화를 진행한 후 네트워크 계층으로 전달합니다. 이후 네트워크 계층에서 목적지 IP 주소와 자신의 라우팅 테이블을 비교합니다. 그 후, 출발지 IP 주소를 내부 IP 주소로 변경하여 데이터 링크 계층에서 캡슐화를 진행한 후, 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크에 전달합니다.
이후, 해당 전기 신호 데이터를 스위치가 받게됩니다. 스위치가 데이터를 수신하는 과정과 데이터를 송신하는 과정은 동일하므로 생략합니다.
Lesson 34. 웹 서버에서의 데이터 전달과 처리
웹 서버에서의 데이터 전달과 처리
이번에는 웹 서버 내에서 이루어지는 역캡슐화에 대해서 알아봅시다.
우선 전기 신호로 웹 서버에 도착하면, 데이터 링크 계층에서 데이터로 변환하고 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교하교 동일하다면 이더넷 헤더와 트레일러를 분리합니다.
이후 IP 주소 또한 비교 과정을 거쳐 동일하다면 IP 헤더를 분리하고 전송계층에 전달합니다.
전송 계층에서는 어떤 애플리케이션으로 전달해야하는지 확인하고 TCP 헤더를 분리하여 응용계층에 전달합니다.
'CS > Network' 카테고리의 다른 글
[모두의 네트워크] 9장 무선 랜 이해하기 (0) | 2024.01.08 |
---|---|
[모두의 네트워크] 7장 응용 계층 : 애플리케이션에 데이터 전송하기 (0) | 2024.01.04 |
[모두의 네트워크] 6장 전송 계층 : 신뢰할 수 있는 데이터 전송하기 (0) | 2024.01.03 |
[모두의 네트워크] 5장 네트워크 계층 : 목적지에 데이터 전달하기 (1) | 2024.01.02 |
[모두의 네트워크] 4장 데이터 링크 계층 : 랜에서 데이터 전송하기 (0) | 2023.12.28 |