인프런 커뮤니티 질문&답변
Path MTU 발견하였음에도 패킷 분할이 필요한 이유?
해결된 질문
작성
·
14
답변 2
1
안녕하세요 ㅎㅎ
데이터를 전송 전에 패킷(정확히는 TCP 기준으로 세그먼트) 단위로 쪼개는 과정은 필요합니다.
“전송 전에 쪼갠다”는 말의 정확한 의미란?
여기서 전송 전이란 애플리케이션 기준의 전송 전이 아니라
운영체제 네트워크 스택(TCP/IP 계층)에서 실제 네트워크로 내보내기 직전을 의미합니다.
애플리케이션은 큰 데이터 덩어리를 그대로 넘기고,
이를 TCP가 세그먼트 단위로 분할합니다.(세그먼트화)
2. Path MTU를 처음부터 알고 있지 않습니다
TCP는 연결 시작 시 정확한 Path MTU를 알지 못합니다.
초기에는 인터페이스 MTU나 관례적 MSS 값으로 세그먼트를 만듭니다.
실제 경로의 MTU는 전송 중 PMTUD를 통해 학습합니다.
따라서
처음부터 Path MTU에 정확히 맞춰 "쪼갤 필요가 없다"는 전제가 성립하지 않습니다.
3. 애플리케이션 데이터는 MTU보다 크며 이를 여러개로 나눠야 합니다.
즉, 데이터는 애플리케이션 단위로 생성되며, 실제 네트워크 전송을 위해 운영체제가 MTU/MSS 기준으로 사전에 세그먼트화하는 과정은 필수입니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다. YECHAN JI님.
Path MTU Discovery(PMTUD)를 통해 네트워크 경로의 최대 패킷 크기 정보를 얻게 되면, 패킷을 이 크기에 맞춰 전송할 수 있게 됩니다. 하지만, 패킷 분할이 필요한 이유는 여러 가지 요소로 인한 상황적 차이에 기인합니다.
경로의 변화: 네트워크 경로가 항상 정적이지 않고, 데이터 전송 중 경로의 변화가 발생할 수 있습니다. 다른 경로에서는 MTU가 달라질 수 있으며, 이로 인해 분할이 필요하게 됩니다.
루터 설정 및 오류 고려: 일부 네트워크 장치는 Path MTU Discovery를 지원하지 않을 수도 있고, 장애가 발생할 수 있습니다. 이런 경우, 예기치 않게 MTU보다 큰 패킷이 발생할 수 있습니다.
다양한 네트워크 환경: 인터넷은 다양한 네트워크 환경이 뒤섞여 있으며, 서로 다른 MTU를 가진 네트워크를 연결하는 경우가 많습니다. 따라서, 한 네트워크 내에서만 Path MTU에 의존하기는 어렵습니다.
프로토콜 제한: 일부 프로토콜이나 장비는 해당 MTU보다 작은 패킷을 요구할 수 있습니다. 이 경우 프로토콜 수준에서의 맞춤이 필요할 수 있습니다.
관련하여 더 깊이 있는 논의를 원하신다면, 다음 링크의 질문과 답변을 추천드립니다:
- 패킷 크기와 네트워크의 변화에 따른 고려 사항
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





