Computer Science/Computer Network

Pipelined Protocols 앞서 서술하였듯이, RDT 2.1 모델부터는 송신자가 하나의 packet을 보내고나면 수신자의 응답을 기다리는 "Stop and Wait" 방식을 사용한다고 하였다. https://oneonlee.tistory.com/m/111 [네트워크] Reliable Data Transfer의 원리와 RDT 모델 알고리즘 Principles of RDT(Reliable Data Transfer) Reliable Data Transfer 신뢰성 있는 데이터 교환(이하 RDT)은 한마디로 "송/수신하는 데이터가 오류없이 온전히 전송되는 것" 이다. Transport Layer 에서는 신뢰성 있는 데이 oneonlee.tistory.com 하지만 이 방법은 ACK가 올 때까지 송신자가..
Principles of RDT(Reliable Data Transfer) Reliable Data Transfer 신뢰성 있는 데이터 교환(이하 RDT)은 한마디로 "송/수신하는 데이터가 오류없이 온전히 전송되는 것" 이다. Transport Layer 에서는 신뢰성 있는 데이터 교환을 하고 싶어하지만, 그 아래의 레이어에서는 신뢰성을 보장할 수 없기 때문에 신뢰성 있는 통신에 문제가 생길 수 있다. 이러한 상황 속에서 Transport Layer에서 적용 가능한 방식이 바로 "RDT 프로토콜"을 이용하는 것이다. 아래 그림을 살펴보자. 패킷 송신 (상위 계층 → Transport Layer → 하위 계층) 상위 계층 → Transport Layer : rdt_send() 시스템 콜을 호출하여 RDT ..
Transport Layer services Transport Layer의 역할 Source부터 Destination까지 패킷이 제대로 전송될 수 있도록 한다. Application Layer에서 만든 데이터를 일정한 크기로 자른다. Transport Layer 프로토콜의 종류 세부적으로 들어가면 Transport Layer에도 여러가지 프로토콜들이 존재하지만, 대표적으로 두가지 프로토콜이 있다. TCP (Transmission Control Protocol) for loss-sensitive application reliable transport 전송 프로세스와 수신 프로세스 간의 안정적인 전송이 가능하다. in-order delivery 데이터를 순서대로 전송한다. connection-oriented..
P2P applications Pure P2P architecture에 관한 내용은 이 곳을 참고해주세요. [네트워크 애플리케이션 구조] client-server, P2P Network Application architectures client-server peer-to-peer (P2P) Client-server architecture 유저의 시스템(client)이 내놓은 요구를 시스템(server)이 처리하도록 한 네트워크 구성 서버: 항상 켜져 있는 호스트이다. 영 oneonlee.tistory.com 이 글은 전편에 이어지는 글입니다. P2P application의 초창기 모델인 "Napster"와 "Gnutella"에 대한 설명은 여기를 참조해주세요. [네트워크] P2P applications ..
P2P applications Pure P2P architecture에 관한 내용은 이 곳을 참고해주세요. [네트워크 애플리케이션 구조] client-server, P2P Network Application architectures client-server peer-to-peer (P2P) Client-server architecture 유저의 시스템(client)이 내놓은 요구를 시스템(server)이 처리하도록 한 네트워크 구성 서버: 항상 켜져 있는 호스트이다. 영 oneonlee.tistory.com (1) "Napster" Napster는 잠꾸러기라는 뜻으로, 온라인 음악 파일 공유 서비스였다. (개발자 숀 패닝의 대학생 시절, 그의 룸메이트가 음악을 다운받느라 새벽에 매일 같이 웹 페이지를 뒤..
DNS: domain name system DNS는 한마디로 말해서 사람들이 쓰기 편한 호스트 네임(www.naver.com)을 컴퓨터가 알아들을 수 있는 아이피 주소(125.209.222.141)로 바꿔주는 시스템이다. 세상에 있는 모든 서버의 주소는 IP 주소를 가지고 있다. 따라서 사용자들이 해당 서버에 접속하기 위해서는 그 서버의 IP 주소를 외우고 입력해야 한다. 하지만, IP 주소는 보다시피 그냥 숫자와 점의 조합으로 이루어진 주소로, 사람들이 외우고 사용하기 매우 불편하다. 그래서 DNS 라는 서비스를 이용해 영문 주소와 IP 주소를 쉽게 매핑(mapping)하여 사용할 수 있는 것이다. DNS가 제공하는 서비스 Hostname을 IP 주소로 바꿔주는 서비스 (hostname to IP ad..
Cookies, Web caches (Proxy server) Cookie 쿠키는 문자와 숫자의 조합으로 된 작은 파일이다. 쉽게 말해, 서버가 주는 일종의 인덱스이다. 서버는 쿠키를 통해서 클라이언트를 식별하고 이에 맞춰 다양한 서비스를 제공한다. 아마존 사이트에 들어가면 내가 클릭했던 상품 목록들을 보여 주는데, 이런 것들이 모두 쿠키를 이용하기 때문에 가능한 것이다. 사용자가 특정 사이트에 처음 접속하면, 그 사이트 서버는 사용자에게 Cookie header라는 숫자를 부여해준다. 브라우저는 부여받은 Cookie header와 사이트 이름을 조합하여 만들어진 쿠키 파일을 사용자의 컴퓨터에 저장한다. 이후 사용자가 그 사이트에 접속할 때마다 해당 쿠키파일을 보내주면 서버는 이를 통해 사용자를 식별할 ..
Web and HTTP Web 웹 페이지는 HTML file + referenced object 로 이루어져 있는데, 이 때 각 object들은 URL을 통해 reference 되는 구조이다. 여기서 URL이란, Uniform Resource Locator의 약자로 아래 그림과 같은 구조로 이루어져 있다. HTTP(Hyper Text Transfer Protocol) HTTP는 Application layer의 여러 프로토콜 중 하나로 주로 웹에서 많이 쓰이는 프로토콜이다. HTTP 프로토콜을 통해 우리는 웹사이트에서 다양한 활동을 할 수 있다. (1) HTTP의 특징 HTTP는 TCP와 짝지어져 있다. 처음에 TCP가 연결을 맺으면 이후 HTTP 메시지가 교환되는 구조이다. TCP를 통해 통신을 하므로..
Network Application architectures client-server peer-to-peer (P2P) Client-server architecture 유저의 시스템(client)이 내놓은 요구를 시스템(server)이 처리하도록 한 네트워크 구성 서버: 항상 켜져 있는 호스트이다. 영구적인 고정 IP 주소를 가진다. 클라이언트: 서버와 통신하며, 간헐적으로 연결될 수 있다. 통상적으로 동적 IP 주소를 가진다. 클라이언트들끼리 서로 직접 소통하지 않는다. P2P architecture P2P는 Peer-to-Peer의 약자로, 임의의 end system들끼리 (peer들끼리) 직접 통신한다. 중앙 서버를 거치지 않고 클라이언트 컴퓨터끼리 직접 통신하는 방식이다. P2P 네트워크에서 "피..
Addressing processes Process는 호스트 내에서 돌아가는 프로그램이다. 같은 호스트 내에서 복수개의 processes가 돌아갈 수 있다. 또한, 두 개의 processes가 내부적으로 communication할 수 있다. 이러한 프로세스는 메시지를 받기 위해 ID가 필요하다. 이 ID 역할을 하는 것이 IP 주소와 호스트의 프로세스와 관련된 포트 번호이다. 호스트 장치는 고유한 32bit IP 주소를 가진다. 예를 들어, 한 집에 네 식구가 산다고 해보자. 그 집에 각 사람들을 어떻게 구별할까? 집주소는 하나만 쓰고 각 식구마다 이름을 붙인다. 이 때 집주소가 'IP 주소'이고, 그 집의 각 사람들에게 붙힌 이름이 '포트 번호'다. 특정한 쓰임새를 위해서 0번부터 1023번까지 미리 ..
Internet transport protocols services transport layer에서 application layer protocol에 제공해 줘야 하는 것 TCP service (for loss-sensitive application) reliable transport 전송 프로세스와 수신 프로세스 간의 안정적인 전송이 가능하다. connection-oriented (연결 지향) : 클라이언트와 서버 간에 설정(setup)이 필요하다. 여기서 말하는 설정(setup)이란? sender/receiver에 buffer 할당 buffer & window size 설정 등 flow control sender 측 버퍼가 넘치치 않도록 제어해준다. congestion control 네트워크 과부하 ..
Protocol layers (OSI 7 Layer) Protocol layers는 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동(언제, 어떻게, 어떤 내용을 통신)하는 규정하는 규칙이다. ISO(국제표준화기구)에서 OSI 7 계층(OSI 7 Layer)로 표준화하였다. 각 layer에는 아래 표처럼 각각의 서비스가 구현되어 있다. Layer No. Layer Name Description 7 Application Consists of standard communication services and applications that everyone can use. 6 Presentation Ensures that information is delivered to the ..
Internet protocol stack (인터넷 프로토콜 스택) application layer (애플리케이션 계층) 애플리케이션 계층은 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다. 인터넷의 애플리케이션 계층은 아래와 같이 많은 프로토콜을 포함한다. HTTP (웹 문서 요청과 전송을 위해 제공) SMTP (전자메일 전송을 제공) FTP (두 종단 시스템 간의 파일 전송 제공) transport layer (트랜스포트 계층) 인터넷의 트랜스포트 계층은 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다. 인터넷에는 TCP와 UDP라는 2가지 트랜스포트 프로토콜이 있으며, 이들은 애플리케이션 계층 메시지를 전달한다. TCP는 애플리케이션에게 연결지향형 서비스..
Network Topology and Layout 1) Mesh Network wiring이 복잡하여 현실적이지 않음 2) Bus broadcasting 효과가 발생하여 수신자와 발신자를 표시하는 Addressing이 필요하다. 자기한테 온 data가 아닐 경우 계속해서 폐기해야 한다. 동시에 송신 시, 1명만 가능하다. 3) (Dummy) Hub Star Topology 구조를 사용하며, 논리적으로 Bus의 구조를 띈다. 노이즈가 쌓이는 것을 방지한다. 4) Bridge Bridge가 각 호스트의 위치가 어디에 있는지 알기 때문에 충돌이 일어날 수 있는 도메인(collision domain)을 분리할 수 있음 알 수 있는 방법 (1) 하드 코딩 (2) self-learning 5) Switch Brid..
Router의 기본 알고리즘 - Routing과 Forwarding 라우터는 데이터의 목적지 주소를 보고, local forwarding table을 참조하여 어느 경로를 통해 데이터를 전송해야 할지 판단한다. 이 때, 판단해서 보내는 기능을 Forwarding이라고 하고, local forwarding table을 만드는 기능을 Routing이라고 한다. 1. Routing 데이터를 송신하는 호스트는 패킷을 라우터로 보낼 때 각 패킷마다 헤더에 목적지(end system)의 정보를 포함시킨다. 라우터는 패킷의 헤더를 통해, source부터 destination까지 가는 경로를 결정한다. 이 때 사용되는 것이 local forwarding table이다. local forwarding table은 라우터..
oneonlee
'Computer Science/Computer Network' 카테고리의 글 목록