Amenable
Amenable's Blog
Amenable
  • λΆ„λ₯˜ 전체보기 (189)
    • πŸ“‚ JAVA (87)
      • μ΄νŽ™ν‹°λΈŒ μžλ°” (65)
      • μ£Όμš” κ°œλ… (22)
    • πŸ“‚ 개발 μ„œμ  (22)
      • μ‹€μš©μ£Όμ˜ ν”„λ‘œκ·Έλž˜λ¨Έ (1)
      • 객체지ν–₯의 사싀과 μ˜€ν•΄ (2)
      • 클린 μ½”λ“œ (8)
      • ν•¨κ»˜ 자라기 (1)
      • 그림으둜 λ°°μš°λŠ” HTTP&Network Basic (10)
    • πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ (8)
      • κ°œλ… (8)
      • λ¬Έμ œν’€μ΄ (0)
    • πŸ“‚ λ„€νŠΈμ›Œν¬ (14)
      • κ°œλ… (6)
      • 성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리 (8)
    • πŸ“‚ μŠ€ν”„λ§ (13)
      • κΈ°λ³Έ κ°œλ… (13)
    • πŸ“‚ WEB (5)
    • πŸ“‚ 자료ꡬ쑰 (12)
      • κ°œλ… (2)
      • μ •λ ¬ (8)
      • 트리 (2)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜ (10)
      • μ΅œμ†Œμ‹ μž₯트리 (2)
      • μ΅œλ‹¨ 경둜 (2)
      • λ¬Έμžμ—΄ (2)
      • ETC (4)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜_λ¬Έμ œν’€μ΄ (4)
      • BOJ_λ°±μ€€ (4)
    • πŸ“‚ ν”„λ‘œκ·Έλž˜λ° (3)
    • πŸ“‚ DevOps (2)
      • 배포 (2)
    • πŸ“‚ ν›„κΈ° (8)
      • μš°μ•„ν•œ ν…Œν¬μ½”μŠ€(ν”„λ¦¬μ½”μŠ€) (4)
      • 2023λ…„ (3)
      • 2024λ…„ (1)
    • πŸ“‚ 회고 (1)
      • 2023λ…„ (1)

λΈ”λ‘œκ·Έ 메뉴

  • πŸš€ GitHub

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
Amenable

Amenable's Blog

μ†ŒμΌ“μ„ μž‘μ„±ν•œλ‹€. - [Ch 02. TCP/IP의 데이터λ₯Ό μ „κΈ° μ‹ ν˜Έλ‘œ λ§Œλ“€μ–΄ 보낸닀.]
πŸ“‚ λ„€νŠΈμ›Œν¬/성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리

μ†ŒμΌ“μ„ μž‘μ„±ν•œλ‹€. - [Ch 02. TCP/IP의 데이터λ₯Ό μ „κΈ° μ‹ ν˜Έλ‘œ λ§Œλ“€μ–΄ 보낸닀.]

2023. 7. 10. 20:54

  이전 μž₯(Ch 01. μ›Ή λΈŒλΌμš°μ €κ°€ λ©”μ‹œμ§€λ₯Ό λ§Œλ“ λ‹€.)μ—μ„œλŠ” μ•„λž˜μ˜ λ‚΄μš©μ„ μ‚΄νŽ΄λ³΄μ•˜λ‹€.

  1. URL을 ν•΄λ…ν•˜κ³ ,
  2. HTTP λ¦¬ν€˜μŠ€νŠΈ λ©”μ‹œμ§€λ₯Ό λ§Œλ“€κ³ ,
  3. λ©”μ‹œμ§€λ₯Ό μ†‘μ‹ ν•˜λ„λ‘ OS에 μ˜λ’°ν•œλ‹€.

 

  이번 μž₯(Ch 02. TCP/IP의 데이터λ₯Ό μ „κΈ° μ‹ ν˜Έλ‘œ λ§Œλ“€μ–΄ 보낸닀.)μ—μ„œλŠ” OS에 λ‚΄μž₯된 ν”„λ‘œν† μ½œ μŠ€νƒμ— μ–΄λ–»κ²Œ 솑신을 μ˜λ’°ν•˜λŠ”μ§€μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

  이전 μž₯μ—μ„œ μ•Œμ•„λ³Έ λ©”μ‹œμ§€ 솑신 과정을 ν”„λ‘œν† μ½œ μŠ€νƒ λ‚΄λΆ€μ˜ μ›€μ§μž„μ„ 톡해 μ‚΄νŽ΄λ³Ό 것이닀.

 

  데이터 솑·μˆ˜μ‹  λ™μž‘μ€ μ•„λž˜μ˜ 4단계가 μžˆλ‹€.

  1. μ†ŒμΌ“ μž‘μ„± 단계
  2. 접속 단계
  3. 솑·μˆ˜μ‹  단계
  4. μ—°κ²° 끊기 단계

  이번 κΈ€μ—μ„œλŠ” 1단계인 'μ†ŒμΌ“ μž‘μ„± 단계'에 λŒ€ν•΄μ„œ μžμ„Ένžˆ μ•Œμ•„λ³΄μž.

 

