네트워크 프로그램 통신의 중요성
- 이전 계층에서는 개별 노드의 통신 방식을 다뤘지만, 이번에는 컴퓨터 프로그램 간 데이터 전송 방식을 집중적으로 살펴봅니다.
- 네트워킹의 목표는 단순히 컴퓨터를 연결하는 것이 아니라, 프로그램들이 데이터를 주고받도록 하는 것입니다.
전송 계층과 애플리케이션 계층
- 전송 계층은 트래픽을 특정 네트워크 애플리케이션으로 전달하는 역할을 합니다.
- 애플리케이션 계층은 이러한 애플리케이션이 서로 이해할 수 있는 방식으로 통신할 수 있도록 합니다.
멀티플렉싱 및 디멀티플렉싱
- 멀티플렉싱은 하나의 네트워크 연결을 통해 여러 애플리케이션의 데이터를 동시에 전송할 수 있도록 하는 것을 의미합니다.
- 디멀티플렉싱은 수신 측에서 멀티플렉싱된 데이터를 각 애플리케이션으로 분류하는 과정입니다.
포트
- 포트는 0에서 65,535 사이의 16비트 숫자로, 특정 네트워크 서비스나 애플리케이션을 식별하는 데 사용됩니다.
- 예를 들어, 웹 서버는 일반적으로 포트 80을 사용하고, FTP 서버는 포트 21을 사용합니다.
소켓 주소
- 소켓 주소는 IP 주소와 포트 번호를 결합하여 네트워크 상의 특정 애플리케이션을 식별하는 데 사용됩니다.
- 예를 들어, "10.1.1.100:80"은 IP 주소가 10.1.1.100이고 포트 번호가 80인 웹 서버를 나타냅니다.
TCP 세그먼트란 무엇인가요?
- TCP 세그먼트는 IP 데이터그램 내부에 캡슐화되어 있으며, 애플리케이션 계층 데이터를 전달하는 역할을 합니다.
- TCP 헤더와 데이터 섹션으로 구성되며, TCP 헤더에는 연결 관리 및 데이터 무결성을 위한 다양한 필드가 포함됩니다.
TCP 헤더 필드 살펴보기
- 출발지 포트 및 목적지 포트: 통신하는 애플리케이션을 식별합니다. 목적지 포트는 특정 서비스를 나타내고, 출발지 포트는 임시 포트를 사용하여 여러 연결을 구분합니다.