✅ 4계층(전송 계층)
전송 계층은 OSI (Open Systems Interconnection) 모델과 TCP/IP 모델에서의 4번째 계층을 말합니다. 이 계층은 송신자와 수신자 간의 프로세스 간 통신을 관리하며, 데이터의 신뢰성과 효율성을 보장하는 역할을 수행합니다.
➡️ 전송 계층은 다음과 같은 주요 기능을 제공합니다
- 연결 지향 데이터 스트림 지원
전송 계층은 송신자와 수신자 간에 가상의 연결을 설정하여 데이터를 신뢰성 있게 전송합니다. 이를 통해 데이터의 순서가 보장되고, 중복되거나 손상된 데이터는 재전송됩니다. 이러한 기능은 연결 지향 프로토콜인 TCP (Transmission Control Protocol)에서 제공됩니다.
- 신뢰성
전송 계층은 데이터의 손실이나 손상을 감지하고 복구하기 위한 메커니즘을 제공합니다. 데이터의 정확성을 위해 오류 검출 및 재전송 기능을 활용하며, 흐름 제어와 혼잡 제어를 통해 데이터 전송의 안정성을 유지합니다.
- 흐름 제어
흐름 제어는 송신자와 수신자 사이의 데이터 전송 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는 역할을 합니다. 수신자가 처리할 수 있는 양의 데이터를 보내고, 수신자의 응답에 따라 데이터의 전송 속도를 조정합니다.
- 다중화
다중화는 하나의 네트워크 연결을 통해 여러 개의 애플리케이션 프로세스 간에 데이터를 전송하는 기능을 말합니다. 전송 계층은 각 프로세스로부터 데이터를 받아 헤더 정보를 추가하여 수신자의 전송 계층에 전달합니다. 이를 통해 여러 개의 애플리케이션 간 데이터 전송이 가능해집니다.
전송 계층에서 가장 잘 알려진 프로토콜은 연결 지향적인 TCP와 단순한 전송을 위한 UDP (User Datagram Protocol)입니다. TCP는 신뢰성과 흐름 제어를 중요시하는 애플리케이션에 사용되며, UDP는 신속한 전송이 필요한 실시간 음성 및 영상 스트리밍과 같은 애플리케이션에 적합합니다.
✅ 포트 번호
특정 프로세스와 특정 프로세스가 통신을 하기 위해 포트 번호를 사용합니다. 포트 번호는 16비트 숫자로, 송신 측과 수신 측 간의 특정 프로세스를 식별하는 데 사용됩니다. 하나의 포트 번호는 하나의 프로세스에 의해 사용될 수 있습니다.
송신 측에서는 보낼 데이터를 지정한 포트 번호를 사용하여 수신 측의 특정 프로세스와 통신을 시작합니다. 수신 측에서는 해당 포트 번호로 들어오는 데이터를 수신할 프로세스에게 전달합니다.
하지만, 연결을 하는 쪽에서는 여러 개의 포트 번호를 사용할 수 있습니다. 즉, 송신 측에서 제공하는 포트 번호는 하나의 프로세스가 보낼 수 있는 포트 번호입니다. 하지만 수신 측에서는 여러 개의 포트 번호를 받을 수 있습니다. 이렇게 함으로써 동일한 프로세스가 동시에 여러 연결을 처리하거나 다른 프로세스가 동시에 연결을 수락할 수 있습니다.
예를 들어, 웹 서버(포트 번호 80)와 통신하는 클라이언트는 클라이언트 측에서 임의의 포트 번호를 선택하여 웹 서버에 연결을 요청합니다. 이렇게 하면 여러 클라이언트가 동시에 웹 서버와 통신할 수 있습니다. 웹 서버는 해당 포트 번호로 들어오는 연결을 수락하고, 클라이언트와 통신을 시작합니다.
따라서, 송신 측에서는 하나의 포트 번호를 사용하여 특정 프로세스를 식별하고, 수신 측에서는 여러 포트 번호를 사용하여 여러 연결을 처리할 수 있습니다. 이를 통해 다양한 프로세스 간의 효율적인 통신이 가능해집니다.
- Well-Konown 포트(0~1023번)
잘 알려진 포트는 0~1023번 포트를 의미합니다. 이는 잘 알려진 특정한 어플리케이션을 위해 ICANN에서 할당한 TCP/UDP 포트 번호입니다. 강제적으로 지정된 것은 아니지만 ‘표준’에 가깝고 다른 용도로 사용될 수도 있습니다. 대표적으로 위와 같은 포트 번호가 있습니다. 만약 웹 서비스를 이용한다고 하면 80번 포트를 사용해야 합니다.
- Registered 포트(1024~49151번)
포트 번호 서비스 이름 1521 오라클 DB 서버 3306 MySQL 서버 3389 MS 원격 데스크탑 8080 톰캣 서버 등록된 포트 번호라고 하며 특정 프로그램이 사용하는 대표적 포트를 이야기합니다. 이는 강제적으로 지정된 것이 아니라 다른 용도로 사용될 수도 있습니다.
- Dynamic 포트(49152번~65535번)
시작 포트 번호 마지막 포트 번호 49152번 65535번 프로그램에 접속하는 사용자들이 사용하는 일반적인 포트 번호입니다.
✅ 활성화 연결 테이블
netstat -ano
현재 포트 활성 여부를 나타내는 테이블입니다. 활성화 연결 테이블은 네트워크 장비(예: 라우터, 방화벽)에서 관리되는 데이터 구조로, 네트워크 연결의 상태와 관련된 정보를 저장하는 테이블입니다. 이 테이블은 주로 전송 계층 프로토콜인 TCP에서 사용되며, TCP 연결의 상태 추적과 연결 관리를 위해 필요합니다. cmd에서 위 명령어로 확인할 수 있습니다.
🏷️이미지 출처 및 참고한 사이트
Uploaded by N2T