πŸ“™ 1. ν”„λ‘œν† μ½œ μŠ€νƒμ˜ λ‚΄λΆ€ ꡬ성

  ν”„λ‘œν† μ½œ μŠ€νƒμ˜ λ‚΄λΆ€λŠ” κ·Έλ¦Όκ³Ό 같이 역할이 μ„œλ‘œ λ‹€λ₯Έ λͺ‡ λΆ€λΆ„μœΌλ‘œ λ‚˜λˆ„μ–΄μ Έ μžˆλ‹€. μƒν•˜ κ΄€κ³„λŠ” μž‘μ—…μ„ μ˜λ’°ν•˜λŠ” μͺ½μ΄ μœ„μ— 있고 μž‘μ—…μ„ μ˜λ’°λ°›λŠ” μͺ½μ΄ μ•„λž˜μ— μžˆλ‹€.

  κ·ΈλŸ¬λ‚˜ μƒν•˜ 관계가 ν™•μ‹€ν•˜μ§€ μ•Šκ±°λ‚˜ μ—­μ „λ˜λŠ” κ²½μš°λ„ μžˆμœΌλ―€λ‘œ μƒν•˜ 관계λ₯Ό μ—„λ°€νžˆ 생각할 ν•„μš”λŠ” μ—†λ‹€. 각각의 κ΅¬μ„±μš”μ†Œλ₯Ό ν•˜λ‚˜μ”© μ‚΄νŽ΄λ³΄μž

πŸ”Ž 1. λ„€νŠΈμ›Œν¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜

  • λΈŒλΌμš°μ €, λ©”μΌλŸ¬(메일을 읽고 μ“°λŠ” μ†Œν”„νŠΈμ›¨μ–΄), μ›Ή μ„œλ²„, 메일 μ„œλ²„ λ“±μ˜ ν”„λ‘œκ·Έλž¨μ΄ 여기에 ν•΄λ‹Ήν•œλ‹€.
  • 이 지점뢀터 데이터 솑·μˆ˜μ‹  λ“±μ˜ 일을 μ•„λž˜μͺ½μ— μ˜λ’°ν•œλ‹€.

πŸ”Ž 2. Socket 라이브러리

  • Socket λΌμ΄λΈŒλŸ¬λ¦¬ μ•ˆμ—λŠ” λ¦¬μ‘Έλ²„κ°€ μžˆκ³ , μ΄κ²ƒμ΄ DNS μ„œλ²„에 μ‘°νšŒν•˜λŠ” λ™μž‘을 μ‹€ν–‰ν•œλ‹€.

πŸ”Ž 3. TCP/UDP

  • TCP λ˜λŠ” UDPκ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 보낸 의뒰λ₯Ό λ°›μ•„ 솑·μˆ˜μ‹  λ™μž‘μ„ μ‹€ν–‰ν•œλ‹€.
  • TCPλŠ” λΈŒλΌμš°μ €λ‚˜ 메일 λ“±μ˜ 일반적인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 데이터λ₯Ό 솑·μˆ˜μ‹ ν•  κ²½μš°μ— μ‚¬μš©ν•œλ‹€.
  • UDPλŠ” DNS μ„œλ²„에 λŒ€ν•œ μ‘°νšŒ λ“±μ—μ„œ μ§§μ€ μ œμ–΄μš© λ°μ΄ν„°λ₯Ό μ†‘·μˆ˜μ‹ ν•  κ²½μš°μ— μ‚¬μš©ν•œλ‹€.

