백엔드/네트워크

[네트워크기초이론] #34. MTU와 Packet 단편화

묘걍 2023. 10. 10. 20:46

IP header

출처: 강사님 화면

- ★친 곳이 단편화와 관련

- protocol = 'L4 헤더가 뭐냐' 하는 내용이 주로 옴, 하지만 L3가 올 때도 있어

     - next header

 

MTU

- MTU = 1,500byte 기본 제공

- MSS = MTU에서 IP header와 TCP header에 해당하는 20씩을 뺀 값

- TCP/IP packet = 40bytes

 

단편화 발생 시나리오

- PC와 Server는 MTU가 1,500인데 R 2번만 MTU가 1,400인 상황!

- PC가 서버랑 통신할 때 R #1 → R #2 → R #3 → Server

- 문제는 R #1 → R #2 로 Packet이 넘어갈 때 좋든 싫든 단편화 발생

그러면

- 1,500짜리를 Payload 부분 어느 곳을 댕강 자름

- IP, TCP, A까지는 그대로 copy

- IP헤더를 copy해 새로 IP헤더를 만들어 B를 가져온 것에 붙여줌

- 두 IP헤더는 ID값이 동일하다

- A는 데이터를 그대로 가져 온 것 이기 때문에 offset값이 0이다

- B는 앞 부분을 점프했기 때문에 offset값이 1,000이 될 수 있다

- 즉 2개의 패킷으로 분할된 것, offset값으로 재조립 할 수 있다

분할과 재조립

- 누군가는 재조립을 해야해

- 그 일은 (선택이긴 하지만) 기본적으로 수신측에서 하게 되어있다

- 조립해야해서 별로 안 좋아

- 단편화 안 나는 게 좋아

 

현대에는 단편화가 발생할까?

- 거의 안 남

     - 세상이 더 크고 빠르게 발전했기 때문에

- 나는 경우는 (IPset) VPN

 

단편화가 안 나게 하려면?

- 중간에 MTU가 1500이 안 되는 애가 껴 있다는 것을 인지하지 못해서 일어나는 일

- 어떻게든 그것을 인지한다면

- endpoint 단말들이 하향평준화를 한다

- 1400으로 조정 → 패킷이 나갈 때 1400으로 나가, 단편화가 나지 않음

"그냥 두 개 보내지, MTU를 떨어트리면 성능이 떨어지는거 아니야?"

네트워크의 단위를 나타낼 때

1. bps

     - bit per second

     - 개수와 상관 없이 송수신 데이터의 양만 가지고 이야기

2. pps

     - packet per second

     - 패킷의 개수로 이야기를 함

     - 같은 양이라도 여러 패킷으로 갈 수 있음

     - pps를 떨어뜨리는 게 매우 중요 (성능 이야기 할 때)

     - 단편화 = pps의 증가요인, 단편화는 어떻게든 안 나는 게 좋아

 

 

출처: https://youtu.be/JYBRE_eD7a8?si=KcmGkq6VWze6sKpE