일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- port aggregation protocol
- junos os
- 네트워크
- 네트워크 설계
- ospf
- stream 9
- eigrp
- pvst+
- rommon mode
- ansible playbook
- 하프오픈
- Ansible
- BPDU
- 티스토리챌린지
- Red Hat
- 오블완
- 방화벽
- 프로그래머스
- SQL
- LACP
- Packet Tracer
- vlan
- gns3
- freeradius
- centos
- pagp
- Network Design
- Cisco
- STP
- 네이티브 vlan
- Today
- Total
Doctor Pepper
[전송 계층] IP의 한계와 포트 번호 본문
1. 네트워크 계층의 한계
[IP 주소 부족 문제]
IPv4 주소 체계에서는 32비트 주소 체계를 사용하여 약 43억 개의 주소를 제공한다. 하지만 인터넷의 빠른 성장으로 인해 IPv4 주소가 거의 고갈되었으며, 이로 인해 IPv6로의 전환이 추진되고 있다. IPv6는 128비트 주소를 사용하여 사실상 무제한에 가까운 주소 공간을 제공하지만, 아직까지 IPv4에서 완전히 벗어나지 못하고 있기 때문에 네트워크 호환성 문제도 존재한다. IP 주소 부족 문제는 주소 변환 기술(NAT)을 탄생시켰지만, 이는 추가적인 복잡성과 전송 지연을 유발할 수 있다.
[패킷 전달의 신뢰성 문제]
네트워크 계층에서의 또 다른 문제는 IP 패킷이 전달되는 과정에서 발생할 수 있는 패킷 손실과 지연 문제가 있다. IP 프로토콜은 비연결형 프로토콜로, 패킷을 목적지까지 최선의 경로를 통해 전달하려 하지만, 보장된 전달을 약속하지 않는다. 이는 패킷이 중간에 손실되거나, 네트워크 혼잡 상황에서 지연이 발생하는 원인이 된다. 특히 실시간 데이터 전송이 중요한 서비스에서 이 문제는 더욱 치명적이며, 전송계층에서 재전송 등의 추가적인 작업을 수행하여 신뢰성을 보완해야 한다.
[네트워크 보안의 취약성 문제]
IP 계층은 설계상 보안에 취약하여, IP 스푸핑, 중간자 공격(Man-in-the-Middle), DDoS 공격 등 다양한 위협에 노출되어 있다. IP 스푸핑은 송신자가 자신의 IP 주소를 위조하여 패킷을 전송하는 방식으로, 신뢰할 수 없는 송신자로부터 데이터를 수신하는 보안 문제를 초래할 수 있다. 이를 방지하기 위해서는 방화벽 설정, IPsec과 같은 보안 프로토콜 사용 등이 필요하다. 네트워크 계층에서 보안이 확보되지 않으면, 전송계층에서의 데이터 통신 역시 안전하지 않게 된다.
2. 전송 계층
전송 계층은 네트워크 계층과 애플리케이션 계층 사이에서 데이터 전송을 관리하는 중요한 역할을 수행한다. 이 계층은 주로 연결형 통신과 신뢰성 있는 통신을 구현해, 네트워크 상에서 안정적이고 효율적인 데이터 전달을 보장한다. 이를 위해 TCP와 UDP라는 두 가지 주요 프로토콜이 사용된다.
- 연결형 통신: 연결형 통신은 송신자와 수신자 간에 논리적인 연결을 설정하고 이를 유지하며 데이터를 전송하는 방식이다. 전송 계층의 대표적인 연결형 프로토콜인 TCP(Transmission Control Protocol)는 연결 설정을 위해 3-way handshake 과정을 거치며, 연결을 종료할 때도 4-way handshake 과정을 통해 안전하게 세션을 마무리한다. 이 과정은 네트워크의 상태를 양측에서 확인하여 데이터가 문제없이 전달될 준비가 되었는지를 보장한다.
- 신뢰성 있는 통신: 신뢰성 있는 통신이란 데이터가 전송 도중 손실되지 않고 순서대로 도착하도록 보장하는 것을 의미한다. TCP는 오류 검출, 재전송, 흐름 제어, 혼잡 제어와 같은 기능을 통해 신뢰성 있는 데이터 전송을 실현한다. 만약 네트워크 상황으로 인해 일부 패킷이 손실되거나 지연되는 경우에도 TCP는 이를 감지하고 재전송하여 데이터의 완전성을 유지한다.
3. 포트 번호
물리 주소와 IP 주소는 근원지에서 목적지로 데이터를 전송할 때 반드시 필요한 요소이다. 그러나 데이터가 목적지에 도착했다고 해서 통신이 완료되었다고 볼 수는 없다. 현대의 컴퓨터는 여러 프로세스를 동시에 실행하는 멀티프로세싱 시스템이므로, 통신은 시스템 간이 아닌 프로세스 간 통신으로 이루어져야 한다. 예를 들어, 한 컴퓨터에서 TELNET, FTP, HTTP를 동시에 사용해 다른 컴퓨터와 통신하고 있다면, 이들이 주고받는 데이터를 구분해야 한다. 이러한 구분의 책임은 전송 계층에 있으며, 16비트 크기의 포트 번호를 사용하여 각 프로세스의 데이터를 구분한다.
잘 알려진 포트는 0부터 1023까지의 값을 가지며, 등록된 포트는 1024부터 49151까지, 동적 또는 사설 포트는 49152부터 65535 사이의 값을 가진다. 공인된 포트 번호는 IANA(Internet Assigned Numbers Authority)에서 관리하며, 시스템에 상관없이 동일한 번호로 사용된다. 1024번 이후의 포트 번호는 사용자가 네트워크 응용 프로그램을 작성할 때 할당할 수 있는 범위에 해당된다.
[잘 알려진 포트]
잘 알려진 포트 번호 | 설명 |
20, 21 | FTP |
22 | SSH |
23 | TELNET |
53 | DNS |
67, 68 | DHCP |
80 | HTTP |
443 | HTTPS |
[등록된 포트]
등록된 포트 번호 | 설명 |
1194 | OpenVPN |
1433 | Microsoft SQL Server 데이터베이스 |
3306 | MySQL 데이터베이스 |
6379 | Redis |
8080 | HTTP 대체 |
전송 계층은 네트워크 환경에서 데이터의 정확한 전달과 애플리케이션 간의 통신을 관리하는 중요한 역할을 담당한다. 네트워크 계층의 한계를 보완하고 TCP와 UDP를 통해 다양한 통신 요구사항을 충족시키며, 포트 번호를 활용하여 여러 프로세스 간의 데이터를 구분함으로써 신뢰성과 효율성을 제공한다. 이러한 전송 계층의 기능을 이해하고 활용하는 것은 안정적인 네트워크 운영뿐만 아니라, 효율적이고 안전한 데이터 통신을 위한 기본적인 전제조건이라 할 수 있다.
'네트워크 > 전송 계층' 카테고리의 다른 글
[전송 계층] TCP 4-way handshake 및 TCP 리셋과 타이머 (1) | 2024.12.06 |
---|---|
[전송 계층] UDP(User Datagram Protocol) (2) | 2024.10.18 |
[전송 계층] TCP(Transmission Control Protocol) (2) | 2024.10.18 |