[웹개발 로드맵] 1. 인터넷

남현우·2022년 6월 20일
0

웹개발 로드맵

목록 보기
1/10

인터넷

인터넷은 인터 네트워크(Inter-Network)로부터 시작된 단어로, 이는 여러 통신망(Network)을 하나로 연결한다는 의미를 가진다.
현재 전 세계의 컴퓨터(PC, 스마트폰, TV 등)를 연결하는 거대한 통신망을 인터넷이라고 부른다.

인터넷의 구성

호스트와 교환노드

인터넷에 속한 장치들은 모두 노드(node)라고 부르기로 한다.
이때, 각 끝에 위치하는 PC(컴퓨터 혹은 스마트폰 등) 혹은 Server를 hosts 혹은 end systems라고 부른다.
그리고 그 중간에 위치한 노드들은 packet switches 혹은 교환노드라고 부른다.
교환노드는 역할에 따라 router 혹은 switch라고 불린다.

각 node의 역할

PC. 즉, 컴퓨터 혹은 스마트폰 등의 인터넷 접속을 위한 장치가 한 웹사이트에 접속한다고 가정해보자.
1. PC는 Server에게 해당 웹페이지의 내용을 받아와 화면에 띄우면 된다.
2. Server는 PC에게 요청받은 웹페이지의 내용을 보내주면 된다.
3. Router는 PC와 Server에게 전달되는 내용을 맞는 위치로 전달하면 된다.

이 세 가지의 간단한 작업은 다시말하면 다음과 같이 나타낼 수 있다.
1. 호스트는 데이터를 보내거나 받는다.
2. 교환노드는 데이터를 알맞게 전달한다.

프로토콜(protocol)

프로토콜은 위의 node들의 역할을 원활하게 진행할 수 있도록 지키기로 한 규약이다.
정보를 주고받는 것을 제어하는 규칙들을 미리 정해놓은 규약으로, RFC문서를 통해 다양한 프로토콜들의 구체적인 정보를 확인할 수 있다.
인터넷의 최종 목적은 hosts간의 데이터 전송이므로 이를위해 어느정도의 규약이 필요하기 때문에 만들어졌다.

인터넷의 동작

인터넷 5계층

인터넷에는 5계층 혹은 7계층이라고 불리는 것이 존재한다.
이는 너무 복잡한 인터넷의 시스템 때문에 계층화를 통해 관리하는 것으로, 데이터 전송중에 발생하는 문제들에 대해 어디에서 발생한 문제인지 확인이 용이하고, 수정 및 발전이 편리하기 때문에 사용한다.
물론 가끔 성능 향상을 위해 layer를 건너뛰는 cross-layer를 하기도 한다.

Application Layer(어플리케이션 계층)

우리가 직접 보는 프로그램들은 어플리케이션이라고 부르며 이를 돕기 위한 계층은 Application Layer라고 한다.
FTP, SMTP, HTTP 등이 여기에 속한다.

Transport Layer(수송 계층)

프로그램 사이에서 메세지(데이터)를 주고받기 위해 사용되는 계층이 바로 Transport Layer이다.
TCP와 UDP가 여기에 속한다.

Network Layer(네트워크 계층)

데이터를 보내는 곳을 source, 받는 곳을 destination이라고 할 때, source에서 destination까지의 라우팅(경로찾기)를 담당하는 계층이 Network Layer이다.
IP와 routing protocol이 여기에 속한다.

통신매체를 공유하는 또다른 컴퓨터와 데이터를 주고받는 문제를 핸들링하는 계층이 Data Link Layer다.
Ethernet(이더넷)과 802.111 WiFi(와이파이) 등이 여기에 속한다.

Physical Layer(물리 계층)

데이터는 bits단위로 나누어 전송되는데 이 bits를 전자기신호로 바꾸어 전달하고 다시 bits로 바꾸어주는 역할을 해주는 계층이 바로 Physical Layer다.

캡슐화(Encapsulation)

위의 5개의 계층을 통해 데이터는 전송되며, 이 과정은 캡슐화를 거친다.

캡슐화는 위와 같이 데이터를 보내는 쪽에서는 상위계층에서 하위계층으로 데이터가 전달되며 받는 쪽에서는 하위계층에서 상위계층으로 데이터가 전달되는 방식을 위해 고안된 방식이다.

각 계층에서 하위계층으로 데이터를 보낼 때, 데이터는 Header를 붙혀 해당 데이터에 대한 간단한 정보들을 표기한다. 이는 해당 계층이 이해할 수 있도록 작성되었기에 상위계층으로 데이터를 보낼 때에는 이 Header를 제거한 데이터 부분만 상위 계층으로 전달한다.

따라서 Transport계층은 Application계층이 붙힌 Header를 데이터로 인식해 그 위에 Header를 붙히고 이를 반복해 전송하고 떼어내 데이터를 읽는 모습을 캡슐화라고 부르는 것이다.

profile
개발 관련 지식을 기록하는 블로그입니다.

0개의 댓글