πŸ›œλ„€νŠΈμ›Œν¬ 톡신2 - 4계측 ν”„λ‘œν† μ½œ TCP/UDP

μ›μ˜Β·2024λ…„ 8μ›” 7일
0

λ„€νŠΈμ›Œν¬πŸ”—

λͺ©λ‘ 보기
3/8
post-thumbnail

4계측 ν”„λ‘œν† μ½œ TCP/UDP

  • 2, 3 κ³„μΈ΅μ˜ λͺ©μ 
    • μ •ν™•ν•œ λͺ©μ μ§€λ₯Ό μ°ΎκΈ° μœ„ν•œ μ£Όμ†Œ 제곡
  • 4κ³„μΈ΅μ˜ λͺ©μ 
    • 단말 μ•ˆμ—μ„œ λ™μž‘ν•˜λŠ” μ—¬λŸ¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œμ„ΈμŠ€ 쀑 톡신해야 ν•  λͺ©μ μ§€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ •ν™•νžˆ μ°Ύμ•„κ°€κ³  νŒ¨ν‚· μˆœμ„œκ°€ λ°”λ€Œμ§€ μ•Šλ„λ‘ μ‘°ν•©ν•΄μ„œ μ›λž˜ 데이터λ₯Ό λ§Œλ“œλŠ” 것
    • νŒ¨ν‚· λΆ„ν• κ³Ό 쑰합을 μœ„ν•΄ μ‹œν€€μŠ€ 번호, ACK 번호 μ‚¬μš©

TCP

  • μ‹ λ’°ν•  수 μ—†λŠ” κ³΅μš©λ§μ—μ„œλ„ μ •λ³΄μœ μ‹€μ΄ μ—†λŠ” 톡신을 μœ„ν•΄ μ•ˆμ „ν•˜κ²Œ μ—°κ²°
  • 데이터λ₯Ό λΆ„ν• ν•˜κ³  λΆ„ν• λœ νŒ¨ν‚·μ΄ 잘 μ „μ†‘λ˜μ—ˆλŠ”μ§€ 확인
  • νŒ¨ν‚·μ— 번호λ₯Ό λΆ€μ—¬ν•˜κ³ (μ‹œν€€μŠ€) 잘 μ „μ†‘λ˜μ—ˆλŠ”μ§€μ— λŒ€ν•œ 응닡(ACK)을 함 (μ–‘λ°©ν–₯ 톡신 κ°€λŠ₯)
  • ν•œκΊΌλ²ˆμ— μ–Όλ§ˆλ‚˜ 보내야 μˆ˜μ‹ μžκ°€ 잘 μ²˜λ¦¬ν•  수 μžˆλŠ”μ§€ 전솑 크기(window size) κ³ λ €ν•΄μ„œ 톡신

νŒ¨ν‚· μˆœμ„œ(μ‹œν€€μŠ€), 응닡 번호(ACK)

  • μ‹œν€€μŠ€ 번호(SEQ)
    • μ „μ†‘ν•˜λŠ” λ°μ΄ν„°μ˜ μˆœμ„œλ₯Ό μ‹λ³„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
    • TCP 연결이 μ„€μ •λœ ν›„, 1λ°”μ΄νŠΈλ³„λ‘œ μ‹œν€€μŠ€ 번호 λΆ€μ—¬
  • 응닡 번호(ACK)
    • μˆ˜μ‹  μΈ‘μ—μ„œ 솑신 츑의 데이터 μˆ˜μ‹ μ„ ν™•μΈν•˜κΈ° μœ„ν•΄ μ‚¬μš©
    • λ‹€μŒμ— μˆ˜μ‹ ν•  것이라고 μ˜ˆμƒλ˜λŠ” λ°”μ΄νŠΈμ˜ μ‹œν€€μŠ€ 번호
  • 두 번호의 μƒν˜Έμž‘μš©μœΌλ‘œ νŒ¨ν‚· μˆœμ„œμ™€ 손싀 νŒŒμ•…
  • μ†‘μ‹ μΈ‘μ—μ„œ νŒ¨ν‚·μ— μ‹œν€€μŠ€ 번호λ₯Ό λΆ€μ—¬ ν›„ 보냄
  • μˆ˜μ‹ μΈ‘μ€ 받은 νŒ¨ν‚·μ˜ μˆœμ„œλ₯Ό ν™•μΈν•˜κ³  맞으면 ACK 보냄
    • ACK은 ν˜„μž¬ μˆ˜μ‹ ν•œ νŒ¨ν‚·μ˜ λ‹€μŒ λ°›μ•„μ•Ό ν•  νŒ¨ν‚·μ˜ μ‹œν€€μŠ€ 번호
  • μ—¬κΈ°μ„œ 솑신 츑이 1번 νŒ¨ν‚·μ„ 보내고 μˆ˜μ‹ μΈ‘μ΄ 잘 λ°›μ•˜λ‹€λ©΄ λ‹€μŒ 번호인 2λ²ˆμ„ λ‹¬λΌλŠ” ν‘œμ‹œλ‘œ ACK 2 보냄

