- 개요
원거리 전송을 수행하는 3계층 이후의 4계층에서는 패킷의 데이터에 대한 정책을 수립합니다.
4계층에서는 포트 번호를 사용하여 작업을 진행하는데, 이전의 인터페이스(포트)와는 다른 개념입니다.
포트 번호는 특정 애플리케이션 프로세스나 서비스의 통신 종착점을 식별하는 논리적 번호를 의미합니다.
4계층에서는 포트 번호를 사용하여 패킷이 올바른 수신자를 찾아갈 수 있도록 돕습니다.
네트워크 통신이 이뤄지기 위해서는 반드시 서버와 클라이언트가 존재해야 하는데,
이때 서버와 클라이언트 모두 반드시 포트 번호를 지정해서 구동해야 합니다.
이때 서버와 클라이언트에서 각각 다른 방식으로 포트 번호를 설정합니다.
- 서버 : 스스로 포트 번호를 지정
- 클라이언트 : 운영체제에서 남은 포트 번호를 할당
이렇게 생성된 포트 번호를 사용하여 서버 - 클라이언트가 네트워크 통신을 진행합니다.
4계층에서의 네트워크 통신은 TCP / UDP의 2가지 프로토콜을 사용하여 이루어집니다.
1) TCP 프로토콜
1 - 1) TCP 프로토콜 에서의 네트워크 연결 시작
TCP에서는 네트워크 연결이 시작되면 3-way HandShaking의 방식으로 연결을 진행합니다.
각각 다음과 같이 나타낼 수 있습니다.
- 1) 클라이언트가 서버로 SYN 패킷을 전송 : 클라이언트가 서버로 연결 시작을 요청
- 2) 서버가 클라이언트로 SYN-ACK 패킷을 전송 : 서버가 클라이언트로 연결 요청 수락
- 3) 클라이언트가 서버로 ACK 패킷을 전송 : 클라이언트가 서버로 응답 확인
1 - 2) TCP 프로토콜 에서의 네트워크 연결 종료
TCP에서 네트워크 연결이 종료되면 4-way HandShaking의 방식으로 연결을 해제합니다.
각각 다음과 같이 나타낼 수 있습니다.
- 1) 클라이언트에서 서버로 FIN 패킷을 전송 : 클라이언트가 서버로 연결 종료를 요청
- 2) 서버에서 클라이언트로 ACK 패킷을 전송 : 서버가 클라이언트로 응답 확인 + 서버의 통신이 종료될때까지 대기
- 3) 서버에서 클라이언트로 FIN 패킷을 전송 : 서버가 연결 종료
- 4) 클라이언트에서 서버로 ACK 패킷을 전송 : 클라이언트로 서버가 응답 확인 + 클라이언트 연결 종료
위의 과정은 클라이언트(선) - 서버(후)의 관계말고도, 클라이언트(후) - 서버(선)의 관계에서도 동일하게 동작합니다.
1 - 3) TCP 프로토콜의 특징
TCP 프로토콜은 위와 같이 굉장히 복잡하게 동작합니다.
그 이유는 TCP 프로토콜이 지니는 특징 때문인데, 이를 정리하면 다음과 같이 나타낼 수 있습니다.
- 1) 연결 지향성(Connection Oriented)
- 송신자와 수신자 사이에 논리적인 통신 세션을 설정하고 유지하는 특성 -> 예시) 3-way HandShaking
- SendBuffer를 사용하여 데이터를 송신 + RecvBuffer를 사용하여 데이터를 수신
- Congestion Control을 사용할 수 있음
- 패킷 전송 속도를 조절하기 위해 패킷을 일부 잘라서 전달하는 방식
- 패킷은 일련의 데이터로 인식되어 SendBuffer의 여유 공간만큼만 전송
- 2) 신뢰성(Reliable)
- 패킷의 데이터 일부가 손상된 경우 동일한 패킷을 다시 전송하는 기능
- 원리는 다음과 같은데, 송신자는 데이터를 넘버링 + 수신자는 기록된 숫자를 통해 패킷의 순서를 유추
- 송신자와 수신자 모두 패킷의 데이터를 얼마나 주고받았는지 추적할 수 있음
- 3) 순서 보장
- 기본적으로 패킷의 데이터는 순서대로 전달되지 않음
- 그러나 TCP 프로토콜은 신뢰성이 보장되어 수신자에서 패킷의 데이터를 다시 순서대로 재정렬할 수 있음
- 4) 단점 : TCP의 특징을 만족해야 하므로 전송 속도가 느림
2) UDP 프로토콜
UDP 프로토콜은 TCP 프로토콜과는 정반대로 동작합니다.
특징을 정리하면 다음과 같이 표현할 수 있습니다.
- 비연결 지향성(Connectionless)
- 3-way handshake와 같은 연결 설정 절차를 거치지 않음
- 패킷의 경계가 존재하여 패킷을 분리하여 전송할 수 없음
- 장점 : 연결 설정 절차가 생략되어 전송 속도가 매우 빠름
- 단점 : 데이터에 대한 신뢰가 떨어짐(Unreliable) + 데이터의 손상에 대한 정책이 없음
- 최종 정리

TCP 프로토콜과 UDP 프로토콜의 특징을 간단하게 정리하면 위와 같습니다.
또 각각의 프로토콜을 사용하였을 때 얻을 수 있는 장점은 다음과 같습니다.
- TCP 프로토콜 : 신경써야 하는 요소가 줄어들음
- UDP 프로토콜 : 속도면에서 빠르지만 신경써야 하는 요소가 늘음
- 100% UDP를 사용하기 보다 UDP + TCP를 사용하는 방식이 권장
- UDP + TCP를 사용하는 방식을 Reliable UDP라고 부름
'컴퓨터 구조' 카테고리의 다른 글
| NAT와 홀펀칭 (0) | 2025.10.11 |
|---|---|
| 네트워크 5계층 - Application (0) | 2025.10.10 |
| 네트워크 3계층 물리장치 - Router(라우터) (0) | 2025.10.08 |
| ARP(Address Resolution Protocol) (0) | 2025.10.05 |
| IP 주소 (0) | 2025.10.05 |