header-img
Info :
728x90

 

TCP 솑신 μ˜΅μ…˜ 쀑 ν•˜λ‚˜.

* TCP SACK 에 λŒ€ν•œ RFCκ°€ λ‚˜μ˜¨ 것이 RFC 2018둜 1996년도이고, RFC 2883이 2000년도에 λ‚˜μ™”μœΌλ‹ˆ.. μ§€κΈˆ μ™ λ§Œν•œ μ‹œμŠ€ν…œμ—λŠ” 이 μ˜΅μ…˜μ΄ μ μš©λ˜μ–΄ μžˆμ„ 것이고, μ‚¬μš©ν•˜κ³  μžˆμ–΄μ•Ό ν•˜λŠ”κ²Œ μ˜³λ‹€. 근데 확인해보면 이 SACK μ˜΅μ…˜μ΄ enable λ˜μ–΄ μžˆλŠ” κ²½μš°λ„ 많음. 확인이 ν•„μš”ν•  λ“―.

 

 

TCP/IP μ—μ„œ SACK μ˜΅μ…˜μ„ 주지 μ•Šμ€ 경우

 

TCP/IP 에 λŒ€ν•œ κ°œλ…μ΄ λͺ¨ν˜Έν•˜λ‹€λ©΄ μ•žμ„œ μ“΄ TCP/IP 글을 읽고 μ˜€λ„λ‘ ν•˜μž.

 

μ—¬κΈ°μ„œ λ“€μ—ˆλ˜ μ˜ˆμ‹œμ™€ μ΄μ–΄μ§€κ²Œ μ˜ˆμ‹œλ₯Ό 듀도둝 ν• κ±°λ‹ˆκΉŒ..

 

 

λ„€νŠΈμ›Œν¬ :: TCP/IP λž€?

μΈν„°λ„·μ—μ„œ 컴퓨터듀이 μ„œλ‘œ 정보λ₯Ό μ£Όκ³  λ°›λŠ”λ°μ— μ“°μ΄λŠ” 톡신 κ·œμ•½μΈ 인터넷 ν”„λ‘œν† μ½œ 의 λͺ¨μŒ(set) 쀑 ν•˜λ‚˜μ΄μž ν˜„μž¬ κ°€μž₯ 많이 μ‚¬μš©ν•˜κ³  μžˆλŠ” 인터넷 ν”„λ‘œν† μ½œ 슈트(internet protocol suite)이닀.*

bornatnoon.tistory.com

 

κΈ°μ‘΄ TCP 의 경우. μ•„λž˜μ™€ 같이 μ„€λͺ…ν•΄λ‘μ—ˆλ‹€.

 

-. λ°›λŠ” μ‚¬λžŒμ—κ²Œ 책을 총 5νŽ˜μ΄μ§€ 보낸닀고 ν–ˆμ„ λ•Œ, λ§Œμ•½ 쀑간에 3 νŽ˜μ΄μ§€κ°€ λˆ„λ½λœ μƒνƒœλ‘œ 4νŽ˜μ΄μ§€, 5νŽ˜μ΄μ§€μ˜ λ‚΄μš©μ΄ μ˜¨λ‹€λ©΄, λ°›λŠ” μ‚¬λžŒμ΄ ν™•μΈν•΄μ„œ 3νŽ˜μ΄μ§€κ°€ μ—†μ–΄μš”. 라고 말해쀄 수 있고, λ‚˜λŠ” κ·Έ νŽ˜μ΄μ§€λΆ€ν„° λ‹€μ‹œ λ³΄λ‚΄μ€„ 수 있음. 

 

"λ‹€μ‹œ" 보낸닀.

 

즉.

-. 1 νŽ˜μ΄μ§€, 2νŽ˜μ΄μ§€, 3νŽ˜μ΄μ§€ κΉŒμ§€ 잘 받아놓고, 4νŽ˜μ΄μ§€λ₯Ό λˆ„λ½ν•˜κ³ , 5νŽ˜μ΄μ§€λ₯Ό 받은 경우

-. λ°›λŠ” μ‚¬λžŒμ΄ "λ‚˜ γ…œγ…œ 4νŽ˜μ΄μ§€ μ•ˆ λ°›μ•˜μ–΄ κ·Έλ‹ˆκΉŒ λ‚˜ 이 뒀에꺼 μ‹Ή λ‹€ μ§€μšΈκ²Œ. 4νŽ˜μ΄μ§€λΆ€ν„° λ‹€μ‹œ λ³΄λ‚΄μ€˜" 라고 말함.

-. λ³΄λ‚΄λŠ” μ‚¬λžŒμ€ λ‹΅μž₯이 μœ„μ™€ 같이 μ™”μœΌλ―€λ‘œ.. λͺ‡ νŽ˜μ΄μ§€λ₯Ό λ³΄λƒˆλŠ”μ§€μ™€ 상관없이 4νŽ˜μ΄μ§€ λΆ€ν„° λ‹€μ‹œ λ³΄λ‚΄κ²Œ 됨.

 

μˆ˜μ‹  TCP μ‘μš©ν”„λ‘œκ·Έλž¨μ€ λ§ˆμ§€λ§‰μœΌλ‘œ μˆ˜μ‹ λœ νŒ¨ν‚·μ— λŒ€ν•΄μ„œλ§Œ 긍정 응닡을 ν•˜κ²Œ λ˜μ–΄

.. ν•œλ²ˆ 삐끗 μ‹€μˆ˜ν•˜κ²Œ 되면 λŒ€λŸ‰ μž¬μ „μ†‘μ΄ λ°œμƒν•˜κ²Œ λœλ‹€.

 

