
호스트 사이의 통신 서비스 아래 무엇이 있을까? 네트워크 계층이 호스트 사이의 통신 서비스를 어떻게 제공하는지 정확하게 알아보자 네트워크 계층은 각 호스트와 네트워크 라우터 마다 네트워크 계층의 일부가 존재한다. 또한 네트워크 계층은 가장 복잡한 계층으로, 서로 상호작용하는 데이터 평면과 제어평면의 두가지 부분으로 나눠지며 그 안에 세세한 주제(라우터별제어, 전통적인 IP 포워딩, 일반화된 포워딩, IPv4, IPv6등 ) 를 갖고 알아보자 --- 네트워크계층의 데이터 평면의 역할은 입력 링크에서 출력 링크로 데이터그램을 전달하는 것이고 제어평면의 역할은 로컬 포워딩과 라우터별 포워딩을 대응시켜 데이터그램을 전달하는 것이다. 포워딩이란? 패킷이 라우터 입력 링크로 도달 시, 적절한 출력 링크로 이동시키는..

이전 포스트에서 트랜스포트계층 프로토콜이 UDP와 TCP가 다중화와 역다중화 , 신뢰 줄 수 있는 서비스 제공을 한다고 말했다. 이번 포스트에서는 다중화와 역다중화에 대해 알아보자. 다중화와 역다중화 다중화와 역다중화는 네트워크 계층이 제공하는 호스트 대 호스트 전달 서비스에서 호스트에서 동작하는 애플리케이션에 대한 프로세스 대 프로세스 전달 서비스로 확장하는 것이다. 다시금 쉽게 얘기하자면 휴대폰대 휴대폰으로 연결하는 것이 네트워크계층이라면 카톡대 카톡으로 연결하게 해주는 것이 트랜스포트 계층이라고도 할 수 있겠다. 2장에 대한 포스트에서 소캣을 통해 애플리케이션이 데이터를 전달한다고 했는데 (출발지 -> 목적지) 데이터 운행중 네트워크 계층에서 트랜스포트 계층의 목적지 소캣으로 전달하는 작업을 역다중..

이전 1,2 포스트를 통해 트랜스포트 계층의 역할과 제공하는 서비스를 다뤘는데 이미 배운 내용을 간략히 살펴보자. 트랜스포트 계층이란? 트랜스포트 계층 프로토콜은 호스트끼리에 동작하는 애플리케이션 프로세스간에 논리적 통신을 제공한다. (마치 애플리케이션에서 프로세스들이 동작하는 호스트가 사실은 저어어 멀리 있지만 마치 직접 연결되는 것 처럼 보이는 것을 의미한다) 그리고 통신 과정에서 해당 계층의 프로토콜은 종단시스템에서 구현되며 메시지는 세그먼트(segment)라는 트랜스포트계층 패킷으로 변환한다. 트랜스포트 계층에서 네트워크 계층으로 전달될 때 네트워크 계층 패킷(데이터그램)안에 세그멘트가 캡슐화되어 전달되며 다시금 목적지쪽 네트워크 계층에서 역캡슐화가 일어난다. ++ 애플리케이션은 하나 이상의 트랜..

웹을 통해 우리는 채팅도 하고 메일도 주고받고 뉴스도 보고 영화도 보고 할 수 있는 것이 저엉~~말 많다. 이번 포스트를 통해서 이렇게 많은 서비스를 제공하게 해주는 웹에 대해 알아보고 웹이 사용하는 애플리케이션 프로토콜 HTTP에 대해 알아보자. HTTP 개요 HTTP는 애플리케이션 프로토콜로써 각 다른 종단 시스템간 웹을 통해 (HTTP) 메시지를 전달하게 해준다. 여기서 응답 메시지로 받은 웹페이지는 객체의 구성으로 (html 파일, JPG, 자바스크립트 등) 객체 묶음을 URL(naver.com)로 지정되는하나의 파일이다. ex) 하나의 페이지에 html 텍스트 4개 ,JPEG 파일 한개가 있다면 해당 웹사이트는 6개의 구성으로된 것이다. 이렇게 구성된 웹 페이지를 어떻게 요청할까? 우리는 서버에..

