CS/네트워크

TCP/IP의 4계층 이해하기

코구리 2024. 5. 31. 22:01

TCP/IP는 네트워크 통신에서 핵심적인 역할을 하는 프로토콜 집합이다.

HTTP/HTTPS 를 비롯한 많은 프로토콜이 TCP/IP에서 동작한다. 나는 이해가 어려웠기 때문에 나중에 복습을 위해서라도 정리를 해본다!

 

1. TCP/IP 란?

사람 간의 대화처럼 컴퓨터와 네트워크 간의 통신에도 일정한 규칙이 필요하다. 그리고 그 규칙을 프로토콜이라고 한다. 특히 인터넷과 관련된 모든 프로토콜들의 집합을 TCP/IP 라고 한다.

 

2. TCP/IP의 4계층

 TCP/IP에서의 통신은 4개의 계층으로 구분지을 수 있다. 이렇게 프로토콜을 계층화하면 어디에서 에러가 발생했는지 파악하기 쉽고 설계도 쉬워지기 때문에 효율적이다. 따라서 애플리케이션 계층, 전송 계층, 인터넷 계층, 네트워크 액세스 계층으로 구성된다.

데이터는 각 계층을 지나면서 캡슐화되고, 도착지에서 역캡슐화된다.

각 계층에서 헤더를 추가하고, 다음 계층에서는 이를 확인한 후 제거하여 원본 데이터를 점진적으로 복원한다. 이를 위해 송신측 각 계층에서 캡슐화 뿐만 아니라 역캡슐화도 일어난다. 

출처 : 그림으로 배우는 HTTP & Network Basic 참고함

이렇게 서버에 도착한 프레임은 다시 역순으로 역캡슐화되면서 응용 애플리케이션에 데이터가 전달된다.

그럼 이제부터 각 계층별 특징을 알아보자!

 

1) 애플리케이션 계층

사용자와 직접 상호작용하는 응용 프로그램이 위치한 계층이다. 클라이언트가 서버에 연결을 시도하면 도메인 이름을 IP 주소로 변환하는 DNS 프로토콜을 통해 IP 주소를 구한다.

HTTP, FTP, SMTP등이 대표 프로토콜이다.

응용 애플리케이션(예: chrome)에서 HTTP 데이터를 생성하게 된다. 

 

2) 전송 계층

전송 계층은 이름에서 알 수 있듯이 전송을 담당한다. 흐름제어 등을 통해 메세지의 신뢰성을 보장한다. 이 계층에서는 주로 TCP와 UDP가 사용된다.

애플리케이션 계층에서 보낸 메세지를 세그먼트로 나누고, 헤더에 포트 번호를 추가하여 캡슐화 한다. 이렇게 만들어진 세그먼트가 전송된다. 

이 포트 번호는 응용 프로그램을 식별하기 위한 번호이다.

웹 서버는 80번으로 정해져있다. 따라서 포트 번호를 80번으로 지정했다면 수신측에 도착한 데이터는 차례로 역캡슐화되면서 전송 계층에서 적힌 포트 번호를 확인하고 웹 애플리케이션에 전달한다.

 

3) 인터넷 계층

목적지의 컴퓨터가 다른 네트워크라면(보통은 다른 네트워크에 있다) 인터넷 계층에서 IP 주소로 다시한번 캡슐화를 거쳐야 한다. 인터넷 계층은 데이터의 라우팅과 전달을 담당한다. 주로 IP 프로토콜이 사용되며, IP 주소를 통해 데이터의 목적지를 지정한다.

 

또한 IP 주소는 특정 네트워크의 컴퓨터를 식별하기 위한 주소이기 때문에 다른 네트워크 간의 이동을 위해서 필요하다.

이렇게 IP 주소를 캡슐화 하는 것 또한 운영체제가 담당한다.

 

구체적으로 어떻게 식별하는 걸까?