πŸ”Ž 4. IP

  • IP ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ νŒ¨ν‚· 솑·μˆ˜μ‹  λ™μž‘μ„ μ œμ–΄ν•˜κ³  νŒ¨ν‚·μ„ 톡신 μƒλŒ€κΉŒμ§€ μš΄λ°˜ν•œλ‹€.
  • IP μ•ˆμ—λŠ” ICMP와 ARPλΌλŠ” ν”„λ‘œν† μ½œμ„ λ‹€λ£¨λŠ” 뢀뢄이 ν¬ν•¨λ˜μ–΄ μžˆλ‹€.
  • ICMPλŠ” νŒ¨ν‚·μ„ μš΄λ°˜ν•  λ•Œ λ°œμƒν•˜λŠ” 였λ₯˜λ₯Ό ν†΅μ§€ν•˜κ±°λ‚˜ μ œμ–΄μš© λ©”μ‹œμ§€λ₯Ό 톡지할 λ•Œ μ‚¬μš©ν•œλ‹€.
  • ARPλŠ” IP μ£Όμ†Œμ— λŒ€μ‘ν•˜λŠ” μ΄λ”λ„·μ˜ MAC μ£Όμ†Œλ₯Ό μ‘°μ‚¬ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

πŸ”Ž 5. LAN λ“œλΌμ΄λ²„

  • LAN μ–΄λŒ‘ν„°μ˜ ν•˜λ“œμ›¨μ–΄λ₯Ό μ œμ–΄ν•œλ‹€.

πŸ”Ž 6. LAN μ–΄λŒ‘ν„°

  • μ‹€μ œ μ†‘·μˆ˜μ‹  λ™μž‘, μ¦‰ μΌ€μ΄λΈ”에 λŒ€ν•΄ μ‹ ν˜Έλ₯Ό μ†‘·μˆ˜μ‹ ν•˜λŠ” λ™μž‘을 μˆ˜ν–‰ν•œλ‹€.

 

 

πŸ“™ 2. μ†ŒμΌ“μ˜ μ‹€μ²΄λŠ” ν†΅μ‹  μ œμ–΄μš© μ œμ–΄ μ •보

  데이터 솑·μˆ˜μ‹ μ˜ μ€‘μš”ν•œ 역할을 ν•˜λŠ” μ†ŒμΌ“μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž.

 

μ†ŒμΌ“μ˜ λ‚΄μš©μ„ 화면에 ν‘œμ‹œν•œ 것

  ν”„λ‘œν† μ½œ μŠ€νƒμ€ 내뢀에 μ œμ–΄ 정보λ₯Ό κΈ°λ‘ν•˜λŠ” λ©”λͺ¨λ¦¬ μ˜μ—­μ„ κ°€μ§€κ³  있으며, 여기에 톡신 λ™μž‘μ„ μ œμ–΄ν•˜κΈ° μœ„ν•œ μ œμ–΄ 정보λ₯Ό κΈ°λ‘ν•œλ‹€. '톡신 μƒλŒ€μ˜ IP μ£Όμ†ŒλŠ” 무엇인가, 포트 λ²ˆν˜ΈλŠ” λͺ‡ λ²ˆμΈκ°€, 톡신 λ™μž‘μ΄ μ–΄λ–€ μ§„ν–‰ μƒνƒœμ— μžˆλŠ”κ°€'ν•˜λŠ” 정보λ₯Ό κΈ°λ‘ν•œλ‹€.

  μ†ŒμΌ“μ€ κ°œλ…μ μΈ κ²ƒμ΄λΌμ„œ 싀체가 μ—†λ‹€. κ·Έλž˜μ„œ μ΄ μ œμ–΄ μ •보가 μ†ŒμΌ“μ˜ μ‹€μ²΄λΌκ³ λ„ ν•  μˆ˜ μžˆλ‹€. (μ œμ–΄ μ •보λ₯Ό κΈ°λ‘ν•œ λ©”λͺ¨λ¦¬ μ˜μ—­μ΄ μ†ŒμΌ“μ˜ μ‹€μ²΄λΌκ³  μƒκ°ν•΄λ„ λœλ‹€.)

 

  ν”„λ‘œν† μ½œ μŠ€νƒμ€ μ œμ–΄ 정보λ₯Ό μ°Έμ‘°ν•˜λ©΄μ„œ λ™μž‘ν•œλ‹€. 예λ₯Ό λ“€μ–΄, μ œμ–΄ μ •λ³΄μ˜ 'κ²½κ³Ό μ‹œκ°„'을 ν†΅ν•΄ μ†‘μ‹  λ™μž‘을 μ‹€ν–‰ν•œ ν›„ μ–΄λА μ •도 μ‹œκ°„이 κ²½κ³Όν•˜λ©΄ μ—†μ–΄μ§„ λ°μ΄ν„°λ₯Ό λ‹€μ‹œ λ³΄λ‚΄λŠ” λ™μž‘을 μˆ˜ν–‰ν•œλ‹€.

 

 

