본문 바로가기

전체 글114

chapter4. 네트워크 계층: 데이터 평면 (4.3~4.5) 목차4.3 인터넷 프로토콜(IP): IPv4, 주소체계, IPv6 등4.3.1 IPv4 데이터그램 포맷서비스 타입- 서비스 타입 비트는 각기 다른 유형의 IP 데이터그램을 구별한다.- ex) 실시간 데이터그램(IP 전화 통신 애플리케이션)과 비실시간 트래픽(FTP)을 구분하는 데 유용하다.데이터그램 길이- 바이트로 계산한 IP 데이터그램(헤더와 데이터)의 전체 길이식별자, 플래그, 단편화 오프셋- 이 세 필드는 IP 단편화와 관련이 있다.- 큰 IP 데이터그램이 여러 개의 작은 IP 데이터그램으로 분할된 다음 목적지로 독립적으로 전달되며, 페이로드 데이터가 최종 호스트의 트랜스포트 계층으로 전달되기 전에 다시 모이게 된다.- IPv6에는 단펴화를 허용하지 않는다.TTL(Time-to-live)- 라우터가.. 2025. 12. 9.
트라이 자료구조(Trie) 1. 트라이(Trie) 자료구조란?트라이는 문자열을 저장하고, 빠르게 탐색하기 위한 트리 형태의 자료구조이다. 한 단어씩 노드에 저장하는 트리 구조를 가지고 있다. 트라이 자료구조의 시간 복잡도는 생성 시 O(MxL)이고, 탐색 시 O(L)이다. (M : 총 문자열의 개수, L은 가장 긴 문자열의 길이)1-1. 트라이 구조루트 노드 루트 노드는 항상 비어있다.루트노드의 자식노드는 각 단어들의 첫 글자들이다.각 노드각 노드의 자식노드들을 Map에 저장한다.해당 노드가 단어의 마지막을 뜻하는 endOfWord를 저장한다.endOfWord 표시각 문자열의 마지막 글자를 표시한다. (위 그림에서 파란색으로 칠해져 있는 노드)boolean형 필드로 마지막 글자이면 true, 아니면 falseclass Node {.. 2025. 11. 25.
chapter3. 트랜스포트 계층 (3.6~3.8) 목차3.6 혼잡 제어의 원리3.6.1 혼잡의 원인과 비용혼잡 제어가 발생하는 3가지 시나리오를 살펴봄으로써 왜 혼잡이 발생하는지와 그 혼잡 비용에 대해 알아보자. 🔎 시나리오 1: 2개의 송신자와 무한 버퍼를 갖는 하나의 라우터두 호스트 A와 B가 아래 그림처럼 각각 출발지와 목적지 사이에 단일 홉을 공유하는 연결을 갖는다고 생각하자.- 호스트 A는 λin 바이트/초의 평균 전송률로 데이터를 보낸다고 가정하자.- 각 데이터 단위가 소켓으로 한 번만 전송된다는 점에서 원본데이터다.- 하위의 트랜스포트 계층 프로토콜은 단순하게 데이터를 캡슐화하고 전송한다. (오류 복구, 흐름 제어, 혼잡 제어 수행하지 않음)- 트랜스포트 계층과 하위 계층에서 부가적인 오버헤드를 무시하면, 호스트 A가 라우터에게 제공하는 .. 2025. 11. 10.
chapter3. 트랜스포트 계층 (3.5) 목차3.5 연결지향형 트랜스포트: TCP3.5.1 TCP 연결데이터를 다른 프로세스로 보내기 전에, 두 프로세스가 서로 '핸드셰이크'를 먼저 해야 하므로 연결지향형(connection-oriented)이다.즉, 데이터 전송을 보장하는 파라미터들을 각자 설정하기 위한 어떤 사전 세그먼트들을 보내야한다.TCP '연결'은 TCP에 존재하는 상태를 공유하는 논리적인 것이다.오직 종단 시스템에서만 동작하고 중간의 네트워크 요소(라우터와 링크 계층 스위치)에서는 동작하지 않으므로, TCP 연결 상태를 유지하지 않는다. (중간 라우터는 TCP 연결을 감지하지 못함)TCP 연결은 전이중 서비스(full-duplex service)를 제공한다.호스트 A와 호스트 B 가 TCP 연결이 있다면, 애플리케이션 계층 데이터는 .. 2025. 11. 3.
chapter3. 트랜스포트 계층 (3.1 ~ 3.4) 목차3.1 트랜스포트 계층 서비스 및 개요트랜스포트 계층 프로토콜은 각기 다른 호스트에서 동작하는 애플리케이션 프로세스 간의 논리적 통신(logical communication)을 제공한다. 논리적 통신은 애플리케이션의 관점에서 보면 프로세스들이 동작하는 호스트들이 직접 연결된 것처럼 보인다.실제로 호스트는 수많은 라우터와 다양한 형태의 링크를 통해 연결되어 있다.애플리케이션 프로세스는 메시지 운반에 사용되는 물리적 인프라스트럭처의 세부 사항에 상관없이 서로 메시지를 송신하기 위해 트랜스포트 계층에서 제공하는 논리적 통신을 사용한다.위 그림과 같이 트랜스포트 계층 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현된다.송신 측의 트랜스포트 계층은 송신 애플리케이션 프로세스로부터 수신한 메시지를 인터넷.. 2025. 10. 27.
chapter2. 애플리케이션 계층 (2.5 ~ 2.7) 목차2.5 P2P 파일 분배P2P 구조는 항상 켜져 있는 인프라스트럭처 서버에 최소한으로(혹은 전혀 안함) 의존한다.대신 간헐적으로 연결되는 호스트 쌍들(피어)이 서로 직접 통신한다.이 절에서는 커다란 파일을 한 서버에서 다수의 호스트(피어)로 분배하는 P2P 애플리케이션을 다룰 것이다. 이 파일은 리눅으 운영체제의 새로운 버전, 기존 운영체제 혹은 애플리케이션을 위한 소프트웨어 패치(patch), MP3 음악파일 혹은 MPEG 비디오 파일일 수 있다.클라이언트-서버 파일 분배 방식서버는 파일 복사본을 각 피어들에게 보내야 한다.이는 서버에게 커다란 부하를 주고 많은 양의 서버 대역폭을 소비한다.P2P 파일 분배 방식각 피어는 수신한 파일의 임의의 부분을 다른 피어들에게 재분배할 수 있어서 서버의 분배 .. 2025. 10. 20.