컴퓨터 네트워크 23

컴퓨터 네트워크 3장- 신뢰적인 데이터 전송의 원리

3.4 신뢰적인 데이터 전송의 원리 일반적인 신뢰적인 데이터 전송 문제를 다룬다. 신뢰적인 데이터 전송을 구현하는 문제가 트랜스포트 계층뿐만 아니라 링크계층과 애플리케이션 계층에서도 발생할 수 있기 때문에. 신뢰적인 채널에서는 전송된 데이터가 손상되거나 손실되지 않으며, 모든 데이터는 전송된 순서 그대로 전달된다. - >TCP가 인터넷 애플리케이션에게 제공하는 서비스 모델 데이터 전송 프로토콜의 송신 측은 rdt_send() 호출로 위쪽으로부터 호출될 것이며, 수신 측에서는 상위 계층으로 전달될 데이터를 넘길 것이다. rdt : 신뢰적인 데이터 전송(reliable data transfer) 프로토콜을 나타낸다. _send : rdt의 송신 측이 호출되고 있음을 나타낸다. 수신 측에서 rdt_rcv()는..

컴퓨터 네트워크 3장- 비연결형 트랜스포트: UDP

3.3 비연결형 트랜스포트: UDP UDP는 트랜스포트 계층 프로토콜이 할 수 있는 최소 기능으로 동작한다. 다중화/역다중화 기능 간단한 오류 검사 기능 이외에는 IP에 아무것도 추가하지 않는다. UDP는 트랜스포트 계층 프로토콜이 할 수 있는 최소한으로 움직인다. 다중화/역다중화와 간단한 오류검사 기능을 제외하면 IP에 아무것도 추가하지 않는다. TCP 대신 UDP를 선택했다면 애플리케이션은 거의 IP와 직접 통신한 것이다. 애플리케이션 프로세스로부터 메시지를 가져와서 다중화/역다중화 서비스에 필요한 출발지 포트 번호 필드와 목적지 포트 번호 필드를 첨부한다. 출발지 호스트의 IP 주소 필드, 목적지 호스트의 IP 주소 필드를 추가한 후에 최종 트랜스포트 계층 세그먼트를 네트워크 계층으로 넘겨준다. 네..

컴퓨터 네트워크 3장- 다중화와 역다중화

