
인터넷이 어떻게 통신되는지 알기 위해 통신 규칙을 알아야 한다. 이를 프로토콜이라고 한다. 어떤 프로토콜들이 있는지 살펴보고, 어떤 기능를 하는지 알아보자! 그리고 전달되는 TCP/IP 4 계층 구조도 간단하게 살펴보자!
인터넷에서 컴퓨터 둘은 어떻게 통신할까? 클라이언트와 서버가 바로 옆에 붙어있다면 연결한 케이블로 메시지를 주고받으면 된다. 하지만 중간에 인터넷이 존재하고, 메시지를 전달해야 할 PC가 멀리 있다면 어떻게 통신하게 될까?
인터넷망 을 통해서 메시지를 보내야 하는데 인터넷망은 단순하지 않다. 중간에 해저 광케이블이 있을 수도 있고, 인공위성을 통해서 전달될 수도 있다. 수많은 중간 노드, 서버들을 거쳐서 메시지가 전달 된다. 그렇다면 어떤 규칙 으로, 어떻게 목적지까지 안전하게 도착할까? 이걸 이해하려면 IP (인터넷 프로토콜) 에 대해서 알아야 한다.
지정한 IP 주소에 데이터 전달패킷이라는 통신 단위로 데이터 전달IP 패킷 규칙으로 메시지를 보낸다.IP 패킷[출발 IP주소+ 목적IP 주소 + 메시지]패킷?
- 패키지(수화물) + 버킷(덩어리) 합성어
- 택배 박스에 짐을 넣어 보내는 것과 비슷한 거다.
인터넷 망에서 메시지를 보내려면 최소한의 규칙이 필요하다. 이것은 IP 주소를 통해서 가능하다. 클라이언트가 IP 주소를 부여받아야 하고, 메시지를 받아야 할 서버 측도 IP 주소가 필요하다. 그리고 IP 패킷 규칙으로 메시지를 보낸다.
IP 패킷을 인터넷 망에 던진다. 인터넷에서 노드끼리 서로 물으면서 던지다가 최종 목적지까지 전달된다.IP 패킷을 만들어서 다시 클라이언트로 던진다. 노드끼리 서로 물어가며 최종적으로 목적지까지 도달한다.IP 프로토콜 한계
IP 주소를 부여하고 찾아가는 방식과 IP 패킷에 담는 방식만 가지고는 한계가 있다.
비연결성,비신뢰성,프로그램 구분등으로 수많은 문제들이 발생된다. 이를TCP 프로토콜이 해결해 준다.
- 클라이언트는 대상 서버가 패킷을 받을 수 있는 상태인지 모른다.
- 서버를 거치다가 패킷이 소실될 수도 있다.
- 용량이 크면 패킷 전달 순서에 문제가 발생할 수도 있다.

IP 프로토콜에서 발생된 많은 문제를 TCP 프로토콜이 해결해 준다. IP 위에 올려서 보완하는 역할을 한다. TCP는 데이터 전송의 정확성을 담당하고, IP는 패킷을 목적지까지 전송하는 일을 담당한다.
🖥️ 먼저 실제 사용되는 프로토콜 스택인 TCP/IP 4계층 구조를 살펴보자!


💡 데이터는 단계 별로 헤더(Data → Segment → Datagram → Frame)를 붙여 전송하며 이를
데이터 캡슐화라고 한다.
TCP, UDP데이터 전송 관리정확성 확인IP패킷이 목적지까지 전송하는 일물리적으로 데이터를 전송하는 역할
- 애플리케이션 :
프로그램에서 메시지생성- 애플리케이션 :
SOKET 라이브러리를 통해 전달- 전송 계층 :
TCP 정보 생성, 메시지 데이터 포함- 인터넷 계층 :
IP 패킷 생성, TCP 데이터 포함
➡️🌐🖥️ 네트워크 인터페이스 계층 :랜카드를 통해 이더넷 프레임을 포함해서 나간다.
IP 패킷 안에 TCP 세그먼트가 들어간다. TCP 세그먼트에는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등이 들어가므로 IP 주소만으로는 해결되지 않았던 문제들를 안정적으로 해결하게 된다. 그리고 그 안에 전송 데이터를 넣는다.
🖥️ 연결 지향- TCP 3 way handshake (가상 연결)
연결이 되었는지 확인을 하고 메시지를 보낸다. 3 way handshake를 하면 클라이언트와 서버는 서로를 믿을 수 있게 된다. 메시지를 1. SYN 2. SYN+ACK 3. ACK 총 3번 주고받는다. 이렇게 하면 서로가 연결되었음을 인식하게 된다. 4. 데이터를 전송 한다. 연결 과정에 문제가 있으면 데이터 전송을 하지 않는다. 마지막 ACK를 보낼 때 데이터도 같이 전송 한다.🖥️ 데이터 전달 보증
메시지를 보냈는데 패킷이 중간에 누락이 된 것을 알 수 있다.
🖥️ 순서 보장
참고
모든 개발자를 위한 HTTP 웹 기본 지식 -인프런 김영한
TCP 와 UDP 차이를 자세히 알아보자 (블로그)