Section 01. 개요
🌟 (개념적인 수준에서) 전체 인터넷: 수백만의 컴퓨터를 연결하는 블랙박스 네트워크
(서로 연결된 LAN(근거리)과 WAN(원거리)의 조합으로서)
인터넷: LAN과 WAN들의 조합인 네트워크들이 서로 연결된 네트워크
+) 연결 장치를 통해 연결된 수 많은 네트워크(링크)로 구성된다.
Section 02. 교환
발신지부터 목적지까지 메시지를 전달하는 과정 중, 많은 결정이 이루어진다. 그 중 하나는 메시지가 연결 장치에 도착하면 패킷을 송신하는 출력 포트를 결정해야 한다.
즉, 어디로 메시지를 전송할 것이냐를 결정해야 한다.
이때, 연결 장치는 한 포트를 다른 포트에 연결하는 교환기(switch) 역할을 한다.
01. 회선 교환(Circuit Switching)
회선 교환망: 자동 스위치를 이용해 회선을 (자동으로) 움직여 통신하는 네트워크
- 메시지 전달 전, 발신지와 목적지 사이에 물리 회선(링크)를 생성, (물리적 통신 회선) 연결한 후 메시지를 전달한다.
- 메시지 전달 후 네트워크에 통보한다.
- 다른 호스트들의 연결을 위해 링크 연결 해제한다.
- 통신할 때, 특정 물리 회선을 독점한다.
⇒ 초기 전화시스템
- 데이터 전송 전, 물리적 통신 회선 연결 / 통신망을 통한 연결이 선행되어야 한다.
- 전체 경로가 미리 확보되어야 한다. (독점)
- 송, 수신측이 항상 동시에 존재해야만 통신이 가능하다.
- 기억 장치를 사용하지 않는다.
- 패킷 교환 방식에 비해 접속에 다소 긴 시간이 소요되지만, 전송 지연은 거의 없다.
- 송, 수신측이 항상 동시에 존재하며 경로를 독점하기 때문이다.
- 연결만 되면 실시간 통신이 가능하여 통신 속도가 빠르다.
02. 패킷 교환(Packet Switching)
패킷 교환망: 오늘날 인터넷의 네트워크 계층. 라우터가 회선 상태에 따라 패킷을 전송하는 네트워크
- 상위층(전송)으로부터 받은 메시지를 패킷 단위로 분할한다.
- 발신지에서 목적지까지 패킷 단위로 전달한다.
- 이때, 네트워크 내의 교환기를 라우터(router)라고 한다.
- 패킷 교환망은 패킷을 최종 목적지까지 전달한다.
⇒ 데이터그램(datagram), 가상회선(virtual circuit)
Section 03. 네트워크 계층에서 패킷 교환
네트워크 계층은 패킷 교환망으로 설계된다. 발신지에서 메시지는 (상위층에서 내려오며) 데이터그램(datagram) 단위로 분할되며, 발신지에서 목적지로 전달된다.
데이터그램(datagram): 네트워크 계층의 가변길이 패킷으로 헤더와 데이터를 같이 묶은 것?
수신된 데이터그램은 (상위층으로 올라가며) 목적지에서 원래의 메시지로 재조립된다.
01. 비연결형 서비스(connectionless service)
비연결형 서비스는 각 패킷을 연결되지 않게, 상호 독립적으로 처리한다.
라우터는 목적지 주소를 기반으로 패킷을 전달한다. 이때, 각 라우터가 갖고 있는 라우팅 테이블을 이용해 입력 포트로 들어온 데이터그램의 목적지 주소로 어떤 출력 포트로 전달할지 결정한다. 이 과정을 포워딩(운동, forwarding) 처리라고 한다.
02. 연결형 서비스(connection-oriented service)
연결형 서비스는 출발할 때의 패킷 순서와 도착할 때의 패킷 순서를 동일하게, 즉 메시지 속 패킷들이 서로 갖고 있는 관계성을 유지하며 전달하는 서비스이다.
⇒ 가상 회선(virtual circuit) 방식
이러한 서비스를 제공하기 위해서 연결설정(setup), 데이터 전송, 연결해제(teardown) 과정이 사용된다.
- 데이터그램 송신 전, 경로를 지정하는 가상 회선(virtual circuit)을 생성한다.
- 연결 생성 후 가상 회선 경로를 따라 데이터그램을 전달한다.
- 패킷에는 가상 회선 식별자(flow label, 흐름 레이블)가 존재하며, 이 레이블을 기반으로 포워딩한다.
이때 L1, L2는 가상 회선 식별자, 즉 flow label이다. 연결설정 과정을 통해 가상 회선 경로에 존재하는 라우터의 라우팅 테이블에 가상 회선 식별자가 무엇인지에 대한 엔트리가 생기게 되고, 이 엔트리를 통해 패킷을 전송한다.
- 연결 설정 단계(setup phase)
-
가상 회선을 위한 엔트리를 생성한다.
- 이때 엔트리는 라우팅 엔트리를 말하며, 라우팅 엔트리를 모은 것이 라우팅 테이블이다.
-
요청 패킷: 송신자(발신지)가 수신자(목적지)에게 발신지와 목적지 주소를 전달한다. 이때 가상 회선의 각 라우터의 라우팅 테이블에 새로운 엔트리가 생성된다.
⇒ 요청 패킷을 보내면서 각 라우터의 라우팅 테이블에 새로운 엔트리 생성
→ 엔트리의 입력 포트, 입력 레이블, 출력 포트 설정
→ B가 요청 패킷을 수신 후, A로부터 패킷을 수신할 준비가 되어 있으면 A로 온 패킷에 레이블을 할당하고 확인 응답을 보낸다.
-
확인 응답 패킷: 수신자가 송신자에게 보내는 응답으로 미완성이었던 라우팅 엔트리를 완성한다.
→ 확인 응답 패킷을 보내면서 각 엔트리 완성(레이블 할당)
→ 목적지 B가 라우터 R4에게 확인 응답, R4는 R3에게 확인 응답 전달, 전달 전달…
- 데이터 전송 과정
한 패킷이 전송되는 과정
- 연결 해제 단계(teardown phase)
- 연결 해제 패킷: 송신자, 즉 발신지가 패킷을 모두 보낸 뒤 연결 해제 패킷을 송신한다.
- 확인 응답 패킷: 수신자, 즉 목적지가 확인 응답 패킷으로 응답한다.
- 위 패킷을 주고 받으면 모든 라우터는 통신에 이용한 엔트리를 삭제하게 된다.
Section 04. 네트워크 계층 서비스
오늘날 인터넷은 비연결형 서비스를 기반으로 한다.
이때 논리 주소 체계는 인터넷 공통 식별자 시스템으로 한다. (⇒ IP 주소)
01. 발신지에서 제공되는 서비스
- 패킷화: 상위층으로부터 온 데이터를 데이터그램(헤더+데이터)으로 캡슐화
- 내려온 데이터 중에서 실제 데이터만 가져와 SA, DA, 데이터만 있는 형태로 캡슐화
- 다음 홉의 논리 주소(IP) 찾기: 라우팅 테이블을 통해 다음 경로(홉)을 찾는다.
- 다음 홉의 물리 주소(MAC) 찾기: ARP(address resolution protocol)을 이용한다.
- 다음 홉의 MAC 주소를 찾기 위해서는 또 다른 테이블을 사용하여 다음 홉의 논리 주소(IP)를 MAC 주소로 변환해야 한다. 이 과정을 ARP라고 한다.
- 필요한 경우 데이터그램 단편화: 데이터그램이 최대 크기(MTU, maximum transmission unit)보다 클 경우, 최대 크기로 자른다.
02. 각 라우터에서 제공되는 서비스
- 두 개(입력, 출력)의 인터페이스 관여
- 다음 홉의 논리 주소(IP) 찾기
- 다음 홉의 MAC 주소 찾기
- 단편화
03. 목적지 컴퓨터에서 제공되는 서비스
- 단편화된 패킷을 재조립(유효성 검사)
- 유효성 검사: 데이터그램이 올바른 라우터에 전달 되었음을 확인한다.
- 재조립한 것을 상위층에 전달
- 재조립 타이머를 설정하여 재조립 중 시간이 초과되면 재전송 오류 메시지를 전송
(참고) 단순한 컴퓨터 네트워크의 구성 요소
- 서버 컴퓨터: 웹페이지의 제공, 데이터의 저장, 네트워크를 제어하는 네트워크 운영 시스템의 저장 등과 같이 클라이언트 컴퓨터 지원을 위해 네트워크 기능을 수행하는 네트워크 상의 컴퓨터
- 허브(Hub): 네트워크 구성요소들을 연결하는 가장 단순한 장치로서 네트워크에 연결된 다른 장치로 데이터 패킷을 보낼 수 있음
- 스위치(Switch): 허브보다 조금 더 지능화된 장치로서 네트워크 상의 특정 목적지로 데이터를 재전송하거나 필터링 기능을 수행
- 라우터(Router): 패킷 데이터를 다른 네트워크를 통해 정확한 주소로 전달하기 위해 사용하는 통신 프로세서
허브, 스위치, 라우터는 모두 중간 장치이다. 이때 각 장치의 계층이 상위층일 수록 하는 역할이 증가한다.