사람 간에는 여러 가지의 의사소통 방식이 존재한다.
직접 말을 주고받거나, 수화를 통해 주고받거나, 편지를 통해 주고받을 수 있다.
그리고 이러한 의사소통 방식에 따라 메시지를 만든다.
목소리를 만들고, 동작을 만들고, 글자를 남긴다.
컴퓨터, 스마트폰 간에도 통신방식 존재한다.
이를 프로토콜(protocol)이라 한다.
그리고 컴퓨터와 스마트폰은 프로토콜에 맞는 메시지를 만든다.
컴퓨터에서 만들어진 메시지는 아래의 계층을 통해 컴퓨터 외부로 전달된다.
응용 계층은 application에서 발생하는 메시지를 만드는 계층이다.
응용 계층에서 중요한 것은 http와 DNS다.
http는 통신을 위한 프토토콜이고, DNS는 컴퓨터의 주소를 알려주는 곳이다.
우리는 네이버에 접속하기 위해 브라우저 주소창에 https://www.naver.com 를 입력한다.
이때 브라우저(application)는 다음과 같은 일을 한다.
socket이란 응용 계층과 전송 계층 사이의 인터페이스다.
응용프로그램은 socket을 통해 메시지를 내려보내고, 받을 수 있다.
connection을 맺는 이유는 http는 일반적으로 tcp로 구현되었기 때문이다.
전송 계층은 네이버 서버 프로세스로 전달을 목표로 한다.
따라서 전달받은 메시지에 프로세스의 부가정보를 입력하여 세그먼트를 생성한다.
프로세스의 부가정보로는 포트 번호가 있다.
하나의 컴퓨터에는 여러 프로세스가 존재한다.
컴퓨터의 주소만으론 어떤 프로세스인지 구분할 수 없다.
그래서 주소 뒤에 포트 번호를 부여하여 해당 컴퓨터의 어떤 프로세스인지 구분한다.
전송계층에서 중요한 것은 TCP와 UDP이다
네트워크 계층은 네이버 서버 컴퓨터로 전달을 목표로 한다.
따라서 전달받은 세그먼트에 컴퓨터의 부가정보를 추가하여 datagram을 생성한다.
또 해당 컴퓨터까지 가는 노선을 결정한다.
네트워크 계층에서 중요한 것은 IP,Routing이 있다.
링크 계층은 다음 홉(node)으로 전달을 목표로 한다.
따라서 전달받은 datagram에 부가정보를 추가하여 frame을 만든다.
물리 계층은 전달받은 frame을 전송선에 bit로 집어넣는다.
이렇게 컴퓨터 외부로 전달된 전기적 신호는 여러 홉(node)를 거처 네이버 서버컴퓨터에 도착한다.
도작한 신호는 물리 계층부터 역순으로 복원되어 서버 application에 전달된다.
서버 application은 도착한 메시지에 대한 응답 메시지를 응용 계층부터 내려보낸다.
이렇게 온 신호를 역순으로 복원하여 브라우저 application에 전달되고,
브라우저는 응답받은 메시지를 해석하여 네이버 메인 화면을 그리게 된다.
참고
컴퓨터 네트워크 - 이화여대 이미정 교수님
Computer Networking: A Top-Down Approach 6th ed. J.F. Kurose and K.W. Ross