컴퓨터네트워크 7

7. 애플리케이션, 트랜스포트 그리고 네트워크 계층

네트워크 계층으로 내려가기 전 애플리케이션 레이어, 트랜스포트 레이어 간략 정리 What we’ve done 지금까지 해온 애플리케이션 레이어, 트랜스포트 레이어 관점에서 네트워크를 생각해 보면 기본적으로 네트워크라는 것은 복잡한 시스템이기 때문에 그 복잡한 시스템을 잘 디자인하고 관리하기 위해서 계층화한 것이다. 상위 계층으로 갈수록 개념적이고, 하위 계층으로 갈수록 디테일한 게 더 보이는 식으로 계층화해 놓은 것. 그래서 모양이 이렇게 생겨서 스택, 네트워크 프로토콜 스택이라고 불리기도 한다. 네트워크 프로토콜 스택이 클라이언트에도 있고 서버도 있는데 예를 들어 애플리케이션 레이어면 HTTP 프로토콜에서 클라이언트와 서버 사이에 단순히 request와 responce 주고 받는 걸로 생각했다. 그냥 ..

6. 트랜스포트 계층 2-2

컴퓨터 네트워크 전송계층2 TCP overview TCP는 point to point 통신. 프로세스와 프로세스 딱 한 쌍의 프로세스를 가진 통신을 책임진다. 더 엄격하게 얘기하면 하나의 소켓과 하나의 소켓 즉 소켓 소켓 한쌍끼리의 통신을 책임진다. 프로세스 하나의 소켓 여러 개 열 수 있기 때문에 엄밀히 말하면 소켓과 소켓 그렇기 때문에 point to point 통신. reliable, in-order byte stream. 하나도 유실되지 않고 가면서 순서대로 간다. pipelined. 파이프라인 방식 한꺼번에 쏟아 붙는다. 윈도우 크기만큼. send & receive buffers. sender에서 사용하는 윈도우 혹은 버퍼 sender buffer. 윈도우 자체가 버퍼라는 개념 이 윈도우 크기만..

5. 트랜스포트 계층 2-1

컴퓨터 네트워크 애플리케이션계층2 지난 강의 정리 각 레이어는 자기 자신의 상위 레이어에게 서비스를 제공해주고 하위 레이어로부터 서비스를 제공받는 관계에 있다. 트랜스포트 레이어에는 현재 두 개의 프로토콜이 대표적으로 자리를 잡고 있다. TCP와 UDP. 그런데 TCP든 UDP든 간에 트랜스포트 레이어 프로토콜로서 기본적으로 상위 레이어인 애플리케이션 레이어에게 서비스를 해 주는 기능이 있다. 기본적으로 이 두 가지는 ‘무조건’ 해줘야 한다. 바로 멀티플레이싱과 에러 체킹. 애플리케이션 프로세스와 애플리케이션 프로세스 간에 의사소통, 프로세스와의 통신인데 수많은 프로세스들이 존재할 거고 반대편 역시 많은 프로세스 존재한다. 전송된 메시지를 받아서 많은 프로세스 중 하나로 올려줘야 하는데, 멀티플렉싱 기능..

4. 트랜스포트 계층 1

컴퓨터 네트워크 애플리케이션계층1 트랜스포트 레이어 기본 기능 트랜스포트 레이어는 TCP든 UDP든 복잡한 기능들을 많이 제공해주는데 트랜스포트 레이어라면 기본적으로 제공해야 될 기능은 Multiplexing and demultiplexing Multiplexing: 컴퓨터 내부에 애플리케이션 네트워크 프로세스들이 많이 있는데 이들이 각자 소켓이 있을 거고, 이 소켓에서 트랜스포트 레이어로 메시지가 내려온다. 그럼 트랜스포트 레이어는 어디서 내려오든 메시지를 받아서 세그먼트를 생성한다. 그리고 다음 레이터로 또 보낸다. 내려오는 구멍(소켓)이 많은데 여기저기서 막 내려오는 거를 그냥 그때 그때마다 세그먼트를 만들어서 밑으로 내려보내준다는 의미에서 멀티플렉싱. demultiplexing: 세그먼트 형태로 ..

3. 애플리케이션 계층 1

컴퓨터 네트워크 애플리케이션계층1 What is a socker? OS에서 제공하는 API의 일종. 다양한 function들이 있다. 클라이언트 프로세스와 서버 프로세스 간의 통신을 할 때 우리는 사용자 혹은 개발자 입장이기 때문에 OS 내부는 모르고 OS에서 제공하는 어떤 서비스들만 사용할 뿐이다. 그런데 그 서비스를 사용하기 위해서는 OS가 제공하는 특수한 인터페이스를 사용해야 한다. 예를 들면 모니터 창에 뭔가 디스플레이 하고 싶다면 프로그램을 만들어서 ‘printf’라는 어떤 애플리케이션 인터페이스를 사용해서 메시지를 적어주면 이게 디스플레이 되는 것. 마찬가지로 네트워크 관점에서 다른 컴퓨터에 있는 프로세스에 우리가 어떤 정보를 보내고 싶으면 그에 맞는 어떤 인터페이스에 메시지를 적으면 보내진다..

2. 컴퓨터네트워크 기본2

컴퓨터 네트워크 기본2 지난 강의 요약 인터넷에서 제공하는 전송 서비스는 두 가지: TCP와 UDP. TCP는 신뢰성 있고 다양한 좋은 일들을 해주는 서비스이고 UDP는 아무것도 안 해주는 서비스. 현재 인터넷은 패킷 기반의 전송 방식을 사용 즉, 패킷은 비트들의 집합인데 패킷이라고 묶여진 이 비트들은 출발지에서부터 목적지까지 라우터를 거치면서 항상 한 묶음으로 같이 다닌다(사용자가 보내는 데이터가 패킷이라는 한 묶음 단위로 이동한다). 패킷 기반에 전송의 문제점: 라우터에서 패킷을 받아서 알맞은 방향으로 보내주는데 한꺼번에 많은 사용자가 동시에 이 라우터에 패킷을 보낼 경우에 즉, 라우터가 아웃고잉 엣지를 뿜어낼 수 있는 양보다 더 많은 패킷이 들어오게 되면 어쩔 수 없이 ‘큐’라는 공간에 패킷이 쌓이..

1. 컴퓨터네트워크 기본1

kocw 컴퓨터네트워크 기본1 인터넷의 역사 간략히 최초의 인터넷이라고 불리는 아파넷(ARPAnet)의 노드는 컴퓨터 4대로 1969년에 시작되어 현재는 하나의 우주처럼 생태계가 형성되었고 계속 팽창 중이다. 위의 개념적인 인터넷의 형태에서 모습에서 우리는 네트워크 엣지 즉, 가장자리 어딘가에 위치한다. 클라이언트 뿐만 아니라 웹서버같은 서버들도 사실 가장자리에 위치한다. 그럼 가운데에 있는 컴퓨터들은? 라우터 라우터는 메시지를 전달받아서 목적지를 향해서 데이터를 쭉 전달해주는 그런 단순한 일을 한다. network 구조 network edge: 랩탑, 데스크탑, 웹서버 등 어플리케이션과 호스트들 network core: 라우터, network of networks(서로를 이어주는 링크들 - 케이블, 모..