32. 랜 카드에서의 데이터 전달과 처리

네트워크의 구성

OSI 모델

  • 192.168.1.0/24, 172.16.0.0/16, 192.168.10.0/24로 총 세개의 네트워크로 나눠져있음
  • 위 그림 전체 모습을 OSI 모델로 나타내면 아래와 같이 구성됨

컴퓨터의 데이터가 전기 신호로 변환되는 과정

웹 브라우저에 URL을 입력해 웹 서버에 도착할 때까지 이루어지는 OSI 모델의 캡슐화와 역캡슐화

  • 웹 사이트에 접속해야 하므로 OSI 모델의 응용 계층에서 캡슐화가 시작됨

응용 계층

  • 웹 브라우저에 URL을 입력하고 Enter를 누르면 캡슐화가 시작됨
    • 3-way 핸드셰이크는 이미 완료되어 연결이 확립되었다고 가정
  • 컴퓨터에서 웹 브라우저를 이용하여 웹 서버의 웹 사이트에 접속하기 위한 요청을 보낼 때 HTTP 프로토콜을 사용함

  • 응용 계층에서는 웹 서버에 있는 html 데이터를 얻어야 하므로 GET /index.html HTTP/1.1 ~과 같은 HTTP 메시지를 보냄
    • HTTP 메시지의 GET은 데이터를 보내달라는 의미

전송 계층

  • 이 데이터가 전송 계층에 전달되고 전송 계층에서 TCP 헤더가 붙음
    • 세그먼트 = TCP 헤더 + 데이터
  • 전송 계층의 TCP 헤더에서 어느 애플리케이션에 데이터를 보내야 하는지 식별하는 출발지 포트 번호목적지 포트 번호
    • 출발지 포트 번호(웹 브라우저)는 잘 알려진 포트가 아닌 포트(1025번 이상인 포트) 중에서 무작위로 선택됨 -> 여기서는 3500번 포트를 사용
    • 목적지 포트 번호는 HTTP이므로 80번 포트가 됨

네트워크 계층

  • 전송 계층에서 전달받은 세그먼트(데이터)IP 헤더를 붙임
    • IP 패킷 = IP 헤더 + 데이터
  • IP 헤더에 출발지 IP 주소(출발지 컴퓨터)목적지 IP 주소(목적지 서버의 위치)가 추가됨

데이터 링크 계층

  • 네트워크 계층에서 전달받은 데이터에 이더넷 헤더를 붙임
    • 이더넷 프레임 = 이더넷 헤더 + 데이터

물리 계층

  • 물리 계층에서 전기 신호로 변환되어 네트워크로 전송됨
    • 데이터를 전기신호로 변환할 때 랜 카드가 사용됨

33. 스위치와 라우터에서의 데이터 전달과 처리

스위치에서의 데이터 전달과 처리

  • 스위치 A는 데이터 링크 계층에서 데이터를 전기 신호로 변환하여 라우터 A로 전송함

라우터에서의 데이터 전달과 처리

  • 스위치 A에서 라우터 A로 전기 신호가 전달됨

라우터 A에서의 캡슐화 역캡슐화

라우터 A 역캡슐화

  • 스위치 A에서 데이터가 전기 신호로 변화되어 케이블을 통해 흘러 라우터 A에 전송
  • 라우터 A는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교함
  • 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 수행함
  • 다음으로 네트워크 계층에 전달하고 자신의 라우팅 테이블목적지 IP 주소를 비교함

라우터 A 캡슐화

  • 라우터 A의 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으므로 라우팅을 할 수 있음
  • 현재 출발지 IP 주소 192.168.1.10을 라우터의 외부 IP 주소(실제로는 왠(WAN) 측)인 172.16.0.1로 변경함
  • 그 다음 데이터 링크 계층으로 전달하여 라우터 B로 보내지도록 이더넷 헤더와 트레일러를 붙임
  • 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크로 전달함

  • 데이터는 전기 신호 형태로 라우터 A에서 라우터 B로 전달됨

라우터 B에서의 캡슐화 역캡슐화

