πŸ–₯ λ„€νŠΈμ›Œν¬ 원리 (μ›Ή λΈŒλΌμš°μ € 2 - 1,2)

may_soouuΒ·2020λ…„ 12μ›” 13일
1

λ„€νŠΈμ›Œν¬μ›λ¦¬

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

OS에 λ‚΄μž₯된 ν”„λ‘œν† μ½œ μŠ€νƒμ΄ μ–΄λ–»κ²Œ 솑신을 μ˜λ’°ν•˜κ³  μž‘λ™ν•˜λŠ”μ§€ μ •λ¦¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ˜λ’°λ°›μ€ ν”„λ‘œν† μ½œ μŠ€νƒμ΄ 메세지λ₯Ό μ†‘μ‹ ν•˜λŠ” 방법

1. μ†ŒμΌ“ μž‘μ„±
2. μ„œλ²„ 접속
3. 데이터 솑 μˆ˜μ‹ 
4. μ„œλ²„μ—μ„œ 연결을 끊고 μ†ŒμΌ“ λ§μ†Œ
5. IP와 μ΄λ”λ„·μ˜ νŒ¨ν‚· 솑,μˆ˜μ‹  λ™μž‘
6. UDP ν”„λ‘œν† μ½œμ„ μ΄μš©ν•œ 솑 μˆ˜μ‹  λ™μž‘

1. μ†ŒμΌ“ μž‘μ„±

1-1. ν”„λ‘œν† μ½œ μŠ€νƒ λ‚΄λΆ€ ꡬ성


TCP와 UDP κ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 보낸 의뒰λ₯Ό λ°›μ•„ μ†‘μˆ˜μ‹  λ™μž‘μ„ ν•©λ‹ˆλ‹€.

TCP : λΈŒλΌμš°μ €λ‚˜ 메일 λ“±μ˜ 일반적인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 데이터 μ†‘μˆ˜μ‹ 
UDP : DNSμ„œλ²„μ— λŒ€ν•œ 쑰회 λ“± 짧은 μ œμ–΄μš© 데이터λ₯Ό μ†‘μˆ˜μ‹ 

ν”„λ‘œν† μ½œ μŠ€νƒμ€ μ†ŒμΌ“μ— 기둝된 μ œμ–΄ 정보λ₯Ό μ°Έμ‘°ν•˜μ—¬ μ›€μ§μž…λ‹ˆλ‹€. (μ œμ–΄μ •λ³΄ : ex. 톡신 μƒλŒ€μ˜ IP μ£Όμ†Œ, 포트 번호, 톡진 λ™μž‘ 진행 μƒνƒœ λ“±)

🌈 Socket vs sockert
Socket : Socket 라이브러리
socket(μ†ŒμΌ“) : Sokcet 라이브러리 μ•ˆμ— μžˆλŠ” socket μ΄λΌλŠ” ν”„λ‘œκ·Έλž¨

1-2. μ†ŒμΌ“μ„ 호좜 ν–ˆμ„ λ•Œ λ™μž‘

  1. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ†ŒμΌ“μ„ ν˜ΈμΆœν•˜μ—¬ μ†ŒμΌ“ λ§Œλ“€ 것을 의뒰
  2. ν”„λ‘œν† μ½œ μŠ€νƒμ€ μ˜λ’°μ— 따라 ν•œ 개의 μ†ŒμΌ“ 생성
    μ—¬κΈ°μ„œ ν”„λ‘œν† μ½œ μŠ€νƒμ΄ ν•˜λŠ” 일은 μ†ŒμΌ“ ν•œ 개 λΆ„λŸ‰μ˜ λ©”λͺ¨λ¦¬λ₯Ό 확보
    μ™œ? > μ†ŒμΌ“μ˜ μ œμ–΄μ •λ³΄λ₯Ό κΈ°λ‘ν•˜λŠ” λ©”λͺ¨λ¦¬ μ˜μ—­μ€ μ²˜μŒλΆ€ν„° μ‘΄μž¬ν•˜μ§€ μ•ŠμŒ
    λ©”λͺ¨λ¦¬ μ˜μ—­ 확보 == μ†ŒμΌ“μ˜ μ œμ–΄ 정보 λ‹΄λŠ” 그릇 μ€€λΉ„
  3. μ†ŒμΌ“ μƒμ„±λ˜λ©΄, λ””μŠ€ν¬λ¦½ν„°λ₯Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 전달
    λ””μŠ€ν¬λ¦½ν„° : ν”„λ‘œν† μ½œ μŠ€νƒμ˜ 내뢀에 μžˆλŠ” λ‹€μˆ˜μ˜ μ†ŒμΌ“ 쀑 μ–΄λŠ 것을 λ§ν•˜λŠ” 건지 λ‚˜νƒ€λ‚΄λŠ” λ²ˆν˜Έν‘œ 같은 것

2. μ„œλ²„ 접속


μ„œλ²„μ™€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λͺ¨λ‘ μ†ŒμΌ“μ€ λ§Œλ“€μ–΄μ‘Œμ§€λ§Œ, λ§Œλ“  κ²ƒλ§ŒμœΌλ‘œλŠ” ν”„λ‘œν† μ½œ μŠ€νƒμ— μ•„λ¬΄λŸ° 것도 전달이 λ˜μ§€ μ•Šμ•„ 톡신 μƒλŒ€λ₯Ό μ•Œ μˆ˜κ°€ μ—†λ‹€.
κ·Έλž˜μ„œ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ 본인의 정보λ₯Ό μ„œλ²„μΈ‘μ— μ•Œλ €μ€€λ‹€.

이처럼 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„μΈ‘μ— 톡신 λ™μž‘μ˜ κ°œμ‹œλ₯Ό μ „λ‹¬ν•˜μ—¬ μ ‘μ†ν•΄μ•Όν•œλ‹€.

μœ„μ—μ„œ μ–ΈκΈ‰ν–ˆλ˜ μ œμ–΄μ •λ³΄λŠ” 크게 λ‘κ°€μ§€λ‘œ λ‚˜λ‰©λ‹ˆλ‹€.
1. ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„κ°€ μ„œλ‘œ 연락을 μ ˆμΆ©ν•˜κΈ° μœ„ν•΄ μ£Όκ³  λ°›λŠ” μ œμ–΄ 정보
- 이 μ œμ–΄ μ •λ³΄λŠ” 헀더에 기둝되며, 이 정보가 μžˆμ–΄μ•Όμ§€ 톡신이 μ„±λ¦½λ©λ‹ˆλ‹€.
2. μ†ŒμΌ“μ— 기둝 λ˜λŠ” 정보

profile
back-end 개발자

1개의 λŒ“κΈ€