3.2 다중화와 역다중화 트랜스포트 계층 다중화(multiplexing)와 역다중화(demultiplexing) 프로세스는 소켓을 갖구있다. 이로 인해 네트워크에서 프로세스로 데이터를 전달하고, 프로세스로부터 네트워크 데이터를 전달하는 출입구 역할을 한다. 수신측 Host의 트랜스포트 계층은 실제로 데이터를 직접 프로세스로 전달하지 않는다. 이것을 소켓에게 전달한다. 식별자 포맷은 UDP인지 TCP인지에 따라 달라진다. 유일한 식별자를 가진다(포트 번호). 1.목적지 호스트에서의 트랜스포트 계층은 바로 아래의 네트워크 계층으로부터 세그먼트를 수신한다. 트랜스포트 계층은 호스트에서 동작하는 해당 애플리케이션 프로세스에게 이 세그먼트의 데이터를 전달하는 의무를 가진다. 2. 트랜스포트 계층은 세그먼트(데이터..

컴퓨터 네트워크 3장- 트랜스포트 계층 서비스 및 개요

3.1 트랜스포트 계층 서비스 및 개요 트랜스포트 계층 프로토콜은 각기 다른 호스트에서 동작하는 애플리케이션 프로세스 간의 논리적 통신을 제공한다. 논리적 통신은 애플리케이션 관점에서 보면 프로세스들이 동작하는 Host들이 직접연결된 것처럼 보인다는것을 의미. 트랜스포트 계층 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현된다. 송신 측의 트랜스포트 계층은 송신 애플리케이션 프로세스로부터 수신한 메시지를 트랜스포트 계층 패킷(segment)으로 변환한다. 애플리케이션 메시지를 작은 조각으로 분할한다. 각각의 조각에 트랜스포트 계층 헤더를 추가한다. 트랜스포트 계층은 송신 종단 시스템에 있는 네트워크 계층으로 세그먼트를 전달한다. 세그먼트는 네트워크 계층 패킷(데이터그램(datagram) : L3-..

컴퓨터 네트워크 2장 - DNS: 인터넷의 디렉터리 서비스

2.4 DNS: 인터넷의 디렉터리 서비스 인터넷 호스트의 식별자 중 하나는 www.facebook.com, www.google.com 등의 호스트 이름(hostname)이다. 그러나 호스트의 이름은 인터넷에서의 호스트 위치에 대한 정보를 거의 제공하지 않는다. 가변 길이의 알파뉴메릭 문자로 구성되므로 라우터가 처리하는 데 어려움이 있다. 이러한 이유로 호스트는 흔히 말하는 IP 주소(IP address)로 식별된다. 2.4.1 DNS(Domain Name System)가 제공하는 서비스 사람 : 호스트 이름 식별자 선호 라우터: 고정 길이의 계층구조를 가진 IP주소 선호 -> 절충하기 위해 IP주소를 변환해주는 디렉터리 서비스가 필요 => 이것이 인터넷 DNS 주요 임무 DNS DNS 서버들의 계층구조로..

컴퓨터 네트워크 2장 - 웹과 HTTP

2.2 웹과 HTTP 웹의 온디맨드(on-demand) 방식은 사용자가 원할 때 원하는 것을 수신한다. 웹 페이지(web page) 웹 페이지는 객체들로 구성된다. (단일 URL로 지정할 수 있는 하나의 파일) 웹 브라우저와 클라이언트 웹 브라우저는 HTTP의 클라이언트 측을 구현하기 때문에, 웹의 관점에서 브라우저와 클라이언트(client)라는 용어를 혼용하여 사용한다. 웹 서버(Web server)는 URL로 각각을 지정할 수 있는 웹 객체를 갖고 있다. 사용자가 웹페이지 요청할때 브라우저는 페이지 내부의 객체에 대한 HTTP 요청 메세지를 서버에게 보낸다. 서버는 요청을 수신하고 객체를 포함하는 HTTP 응답 메시지로 응답한다 클라이언트: 요청을 보내고 받으며(HTTP 프로토콜 사용), 웹 객체를 ..

컴퓨터 네트워크 2장 - 네트워크 애플리케이션의 원리

2.1 네트워크 애플리케이션의 원리 스위치는 정보처리를 하지않는다 - > Host에서 이루어진다. 종단시스템(end System)에서 동작하도록 마든다. 2.1.1 네트워크 애플리케이션 구조 애플리케이션 개발자는 네트워크 구조는 고정되어 있고 해당 애플리케이션에 특정 서비스 집합을 제공한다. 반면, 애플리케이션 구조는 애플리케이션 개발자가 설계하며, 애플리케이션이 여러 종단 시스템에서 어떻게 조직되어야 하는지를 알려준다 두가지 구조가 유명하다. 클라이언트-서버(client-server) 구조 항상 동작하고 있는 서버가 존재(언제 요청이 올지 모르니)하고, 클라이언트라는 다른 호스트들로부터 서비스 요청을 받는다. 클라이언트는 서로 직접적으로 통신하지 않는다.(서버를 거쳐서 통신) 서버는 잘 알려진 고정 I..

컴퓨터 네트워크 1장 - 공격받는 네트워크

1.6 공격받는 네트워크 유용성과 역동성 뒤에 나쁜 친구들이 이 인터넷에 연결된 컴퓨터에 해를 끼리고, 사생활을 침해하고, 우리가 의존하는 인터넷 서비스를 동작하지 못하게 함으로써 일상생활을 망가트리려고 하는 어두운 면이 있다. 나쁜 친구들은 인터넷을 통해 여러분의 호스트에 멀웨어(악성코드)를 침투시킬 수 있다 우리는 인터넷에서 데이터를 수신/송신하기를 원하기 때문에 장치를 인터넷에 연결한다. 불행하게도 우리에게 전달되는 데이터들 중 해로운 것들도 포함되는데, 이들을 멀웨어(malware)라고 한다. 멀웨어는 우리들의 장치에 들어가서 나쁜 영향을 미친다. 파일 삭제, 주민번호, 비밀번호, 키스트로크(keystroke, 키보드를 누르는 것) 등의 사적인 정보를 모으는 스파이웨어를 설치 -> 이러한 정보를 ..

컴퓨터 네트워크 1장 - 프로토콜 계층과 서비스 모델

1.5.1 계층구조 계층구조는 크고 복잡한 시스템의 잘 정의된 특정 부분을 논의할 수 있게 해준다. 이러한 단순화는 매우 중요하다. 시스템이 계층구조를 가질 때, 그 계층이 제공하는 서비스의 구현을 변경하는 것도 매우 쉽다. 최적화를 위해 바꿀 수 있다. 어떤 한 계층이 구현이 변하더라도 시스템의 나머지 부분은 변하지 않는다. (서비스 구현의 변화와 서비스자체의 변화와는 다르다) 프로토콜 계층화 네트워크 프로토콜의 설계 구조를 제공하기 위해, 네트워크 설계자는 프로토콜(프로토콜을 구현하는 네트워크 하드웨어와 소프트웨어)을 계층(layer)으로 조직한다. 즉, 각각의 프로토콜은 한 계층에 속하며, 프로토콜 계층은 소프트웨어, 하드웨어 또는 둘의 통합으로 구현할 수 있다. 한 계층은 상위 계층에 제공하는 서..

컴퓨터 네트워크 1장 - 패킷 교환 네트워크의 loss,delay,throughtput

1.4 패킷 교환 네트워크에서의 지연, 손실과 처리율 이상적으로는 인터넷 서비스가 데이터의 손실 없이 즉시 두 종단 시스템 간에 원하는 만큼의 데이터를 이동시키기를 원한다. 하지만 현실에서 이는 어려우며, 컴퓨터 네트워크는 두 종단 시스템 간에 전달될 수 있는 초당 데이터의 양, 즉 처리율을 제한한다. 이로 인해 종단 시스템 간에 지연이 발생하며, 패킷을 잃어버리게 되기도 한다 1.4.1 패킷 교환 네트워크에서의 지연 개요 노드 처리 지연(nodal processing delay) 큐잉 지연(queuing delay) 전송 지연(transmission delay) 전파 지연(propagation delay) 전체 노드 지연(total nodal delay) 업스트림: 클라이언트-> 서버 다운스트림: 서버..