클라이언트 컴퓨터에서 웹 서버에 웹 사이트를 요청하는 과정을 살펴보자.
웹 사이트 접속 시의 캡슐화 과정
클라이언트 컴퓨터에서 GET /index.html HTTP/1.1 과 같은 HTTP 메시지
를 전송계층으로 보낸다.
HTTP 메시지에 TCP 헤더를 붙인다. 이때, TCP 헤더 내 출발지 포트번호는 랜덤포트(1025번 이상) 에서 랜덤으로 선택되어 웹 브라우저에 할당되며, 도착지 포트번호는 80번 포트가 된다. 이후, 이 세그먼트를 네트워크 계층으로 전송한다.
세그먼트에 IP 헤더를 붙인다. 출발지, 도착지의 IP 주소를 붙여 IP 패킷을 데이터 링크 계층으로 전달한다.
이더넷 헤더와 트레일러를 붙여 이더넷 프레임을 만든 뒤, 물리 계층으로 전달한다.
물리 계층에서 랜 카드를 통해 이더넷 프레임을 전기 신호로 변환하여 네트워크로 전송한다.
스위치에서의 데이터 전달과 처리
컴퓨터에서 받은 전기 신호를 데이터 링크 계층에서 확인한 뒤, 다시 전기 신호로 변환하여 라우터로 전송
라우터에서의 데이터 전달과 처리
컴퓨터에서 받은 전기 신호를 데이터 링크 계층에서 MAC 주소를 자신의 주소와 비교하여 같다면, 이더넷 헤더와 트레일러를 분리
네트워크 계층에서 목적지 IP 주소를 라우팅 테이블에서 찾아 라우팅
이후 네트워크 계층과 물리 계층을 거쳐 다시 캡슐화하여 전기 신호로 라우팅한 네트워크로 전송
웹 서버의 역캡슐화 과정
들어온 전기 신호를 데이터 링크 계층에서 목적지 MAC 주소와 자신의 MAC 주소를 비교하여 같다면 이더넷 헤더와 트레일러를 분리하고, 네트워크 계층에 전달
네트워크 계층에서 목적지 IP 주소와 자신의 IP 주소를 확인하고 같다면 IP 헤더를 분리하여 전송 계층에 전달
전송 계층에서 목적지 포트 번호를 확인하고, 어느 애플리케이션으로 가야하는 정보인지 판단 후 TCP 헤더를 분리하여 응용 계층에 전달
추가.
라우팅: 패킷을 목적지까지 보낼 때 최적의 경로를 선택하여 전송하는 것
정적 라우팅
미리 라우팅 테이블에 경로를 수동으로 추가해놓는 방법
목적지까지의 경로가 하나로 한정되거나, 경로를 고정해야할 때 사용
네트워크에 존재하는 모든 목적지 네트워크 정보를 라우터에 알려줘야 하므로 소규모 네트워크에서만 사용
라우팅 정보를 교환하지 않아 대역폭 부담이 적고, 보안에도 좋음
장애 발생 시 다른 경로로 우회가 불가능하여 관리자가 직접 재설정해야하는 번거로움이 존재
동적 라우팅
네트워크 변경을 자동으로 감지하여 라우팅 테이블을 업데이트하거나 네트워크 장애 발생 시 라우터끼리 정보를 교환하여 최적의 경로로 전환
관리자가 별도로 관리할 필요가 없음
대규모 네트워크에서 경로를 자동으로 업데이트하며 사용