IP 주소에 따라 다른 네트워크라고 식별이 되면 다른 네트워크로 이동하기 위해 기본 게이트웨이로 보낸다.

이것은 라우터라고 부르는 장비인데, 라우터에는 NIC 장치가 연결된 네트워크마다 하나씩 있다. 따라서 네트워크를 이동하는 통로라는 의미에서 게이트웨이라고도 부른다. 그렇기 때문에 패킷을 프레임으로 또 캡슐화해서 같은 네트워크 상의 라우터인 기본 게이트웨이로 우선 넘긴다.

같은 네트워크 상에서 이동할 때는 MAC주소가 필요하다.

따라서 라우터의 NIC에 있는 MAC 주소를 캡슐화하여 프레임으로 만들어 전송한다.

 

4) 네트워크 액세스 계층

수신된 프레임을 역캡슐화하여 본인에게 보낸 것임을 확인하고 또 패킷을 역캡슐화하여 목적지 IP 헤더를 확인한다. 이 확인한 주소의 네트워크가 연결된 NIC로 캡슐화하여 전송한다. 해당 데이터가 수신 측 컴퓨터로 전달된다.

 

여기서 최종 목적지의 MAC 주소는 ARP 프로토콜로 알아낸다. 이것은 특정 IP주소를 같은 네트워크 상에 있는 모든 컴퓨터에 브로드캐스팅으로 보내서 일치하는 컴퓨터만 응답하는 것을 통해 MAC 주소를 알아낸다.

이렇게 알아낸 MAC 주소를 캡슐화하여 최종적으로 프레임을 보내는 것이다.

 

네트워크 액세스 계층에서는 실제 물리적 네트워크를 통해 데이터를 전송한다. 이더넷, Wi-Fi 등의 프로토콜이 사용된다.여기서는 라우터가 아닌 스위치로 경로를 설정하여 최종적으로 전달해준다. 스위치는 같은 네트워크 상에서만 경로를 설정할 수 있다.

 

 

 

여기에서 프레임이 안전하게 잘 전달되어 네트워크로 나가게 되면 역순으로 서버의 네트워크 액세스 계층에서부터 올라가면서 역캡슐화를 하면서 애플리케이션까지 도달한다.

그러면 서버에서 응답 메세지를 보내게 되고 똑같은 순서로 전송이 이루어진다.

 

이번 주제는 더 자세하게 설명해준 글을 참고하면 훨씬 이해하기 수월할 듯 하다. 따라서 ref로 남겨둔 Morian님의 시리즈 글을 정독하길 권장한다!

 

ref

https://yozm.wishket.com/magazine/detail/1956/

 

주니어 개발자를 위한 엄청 쉬운 TCP/IP 4계층 이야기 | 요즘IT

이번 글에서는 이전 글 “택배 배송 과정으로 알아보는 엄청 쉬운 컴퓨터 네트워크”를 컴퓨터에서 일어나는 일로 가져와 설명해보도록 하겠습니다. 이전 글에서 저는 데이터가 4단계에 걸쳐

yozm.wishket.com

https://yozm.wishket.com/magazine/detail/2005/

 

주니어 개발자를 위한 TCP/IP 주요 프로토콜 알아보기 | 요즘IT

이전 글 ‘주니어 개발자를 위한 엄청 쉬운 TCP/IP 4계층 이야기’에서, 컴퓨터와 컴퓨터의 통신이 올바르게 이루어지기 위해 데이터가 각각 어떤 계층에서 캡슐화되어야 하는지 알아보았습니다.

yozm.wishket.com

https://www.yes24.com/Product/Goods/15894097

 

그림으로 배우는 HTTP & Network - 예스24

이 책은 웹의 근간을 이루는 HTTP를 중심으로 하여 웹, 인터넷 데이터 통신 분야의 기초가 되는 내용들을 다루고 있다. 관련 분야를 배우고자 하는 독자들을 위해 만화 캐릭터와 일러스트를 활용

www.yes24.com