3λ°©ν–₯ ν•Έλ“œμ…°μ΄ν¬

  • TCP 톡신 μ‹œμž‘ μ „ 데이터λ₯Ό μ£Όκ³  받을 μ€€λΉ„κ°€ 된 μƒνƒœμΈμ§€ ν™•μΈν•˜λŠ” μž‘μ—…
  • 3번의 νŒ¨ν‚·μ„ μ£Όκ³  λ°›μœΌλ©° 톡신 μ€€λΉ„
  • μƒνƒœ 정보 λͺ…μΉ­
    • μˆ˜μ‹ μΈ‘(μ„œλ²„)
      • LISTEN : ν΄λΌμ΄μ–ΈνŠΈ 접속 λŒ€κΈ°
      • SYN-RECEIVE : ν΄λΌμ΄μ–ΈνŠΈμ˜ SYN 받은 μƒνƒœ, ν΄λΌμ΄μ–ΈνŠΈλ‘œ SYN, ACK 전솑
      • ESTABLISHED : ν΄λΌμ΄μ–ΈνŠΈμ˜ ACK 받은 μƒνƒœ
    • 솑신츑(ν΄λΌμ΄μ–ΈνŠΈ)
      • SYN-SENT : 톡신을 μ‹œμž‘ν•˜κΈ° μœ„ν•΄ SYN 보낸 μƒνƒœ
      • ESTABLISHED : μ„œλ²„μ—μ„œ SYN, ACK 받은 μƒνƒœ, ACK μ„œλ²„λ‘œ 전솑, μ—°κ²° 성곡
    • 두 μΈ‘ λͺ¨λ‘ ESTABLISHED μƒνƒœμΌ λ•Œ 데이터 전솑 κ°€λŠ₯
  • ν”Œλž˜κ·Έ
    • κΈ°μ‘΄ 톡신과 κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ 헀더에 ν”Œλž˜κ·Έ κ°’ λ„£μ–΄μ„œ 톡신
    • 각 톡신 κ²½μš°μ— ν•΄λ‹Ήν•˜λŠ” 경우 ν•΄λ‹Ή ν”Œλž˜κ·Έ κ°’ 1둜 ν‘œμ‹œ
    • ν•Έλ“œμ…°μ΄ν¬μ—μ„œλŠ” SYN, ACK만 주둜 μ‚¬μš©, λ‚˜λ¨Έμ§€λŠ” 데이터 μ „μ†‘μ΄λ‚˜ μ—°κ²° μ’…λ£Œμ— μ‚¬μš©
    • SYN : μ—°κ²° μ‹œμž‘
    • ACK : 데이터 μˆ˜μ‹  확인
      ν•Έλ“œμ…°μ΄ν¬μ˜ 경우 초기 SYN μ œμ™Έν•˜κ³  λͺ¨λ‘ κΈ°μ‘΄ 메세지에 λŒ€ν•œ μ‘λ‹΅μ΄λΌμ„œ ACK의 ν”Œλž˜κ·Έ κ°’ 1
    • FIN : 톡신 μ •μƒμ μœΌλ‘œ 마친 ν›„ μ—°κ²° μ’…λ£Œ
    • RST : μ—°κ²° κ°•μ œ μ’…λ£Œλ₯Ό μœ„ν•΄ 일방적으둜 끊음
    • URG : μš°μ„ μ μœΌλ‘œ μ²˜λ¦¬ν•΄μ•Ό ν•˜λŠ” κΈ΄κΈ‰ 데이터
    • PSH : 데이터λ₯Ό 버퍼링 없이 μ¦‰μ‹œ 전달

3λ°©ν–₯ ν•Έλ“œμ…°μ΄ν¬ μ˜ˆμ‹œ

