본문 바로가기

분류 전체보기127

[컴퓨터 네트워크] TCP의 특성 TCP와 스트림 전송 TCP(Transmission Control Protocol)는 TCP/IP 모델의 4계층인 전송 계층에서 사용하는 프로토콜로 하위 계층인 네트워크 계층에서 사용하는 IP와 엮어서 TCP/IP로 표현하는 경우가 많다. TCP나 UDP는 프로세스 대 프로세스 프로토콜이다. 여기서 프로세스는 응용프로그램의 하나로 생각하면 이해하기 쉬울 것이다. TCP에는 종단간(End-to-End, E2E)의 흐름제어 및 오류제어 등의 기능이 있어 이를 통해 데이터 전송의 신뢰성을 제공하는데, 이것이 IP와 구별되는 특성이다. '종단간'은 데이터 전송지 호스트 컴퓨터에서 최종 수신지 호스트 컴퓨터까지를 말한다. 데이터링크 계층에서 수행되는 오류제어 기능은 종단간이 아닌 이웃 노드 간의 오류제어라는 점에.. 2021. 6. 16.
[컴퓨터 네트워크] 포워딩 방식 포워딩이 최종 수신지로 전달되는 경로에 패킷을 위치시킨다는 의미라면, 라우팅에는 포워딩이 원활하게 이루어지도록 라우팅 테이블을 생성하고 참조한다는 의미가 있다. 어떤 호스트가 전송할 패킷을 갖고 있거나 라우터가 포워딩해야 하는 패킷을 수신한 경우, 최종 수신지에 이르는 최적의 경로를 찾기 위해 라우팅 테이블을 조사하게 된다. 이 방식은 비교적 간단하고 현재 널리 사용되고 있고, 이를 위해서는 라우팅 테이블이 꼭 필요하다. 그런데 오늘날과 같은 인터넷 환경에서는 라우팅 테이블에 들어가는 목록의 수가 너무 많아져 이를 해결하기 위해 다음과 같은 방식들이 추가로 개발되었다. 다음 홉 방식 다음 홉(Next Hop)이란 수신지까지 가는 경로에 있는 바로 다음 라우터를 말한다. 라우팅 테이블에 전체 경로에 대한 .. 2021. 6. 16.
[컴퓨터 네트워크] 네트워크 계층 OSI 참조모델의 3계층인 네트워크 계층(Network Layer)은 네트워크 시스템 상호 간에 패킷이 전달될 수 있도록 경로를 배정하고 중계하는 역할을 한다. 네트워크 계층이 반드시 수행해야 하는 두 가지 기능은 라우팅(Routing)과 포워딩(Forwarding)이다. 라우팅은 전송지에서 수신지까지의 경로를 결정하는 것이고 포워딩은 그 경로에 패킷을 위치시키는 것이다. 라우팅은 패킷을 전송할 수 있는 무수히 많은 경로 중에서 최적의 경로를 라우팅 알고리즘으로 선택해 라우팅 테이블에 저장하는 작업이고, 포워딩은 포워딩 테이블에 적힌 수신지 주소에 대응된 출력 포트로 패킷을 이동시키는 작업이다. 이때 패킷의 이동은 직접 전달(Direct Delivery)과 간접 전달(Indirect Delivery)의 .. 2021. 6. 16.
[자료 구조] 이진 탐색 트리 (Binary Search Tree) 개념 이진 탐색 트리(Binary search tree)는 맵의 엔트리를 저장하기에 훌륭한 자료구조이다. 이진 탐색 트리는 트리의 일종으로 한 엔트리 (k, v)에 대해 다음과 같은 특성을 같는다. k보다 작거나 같은 값을 갖는 노드는 v의 왼쪽 서브 트리에 저장된다. k보다 크거나 같은 값을 갖는 노드는 v의 오른쪽 서브 트리에 저장된다. 이진 탐색 트리는 비어 있는 외부 노드를 어떻게 표현하더라도 순서화된 맵을 표현한다. 즉, 이진 탐색 트리는 부모-자식 간의 관계를 사용하여 그 키의 순서를 계층적으로 표현할 수 있다. 특히 이진 탐색 트리를 중위 순회(Inorder traversal)하면 맵의 키들을 오름차순으로 방문할 수 있다. 추상 데이터 타입(ADT) find(k): 근(root) 노드에서 탐.. 2021. 6. 15.
[자료구조] 정렬된 맵 (Ordered Map) 개념 정렬된 맵(Ordered Map)은 맵의 엔트리들을 전체 순서(total order)에 따라 정렬하고, 정렬된 순서에 따라 키와 값을 검색한다. 맵의 엔트리들이 정렬되어 있으면, 맵의 ADT의 추가적인 함수들을 효율적으로 구현할 수 있다. 추상 데이터 타입(ADT) firstEntry(): 가장 작은 키값을 가진 엔트리의 iterator을 반환한다. 만약 맵이 비었으면 end를 반환한다. lastEntry(): 가장 큰 키값을 가진 엔트리의 iterator의 반환한다. 만약 맵이 비었으면 end를 반환한다. ceilingEntry(k): k보다 크거나 같은 값을 가지는 키 중 최소값의 iterator을 반환한다. 만약 그러한 값이 없다면, end를 반환한다. floorEntry(k): k보다 작거나.. 2021. 6. 15.
반응형