CS/컴퓨터 네트워크

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 18. Transport Layer (4) : rdt 3.0

rdt 3.0rdt 2.2 까지는 data corruption 이 발생했을 때, 이를 대처하는 방법을 기술한 프로토콜이었다.rdt 3.0 에서는 여기에 더해 underline 채널에서 데이터가 유실되어 목적지에 데이터가 전송되지 않았을 때 대처하는 방법을 추가적으로 기술한 프로토콜이다.(즉, loss 에 대한 대처 방법이다.) rdt 3.0에서는 데이터 loss가 발생했을 때도 데이터를 다시 전송하는 방법으로 해결하려고 한다.그래서 데이터를 전송한 뒤 기다리는 시간(타이머)을 정해놓고, 타이머의 시간이 다 지나도 ACK가 오지 않으면 재전송한다. 타이머의 시간은 transmission delay + propagation delay + queueing delay 를 모두 고려해서 최소한 1RTT..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 17. Transport Layer (3) : rdt의 개념과 발전 (rdt 2.0 ~ rdt 2.2)

rdt 개념TCP는 신뢰성을 보장하는 프로토콜이다.TCP에 대해 정리하기 전에 사전 개념으로서 rdt에 대해 정리한다. rdt는 reliable data transfer 의 줄임말이다.즉, 신뢰성있는 데이터 전송을 어떻게 할 수 있는지에 대한 개념이다.  이 그림을 보자.어플리케이션에서 데이터를 만들어 transport 계층으로 보낸다.그러면 transport 계층에 있는 프로토콜을 거쳐 네트워크 계층을 통해 데이터가 전송된 후 receiver 가 transport 계층을 거쳐 데이터를 받는다. 그런데 네트워크 계층을 포함한 그 밑의 데이터 전송 과정은 unreliable 하다.unreliable 하다는 말은 보내는 중간에 데이터가 사라지거나(loss), 훼손되거나(corrupt..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 16. Transport Layer (2) : UDP

UDP user datagram protocol RFC 768 에 정의된 매우 오래된 프로토콜이다. 트랜스포트 계층이지만, 네트워크 계층에서 포트만 더해주기 때문에, 데이터그램이라는 네트워크 계층 전송단위를 그대로 사용하기도 한다. 네트워크 계층과 동일한 서비스 모델을 제공한다. 따라서 UDP 세그먼트는 중간에 유실되더라도 복구하거나 재전송하는 서비스는 없다. send 순서와 receive 순서가 동일하다는 보장도 하지 않는다. UDP 장점 1. connectionless 미리 연결을 설정할 필요가 없어서 오버헤드 시간이 절약된다 연결 설정이 없다는 말은, 같은 목적지로 보내는 같은 내용의 세그먼트도 모두 독립적으로 여긴다는 특징이 있다. TCP와 달리 RTT 딜레이가 없다. 2. stateless se..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 15. Transport Layer (1) : 트랜스포트 계층 개요

Transport Layer가 제공하는 서비스 트랜스포트 계층은 어플리케이션 계층과 네트워크 계층 사이에 존재한다. 1장에서 공부했던 레이어 개념을 다시 생각해보면, 트랜스포트 계층은 네트워크 계층이 제공하는 서비스를 이용하여 어플리케이션 계층에 서비스를 제공한다고 볼 수 있다. 그렇다면 트랜스포트 계층은 어떤 서비스를 제공해야 할까? 간단히 말해서 process to process 커뮤니케이션 기능을 제공한다. 프로세스와 프로세스가 통신하기 위해서는 그 프로세스가 실행되는 컴퓨터와 컴퓨터 사이 통신이 제공되어야 하는데, 이 서비스는 네트워크 계층에서 제공한다. 또는 이 서비스를 logical communication 이라고도 한다. 서로 다른 두 호스트 사이에 어플리케이션 프로세스가 존재하는데, 그 프..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 14. Application Layer (7) : Socket Programming

소켓 소켓은 인터넷 어플리케이션을 개발할 때, 4계층이 제공하는 서비스를 이용할 수 있는 일종의 API 이다. 소켓을 이용하면 클라이언트 / 서버 어플리케이션을 만들 수 있다. 그리고 멀리 떨어진 두 프로세스는 소켓을 이용해서 서로 통신할 수 있다. 소켓을 사용하면 어플리케이션 계층에서 짤 비즈니스 로직에만 집중하고, 데이터가 어떻게 전송되는지는 신경쓰지 않아도 된다. 소켓에는 크게 UDP 소켓과 TCP 소켓이 있다. UDP, TCP는 4계층의 프로토콜로, UDP는 신뢰성을 보장하지 않지만, 빠르고 가벼운 프로토콜이고 TCP는 경우에 따라 느려지기도 하고 무겁지만, 신뢰성을 보장해주는 byte stream-oriented (바이트 단위 전송) 프로토콜이다. 바이트 단위 전송이라는 뜻은 TCP가 어플리케이..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 13. Application Layer (6) : Video Streaming And CDN

비디오 스트리밍 서비스의 기술적 어려움 넷플릭스, 유튜브와 같은 비디오 스트리밍 서비스의 트래픽은 인터넷에서 많은 부분을 차지하는 트래픽이다. 그래서 이런 비디오 스트리밍 서비스가 갖는 기술적 어려움이 몇 가지 있다. 1. scalability (확장성) 10억명이 넘는 유저들이 안정적인 서비스를 제공받으려면 정말 크고 안정적인 네트워크를 갖고 있어야 한다. 2. heterogeneity (이질, 개인화 정도로 이해했다.) 유저마다 자신이 살고있는 곳의 네트워크 환경이 다양할 것이다. 우리나라는 광대역이 잘 깔려있어서 500Mbps 네트워크를 갖는 경우도 많지만 외국은 100Mbps 대역폭을 쓰는 곳도 굉장히 많다. 또 어떤 사람은 이동중에 스트리밍 서비스를 이용하고, 어떤 사람은 유선 네트워크를 이용해..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 12. Application Layer (5) : DNS

DNS Domain Name System 인터넷 상에서 컴퓨터(호스트) 를 식별할 때 IP Address 를 이용한다. (정확히는 포트까지 이용한다.) 현재 가장 널리 쓰이는 체계는 32bit 주소 체계인 IPv4 이다. IP주소는 dotted decimal (점으로 구분한 십진수 4개) 으로서 사용되기 때문에 사람들이 이를 직접 기억하기 힘들다. 그래서 사람들이 기억하기 쉽게 문자열로 된 도메인 네임을 부여하였다. 하지만 실제 컴퓨터가 네트워크 상에서 통신을 하려면 결국 숫자로 된 IP주소를 이용해 통신해야해서, 이 도메인 네임을 아이피 주소로 변환할 필요가 있다. DNS 는 도메인 이름을 IP주소로 변환해주는 서비스를 일컫는다. (경우에 따라 그 반대를 할 수도 있다.) 그래서 결국 DNS는 도메인주..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 11. Application Layer (4) : HTTP/2

HTTP/2 지난 글에서 HTTP/1 과 HTTP/1.1 에 대해서 정리했었다. 간단히 말해서 HTTP/1 은 base HTML 에 대해서도 TCP Connection을 만들고, 이 HTML 을 구성하는데 필요한 referenced object 들에 대해서도 매번 TCP connection 을 만들어서 데이터를 가져오는 방식이었다. 각 오브젝트 하나를 가져오는데 2RTT 의 시간이 필요했다. HTTP/1.1 은 이를 약간 개선해서, 한번 TCP Connection 을 만들면 이 연결로 base HTML 과 referenced object 까지 한번에 가져와서 오브젝트를 가져오는 시간을 거의 반으로 줄이는 개선된 프로토콜이었다. HTTP/2 는 여기에서 한 단계 더 발전한 프로토콜이다. HTTP/2 의 목..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 10. Application Layer (3) : Web Cache

Web Cache (web proxy / proxy server) 웹 브라우저의 역할은 웹 서버로부터 웹 오브젝을 가져오는 것이다. 그런데 만약 서버가 클라이언트로부터 멀리 떨어져 있거나, 대역폭이 넓지 않아서 오브젝을 가져오는데 시간이 오래 걸린다면, 서버까지 가지 않고도 데이터를 얻어올 수 있는 웹 캐시 기법을 사용할 수 있다. 웹 캐시 기법은 클라이언트가 자주 요청할 법한 오브젝을 클라이언트 가까이에 두는 기법이다. 그래서 만약 사용자가 로컬 웹 캐시에 먼저 접근하도록 설정하면, 오브젝을 가져올 때 서버에 바로 요청을 보내는 것이 아니라, 웹 캐시에 데이터를 요청해서 받아온다. 만약 웹 캐시에 오브젝이 없다면 그때 서버에 오브젝을 요청해서 오브젝을 가져온 뒤, 캐시가 그 오브젝의 카피를 따로 저장해..

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 9. Application Layer (2) : HTTP와 Cookie

HTTP웹페이지는 HTML 파일, 이미지, Java applet, 오디오 파일과 같은 object 들로 구성되어있다.이 각각의 오브젝트는 서로 다른 웹 서버에 존재할 수 있다.웹 페이지는 base html 파일에 서로다른 각가의 오브젝트 URL로 연결시켜 구성한다. HTTP (HyperText Transfer Protocol) 은 웹 서비스의 어플리케이션 계층 프로토콜이다.HTTP의 Hypertext는 위에서 말한 오브젝트를 의미한다. 이 프로토콜은 client - server 패러다임을 따른다.클라이언트는 웹 브라우저로, 웹 서버에 오브젝트를 요청하고, 얻어낸 오브젝트를 사용자에게 보여주는 역할을 한다.서버는 웹 서버로, 웹 브라우저가 요청한 오브젝트를 HTTP 프로토콜을 사용하여 보..

에버듀
'CS/컴퓨터 네트워크' 카테고리의 글 목록