이전까지 학습한 OSI 계층들을 바탕으로 동작을 확인하면서 흐름을 정리해 보자.
OSI 7계층 정리와 이동 방향
OSI 7계층을 간단하게 확인해 보자.
각 계층에서의 작업은 아래와 같다.
그리고 데이터의 이동은 아래와 같다.
이를 좀 더 명확히 이해하기 위해 웹 브라우저에서 데이터를 입력할 때의 과정을 알아보자.
송신자 관점에서의 네트워크 흐름
사용자가 컴퓨터와 상호작용하는 것은 응용 계층(7계층)이다.
3-Way Handshake로 서버와 연결이 된 상태에서 사용자는 http://www.google.com을 입력한다.
이는 HTTP(80번 포트)를 이용하겠다는 의미이며 해당 데이터는 google 사이트의 첫 페이지를 보여달라는 요청 정보를 담은 상태로 전송 계층(4계층)으로 이동한다.
실제로는 http(80번 포트)를 입력하면 https(433번 포트)로 자동 변환된다.
https는 통신 시 암호화된 연결을 유지하기에 http에 비해 안전하다.
이후 아래의 계층들에선 통신을 위해 필요한 정보를 담은 헤더를 추가한다.
전송 계층은 포트 번호 정보가 헤더에 담기는데 여기선 임의로 송신자의 포트 번호를 8888로 하겠다.
전송 계층에서 세그먼트(Segment)가 만들어졌고 이후 네트워크 계층으로 넘어간다.
네트워크 계층은 IP 정보가 헤더에 담긴다.
라우터를 통해 IP 주소를 얻고 이 정보를 헤더에 담아 패킷(Packet)을 만든다.
이후 데이터 링크 계층으로 넘어간다.
데이터 링크 계층에선 MAC 정보가 헤더에 담긴다.
여기선 송신자와 서버가 서로 다른 네트워크에 있으므로 수신자의 MAC 주소에 자신이 속한 네트워크의 라우터 주소를 담아야 한다.
이로써 프레임(Frame)이 만들어졌고 물리 계층으로 넘어간다.
물리 계층에선 랜 카드에서 프레임을 전기 신호로 변환해 전송한다.
장비 관점에서의 데이터 흐름
네트워크를 통해 정보가 이동할 때 여러 장비를 거친다.
다음은 스위치, 라우터를 거칠 때의 모습이다.
송신자가 웹 페이지를 요청하면 먼저 스위치 A에게 수신자의 MAC 주소를 질의하는데 웹 서버는 다른 네트워크에 있으므로 스위치 A는 MAC주소를 모른다. 따라서 수신자의 MAC 주소를 라우터 A의 MAC 주소로 변경한 후 해당 데이터를 라우터 A에게 보낸다.
데이터를 받은 라우터 A는 수신자 IP 확인을 위해 헤더 정보를 확인한다.
수신자의 MAC 주소와 자신의 MAC 주소가 동일하단 것을 확인하고 이더넷 헤더를 분리한 후 네트워크 계층으로 전달한다.
라우터 A는 외부 네트워크와 통신하기 위해 송신자의 IP 주소를 외부 네트워크 IP 주소로 변경한다.
이후 데이터 링크 계층에서 송신자의 MAC 주소를 자신의 MAC 주소로, 수신자의 MAC 주소를 라우터 B의 주소로 바꾼다.
이후 데이터가 라우터 B에게 전달되면 앞의 과정과 반대로 동작한다.
라우터 B는 MAC주소가 동일하다는 것을 확인한 후 네트워크 계층에서 수신자의 IP주소를 자신의 라우팅 테이블에서 찾은 후 해당 IP 주소를 갖는 웹 서버에 데이터를 전달한다.
유의할 점은 라우터를 만나면 MAC 주소와 IP 주소를 변경한다는 것이다.
수신자 관점에서의 네트워크 흐름
이제 서버가 받은 데이터에 대해 역캡슐화를 진행해야 한다.
수신자의 각 계층은 헤더를 확인 및 분리한 뒤 상위 계층으로 올리는 작업을 반복한다.
- 전기 신호가 물리 계층에 도착하면 컴퓨터가 이해할 수 있는 형태로 바꾼 후 데이터 링크 계층으로 보낸다.
- 수신자 MAC 주소가 자신의 MAC 주소와 일치하는지 확인하고 이더넷 헤더를 분리한 후 네트워크 계층으로 보낸다.
- 수신자 IP 주소가 자신의 IP 주소와 일치하는지 확인하고 IP 헤더를 분리한 후 전송 계층으로 보낸다.
- TCP 포트 번호를 확인하고 TCP 헤더를 분리한 후 응용 계층으로 보낸다.
- 응용 계층에서 요청 데이터에 대해 응답한다.
'Network' 카테고리의 다른 글
JWT (1) | 2025.03.25 |
---|---|
Network - OSI 7 Layer: 응용 계층(7 Layer) (0) | 2024.04.04 |
Network - OSI 7 Layer: 전송 계층(4 Layer) (0) | 2024.04.01 |
Network - OSI 7 Layer: 네트워크 계층(3 Layer) (0) | 2024.03.25 |
Network - OSI 7 Layer: 데이터 링크 계층(2 Layer) (1) | 2024.03.18 |