이번 포스트에서는 네트워크 애플리케이션에 대해 살펴보고자 한다. 애플리케이션은 우리에게 서비스를 제공함으로써 우리가 원하는 데이터를 요청하고 수신할 수 있도록 해준다. 그렇다면 애플리케이션 설계에 있어서 어떤 목적을 둬야할까? 애플리케이션의 목적 우선, 애플리케이션의 주요 역할은 종단 시스템에서 다른 종단시스템까지 통신하는 프로그램을 만드는 것이다. 예시로 웹 애플리케이션을 사용한다면 서버와 클라이언트로 생각할 수 있다. 클라이언트는 서버에게 원하는 데이터를 달라 요청하고 이에 서버는 그에 맞는 데이터를 다시금 클라이언트에게 전달하게 되는데 이러한 통신이 애플리케이션의 역할이며 목적이다. 그렇다면 우린 컴퓨터를 배우는 사람이니 이러한 애플리케이션 목적에 의한 동작 원리와 구조를 알아보자 애플리케이션 구조..

우리는 이제것 인터넷에 대해 개념과 구성요소들을 살펴보았다. 알아가면서 우리는 프로토콜 여러개를 접했으며 (IP Prame Packet등 ) 다양한 링크 레벨의 매체가 있음을 알게되었다. 꽤나 복잡하지 않았는가? 이를 조금 더 깊이 이해하기 위해서는 구조적인 계층화가 필요하다 . 이번 포스트에서는 이렇게 복잡한 네트워크를 구조적으로 알아보자. 계층구조 우리가 평상시에 어떠한 서비스를 사용하기 위해서는 일련의 과정이 필요하다. 예시로 비행기를 타고 일본으로 가보자 ! 티켓을 구매 -> 수하물 검사 -> 탑승 -> .... 비행기 이륙(라우팅) -> .... -> 수하물 확인 -> 티켓 (항의) 비행기를 타고 일본에 가는데도 여러 과정을 거치게 된다..(왜이리 많아 그냥 보내줘) 여기서 우리는 이러한 과정과..

우리가 이전 포스트들을 통해 데이터를 송수신함으로 연결된 네트워크에 대해 알아봤다. 그러나 이러한 네트워크를 통한 연결에 완벽하게 데이터가 전달되지는 않고 손실과 지연이 존재한다. 이번 포스트에서는 그러한 지연과 손실, 처리율에 대해 알아보고자한다. 패킷 교환 네트워크에서의 지연개요 (큐잉지연, 전송지연, 전파지연) 패킷 교환에서 지연은 큐잉지연, 전송지연, 전파지연이 있다. 이러한 지연들을 합쳐 전체 노드 지연이라 말하며 데이터 전송 시 지연을 일으키는데, 어플리케이션에서 제공하는 서비스는 이러한 지연에 큰 영향을 받는다. 처리 지연 패킷 헤더를 조사하고 해당 페킷을 어디로 보낼지 결정하는 시간이다. (페킷 비트레벨 오류 조사시간도 포함) 이 처리 후에는 페킷을 라우터에 앞에 존재하는 큐에 보내게된다 ..

이전 포스트를 통해 우리는 인터넷 가장자리를 공부하였다. Link 그렇다면 이제 End System ------- Packet Switch 에서 --------------- other Network 중 CORE 부분(패킷 스위치와 링크의 그물망)을 알아보자. 패킷 교환 어플리케이션에서 종단 시스템들은 서로 메시지(message)를 교환하는데 해당 메시지를 전체로 보내기엔 용량이 크기에 높은 비용과 손실 위기때문에 그 자체로 보내 지 않는다. 그렇기에 세그먼트로 나누어 헤더 값에 주소와 추가 내용을 담은 페킷(Packet)이라하는 작은 데이터 덩어리로 분할한다. 해당 페킷은 통신링크와 페킷스위치를 거치게 된다. 여기서! 패킷 스위치가 R비트/초의 속도로 링크에서 L 비트의 패킷을 송신하다면 패킷을 전송하는..