πŸ“™ 3. Socket을 ν˜ΈμΆœν–ˆμ„ λ•Œμ˜ λ™μž‘

  Ch 01μ—μ„œλŠ” μ†ŒμΌ“μ„ μž‘μ„±ν•  λ•Œ Socket 라이브러리의 socketμ΄λΌλŠ” ν”„λ‘œκ·Έλž¨ λΆ€ν’ˆλ§Œ ν˜ΈμΆœν•˜λ©΄ λœλ‹€κ³  이해λ₯Ό ν–ˆλ‹€.

  μ΄λ²ˆμ—λŠ” socketμ΄λ‚˜ connectλΌλŠ” Socket 라이브러리의 ν”„λ‘œκ·Έλž¨ λΆ€ν’ˆμ„ ν˜ΈμΆœν–ˆμ„ λ•Œ ν”„λ‘œν† μ½œ μŠ€νƒμ˜ λ‚΄λΆ€κ°€ μ–΄λ–»κ²Œ μ›€μ§μ΄λŠ”μ§€ μ‚΄νŽ΄λ³΄μž.

  socket을 ν˜ΈμΆœν•˜λ©΄ ν”„λ‘œν† μ½œ μŠ€νƒμ€ ν•œ 개의 μ†ŒμΌ“μ„ λ§Œλ“ λ‹€. μ΄λ•Œ ν”„λ‘œν† μ½œ μŠ€νƒμ΄ 졜초둜 ν•˜λŠ” 일은 μ†ŒμΌ“ ν•œ 개 λΆ„λŸ‰μ˜ λ©”λͺ¨λ¦¬ μ˜μ—­μ„ ν™•λ³΄ν•˜λŠ” 것이닀.

  μ†ŒμΌ“μ˜ μ œμ–΄ 정보λ₯Ό κΈ°λ‘ν•˜λŠ” λ©”λͺ¨λ¦¬ μ˜μ—­μ€ μ²˜μŒλΆ€ν„° μ‘΄μž¬ν•˜λŠ” 것이 μ•„λ‹ˆλ―€λ‘œ λ¨Όμ € 그것을 확보해 두어야 ν•œλ‹€.

 

  μ†ŒμΌ“μ΄ λ§Œλ“€μ–΄μ§€λ©΄ μ†ŒμΌ“μ„ λ‚˜νƒ€λ‚΄λŠ” λ””μŠ€ν¬λ¦½ν„°λ₯Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—κ²Œ μ•Œλ €μ€€λ‹€. (λ””μŠ€ν¬λ¦½ν„°λž€ ν”„λ‘œν† μ½œ μŠ€νƒμ˜ λ‚΄λΆ€μ— μžˆλŠ” λ‹€μˆ˜μ˜ μ†ŒμΌ“ μ€‘ μ–΄λА κ²ƒμ„ κ°€λ¦¬ν‚€λŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ²ˆν˜Έν‘œμ™€ κ°™μ€ κ²ƒμ΄λ‹€.)

 

