TCP/IP
인터넷을 포함하여 일반적으로 사용하고 있는 네트워크는 TCP/IP라는 프로토콜에서 움직이고 있습니다. HTTP는 그중 하나입니다. 이 책(그림으로 배우는 network)에서는 간단하게 설명하고 있기 때문에 자세한 내용은 추후 업데이트할 수 있도록 하겠습니다. ^^
0. TCP/IP는 프로토콜의 집합
A와 B가 소통을 하기 위한 조건 세 가지가 있습니다.
- 첫 번째는 A와 B가 같다.
- 두 번째는 A와 B는 다르지만 서로가 정한 규칙으로 소통한다.
- 세 번째는 통역사를 사이에 둔다.
서로 같은 문화권에서는 대부분 1번과 같이 소통합니다. 해외에 나가면 2번, 3번과 같이 소통하게 됩니다. 그래서 전 세계는 하나의 규칙을 만드는데 그것은 바로 세계 공용 언어 '영어'입니다. 서로가 한 규칙을 따르기 때문에 의사소통에 문제가 생기지 않죠. 이처럼 디지털의 세계에서도 똑같습니다. 우리들에게 소통의 규칙은 '언어'가 되겠고, 디지털의 소통 규칙은 '프로토콜'이라고 할 수 있습니다.
프로토콜에는 여러 가지가 있습니다. 케이블 규격이랑 IP 주소 지정 방법, 떨어진 상대를 찾기 위한 방법과 그곳에 도달하는 순서, 그리고 웹을 표시하기 위한 순서 등입니다.
1. 계층으로 관리하는 TCP/IP
TCP/IP에서 중요한 개념 중 하나가 계층(Layer)입니다. 계층에는 '애플리케이션 계층', '트랜스포트 계층', '네트워크 계층', '링크 계층' 이렇게 4 계층으로 나뉩니다.
"근데 왜 계층으로 나눠야 돼?"
계층으로 나눠 놓으면 장점이 있기 때문입니다. 예를 들어 인터넷이 하나의 프로토콜로 되어 있다면 어디선가 사양이 변경되었을 때 전체를 바꾸지 않으면 안 됩니다. 하지만 계층화되어 있으면 부분적으로만 바꾸면 되죠. 쉽게 말해 관리하기 쉬워집니다.
그리고 효율이 높아집니다. 한개로 모든 것을 한다면 크기가 커지기 때문에 관리하기 어려워지고 세부적으로 관리할 수 없어 효율이 떨어지고 맙니다. 하지만 계층으로 나누면 각자 일에 충실해지죠. 예를 들면 회사 구조와 비슷합니다.
이렇게 계층적으로 나누면 일의 효율은 좋아지고 관리하기 쉬워집니다.
그리고 위험성이 줄어듭니다. 개발부에 문제가 생긴다면, 최소한 개발부 안에서 해결할 수 있습니다. 적은 일력으로 문제를 해결할 수 있고 다른 부서에게는 큰 영향을 끼치지 않죠. 하지만 나뉘지 않았다면 한 문제를 풀기 위해 회사 전체가 멈추게 되는 상황이 생깁니다.
또 투자를 예로 들수 있습니다. 투자 방법 중 분산투자가 있습니다. 이 분산투자는 100이라는 돈을 한 곳에 투자하는 것이 아니라 100을 여러 개로 나눠 투자하는 방법입니다. 그림과 같이 5개로 나눠 투자하면 한 곳이 망해도 4/5은 지킬 수 있게 됩니다. 이렇게 하면 위험성을 낮추고 원금을 최대한 보호할 수 있죠. 컴퓨터 세계에서는 안정성, 성능을 최대한 보호할 수 있습니다.
애플리케이션 계층
애플리케이션 계층은 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정합니다.
TCP/IP에는 여러 가지의 공통 애플리케이션이 준비돼 있습니다. 예를 들면, FTP랑 DNS 등도 애플리케이션의 한 가지입니다. HTTP도 이 계층에 포함되죠
트랜스포트 계층
애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공합니다. 서로 다른 성질을 가진 TCP(Transmission Control Protocol)와 UDP(User Data Protocol) 두 가지 프로토콜이 있습니다
네트워크 계층(인터넷 계층)
패킷이란? 전송하는 데이터의 최소단위
네트워크 계층은 네트워크 상에서 패킷의 이동을 다룹니다. 이 계층에서는 어떠한 경로(절차)를 거쳐 상대의 컴퓨터까지 패킷을 보낼지를 결정합니다.
인터넷의 경우라면 상대 컴퓨터에 도달하는 동안에 여러 대의 컴퓨터랑 네트워크 기기를 거쳐서 상대방에게 배송됩니다. 그러한 여러 가지 선택지 중에서 하나의 길을 결정하는 것이 네트워크 계층의 역할입니다.
링크 계층(데이터 링크 계층, 네트워크 인터페이스 계층)
네트워크에 접속하는 하드웨어적인 면을 다룹니다. 운영체제가 하드웨어를 제어하기 때문에 디바이스 드라이버랑 네트워크 인터페이스 카드를 포함합니다. 그리고 케이블과 같은 물리적인 부분도 이 계층에 포함됩니다.
2. TCP/IP 통신의 흐름
- TCP/IP는 통신할 때 계층을 순서대로 거쳐 상대와 통신하게 됩니다. 송신하는 측은 애플리케이션 계층부터 시작하고, 수신하는 측은 애플리케이션 계층으로 올라갑니다.
- HTTP를 예로 들면, 송신 측 클라이언트의 애플리케이션 계층(HTTP)에서 수신 측 서버에게 웹페이지를 HTTP로 리퀘스트합니다.
- 그다음 트랜스포트 계층은 앞에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내 번호와 포트 번호를 붙여 네트워크 계층에 전달합니다.
- 네트워크 계층(IP)에서 수신지 MAC 주소를 추가해서 링크 계층에 전달해 송신하게 됩니다.
수신 측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위에 계층에 전달합니다
각 계층을 지나갈 때 반드시 해당 계층에 필요한 정보를 추가합니다. 반대로 수신측에서는 계층을 지나갈 때마다 사용한 헤더를 삭제합니다.
이렇게 정보를 감싸는 것을 캡슐화라고 부릅니다.
'study > network' 카테고리의 다른 글
2. HTTP 프로토콜이란 (0) | 2020.06.22 |
---|---|
1.4 IP, TCP, DNS 그리고 URI와 UR (0) | 2020.04.21 |
1.2 웹과 HTTP 탄생 배경 (0) | 2020.04.06 |
1.1 웹 HTTP로 나타낸다 (0) | 2020.04.06 |
그림으로 배우는 Http & Network Basic (네트워크 공부 시작~~) (0) | 2020.03.31 |
댓글