5. 네트워크 계층: 제어 평면 🤨 네트워크 계층을 두개로 나누면? Control Plane: 네트워크 장비를 제어하는 뇌에 해당 Data Plane: 데이터를 전송하는 역할 5.1 개요 포워딩과 라우팅 개념은 네트워크 계층 학습 시 계속 등장하는 개념이다. 정확하게 짚고 넘어가자! 포워딩 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것 라우팅 출발지에서 목적지까지의 경로를 결정하는 것 라우터별 제어 각 라우터는 다른 라우터의 라우팅 구성요소와 통신하여 자신의 포워딩 테이블의 값을 계산하는 라우팅 구성요소를 가지고 있다. OSPF와 BGP 프로토콜이 이 라우터별 제어 방식을 기반으로 한다. 논리적으로 중앙 집중된 제어 컨트롤러가 포워딩 테이블을 작성하고 이를 모든 개별 라우터가 사용할 수 있도록..
4.3.5 IPv6 등장 배경: IPv4 주소 부족 문제 큰 IP 주소 공간의 필요에 따라, 새로운 IP 프로토콜인 IPv6가 개발되었다. IPv6 데이터그램 포맷 🙂 헤더를 IPv4와 비교해서 보면 좋다! 32비트였던 IPv4를 128비트로 2의 128승은 엄청 큰 수 hop limit은 TTL과 같다. 없으면 곤란하다. 데이터그램을 전달할 때마다 1씩 감소한다. 홉 제한수가 0보다 작아지면 데이터그램을 버린다. checksum이 없어짐. next hdr 옵션이 있으면 포인터로 가리키게 된다. 옵션이 또 있으면 next hdr가 있어 또 포인터로 가리키게 되고 이런식으로 하면 무한대까지 가능하지만 사이즈는 한정되어 있으므로 무한대까지는 안된다. 라우터한테 일을 덜 시킨다. 헤더들을 이해하는 것은 라우터..
4.3 인터넷 프로토콜(IP): IPv4, 주소 지정, IPv6 등 현재 사용 중인 IP는 두 가지 버전 IPv4와 IPv6이 있다. 4.3.1 IPv4 데이터그램 형식 버전 번호 4비트 데이터그램의 IP 프로토콜 버전을 명시 라우터는 버전 번호를 확인하여 데이터그램의 나머지 부분을 어떻게 해석할지 결정 헤더 길이 네비트로 IP 데이터그램에서 실제 페이로드가 시작하는 곳을 결정 IPv4 데이터그램은 헤더에 가변 길이와 옵션을 포함하므로 대부분 IPv4 데이터그램은 옵션을 포함하지 않으므로 대체로 IPv4 데이터그램 헤더는 20바이트이다. 서비스 타입(TOS) 서로 다른 유형의 IP 데이터그램을 구별 데이터그램 길이 바이트로 계산한 IP 데이터그램(헤더와 데이터)의 전체 길이 식별자, 플래그, 단편화 오프..
4.1 네트워크 계층 개요 각 라우터의 데이터 영역 역할은 입력 링크에서 출력 링크로 데이터그램을 전달하는 것이다. 네트워크 제어 영역의 근본적 역할은 데이터그램이 송신 호스트에서 목적지 호스트까지 잘 전달되게끔 local 포워딩, pre-router 포워딩을 대응시키게 만드는 것이다. 4.1.1 포워딩과 라우팅: 데이터 영역과 제어 영역 네트워크 계층의 근본적 역할은 송신 호스트에서 수신 호스트로 패킷을 전달하는 것 포워딩(전달) 네트워크 계층 데이터 영역에 의해 실행되는 매우 중요한 기능이다. 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야 한다. 매우 짧은 시간(보통 몇 나노초) 단위를 갖기에, 대표적으로 하드웨어 실행된다. 라우팅 네트워크 전반에 걸쳐 출..
3.1 트랜스포트 계층 서비스 및 개요 트랜스포트 계층 프로토콜 서로 다른 호스트에서 동작하는 애플리케이션 프로세스들 간의 논리적 통신을 제공한다. 네트워크 라우터가 아닌 종단 시스템에서 구현된다. 세그먼트(segment) 송신 측의 트랜스포트 계층은 송신 애플리케이션 프로세스로부터 수신한 메시지를 트랜스포트 계층 패킷으로 변환한다. 이를 세그먼트라고 부른다. 이러한 변환은 애플리케이션 메시지를 트랜스포트 계층 세그먼트로 만들기 위해 작은 조각으로 분할하고, 각각의 조각에 트랜스포트 계층 헤더를 추가함으로써 수행된다. 3.1.1 트랜스포트 계층과 네트워크 계층 사이의 관계 트랜스포트 계층 프로토콜 서로 다른 호스트에서 동작하는 프로세스들 사이의 논리적 통신을 제공 네트워크 계층 프로토콜 호스트들 사이의 ..
다음의 간단한 클라이언트-서버 애플리케이션을 UDP와 TCP로 구현해보자. 클라이언트는 키보드로부터 한 줄의 문자(데이터)를 읽고 그 데이터를 서버로 보낸다. 서버는 그 데이터를 수신하고 문자를 대문자로 변환한다. 서버는 수정된 데이터를 클라이언트에게 보낸다. 클라이언트는 수정된 데이터를 수니하고 그 줄을 화면에 나타낸다. 2.7.1 UDP를 이용한 소켓 프로그래밍 송신 프로세스가 데이터의 패킷을 소켓 문 밖으로 밀어내기 전에, UDP를 사용할 때 먼저 패킷에 목적지 주소를 붙여 넣어야 한다. 이 패킷이 송신자의 소켓을 통과한 후 인터넷은 이 목적지 주소를 이용하여 그 패킷을 인터넷을 통해 수신 프로세스에 있는 소켓으로 라우트할 것이다. 패킷이 수신 소켓에 도착하면 수신 프로세스는 소켓을 통해 그 패킷을..