* OSI 모델 역할 정리
응용 계층(세션 계층, 표현 계층 포함) - 애플리케이션 등에서 사용하는 데이터를 송수신하는 데 필요
전송 계층 - 목적지에 데이터를 정확하게 전달하는 데 필요
네트워크 계층 - 다른 네트워크에 있는 목적지에 데이터를 전달하는 데 필요
데이터 링크 계층 - 랜에서 데이터를 송수신하는 데 필요
물리 계층 - 데이터를 전기 신호로 변환하는 데 필요
<네트워크 구성 상황>
컴퓨터 -> 스위치A -> 라우터A -> 라우터B -> 스위치B -> 웹 서버
이러한 상황에서 데이터의 흐름을 살펴보자.
1. 컴퓨터
웹브라우저에 URL 입력하면 캡슐화 시작. (3-way 핸드셰이크는 이미 완료되어 연결이 확립되어있다 가정)
웹서버의 웹사이트에 접속하기 위한 요청을 보낼 때 HTTP 프로토콜 사용.
응용계층에서 웹서버에 있는 html 데이터를 얻어야 하므로 "GET / index.html HTTP/1.1 ~"과 같은 HTTP 메시지를 보냄.
전송계층으로 이 데이터가 전달되고, 여기서 TCP 헤더가 붙음. 이 데이터를 세그먼트라고 부름. TCP 헤더에는 어느 애플리케이션에 데이터를 보내야할지가 담겨 있음. 출발지 포트 번호와 목적지 포트 번호가 그 역할. 출발지 포트 번호는 잘알려진 포트가 아닌 포트(1025번 이상의 포트) 중에서 무작위로 선택됨. 한편 목적지 포트 번호는 HTTP이므로 80번 포트가 됨.
네트워크 계층으로 세그먼트 데이터가 전달되고, 여기서 IP 헤더가 붙음. IP 헤더에 출발지 컴퓨터와 목적지 서버의 위치가 각각 출발지 IP 주소, 목적지 IP 주소 형태로 추가됨. IP 헤더가 붙은 데이터를 IP 패킷이라고 함.
데이터 링크 계층으로 IP 패킷이 전달됨, 여기서 이더넷 헤더가 붙음. 이더넷 헤더가 붙은 데이터를 이더넷 프레임이라고 부름.
물리 계층으로 이더넷 프레임이 전달되고, 이 데이터가 전기 신호로 변환되어 네트워크로 전송됨. 이 전기 신호 변환을 위해선 랜 카드가 사용됨.
2. 스위치A
물리 계층에서 데이터가 전기 신호로 도착
스위치A는 데이터 링크 계층에서 데이터를 전기신호로 변환하여 라우터A로 전송
3. 라우터A
물리 계층에서 전기신호를 전달받음
데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교하여 같다면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 수행
네트워크 계층에 전달하고 자신의 라우팅 테이블과 목적지 IP 주소를 비교. 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으므로 라우팅을 할 수 있음. 현재 출발지 IP 주소를 라우터A의 외부 IP 주소(실제로는 WAN 측)로 변경.
데이터 링크 계층으로 데이터를 전달하고 라우터 B로 보내지도록 이더넷 헤더와 트레일러를 붙임
물리 계층에서 데이터를 전기신호로 변환하여 네트워크로 전달 -> 라우터 B로 데이터가 전달됨
4. 라우터B
물리 계층에서 전기신호를 전달받음
데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교하여 같다면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 수행
네트워크 계층에 전달하고 자신의 라우팅 테이블과 목적지 IP 주소를 비교. 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으므로 라우팅을 할 수 있음. 현재 출발지 IP 주소를 라우터B의 내부 IP 주소(실제로는 LAN 측)로 변경.
데이터 링크 계층으로 데이터를 전달하고 스위치로 보내지도록 이더넷 헤더와 트레일러(FCS)를 붙임
물리 계층에서 데이터를 전기신호로 변환하여 네트워크로 전달 -> 스위치 B로 데이터가 전달됨
5. 스위치B -> 웹 서버
물리 계층에서 데이터가 전기 신호로 도착
스위치B는 전기신호를 데이터 링크 계층에서 처리하고 웹 서버에 데이터를 전기 신호로 전달
6. 웹 서버
물리 계층에서 데이터가 전기 신호로 도착
데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교하여 같다면 이더넷 헤더와 트레일러를 분리
네트워크 계층에 전달하고 목적지 IP 주소와 웹 서버의 IP 주소가 같은 지를 비교. 주소가 같으면 IP 헤더를 분리
전송 계층에서 목적지 포트 번호를 확인하여 어떤 애플리케이션으로 전달해야되는 지를 판단, TCP 헤더를 분리
응용 계층으로 데이터가 도착
이 일련의 과정은 컴퓨터가 웹서버로 요청을 하는 과정이며 이후에는 웹서버로부터의 응답이 이루어진다.
이러한 요청과 응답이 반복되며 사용자는 원하는 정보를 얻을 수 있게 된다.
댓글