write<λ””μŠ€ν¬λ¦½ν„°>, <솑신 데이터>, <솑신 데이터 길이>);

  λ””μŠ€ν¬λ¦½ν„°λ₯Ό 받은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 이후 ν”„λ‘œν† μ½œ μŠ€νƒμ— 데이터 솑·μˆ˜μ‹  λ™μž‘μ„ μ˜λ’°ν•  λ•Œ λ””μŠ€ν¬λ¦½ν„°λ₯Ό ν†΅μ§€ν•œλ‹€.

  μ†ŒμΌ“μ—λŠ” λˆ„κ΅¬μ™€ λˆ„κ°€ ν†΅μ‹ ν•˜κ³  μžˆλŠ”μ§€, 그리고 그것이 μ–΄λ–€ μƒνƒœλ‘œ μžˆλŠ”μ§€ λ“±μ˜ 정보가 μ „λΆ€ κΈ°λ‘λ˜μ–΄ μžˆμœΌλ―€λ‘œ λ””μŠ€ν¬λ¦½ν„°κ°€ μ–΄λŠ μ†ŒμΌ“μΈμ§€λ₯Ό λ‚˜νƒ€λ‚΄λ©΄ ν•„μš”ν•œ μ •λ³΄λŠ” μ „λΆ€ ν”„λ‘œν† μ½œ μŠ€νƒ μͺ½μ—μ„œ μ•Œ 수 있기 λ•Œλ¬Έμ΄λ‹€.

  그러면 ν”„λ‘œν† μ½œ μŠ€νƒμ΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œλΆ€ν„° 톡신 μƒλŒ€μ˜ 정보λ₯Ό 일일이 λ°›λŠ” 것이 μ•„λ‹ˆλΌ λ””μŠ€ν¬λ¦½ν„°λ§Œ λ°›μœΌλ©΄ λœλ‹€.

 

ν•΄λ‹Ή 글은 Tsutomu Tone λ‹˜μ˜ '성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리'λ₯Ό μ°Έκ³ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

'πŸ“‚ λ„€νŠΈμ›Œν¬ > 성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

데이터λ₯Ό μ†‘Β·μˆ˜μ‹ ν•œλ‹€. - [Ch 02. TCP/IP의 데이터λ₯Ό μ „κΈ° μ‹ ν˜Έλ‘œ λ§Œλ“€μ–΄ 보낸닀.]  (0) 2023.07.19
μ„œλ²„μ— μ ‘μ†ν•œλ‹€. - [Ch 02. TCP/IP의 데이터λ₯Ό μ „κΈ° μ‹ ν˜Έλ‘œ λ§Œλ“€μ–΄ 보낸닀.]  (0) 2023.07.18
ν”„λ‘œν† μ½œ μŠ€νƒμ— λ©”μ‹œμ§€ 솑신을 μ˜λ’°ν•œλ‹€. - [Ch 01. μ›Ή λΈŒλΌμš°μ €κ°€ λ©”μ‹œμ§€λ₯Ό λ§Œλ“ λ‹€]  (0) 2023.07.09
μ „ μ„Έκ³„μ˜ DNS μ„œλ²„κ°€ μ—°λŒ€ν•œλ‹€. - [Ch 01. μ›Ή λΈŒλΌμš°μ €κ°€ λ©”μ‹œμ§€λ₯Ό λ§Œλ“ λ‹€]  (0) 2023.07.09
μ›Ή μ„œλ²„μ˜ IPμ£Όμ†Œλ₯Ό DNS μ„œλ²„μ— μ‘°νšŒν•œλ‹€. - [Ch 01. μ›Ή λΈŒλΌμš°μ €κ°€ λ©”μ‹œμ§€λ₯Ό λ§Œλ“ λ‹€]  (0) 2023.07.08
    'πŸ“‚ λ„€νŠΈμ›Œν¬/성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • 데이터λ₯Ό 솑·μˆ˜μ‹ ν•œλ‹€. - [Ch 02. TCP/IP의 데이터λ₯Ό μ „κΈ° μ‹ ν˜Έλ‘œ λ§Œλ“€μ–΄ 보낸닀.]
    • μ„œλ²„μ— μ ‘μ†ν•œλ‹€. - [Ch 02. TCP/IP의 데이터λ₯Ό μ „κΈ° μ‹ ν˜Έλ‘œ λ§Œλ“€μ–΄ 보낸닀.]
    • ν”„λ‘œν† μ½œ μŠ€νƒμ— λ©”μ‹œμ§€ 솑신을 μ˜λ’°ν•œλ‹€. - [Ch 01. μ›Ή λΈŒλΌμš°μ €κ°€ λ©”μ‹œμ§€λ₯Ό λ§Œλ“ λ‹€]
    • μ „ μ„Έκ³„μ˜ DNS μ„œλ²„κ°€ μ—°λŒ€ν•œλ‹€. - [Ch 01. μ›Ή λΈŒλΌμš°μ €κ°€ λ©”μ‹œμ§€λ₯Ό λ§Œλ“ λ‹€]
    Amenable
    Amenable
    CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”