

인터넷 프로토콜 스택(TCP/IP 레이어)
인터넷 통신은 우편이나 택배 서비스 등으로 비유를 합니다.
발신자(클라이언트)가 있고, 택배물건(패킷)을 통해 수신자(서버)에 전달하고, 물류센터들(노드)을 거쳐 수신자에게 전달되는 점에서 그렇습니다.
그렇지만 일반 택배와 다른 점이 있다면 정해진 상자(패킷 크기)에 나누어서 보내야하고, 나누어서 보내기 때문에 조립순서가 필요합니다.
따라서 순서를 확인하기 위한 어떤 무엇인가가 있어야 할 것이고, 수신자 주소와 발신자 주소도 제대로 적혀있어야 합니다.
인터넷 통신에서는 이렇게 순서를 확인하고, 실제로 발신자가 있는지 확인하는 프로토콜(언어)이 TCP(Transmission Control Protocol, 전송 제어 프로토콜)이고, 수신자와 발신자가 적혀있는 것이 IP(Internet Protocol, 인터넷 프로토콜)입니다.
기존에 있던 네트워크 레이어 모델을 참고해서 인터넷 통신에서 이 규칙들을 적용하기 위해 새로운 계층을 만들었습니다.
이것을 TCP/IP 레이어라고도 부르며, 인터넷에서 사용하므로 인터넷 프로토콜 스택이라고도 부릅니다.
인터넷 프로토콜 스택과 OSI 7 레이어
인터넷에서는 기존에 있던 네트워크 레이어 모델인 OSI 7 레이어를 참고하여 TCP/IP 레이어를 사용합니다.
인터넷 프로토콜 스택 | OSI 7 Layer |
애플리케이션 계층(HTTP, FTP, SMTP 등) | 애플리케이션 계층 |
프레젠테이션 계층 | |
세션 계층 | |
전송 계층(TCP) | 전송 계층 |
인터넷 계층(IP) | 네트워크 계층 |
네트워크 인터페이스 계층 | 데이터 계층 |
물리 계층 |
표와같이 OSI 7 레이어의 일부 계층을 통합하고 단순화시켜 4개의 계층으로 만들었습니다.
각 계층에서 하는 일
인터넷 통신과 택배와의 차이점은 인터넷 통신은 TCP로 먼저 감싸고, 다음 IP로 포장지를 감싼다는 것입니다.
애플리케이션 계층에서는 어떤 물건을 전달합니다. 즉, 데이터를 소켓 라이브러리를 통해 HTTP, SMTP 등 애플리케이션 계층에 의해 전송계층으로 전달합니다.
전송 계층에서는 첫번째 포장지(TCP)를 감싸고, 이름과 상세 주소를 적습니다. 실제로는 TCP 헤더를 추가하고, 출발지/목적지 포트번호, 순서번호 등을 포함합니다.
인터넷 계층에서는 두번째 포장지(IP)로 감싸고, 출발지/목적지의 주소를 적습니다. 그리고 여기서 포장을 나눕니다. 실제로는 IP 헤더를 추가하고, 출발지/목적지 IP주소, TTL 등의 정보가 포함됩니다. 여기서 패킷의 크기가 큰 경우 패킷을 나눕니다. IP의 목적은 그저 목적지에 제대로 찾아가는 것이 중점이기 때문입니다.
네트워크 인터페이스 계층에서는 운송장을 붙이고 실제 배송을 합니다. 실제로는 MAC주소등의 물리적인 주소 정보가 포함됩니다.
이런 일련의 과정을 거쳐 포장을 한 다음에 받는 쪽에서는 역순으로 포장을 풀면서 올바른 데이터가 왔는지 확인하게 됩니다.
각 패킷은 IP 계층의 장비인 라우터를 통해 IP헤더만을 확인해서 목적지IP주소가 맞는지 확인하여 다음 목적지를 결정하고 전달됩니다.
최종 목적지에 도착했다면 IP헤더를 처리하고 TCP 계층으로 데이터를 전달하여 TCP 헤더를 확인합니다.
그리고 TCP에서 포트번호, 순서번호, 누락 등을 확인하여 패킷을 올바른 순서로 재조립하고 애플리케이션 계층으로 이동해 데이터를 확인합니다.
'CS' 카테고리의 다른 글
JWT(JSON Web Token)에 대한 이해 (0) | 2024.08.05 |
---|---|
데이터베이스 트랜잭션의 ACID 원칙 (0) | 2024.07.30 |
남에게 설명할 때 비로소 자신의 지식이 된다.
포스팅이 도움되셨다면 하트❤️ 또는 구독👍🏻 부탁드립니다!! 잘못된 정보가 있다면 댓글로 알려주세요.