[모두의 네트워크]8장 네트워크 전체 흐름
데이터 전달과 처리
컴퓨터 → | 스위치 A → | 라우터 A → | 라우터 B → | 스위치 B → | 웹 서버 |
---|---|---|---|---|---|
192.168.1.10 | 192.168.1.1 172.16.0.1 | 192.168.10.1 172.16.0.2 | 192.168.10.5 | ||
응용 계층 전송 계층 네트워크 계층 데이터 링크 계층 물리 계층 | 데이터 링크 계층 물리 계층 | 네트워크 계층 데이터 링크 계층 물리 계층 | 네트워크 계층 데이터 링크 계층 물리 계층 | 데이터 링크 계층 물리 계층 | 응용 계층 전송 계층 네트워크 계층 데이터 링크 계층 물리 계층 |
- 위 예시는 총 세 개의 네트워크로 구성되어 있다.
- 192.168.1.0/24, 172.16.0.0/16, 192.168.10.0/24
컴퓨터
응용 계층 → 전송 계층 → 네트워크 계층 → 데이터 링크 계층 → 물리 계층
- 웹 브라우저에 URL을 입력하고 엔터 키를 누른다.
- 이전에 3-way 핸드셰이크를 완료해 연결이 확립되어 있어야 한다.
- HTML 데이터를 얻기 위해 응용 계층에서 HTTP 메세지를 보낸다.
- 전송 계층에서 TCP 헤더를 붙여 세그먼트를 만든다.
- 출발지 포트 번호는 well-known 포트가 아닌 1025번 이상의 포트 번호 중 무작위로 선택된다(3500번으로 가정).
- 목적이 포트 번호는 HTTP이므로 80번이다.
- 네트워크 계층에서 세그먼트에 IP 헤더를 붙여 IP 패킷을 만든다.
- IP 헤더에는 출발지 IP 주소와 목적지 IP 주소가 포함된다.
- 데이터 링크 계층에서 IP 패킷에 이더넷 헤더와 트레일러를 붙여 이더넷 프레임을 만든다.
- 이더넷 헤더에는 목적지, 출발지, 라우터 A, 컴퓨터의 MAC 주소가 포함된다.
- 트레일러는 데이터의 무결성을 보장하는 데 사용한다.
- 물리 계층에서 이를 전기 신호로 변환해 네트워크로 전송한다.
- 변환 과정에 랜 카드가 사용된다.
스위치 A
물리 계층 → 데이터 링크 계층 → 물리 계층
- 물리 계층에서 전기 신호로 변환된 데이터를 스위치 A로 전송한다.
- 데이터 링크 계층에서 이더넷 헤더와 트레일러를 붙인 뒤 물리 계층으로 전달한다.
- 이더넷 헤더에는 목적지, 출발지, 라우터 A, 컴퓨터의 MAC 주소가 포함된다.
- 물리 계층에서 이를 전기신호로 변환하고, 전기 신호는 케이블을 통해 라우터 A로 전송한다.
라우터 A와 라우터 B
물리 계층 → 데이터 링크 계층 → 네트워크 계층 → 데이터 링크 계층 → 물리 계층
라우터 A
- 물리 계층에서 스위치 A로부터 온 데이터의 전기 신호가 라우터 A에 도착한다.
- 데이터 링크 계층에서 라우터 A는 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.
- 주소가 같으면 이더넷 헤더와 트레일러를 분리하고(역캡슐화) 네트워크 계층에 전달한다.
- 네트워크 계층에서 라우터는 자신의 라우팅 테이블과 목적지 IP 주소를 비교한다.
- 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으면 라우팅을 할 수 있다.
- 출발지 IP 주소 192.168.1.10을 라우터의 외부 IP 주소인 172.16.0.1로 변경하고 데이터 링크 계층으로 전달한다.
- 데이터 링크 계층에서 이더넷 헤더와 트레일러를 붙이고 물리 계층으로 전송한다.
- 이더넷 헤더에는 목적지, 출발지, 라우터 A, 라우터 B의 MAC 주소가 포함된다.
- 물리 계층에서 데이터를 전기 신호로 변환해 네트워크로 전달한다.
라우터 B
- 물리 계층에서 라우터 A로부터 보내진 전기 신호가 라우터 B에 도착한다.
- 데이터 링크 계층에서 라우터 B는 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.
- 주소가 같으면 이더넷 헤더와 트레일러를 분리하고(역캡슐화) 네트워크 계층에 전달한다.
- 네트워크 계층에서 라우터는 자신의 라우팅 테이블과 목적지 IP 주소를 비교한다.
- 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으면 라우팅을 할 수 있다.
- 출발지 IP 주소 172.16.0.1을 라우터의 내부 IP 주소인 192.168.10.1로 변경하고 데이터 링크 계층으로 전달한다.
- 데이터 링크 계층에서 이더넷 헤더와 트레일러를 붙이고 물리 계층으로 전송한다.
- 이더넷 헤더에는 목적지, 출발지, 라우터 B, 웹 서버의 MAC 주소가 포함된다.
- 물리 계층에서 데이터를 전기 신호로 변환해 네트워크로 전달한다.
스위치 B
- 물리 계층에서 라우터 B가 보낸 전기 신호를 스위치 B가 받는다.
- 데이터 링크 계층에서 이더넷 헤더와 트레일러를 붙인 뒤 물리 계층으로 전달한다.
- 이더넷 헤더에는 목적지, 출발지, 라우터 B, 웹 서버의 MAC 주소가 포함된다.
- 물리 계층에서 이를 전기신호로 변환하고, 전기 신호는 케이블을 통해 웹서버로 전송한다.
웹 서버
물리 계층 → 데이터 링크 계층 → 네트워크 계층 → 전송 계층 → 응용 계층
- 물리 계층에서 스위치 B로부터 전기 신호로 변환된 데이터가 전달된다.
- 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.
- 주소가 같으면 이더넷 헤더와 프레일러를 분리하고 네트워크 계층에 전달한다.
- 네트워크 계층에서 목적지 IP 주소와 웹 서버의 IP 주소가 같은지 비교한다.
- 주소가 같으면 IP 헤더를 분리하고 전송 계층에 전달한다.
- 전송 계층에서 목적지 포트 번호를 확인해 어떤 애플리케이션으로 보내야 하는지 판단한다.
- 그 뒤 TCP 헤더를 분리해 응용 계층에 전달한다.
- 응용 계층에 데이터가 도착한다.
정작 라우팅과 동적 라우팅
- 라우팅: 패킷을 목적지 컴퓨터까지 보낼 때 최적의 경로로 설정해주는 과정
정적 라우팅
- 관리자가 라우팅 테이블에 경로를 수동으로 추가하는 방법
- 목적지까지의 경로를 고정하거나, 경로가 하나로 한정되는 경우 사용
- 소규모 네트워크에서 사용
- 라우팅 정보가 교환되지 않아 대역폭 부담이 적고 보안이 좋다.
- 경로에 장애가 발생하면 다른 경로로 우회할 수 없어 관리자가 직접 설정을 변경해야 한다.
동적 라우팅
- 네트워크 변경을 자동으로 감지해 라우팅 테이블을 업데이트한다.
- 네트워크에 장애가 발생 시 라우터끼리 정보를 교환해 최적의 경로로 전환한다.
- 대규모 네트워크에서 사용
This post is licensed under CC BY 4.0 by the author.