라우터 B 역캡슐화

  • 데이터가 전기 신호로 변환되어 케이블을 통해 라우터 A에서 라우터 B로 도착
  • 라우터 B는 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교함
  • 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화 수행
  • 네트워크 계층에 전달되면 자신의 라우팅 테이블과 목적지 IP 주소를 비교함
  • 라우터 B의 라우팅 테이블을 확인하면 목적지 IP 주소의 경로를 알 수 있으므로 라우팅을 할 수 있음

라우터 B 캡슐화

  • 현재의 출발지 IP 주소 172.16.0.1을 라우터 B의 내부 IP 주소(실제는 랜(LAN) 측)인 192.168.10.1로 변경함
  • 그 다음 데이터 링크 계층에 전달하여 스위치에 전달되도록 이더넷 헤더와 트레일러(FCS)를 붙임
  • 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크로 전달함

  • 전기 신호의 형태의 데이터가 라우터 B에서 스위치 B로 전달됨

  • 스위치 B는 전기 신호를 데이터 링크 계층에서 처리하고 웹 서버에 데이터를 전기 신호로 전달함

34. 웹 서버에서의 데이터 전달과 처리

웹 서버에서의 데이터 전달과 처리

웹 서버에서 이루어지는 OSI 모델의 역캡슐화

  • 데이터가 전기 신호로 웹 서버에 도착하면 웹 서버는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교함
  • 주소가 같으면 이더넷 헤더와 트레일러를 분리하고 네트워크 계층에 전달함

  • 네트워크 계층에서 목적지 IP 주소와 웹 서버의 IP 주소가 같은지 확인함
  • 주소가 같으면 IP 헤더를 분리하고 전송 계층에 전달함

  • 전송 계층에서 목적지 포트 번호를 확인하여 어떤 애플리케이션으로 전달해야 되는지 판단하고 TCP 헤더를 분리하여 응용 계층에 전달함

  • 응용 계층에 도착함

정적 라우팅과 동적 라우팅

라우팅

  • 패킷을 목적지 컴퓨터까지 보낼 때 최적의 경로를 선택하여 전송하는 것
  • 라우팅은 크게 정적 라우팅동적 라우팅이라는 두 가지 방법으로 나뉨

1. 정적 라우팅

  • 관리자가 미리 라우팅 테이블에 경로를 수동으로 추가하는 방법
  • 목적지까지의 경로를 고정하거나 목적지까지의 경로가 하나로 한정되는 경우에 사용함
  • 네트워크에 존재하는 모든 목적지 네트워크의 정보를 라우터에 알려줘야 함
    • 이것을 관리자가 수동으로 설정해야 하므로 소규모 네트워크에 사용됨

장점

  • 라우팅 정보가 교환되지 않아 대역폭에 대한 부담이 적음
  • 라우팅 정보가 교환되지 않으므로 보안을 유지하는데 좋음

단점

  • 동적으로 반영되지 않으므로 어떤 겨오에 장애가 발생해도 다른 경로로 우회할 수 없음
    • 이럴 때는 관리자가 설정을 하나하나 변경해야 해서 번거로움

2. 동적 라우팅

  • 네트워크 변경을 자동으로 감지하여 라우팅 테이블을 업데이트하거나 네트워크 장애가 발생했을 때 라우터끼리 정보를 교환하여 최적의 경로로 전환하는 기능
  • 관리자는 정적 라우팅처럼 라우팅 테이블에 경로를 수동으로 추가할 필요 없음
  • 대규모 네트워크에서는 라우터에 많은 경로가 등록되기 때문에 정적 라우팅을 지원하지 않고 동적 라우팅을 사용하여 경로를 자동으로 업데이트

느낀점

  • 웹 사이트에 접속해서 검색을 하거나 메일을 주고 받는 모든 과정이 요청과 응답의 교환을 하는 과정을 반복하면서 이루어진다는 내용이 흥미로웠고 앞에서 배운 내용들을 전체적인 흐름을 파악할 수 있었다.

reference

모두의 네트워크