인터넷(inter-network에서 유래)이란 데이터를 전달해주는 망으로 전 세계 컴퓨터를 하나로 연결해준다.
인터넷은 클라이언트-서버로 이뤄진 컴퓨터 네트워크들의 집합체이다.

인터넷에 접속하는 모든 기기(End System)들이 존재하는 곳으로 기기들이 네트워크에 진입하는 지점이다.
인터넷의 입구 정도로 생각하면 된다.
예시: 노트북, 스마트폰, 데스크탑 등
접속망으로 Network Edge와 Internet Core을 연결하는 중간 연결망이다. End System이 인터넷과 연결되는 첫 구간이다.
예시: 랜선, 와이파이
네틍워크의 핵심망으로 대량의 데이터를 빠르고 효율적으로 전달하고 중계한다.
End System의 정보를 빠르게 실어 나른다.
예시: 라우터
인터넷 통신 과정을 알기 전에 기본 키워드부터 정리해보자.
인터넷에서 데이터를 전달할 때 사용하는 기본 단위.
전송하는 데이터는 여러 패킷으로 쪼개져서 전송된다.
헤더
- 출발지와 목적지의 IP 주소
- 시퀀스 번호: 패킷의 순서 정보
- 오류 검사용 정보
페이로드- 실제 전송하는 데이터 조각
패킷을 올바르게 전달하기 위해 만들어진 주소 체계와 전송 규칙이다. 모든 End System들은 고유한 IP주소를 가지고 있다.
IP를 통해 Network 계층에서 유일하게 상대를 식별할 수 있고 이를 통해 라우터들은 목적지 IP를 보고 다음 목적지로 패킷을 전달하게 된다.
라우터들은 오로지 IP를 보고 데이터를 전달하기 때문에 다음과 같은 문제가 발생할 수 있다.
1,2,3 번의 문제를 해결하기 위해 TCP가 존재한다.
1번 - TCP는 3-way handshake를 통해 서버와 클라이언트 간의 통신 가능 여부를 확인한다.
2번 - 데이터가 올바르게 도착하면 서버는 클라이언트에 도착했다는 정보를 보낸다. 이를 통해 클라이언트는 자신의 데이터 전송에 문제가 없음을 판단하고 계속해서 남은 데이터를 전송한다. 만약 서버에서 데이터 수신 여부를 받지 못하면 데이터 전송에 문제가 있다고 판단하고 재송신한다.
3번 - TCP는 패킷에 시퀀스 넘버를 붙여서 각 패킷의 순서 정보를 남긴다. 수신자는 이 시퀀스 넘버를 바탕으로 데이터를 분석하여 시퀀스가 잘못된 경우 송신자에 필요한 데이터를 재요청한다.

UDP는 TCP와 달리 기존의 IP에 PORT와 체크섬(데이터가 올바른지)만 추가한 프로토콜로 TCP보다 신뢰성이 떨어지지만 그만큼 속도가 빠르다.

PORT
PORT란 같은 IP 내에서 프로세스를 구분하는 데 사용한다.
4번과 같은 경우 목적지 IP에 따라 데이터가 도착했는데 어느 프로그램으로 패킷을 이동시킬 지 모르는 경우 PORT로 이를 식별한다.
이를 바탕으로 데이터 요청과 응답이 일어나는 과정을 다음과 같이 정리해볼 수 있다.
요청 과정
클라이언트
↓
[Transport Layer] → TCP 연결 요청 (3-Way Handshake 시작)
↓
[3-Way Handshake 완료]
↓
[패킷 생성: 데이터 + IP + PORT 등]
↓
Access Network (ISP, Wi-Fi 등)
↓
[물리 계층 → 데이터 링크 계층 → 네트워크 계층]
↓
Internet (Network Core)
↓
Router → Router → ... → 목적지 Router
↓
Network Edge (서버가 위치한 네트워크)
↓
[Physical Layer → Data Link Layer → Network Layer]
↓
IP 확인 → 맞는 서버로 전달
↓
Transport Layer에서 PORT 확인
↓
해당 애플리케이션(App)에 전달
↓
서버에서 응답 처리
응답 과정
서버
↓
[Transport Layer] → 응답 데이터 TCP로 세그먼트화
↓
IP + PORT 포함된 패킷 생성
↓
Network Core → 여러 라우터 경유
↓
클라이언트가 위치한 Network Edge 도달
↓
[Physical → Data Link → Network Layer → Transport Layer]
↓
PORT 보고 적절한 클라이언트 애플리케이션에 전달