KOCW 컴퓨터네트워크-이석복 강의를 수강하며, 해당 내용을 바탕으로 배운 점들을 정리하였다.
컴퓨터간 데이터를 주고받기 위해서 통신 프로토콜을 이용하여 연결시킨 네트워크를 의미한다.
서로 다른 두 시스템이 정보를 주고 받기 위해서는 어떤 방식으로 정보를 전달하고 받을지에 대해 통일된 방식이 필요하다. 이러한 약속을 프로토콜이라고 칭한다.
우리가 사용하는 컴퓨터나 애플리케이션, 그리고 서버 등은 네트워크 엣지이다. 네트워크 상에서 가장자리에 위치한다.
주로 라우터로 구성된다. 네트워크 상에서 중심에 위치하여, 가장자리에 있는 클라이언트와 서버간의 연결을 구성한다.
라우터는 다양한 기능이 있지만 아직까지는 네트워크의 중심에서 연결을 돕는다 정도로만 이해한다.
circuit switching
각 호출마다 정해진 경로가 존재한다. 해당 경로로 전달한다. 통신 과정에서 사용되는 회선 전체를 독점한다.
packet-switching
패킷단위로 데이터를 전송한다. 라우팅 알고리즘을 이용해 경로를 설정하고 최종 목적지까지 데이터를 전송한다.
비교
Circuit switching의 경우 사용하는 경로를 독점하기 때문에 한 사용자당 10Kbps를 사용하며 회선이 100Kbps까지 수용이 가능하다면, 총 10명의 사용자만 사용이 가능하다.
하지만 Packet switching은 그보다 더 많은 사용자가 동시에 사용할 수 있다. 모든 사용자가 같은 시간에 동일한 요청을 할 확률이 매우 낮기 때문이다.
프로세스는 Host에 의해 수행되는 프로그램을 의미한다.
한 Host에 존재하는 두개의 Process
OS에 의해 inter-process communication을 사용해 데이터를 주고 받는다.
서로 다른 Host에 존재하는 Process
Message를 통해 데이터를 주고 받는다.
Message를 주고받는 과정에 사용되는 것이 소켓이다.
소켓은 서로 다른 두 개의 프로그램 간 양방향 통신의 하나의 엔트 포인트이다.
Process는 Socket을 통해 Message를 주고 받는다.
응용 프로그램 Process에서 데이터를 전송하기 위해서는 전송계층을 거처야하는데, 전송계층과 응용 프로그램 사이의 인터페이스 역할을 하는 것이 Socket이다.