TCP/IP μ—μ„œ SACK μ˜΅μ…˜μ„ μ€€ 경우

 

μ•žμ˜ 예제처럼 책을 ν•œμž₯μ”© 보낸닀고 μ˜ˆμ‹œλ₯Ό λ“€μ–΄λ³΄μž.

SACK μ˜΅μ…˜μ„ able ν•΄μ€€ 경우.

 

λ‹€μ‹œ μœ„μ™€ 같은 경우λ₯Ό κ°€μ •ν•΄λ³΄μž.

-. 1νŽ˜μ΄μ§€, 2νŽ˜μ΄μ§€, 3νŽ˜μ΄μ§€ λ°›κ³  4νŽ˜μ΄μ§€ λˆ„λ½ν•˜κ³  5νŽ˜μ΄μ§€λ₯Ό 받은 경우.

-. 받은 μ‚¬λžŒμ΄ λˆ„λ½ νŽ˜μ΄μ§€ μ΄ν›„μ˜ 정상 νŽ˜μ΄μ§€λ₯Ό λ©‹λŒ€λ‘œ νκΈ°ν•˜μ§€ μ•Šκ³  "λ‚˜ γ…œγ…œ 4νŽ˜μ΄μ§€λ§Œ λ‹€μ‹œ λ³΄λ‚΄μ€˜" 라고 μš”μ²­ν•¨.

-. λ³΄λ‚΄λŠ” μ‚¬λžŒμ΄ μœ„μ™€ 같은 메세지λ₯Ό λ°›μ•˜μœΌλ‹ˆ λˆ„λ½λœ νŽ˜μ΄μ§€λ§Œ 보내쀄 수 있게 λ˜λŠ” 것.

 

SACK μ˜΅μ…˜μ„ μ‚¬μš©ν•˜κ²Œ 되면, μ†μ‹€λœ νŒ¨ν‚·? μ„Έκ·Έλ¨ΌνŠΈ?에 λŒ€ν•΄ ACK을 λ‹€μ‹œ 보내더라도, μ΄λ•Œ 이미 λ°›μ•„λ‘” μ„Έκ·Έλ¨ΌνŠΈμ— λŒ€ν•œ 정보도 같이 λ³΄λ‚΄μ£ΌλŠ” κ±°λ‹€.

 

SACK의 경우 TCP connection을 처음 맺을 λ•Œ μ„œλ‘œ μ§€μ›ν•˜λŠ”μ§€ 확인 ν›„ μ‚¬μš©ν•˜κ²Œ 됨.

 

 

TCP SACK ν™œμ„±ν™” 방법

1. 운영체제 μ„€μ •

* LINUX: λŒ€λΆ€λΆ„μ˜ μ΅œμ‹  λ¦¬λˆ…μŠ€ μ»€λ„μ—λŠ” 기본적으둜 SACK이 ν™œμ„±ν™” λ˜μ–΄ μžˆμ§€λ§Œ.. ν™•μΈν•˜λ €λ©΄

sysctl net.ipv4.tcp_sack

 

λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜κ³ , 값이 1 이면 ν™œμ„±ν™”, 0 이면 λΉ„ν™œμ„±ν™”λΌλŠ” 뜻.

sudo sysctl -w net.ipv4.tcp_sack=1

 

μœ„μ™€ 같이 λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•΄μ£Όλ©΄ μ˜΅μ…˜μ„ ν™œμ„±ν™” μ‹œν‚¬ 수 μžˆλ‹€.

 

* WINDOW: λ ˆμ§€μŠ€νŠΈλ¦¬ νŽΈμ§‘κΈ°λ₯Ό ν†΅ν•΄μ„œ SACK을 ν™œμ„±ν™”ν•  수 있음. 

~\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

 

μœ„μ˜ 경둜둜 μ΄λ™ν•˜μ—¬ TCP13230pts 값을 3 으둜 μ„€μ •ν•˜λ©΄ λœλ‹€.

 

2. λ„€νŠΈμ›Œν¬ μž₯λΉ„ μ„€μ •

* λΌμš°ν„°λ‚˜ μŠ€μœ„μΉ˜ λ“±μ˜ λ„€νŠΈμ›Œν¬ μž₯λΉ„μ—μ„œλ„ SACK을 μ§€μ›ν•˜λŠ”μ§€ ν™•μΈν•˜κ³ , ν•„μš” μ‹œμ— 섀정을 λ³€κ²½ν•΄μ•Ό 함. 근데 이건.. μž₯λΉ„λ§ˆλ‹€ μ„€μ • 방법이 λ‹€λ₯΄λ―€λ‘œ, λ„€νŠΈμ›Œν¬ μž₯λΉ„μ˜ 맀뉴얼을 μ°Έκ³ .

 

* μ°Έκ³ 

SACK은 솑/μˆ˜μ‹  μΈ‘ λͺ¨λ‘ μ„€μ •λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜λ‹ˆ. μ–‘μΈ‘μ—μ„œ 
1. μ„Έκ·Έλ¨ΌνŠΈμ— SACK Permitted μ˜΅μ…˜μ΄ μ„€μ •λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•˜κ³ , 
2. μœ„μ˜ λ°©λ²•μœΌλ‘œ 컀널 νŒŒλΌλ―Έν„°λ₯Ό μ‘°μ •ν•˜λ„λ‘!

 

 

 

728x90
더보기
IT 기술/기타