프로토콜 스택에서 이더넷부터의 동작
프로토콜 스택에서 이더넷 프레임은 48비트 목적지 주소와 16비트 이더넷 유형 필드를 포함하는데, 이 목적지 주소는 링크 계층 주소 또는 MAC주소라고 불린다.
이더넷 유형 필드 값 중에 (16진법 기준) 0x0800 은 IPv4, 0x0806은 ARP, 0x86DD는 IPv6를 표시하는 표시자가 된다. MAC 주소가 일치한다면 이후 이더넷 유형 필드를 확인하여 알맞는 3계층 프로토콜이 처리할 수 있도록 돕는다.
3계층 동작
데이터그램 안의 IP주소 등 항목을 검사한다. 이후 본인 주소와 일치하고 데이터그램의 헤더에 오류가 없을 경우, 8비트 IPv4 프로토콜 필드 (IPv6에서는 Next protocol field)를 사용하여 어떤 프로토콜을 호출해야하는지 결정한다.
여기서 중요하게 다가오는 것은 해당 필드에 IPv4있 나타내는 4 가 나타날 수 있다는 점이다. 이 값은 IP 데이터그램의 페이로드 영역 내에 다시금 IP 데이터그램이 존재할 수 있다는 것을 의미한다. 이는 추후 얘기되는 터널링을 가능하게 만드는 작업이 된다.
4계층 동작
4계층에서는 3계층에서의 주소 기반 역다중화와 비슷하게 포트 기반 역다중화를 활용한다. 이는 기존 호스트 - 호스트 기반 애플리케이션 통신 구조를 타파하고 프로세스 - 프로세스 기반 통신 구조를 만드는 기반이 된다(라고 교수님이 엄청 말하셨다).
표준 포트 번호를 지정하는 기구는 IANA다. 포트 번호들은 몇 개의 특별한 범위들로 구분된다.
0 - 1023 => well-known port 1024 - 49151 => registered port 49152 - 65535 => dynamic/private port
기본적인 well-known port의 경우 이곳에서 서비스를 제공하려면 관리자 혹은 root 권한을 가진 채 접근해야한다.
DNS
IP 는 4 개의 숫자로 구성된 하나의 조합이다. 사람들이 각자 접근하고자 하는 사이트의 숫자 4개를 전부 기억할 수 없는 노릇이기 때문에, 우리는 DNS를 만들어 활용한다. 여기서 흥미로운 점이 있다면 DNS는 7계층의 프로토콜인데, 동작하기 위해 다른 프로토콜들에 의존하게 된다.
DNS는 동작을 위해 3, 4계층의 프로토콜을 다음과 같은 방식으로 활용한다.
DNS는 주로 UDP 포트 53을 사용해 요청과 응답을 처리한다. 때로는 TCP를 사용하기도 한다. 특히 대형 DNS응답이나 연결의 신뢰성을 보장해야하는 경우 TCP를 사용하고 있다. DNS요청과 응답 전반에서 IP가 사용된다(사실 통신하는거라 당연한 말. 하드웨어 계층은 굳이 언급하지 않는 듯).
2계층 동작
2계층은 통상적으로 스위치라고 불리며, 전기 신호 - 디지털 데이터 간의 전환 작업을 수행하는 랜카드(NIC)가 존재하는 계층이다. 랜카드는 무선(Wi-Fi, IEEE 802.3), 유선(Ethernet, IEEE 802.11) 으로 나뉘는데, 각각에 맞는 프로토콜에 기반하여 전기적 신호를 디지털 데이터로 변환한다. 이 과정에서, 디지털 데이터로 변환하고 이를 상위 계층에 전달하는 역할을 하는 것이 운영체제 내 드라이버이며, 각 네트워크 장치 드라이버가 랜카드를 조작하여 데이터 변환을 진행한다.
그러나 이와 별개로 2계층 장치인 라우터의 경우 별도의 상위 계층을 위한 작업을 수행하지 않고, 변환된 디지털 데이터를 기반으로 목적지 MAC주소를 파악한 뒤 해당 주소에 맞게 전송하는 기능을 주로 수행한다. 이는 로컬 네트워크(LAN) 상에서 이루어지며, 만일 로컬 네트워크를 벗어나는 요청이 들어오는 경우 3계층 스위치에서 IP를 기반으로 추가적인 전송 작업을 수행한다.
스위치의 경우 별도의 MAC 주소를 가지지 않고, 다중 랜포트를 통해 로컬 네트워크 내에서 네트워크 인터페이스를 확장하는 기능을 주요하게 진행한다. 타 호스트 혹은 타 네트워크와의 통신을 위해서는 상위 계층에서의 도움이 필요하다.
스위치에는 각각 자신의 랜포트에 연결되어있는 컴퓨터의 MAC주소를 저장할 수 있는 데이터베이스가 존재하여, 연결된 컴퓨터의 주소를 학습하고 기억한다. 이를 통해 스위치로 전송되는 데이터를 제어하고 올바른 수신지로 데이터를 전달하게 된다.
계층적 라우팅
특정 네트워크 토폴로지 내에서, 라우팅을 위한 정보 저장량을 최적화하기 위한 기법.
계층적 라우팅에서는 트리 최상단의 라우터에 담기는 라우팅 정보를 최소화하고자, 본인의 IP를 기준으로 트리를 구분한다. 이를 통해 최소한의 정보만 남겨 라우팅을 진행 가능하다.
여기에는 longest prefix search 알고리즘이 사용된다.
또한 이러한 트리 토폴로지에서 나오는 개념이 병합이다.
병합
경로 병합을 의미한다.
수치상 인접한 IP접두사들을 합쳐서 더 큰 주소 공간을 나타내는 하나의 짧아진 접두사를 만드는 방식으로 동작하며, 이렇게 만들어진 접두사를 병합체 혹은 축약체라고 부른다.