톡신 μ˜ˆμ‹œ

  • μ†‘μ‹ μž: A, μˆ˜μ‹ μž: B둜 지정
  1. Aμ—μ„œ SEQ(μ‹œν€€μŠ€ 번호) 0인 νŒ¨ν‚· 전솑
  2. Bμ—μ„œ 0λ²ˆμ„ 잘 λ°›μ•˜λ‹€λŠ” ν‘œμ‹œλ‘œ λ‹€μŒ λ°›μ•„μ•Ό ν•  μ‹œν€€μŠ€ 번호인 1둜 ACK 전솑
    이 λ•Œ μ‹œν€€μŠ€ λ²ˆν˜ΈλŠ” Bμ—μ„œ 처음 λ³΄λ‚΄λŠ” νŒ¨ν‚·μ΄λ―€λ‘œ 0번
  3. AλŠ” Bμ—μ„œ μš”μ²­ν•œ ACK 1을 보고 SEQ 1κ³Ό
    Bμ—μ„œ 전솑받은 SEQ 0을 잘 λ°›μ•˜λ‹€λŠ” ν‘œμ‹œλ‘œ λ‹€μŒ λ°›μ•„μ•Ό ν•  μ‹œν€€μŠ€ 번호인 1둜 ACK 전솑

μœˆλ„ μ‚¬μ΄μ¦ˆμ™€ μŠ¬λΌμ΄λ”© μœˆλ„

  • TCPλŠ” 일방적으둜 νŒ¨ν‚·μ„ 보내고 λλ‚˜λŠ”κ²Œ μ•„λ‹ˆλΌ μ •μƒμ μœΌλ‘œ μˆ˜μ‹ ν–ˆλŠ”μ§€ 확인 ν›„ λ‹€μŒ νŒ¨ν‚·μ„ 전솑
  • λ³„λ„λ‘œ ACK νŒ¨ν‚·μ„ λ°›λŠ” 것 μžμ²΄λ„ 톡신 μ‹œκ°„μ„ λŠ˜λ¦¬μ§€λ§Œ 거리가 λ©€μ–΄μ§ˆ 수둝 왕볡 μ§€μ—°μ‹œκ°„(Round Trip Time, RTT)이 λŠ˜μ–΄λ‚¨
  • ν•œλ²ˆμ— 보낼 λ•Œ νŒ¨ν‚·μ„ ν•˜λ‚˜λ§Œ λ³΄λ‚΄λŠ” 것이 μ•„λ‹ˆλΌ μ—¬λŸ¬ 개λ₯Ό 보내고 응닡을 ν•˜λ‚˜λ§Œ λ°›λŠ” λ°©μ‹μœΌλ‘œ 톡신
  • μœˆλ„ μ‚¬μ΄μ¦ˆ
    • ν•œλ²ˆμ— λ³΄λ‚΄λŠ” 데이터 크기
    • λ„€νŠΈμ›Œν¬ μƒνƒœλ₯Ό κ³ λ €ν•΄μ„œ νŒ¨ν‚· μœ μ‹€ κ°€λŠ₯성을 μ΅œμ†Œν™” ν•˜λŠ” μ μ ˆν•œ μ†‘μ‹ λŸ‰μ„ μ •ν•΄μ•Ό 함
  • μŠ¬λΌμ΄λ”© μœˆλ„
    • λ„€νŠΈμ›Œν¬ 상황에 따라 μœˆλ„ μ‚¬μ΄μ¦ˆλ₯Ό μ‘°μ ˆν•˜λŠ” 것
TCP UDP
μ—°κ²° 지ν–₯적
- 데이터 전솑 전에 솑신 μΈ‘κ³Ό μˆ˜μ‹  μΈ‘ 간에 μ—°κ²° μ„€μ •
- 데이터 전솑이 λλ‚˜λ©΄ μ—°κ²° μ’…λ£Œ
λΉ„μ—°κ²° 지ν–₯적
- μ—°κ²° μ„€μ • X, μ—°κ²° μ’…λ£Œ X, 데이터 λͺ©μ μ§€μ— λ„μ°©ν•˜λŠ”μ§€ 확인 X
μ‹ λ’°μ„±
- 데이터 전솑 성곡 μ—¬λΆ€ 보μž₯
λΉ„μ‹ λ’°μ„±
- 데이터 전솑 성곡 μ—¬λΆ€ 보μž₯ X
전솑 속도 μƒλŒ€μ  느림
- μš”μ²­μ— λŒ€ν•œ 응닡을 보냄
- SEQ, ACK λ“± 좔가적인 정보가 헀더에 포함
전솑 속도 μƒλŒ€μ  빠름
- μš”μ²­μ— λŒ€ν•œ 응닡 X
- 헀더 κ°„λ‹¨ν•˜κ³  크기 μž‘μŒ
profile
ν™”μ΄νŒ…~~^ㅁ^/

0개의 λŒ“κΈ€