본문 바로가기

IT/WEB

TCP/IP 4계층에 대해서

오늘날 네트워크가 대부분 TCP/IP 통신으로 이루어지면서 TCP/IP 통신 방식이 통신 표준으로 채택되었습니다.

 

계층을 나누면

  • 복잡한 작업을 여러개의 작고 단순한 작업들로 나눌 수 있습니다.
  • 어느 계층이 고장났는지 파악하기 쉽습니다.

오늘은 각 계층의 역할에 대해 알아보고, 어떤 흐름으로 흘러가는지에 대해 이해해보도록 하겠습니다.

TCP/IP 4계층

이젠 거의 이론적인 모델인 OSI 7계층에 대해 알고 있다면, TCP/IP 4계층을 이해하기 더 쉽습니다.

정확하게 일치하진 않지만 OSI 계층에서 좀 더 단순화된 게 TCP/IP 계층이라고 볼 수 있습니다.

TCP/IP 4계층

각 계층의 역할

간단한 예를 들어보면 다음과 같습니다.

웹 브라우저에서 URL을 입력하면, HTTP 요청 메시지가 TCP/IP 4계층 과정을 통해 서버에 전달됩니다.
그러면 서버는 요청에 맞는 HTTP 응답 메시지를 만들어 다시 TCP/IP 4계층 과정을 통해 웹 브라우저에 전달을 하고,
웹 브라우저는 받은 응답을 파싱하여 화면에 출력하게 됩니다.

그럼 이 TCP/IP 계층에서는 어떤 일이 일어나는 걸까요?

1. Application 계층 (4계층)

OSI의 Application + Presentation + Session 계층과 유사

웹 브라우저에 URL을 입력하면 애플리케이션 계층은 해당 URL을 분석하여 아래 계층으로 값을 전달합니다.

 

URL의 host 부분(=도메인 이름)은 DNS를 통해 그에 해당하는 IP주소를 얻게 됩니다.

 DNS(Domain Name System)은 도메인 이름과 매칭되는 IP 주소를 가지고 있습니다.

 

웹 전송 프로토콜인 HTTP/HTTPS를 사용해 HTTP 요청 메시지에 정보를 넣고 보냅니다.

2. Transport 계층 (3계층)

데이터가 모든 과정을 거쳐 안전하게 목적지까지 전달될 수 있도록 제어하는 역할을 합니다.

 

TCP는 정확한 전송을 보장하기 위해 3-way handshaking을 통해 상대가 통신할 준비가 되었음을 사전에 확인합니다.

그 후, 상대 서버에 전송하는 부분은 하위 계층에 존재하는 IP에게 맡기고,

상대 서버에 도착하고 나서 그 서버에 존재하는 여러 애플리케이션 중 어느 애플리케이션에게 전달할 지 판단하여 배분하는 역할을 합니다. 이 때 애플리케이션을 식별하기 위해 Port번호를 사용합니다. 

 

Internet 계층의 IP는 데이터를 전송할 뿐, 다른 문제는 신경쓰지 않습니다. 그래서 TCP가 이러한 신뢰성 부분을 보증하게 됩니다.

3. Internet 계층 (2계층)

IP(Internet Protocol)가 서버까지 전달받은 데이터를 전해주게 됩니다.

IP는 IP 주소를 이용해서 최종 목적 서버까지 데이터를 전송합니다.

 

전송할 때에 여러 네트워크를 경유하게 되는데, 

이때 라우터가 목적 서버까지 가는 가장 최적의 길을 설정해주게 되고, 이를 라우팅이라 말합니다.

4. Network Access 계층 (1계층)

OSI의 Data Link + Physical 계층과 유사합니다.

물리적인 데이터 전송 담당하는 계층으로, MAC 주소를 이용합니다.

MAC주소란, 랜카드에 개별적으로 부여되는 단말 식별번호로, 모든 통신 장비에 각각 존재하고 변하지 않는 주소입니다.

바로 옆에 물리적으로 연결되어 있는 노드와 통신하여 목적지에 도달하게 됩니다.

 

Internet 계층에서 사용하는 IP주소가 시작점과 끝점에 해당하는 주소라면,

MAC 주소는 끝점에 도달하기 위해 사이사이 노드들을 거쳐 데이터를 전달할 때 사용됩니다.

즉, 데이터 링크 계층이 문제없이 동작해야 인터넷 계층의 역할도 완료된다고 볼 수 있습니다.

 

대표적으로 이더넷을 이용하여 데이터를 전달하게 됩니다.

이더넷(Ethernet)이란 네트워크를 구성하는 방식 중 하나로, 각 기기들의 MAC 주소를 가지고 호스트간의 데이터를 주고받을 수 있는 방식을 쓴다. 데이터를 작게 분할해서 프레임 단위로 구성하여 이것을 전기 신호나 광신호로 바꿔서 통신매체로 송출합니다.

 


이러한 과정을 통해 데이터를 주고 받게 됩니다.

각 계층은 서로 유기적인 관계로 데이터 송수신 받을때 1~4계층, 4~1계층 단계로 이루어집니다.

 

Transport 계층에서 3-way handshaking으로 목적지 서버가 통신을 주고받을 준비가 되어있음을 확인하면

Internet 계층에서 IP주소로 목적지 서버를 알고, 라우팅으로 경로를 설정하여 IP를 이용해 데이터를 전송하면

Network Access계층에서 MAC주소를 이용해 연결되어 있는 노드 간에 물리적으로 데이터를 전송하여 목적지까지 도달하게되고,

도달한 후엔 Transport 계층에서 Port번호를 통해 목적지 서버내 해당 애플리케이션에 데이터를 전달하게 됩니다.

 

 처음 TCP/IP 계층에 대해 배웠을 땐, 따로따로 이해하고 있어서 흐름을 파악하지 못했는데

이렇게 흐름에 따라 정리하니까 실제로 어떤 식으로 흘러가는지 알 수 있었습니다 :)

 

잘못된 정보가 있거나, 다른 의견이 있으시다면 피드백 부탁드립니다. 감사합니다 :)

 

 

'IT > WEB' 카테고리의 다른 글

HTTP 상태 코드에 대해서  (0) 2022.03.04