λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸš— Major Study (Bachelor)/🟦 Network

[λ„€νŠΈμ›Œν¬] Network | Internet Protocol stack, Network Security, Encapsulation, Client - Server Paradigm, Peer-to-Peer Paradigm

by UKHYUN22 2022. 9. 14.
728x90

 

λ‹€μŒ 그림에 있음 μ§ν•œ μ–΄λ–€ ꡬ쑰λ₯Ό μ°Ύμ•„μ•Ό ν•œλ‹€. 그림을 보면 각 쒅단에 ν‹°μΌ“νŒ… κΈ°λŠ₯이 μžˆμŒμ„ μ•Œ 수 μžˆλ‹€. 이미  티켓을 가진 μŠΉκ°μ„ μœ„ν•œ μˆ˜ν•˜λ¬Ό κΈ°λŠ₯도 있고, 짐을 κ²€μ‚¬ν•œ μŠΉκ°μ„ μœ„ν•œ νƒ‘μŠΉκ΅¬ κΈ°λŠ₯도 μžˆλ‹€.각 κΈ°λŠ₯듀이 μˆ˜ν‰ λ°©μ‹μœΌλ‘œ μ–΄λ–€ 역할을 μˆ˜ν–‰ν•˜κ³  μžˆλŠ” 것을 λ³Ό 수 μžˆλ‹€.

 

 

계측 κ΅¬μ‘°λŠ” 크고 λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ˜ 잘 μ •μ˜λœ νŠΉμ • 뢀뢄을 λ…Όμ˜ν•  수 있게 ν•΄μ€€λ‹€. μ΄λŸ¬ν•œ λ‹¨μˆœν™”λŠ” 맀우 μ€‘μš”ν•˜λ‹€. μ‹œμŠ€ν…Œμ΄ 계측 ꡬ쑰λ₯Ό κ°€μ§ˆ λ•Œ, κ·Έ 계측이 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€μ˜ κ΅¬ν˜„μ„ λ³€κ²½ν•˜λŠ” 것도 맀우 쉽닀. 그리고 μ–΄λ–€ ν•œ κ³„μΈ΅μ˜ κ΅¬ν˜„μ΄ λ³€ν•˜λ”λΌλ„ μ‹œμŠ€ν…œμ˜ λ‚˜λ¨Έμ§€ 뢀뢄은 λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€. κ³„μ†ν•΄μ„œ κ°±μ‹ λ˜λŠ” λ³΅μž‘ν•˜κ³  μ»€λ‹€λž€ μ‹œμŠ€ν…œμ— λŒ€ν•΄, μ‹œμŠ€ν…œμ˜ λ‹€λ₯Έ μš”μ†Œμ— 영ν–₯을 주지 μ•Šκ³  μ„œλΉ„μŠ€ κ΅¬ν˜„μ„ λ³€ν™”μ‹œν‚€λŠ” λŠ₯λ ₯은 κ³„μΈ΅ν™”μ˜ 또 λ‹€λ₯Έ μ€‘μš”ν•œ 이점이 λœλ‹€.

 

λ„€νŠΈμ›Œν¬ μ„€κ³„μžλŠ” ν”„λ‘œν† μ½œμ„ 계측 (Layer)으둜 μ‘°μ§ν•œλ‹€.  κ·Έλ¦Όμ—μ„œ 각각의 κΈ°λŠ₯이 ν•œ 계측에 μ†ν•˜λŠ” κ²ƒμ²˜λŸΌ 각 ν”„λ‘œν† μ½œμ€ ν•œ 계측에 μ†ν•œλ‹€. μš°λ¦¬λŠ” ν•œ 계측이 μƒμœ„ 계측에 μ œκ³΅ν•˜λŠ” μ„œλΉ„μŠ€μ— 관심을 κ°–κ³  이것을 κ³„μΈ΅μ˜ μ„œλΉ„μŠ€ λͺ¨λΈ (Service Model)이라고 ν•œλ‹€.

 

 

ν”„λ‘œν† μ½œ κ³„μΈ΅ν™”λŠ” κ°œλ…κ³Ό ꡬ쑰 μΈ‘λ©΄μ—μ„œ 이점이 μžˆλ‹€. λͺ¨λ“ˆν™”λŠ” μ‹œμŠ€ν…œ κ΅¬μ„±μš”μ†Œμ˜ 갱신을 더 μ‰½κ²Œ ν•΄μ€€λ‹€. κ·ΈλŸ¬λ‚˜  κ³„μΈ΅ν™”μ˜ 잠재된 결점은 ν•œ κ³„μΈ΅μ˜ κΈ°λŠ₯이 ν•˜μœ„ 계측과 κΈ°λŠ₯적으둜 μ€‘λ³΅λœλ‹€λŠ” 것이닀. 예λ₯Ό λ“€λ©΄ λ§Žμ€ ν”„λ‘œν† μ½œ μŠ€νƒμ΄ 링크와 쒅단 μ‹œμŠ€ν…œ 두 κ³³ λͺ¨λ‘μ—μ„œ  였λ₯˜ 볡ꡬ  κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€λŠ 것이닀.

 

 

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 (Application layer)

 

HTTP, SMTP, FTP 같은 λ§Žμ€ ν”„λ‘œν† μ½œμ„ ν¬ν•¨ν•œλ‹€. μ‚¬λžŒμ—κ²Œ μΉœμˆ™ν•œ web addressλ₯Ό 32 λΉ„νŠΈ λ„€νŠΈμ›Œν¬ μ£Όμ†Œλ‘œ λ³€ν™˜ν•˜λŠ” λ„€νŠΈμ›Œν¬ κΈ°λŠ₯을 λ³Ό 것이닀. 이것은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ³„μΈ΅μ—μ„œ DNS κ°€ λ•λŠ”λ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 ν”„λ‘œν† μ½œμ€ μ—¬λŸ¬ 쒅단 μ‹œμŠ€ν…œμ— λΆ„μ‚°λ˜μ–΄ μžˆμ–΄μ„œ, ν•œ 쒅단 μ‹œμŠ€ν…œμ— μžˆλŠ” μ• ν”Œλ¦΄μΌ€μ΄μ…˜μ΄ λ‹€λ₯Έ 쒅단 μ‹œμŠ€ν…œμ— μžˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 정보 νŒ¨ν‚·μ„ κ΅ν™˜ν•˜λŠ” 데 이 ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•œλ‹€. 이 정보 νŒ¨ν‚·μ„ λ©”μ‹œμ§€ (Message) 라고 λΆ€λ₯Έλ‹€.

 

트랜슀포트 계측 (Transport Layer)

 

ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ 간에 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•œλ‹€. TCP, UDPλΌλŠ” Transport ν”„λ‘œν† μ½œμ΄ 있으며 이듀은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 λ©”μ‹œμ§€λ₯Ό μ „λ‹¬ν•œλ‹€. TCPλŠ” 연결지ν–₯ν˜• μ„œλΉ„μŠ€λ₯Όγ„Ή μ œκ³΅ν•˜κ³  λ©”μ‹œμ§€ 전달 보μž₯κ³Ό νλ¦„μ œμ–΄λ₯Ό ν¬ν•¨ν•œλ‹€. λ˜ν•œ TCPλŠ” κΈ΄ λ©”μ‹œμ§€λ₯Ό 짧은 λ©”μ‹œμ§€λ‘œ λ‚˜λˆ„κ³ , λ„€νŠΈμ›Œν¬κ°€ ν˜Όμž‘ν•  λ•Œ μΆœλ°œμ§€μ˜ 전솑속도λ₯Ό 쀄이도둝 ν•œλ‹€. UDPλŠ” λΉ„μ—°κ²¨λ €ν˜• μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•œλ‹€. Transport Layerλ₯Ό μ„Έκ·Έλ¨ΌνŠΈ (Segment)라고 ν•œλ‹€.

 

λ„€νŠΈμ›Œν¬ 계측 (Network Layer)

 

ν•œ ν˜ΈμŠ€νŠΈμ—μ„œ λ‹€λ₯Έ 호슀트둜 λ°μ΄ν„°κ·Έλž¨(Datagram)을 λΌμš°νŒ…ν•˜λŠ” μ±…μž„μ„ 진닀. μΆœλ°œμ§€ ν˜ΈμŠ€νŠΈμ—μ„œ 인터넷 트랜슀포트 layer (TCP, UDP)λŠ” Transport 게측 Segment와 λͺ©μ μ§€ μ£Όμ†Œλ₯Ό λ„€νŠΈμ›Œν¬ κ³„μΈ΅μœΌλ‘œ μ „λ‹¬ν•œλ‹€. κ·Έ λ‹€μŒ λ„€νŠΈμ›Œν¬ 계측은 λͺ©μ μ§€ 호슀트이 트랜슀포트 κ³„μΈ΅μœΌλ‘œ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό μš΄λ°˜ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•œλ‹€. IP ν”„λ‘œν† μ½œμ„ 가지고 μžˆλ‹€. 이것을 μˆ˜ν–‰ν•΄μ•Όλ§Œ μΆœλ°œμ§€μ™€ λͺ©μ μ§€ μ‚¬μ΄μ—μ„œ λ°μ΄ν„°κ·Έλž¨μ΄ μ΄λ™ν•˜λŠ” 경둜λ₯Ό κ²°μ •ν•˜λŠ” λΌμš°νŒ… ν”„λ‘œν† μ½œμ„ ν¬ν•¨ν•œλ‹€.

 

링크 계측 (Link Layer)

 

λ„€νŠΈμ›Œν¬ 계측은 μΆœλ°œμ§€μ™€ λͺ©μ μ§€ κ°„ 일련의 νŒ¨ν‚· μŠ€μœ„μΉ˜λ₯Ό 톡해 λ°μ΄ν„°κ·Έλž¨μ„ 라우트 ν•œλ‹€. κ²½λ‘œμƒμ˜ ν•œ λ…Έλ“œμ—μ„œ λ‹€λ₯Έ λ…Έλ“œλ‘œ νŒ¨ν‚·μ„ μ΄λ™ν•˜κΈ° μœ„ν•΄, λ„€νŠΈμ›Œν¬ 계측은 링크 계측 μ„œλΉ„μŠ€μ— μ˜μ‘΄ν•΄μ•Ό ν•œλ‹€. 특히,  각 λ…Έλ“œμ—μ„œ λ„€νŠΈμ›Œν¬ 계측은 λ°μ΄ν„°κ·Έλž¨μ„ μ•„λž˜ 링크 κ³„μΈ΅μœΌλ‘œ 보내고, 링크 계측은 κ·Έ 데이터 그램(Datagram) 을 κ²½λ‘œμƒμ˜ λ‹€μŒ λ…Έλ“œμ— μ „λ‹¬ν•œλ‹€.

링크 계측 νŒ¨ν‚·μ„ ν”„λ ˆμž„(Frame)이라고 λΆ€λ₯Έλ‹€.

 

물리 계측 (Physical Layer)

 

링크 κ³„μΈ΅μ˜ κΈ°λŠ₯이 전체 ν”„λ ˆμž„μ„ ν•œ λ„€νŠΈμ›Œν¬ μš”μ†Œμ—μ„œ 이웃 λ„€νŠΈμ›Œν¬ μš”μ†Œλ‘œ  μ΄λ™ν•˜λŠ” 것이라면, 물리 계측 (Physical Layer)의 κΈ°λŠ₯은 ν”„λ ˆμž„ λ‚΄λΆ€μ˜ 각 λΉ„νŠΈλ₯Ό ν•œ λ…Έλ“œμ—μ„œ λ‹€μŒ λ…Έλ“œλ‘œ μ΄λ™ν•˜λŠ” 것이닀.

 

 

 

1970λ…„λŒ€ ν›„λ°˜μ— ISOλŠ” 컴퓨터 λ„€νŠΈμ›Œν¬κ°€ 7κ³„μΈ΅μœΌλ‘œ κ΅¬μ„±λ˜μ–΄μ•Ό ν•œλ‹€λŠ” μ œμ•ˆμ„ ν–ˆλ‹€. 이λ₯Ό OSI (Open System Interconnection) 라고 λΆ€λ₯Έλ‹€.

 

 

 

쒅단 μ‹œμŠ€ν…œκ³Ό λΉ„μŠ€ν•˜κ²Œ λΌμš°ν„°μ™€ 링크 계측 μŠ€μœ„μΉ˜λŠ” λ„€νŠΈμ›Œν‚Ή ν•˜λ“œμ›¨μ–΄μ™€ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ³„μΈ΅μœΌλ‘œ κ΅¬μ„±ν•œλ‹€. 일반적으둜 이듀은 ν•˜μœ„ 계측을 κ΅¬ν˜„ν•œλ‹€. 그림처럼 μŠ€μœ„μΉ˜λŠ”  1κ³Ό 2 계측을 κ΅¬ν˜„ν•˜κ³  λΌμš°ν„°λŠ” 1~3 계측을 κ΅¬ν˜„ν•œλ‹€. ν˜ΈμŠ€νŠΈλŠ” λ‹€μ„― 계측 λͺ¨λ‘λ₯Ό κ΅¬ν˜„ν•œλ‹€λŠ” 점에 μ£Όλͺ©ν•˜μž. 이것은 인터넷 ꡬ쑰가 λ„€νŠΈμ›Œν¬μ˜ 'κ°€μž₯자리'μ—μ„œ κ·Έ λ³΅μž‘μ„±μ„ μœ μ§€ν•œλ‹€λŠ” 관점과 μΌμΉ˜ν•œλ‹€. 

 

솑신 ν˜ΈμŠ€νŠΈμ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 λ©”μ‹œμ§€ (M) λŠ” 트랜슀포트 계측 (Transport Layer)으둜 보낸닀. 트랜슀포트 계측은 λ©”μ‹œμ§€λ₯Ό μˆ˜μ‹ ν•˜λŠ” 츑의 트랜슀포트 κ³„μΈ΅μ—μ„œ μ‚¬μš©λ  μΆ”κ°€ 정보 (Transport Layer Header)라고  λΆ€λ₯Έλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 λ©”μ‹œμ§€μ™€ 트랜슀포트 계측 헀더 μ •λ³΄λŠ” λͺ¨λ‘ 트랜슀포트 계측 Segmentλ₯Ό κ΅¬μ„±ν•œλ‹€. 트랜슀포트 계측 μ„Έκ·Έλ¨ΌνŠΈλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 λ©”μ‹œμ§€λ₯Ό μΊ‘μŠν™” ν•œλ‹€.

 

 νŠΈλžœμŠ€ν¬νŠΈ 계측은 μ„Έκ·Έλ¨ΌνŠΈλ₯Ό λ„€νŠΈμ›Œν¬ κ³„μΈ΅μœΌλ‘œ 보내며 λ„€νŠΈμ›Œν¬ 계측은 μΆœλ°œμ§€μ™€ λͺ©μ μ§€ 쒅단 μ‹œμŠ€ν…œ μ£Όμ†Œμ™€ λ™μΌν•œ 헀더 정보 (Hn) λ₯Ό μΆ”κ°€ν•˜μ—¬ λ„€νŠΈμ›Œν¬ 계측 λ°μ΄ν„°κ·ΈλŸΌ (Datagram)을 λ§Œλ“ λ‹€. 이 λ°μ΄ν„°κ·Έλž¨μ€ 링크 κ³„μΈ΅μœΌλ‘œ μ „λ‹¬λ˜κ³  링크 계측도 μžμ‹ μ˜ 헀더  정보λ₯Ό μΆ”κ°€ν•˜κ³  링크 계측 ν”„λ ˆμž„μ„ λ§Œλ“ λ‹€.

 

μ—¬κΈ°λ‘œλΆ€ν„° μš°λ¦¬λŠ” 각 κ³„μΈ΅μ—μ„œ νŒ¨ν‚·μ€ 헀더 ν•„λ“œμ™€ νŽ˜μ΄λ‘œλ“œ ν•„λ“œ (Payload Field)λΌλŠ” 두 가지 ν˜•νƒœμ˜ ν•„λ“œλ₯Ό κ°–λŠ”λ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€. νŽ˜μ΄λ‘œλ“œλŠ” 일반적으둜 κ·Έ 계측 μƒμœ„λ‘œλΆ€ν„°μ˜ νŒ¨ν‚·μ΄λ‹€.

 

 

컴퓨터 λ³΄μ•ˆ λΆ„μ•ΌλŠ” λ‚˜μœ μΉœκ΅¬λ“€μ΄ μ–΄λ–»κ²Œ 컴퓨터 λ„€νŠΈμ›Œν¬λ₯Ό 곡격할 수 μžˆλŠ” 가와 곧 컴퓨터 λ„€νŠΈμ›Œν‚Ή μ „λ¬Έκ°€κ°€ 될 μš°λ¦¬κ°€ μ–΄λ–»κ²Œ κ·ΈλŸ¬ν•œ κ³΅κ²©μœΌλ‘œλΆ€ν„° λ„€νŠΈμ›Œν¬λ₯Ό λ°©μ–΄ν•  수 μžˆλŠ” κ°€, 더 λ‚˜μ•„κ°€ 그런 곡격에 영ν–₯을 받지 μ•ŠλŠ” μƒˆλ‘œμš΄ ꡬ쑰λ₯Ό μ„€κ³„ν•˜λŠ” 것에 κ΄€ν•œ 것이닀.

 

 

μΈν„°λ„·μ—μ„œ 데이터λ₯Ό 솑/μˆ˜μ‹  ν•˜κΈ°λ₯Ό μ›ν•˜μ—¬ μž₯치λ₯Ό 인터넷에 μ—°κ²°ν•œλ‹€. κ·ΈλŸ¬λ‚˜ λΆˆν–‰ν•˜κ²Œλ„ μ΄λŸ¬ν•œ 쒋은 것과 ν•¨κ»˜ ν•΄λ‘œμš΄ 것도 μ „λ‹¬λ˜λŠ” 데 이듀을 Malware라고 λΆ€λ₯Έλ‹€. 이듀은 μž₯μΉ˜μ— λ“€μ–΄κ°€λ©΄ μ—¬λŸ¬ 가지 μ‚¬μ•…ν•œ 일을 ν•  수 μžˆλ‹€. 사적인 정보λ₯Ό λͺ¨μœΌλŠ” μŠ€νŒŒμ΄μ›¨μ–΄λ₯Ό μ„€μΉ˜ν•˜μ—¬ 이듀 정보λ₯Ό λͺ¨μ•„ λ‚˜μœ μΉœκ΅¬λ“€μ—κ²Œ λ‹€μ‹œ 보낸닀.

 

λ°”μ΄λŸ¬μŠ€κ°€ μ‚¬μš©μžμ˜ μž₯μΉ˜μ— 영ν–₯을 μ£ΌκΈ° μœ„ν•΄μ„œλŠ” μ‚¬μš©μžμ˜ μƒν˜Έ μž‘μš©μ΄ ν•„μš”ν•œ Malware이닀. μ „ν˜•μ μœΌλ‘œ μ „μž 메일 λ°”μ΄λŸ¬μŠ€κ°€ 자기 볡제λ₯Ό 톡해 맬웨어λ₯Ό μˆ˜ν–‰ν•œλ‹€. μ›œ (Worm) 은 μ‚¬μš©μžμ˜ 직접적인 μƒν˜Έμž‘μš© 없이 μž₯μΉ˜μ— μΉ¨νˆ¬ν•˜λŠ” 맬웨어이닀.

 

λ³΄μ•ˆ μœ„ν˜‘μ˜ 또 λ‹€λ₯Έ λΆ€λ₯˜λŠ” DoS 곡격으둜 μ•Œλ €μ Έ μžˆλ‹€. 이름이 μ œμ‹œν•˜λŠ” κ²ƒμ²˜λŸΌ DoS 곡격은 λ„€νŠΈμ›Œν¬, 호슀트 λ“± λ‹€λ₯Έ μš”μ†Œλ“€μ„ 정상적인 μ‚¬μš©μžλ“€μ΄ μ‚¬μš©ν•  수 μ—†κ²Œ ν•˜λŠ” 것이닀. 

 

무선 전솑μž₯치의 κ·Όμ²˜μ— μˆ˜λ™μ μ΄ γ„΄μˆ˜μ‹ μžλ₯Ό μœ„μΉ˜μ‹œν‚΄μœΌλ‘œμ¨ κ·Έ μˆ˜μ‹ μžλŠ” μ „μ†‘λ˜κ³  μžˆλŠ” λͺ¨λ“  νŒ¨ν‚·μ˜ 사본을 얻을 수 μžˆλ‹€. μ§€λ‚˜κ°€λŠ” λͺ¨λ“  νŒ¨ν‚·μ˜ 사본을 κΈ°λ‘ν•˜λŠ” μˆ˜λ™μ μΈ μˆ˜μ‹ μžλ₯Ό νŒ¨ν‚€ μŠ€λ‹ˆνΌ (Packet Sniffer) 라고 ν•œλ‹€. 

 

κ±°μ§“μ˜ μΆœλ°œμ§€ μ£Όμ†Œλ₯Ό 가진 νŒ¨ν‚·μ„ μΈν„°λ„·μœΌλ‘œ λ³΄λ‚΄λŠ” λŠ₯λ ₯을 IP μŠ€ν‘Έλ‹μ΄λΌκ³  ν•˜λ©°, ν•œ μ‚¬μš©μžκ°€ λ‹€λ₯Έ μ‚¬μš©μžμΈ κ²ƒμ²˜λŸΌ ν–‰λ™ν•˜λŠ” μ—¬λŸ¬κ°€μ§€ 방법 μ€‘μ˜ ν•˜λ‚˜μ΄λ‹€.

 

 

\

λ„€νŠΈμ›Œν¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발의 쀑심은 λ‹€λ₯Έ 쒅단 μ‹œμŠ€ν…œμ—μ„œ λ™μž‘ν•˜κ³  λ„€νŠΈμ›Œν¬λ₯Ό 톡해 μ„œλ‘œ ν†΅μ‹ ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λŠ” 것이닀. 예λ₯Ό λ“€μ–΄ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—λŠ” μ„œλ‘œ ν†΅μ‹ ν•˜λŠ” Server와 Client 둜 κ΅¬λ³„λ˜λŠ” 두 ν”„λ‘œκ·Έλž¨μ΄ μžˆλ‹€. λ”°λΌμ„œ μš°λ¦¬κ°€ μƒˆλ‘œμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•  λ•ŒλŠ” μ—¬λŸ¬ 쒅단 μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μž‘μ„±ν•  ν•„μš”κ°€ μžˆλ‹€. μ€‘μš”ν•œ 것은 μš°λ¦¬κ°€ λΌμš°ν„°λ‚˜ 링크 계측 μŠ€μœ„μΉ˜μ™€ 같이 λ„€νŠΈμ›Œν¬ μ½”μ–΄ μž₯λΉ„μ—μ„œ μ‹€ν–‰λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μž‘μ„±ν•  ν•„μš”κ°€ μ—†λ‹€λŠ” 점이닀. 이처럼 쒅단 μ‹œμŠ€ν…Œλ©”μ—λ§Œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ‘΄μž¬ν•œλ‹€λŠ” κΈ°λ³Έ μ„€κ³„λŠ” 인터넷 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κ΄‘λŒ€ν•˜κ³  λΉ λ₯Έ λ°œμ „μ˜ 원동λ ₯이 λ˜μ—ˆλ‹€. 

 

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ΅¬μ‘°λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμžμ— μ˜ν•΄ μ„€κ³„λ˜κ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λ‹€μ–‘ν•œ 쒅단 μ‹œμŠ€ν…œμ—μ„œ μ–΄λ–»κ²Œ μ‘°μ§λ˜μ–΄μ•Ό ν•˜λŠ”μ§€λ₯Ό μ§€μ‚¬ν•œλ‹€.

 

 

ν΄λΌμ΄μ–ΈνŠΈ/μ„œλ²„ κ΅¬μ‘°μ—μ„œ 항상 켜져 μžˆλŠ” 호슀트λ₯Ό μ„œλ²„ (Server)라고 λΆ€λ₯΄λŠ”데 이 μ„œλΉ„μŠ€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈ (Client) λΌλŠ” λ‹€λ₯Έ λ§Žμ€ 호슀트의 μš”μ²­μ„ λ°›λŠ”λ‹€. ν΄λΌμ΄μ–ΈνŠΈ ν˜ΈμŠ€νŠΈλŠ” 가끔 ν˜Ήμ€ 항상 켜져 μžˆμ„ 수 μžˆλ‹€. κ·Έ 예둜 ν΄λΌμ΄μ–ΈνŠΈ ν˜ΈμŠ€νŠΈμ—μ„œ μ‹€ν–‰λ˜λŠ” λΈŒλΌμš°μ €κ°€ 항상 μΌœμ§„ μ›Ή μ„œλ²„λ‘œ μ„œλΉ„μŠ€λ₯Ό μš”μ²­ν•˜λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ‹€.

 

ν΄λΌμ΄μ–ΈνŠΈ / μ„œλ²„ κ΅¬μ‘°μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ‘œ μ§μ ‘μ μœΌλ‘œ ν†΅μ‹ ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것이닀. 예λ₯Ό λ“€μ–΄ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” 2개의 λΈŒλΌμš°μ €κ°€ μ§μ ‘μ μœΌλ‘œ ν†΅μ‹ ν•˜μ§€ μ•ŠλŠ”λ‹€. Client / Server ꡬ쑰의 λ‹€λ₯Έ νŠΉμ§•μ€ μ„œλ²„κ°€ κ³ μ • IP μ£Όμ†ŒλΌλŠ” 잘 μ•Œλ €μ§„ μ£Όμ†Œλ₯Ό κ°–λŠ”λ‹€λŠ” 것이닀. ServerλŠ” 항상 λ™μž‘ν•˜λ―€λ‘œ ClientλŠ” μ„œλ²„ μ£Όμ†Œλ‘œ νŒ¨ν‚·μ„ λ³΄λ‚΄μ„œ 항상 μ„œλ²„μ— μ—°κ²°ν•  수 μžˆλ‹€.

 

P2P κ΅¬μ‘°μ—μ„œλŠ” 항상 켜져 μžˆλŠ” 기반ꡬ쑰 μ„œλ²„μ— μ΅œμ†Œλ‘œ μ˜μ‘΄ν•œλ‹€. (μ „ν˜€ μ˜μ‘΄ν•˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆλ‹€) λŒ€μ‹ μ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν”Όμ–΄(Peer) λΌλŠ” κ°„ν—μ μœΌλ‘œ μ—°κ²°λœ 호슀트 쌍이 μ„œλ‘œ 직접 ν†΅μ‹ ν•˜λ„λ‘ ν•œλ‹€. ν”Όμ–΄ (Peer)λŠ” μ„œλΉ„μŠ€ μ œκ³΅μžκ°€ μ†Œμœ ν•˜μ§€ μ•Šκ³ , μ‚¬μš©μžλ“€μ΄ μ œμ–΄ν•˜λŠ” λ°μŠ€νŠΈν†±κ³Ό  λž©ν†±μ΄ μ†Œμœ ν•œλ‹€. λŒ€λΆ€λΆ„μ˜ ν”Όμ–΄(Peer)듀은 κ°€μ •, λŒ€ν•™, 사무싀에 μ‘΄μž¬ν•œλ‹€. νŠΉμ • μ„œλ²„λ₯Ό ν†΅ν•˜μ§€ μ•Šκ³  ν”Όμ–΄(Peer)κ°€ ν†΅μ‹ ν•˜λ―€λ‘œ 이 ꡬ쑰λ₯Ό P2P라고 ν•œλ‹€. λŒ€ν‘œμ μΈ 예둜 Torrentκ°€ μžˆλ‹€.

 

λ˜ν•œ μ£Όλͺ©ν•  λ§Œν•œ νŠΉμ„± μ€‘μ˜ ν•˜λ‚˜κ°€ μžκ°€ ν™•μž₯μ„± (Self scalability)이닀. 예λ₯Ό λ“€μ–΄ P2P 파일 곡유 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 비둝 각 피어듀이 νŒŒμΌμ„ μš”κ΅¬ν•¨μœΌλ‘œμ¨ μž‘μ—… λΆ€ν•˜λ₯Ό λ§Œλ“€μ–΄λ‚΄μ§€λ§Œ 각 피어듀은 λ˜ν•œ νŒŒμΌμ„ λ‹€λ₯Έ ν”Όμ–΄λ“€μ—κ²Œ λΆ„λ°°ν•¨μœΌλ‘œμ¨ κ·Έ μ‹œμŠ€ν…œμ— μ„œλΉ„μŠ€ λŠ₯λ ₯을 μΆ”κ°€ν•œλ‹€. κ΅μˆ˜λ‹˜κ»˜μ„œ Torrentλ₯Ό μ‚¬μš©ν•˜λŠ” 피어듀이 λ§Žμ„ 수둝 데이터 전솑 속도가 λΉ λ₯΄λ‹€κ³  μ˜ˆμ‹œλ₯Ό ν•΄μ£Όμ…¨λ˜ κ²ƒμœΌλ‘œ κΈ°μ–΅λ‚œλ‹€. 

 

 

μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜κΈ° 전에 μ—¬λŸ¬ 쒅단 μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ„œλ‘œ ν†΅μ‹ ν•˜λŠ” 방법을 이해해야 ν•œλ‹€. OS μš©μ–΄μ—μ„œ μ‹€μ œ ν†΅μ‹ ν•˜λŠ” 것은 ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹ˆλΌ ν”„λ‘œμ„ΈμŠ€(Process)이닀. ν”„λ‘œμ„ΈμŠ€λŠ” 쒅단 μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰λ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄λ‹€. 2개의 λ‹€λ₯Έ 쒅단 μ‹œμŠ€ν…œμ—μ„œ ν”„λ‘œμ„ΈμŠ€λŠ” 컴퓨터 λ„€νŠΈμ›Œν¬λ₯Ό ν†΅ν•œ λ©”μ‹œμ§€ (Message) κ΅ν™˜μœΌλ‘œ μ„œλ‘œ ν†΅μ‹ ν•œλ‹€. 솑신 ν”„λ‘œμ„ΈμŠ€λŠ” λ©”μ‹œμ§€λ₯Ό λ§Œλ“€μ–΄μ„œ λ„€νŠΈμ›Œν¬λ‘œ 보낸닀. μˆ˜μ‹  ν”„λ‘œμ„ΈμŠ€λŠ” λ©”μ‹œμ§€λ₯Ό λ°›κ³  μ—­μœΌλ‘œ λ©”μ‹œμ§€λ₯Ό λ³΄λƒ„μœΌλ‘œμ¨ μ‘λ‹΅ν•œλ‹€.

 

Client and Server Process

 

P2P 파일 곡유 μ‹œμŠ€ν…œμ—μ„œλŠ” ν•œ ν”Όμ–΄μ˜ ν”„λ‘œμ„ΈμŠ€μ—μ„œ λ‹€λ₯Έ ν”Όμ–΄μ˜ ν”„λ‘œμ„ΈμŠ€λ‘œ νŒŒμΌμ„ μ „μ†‘ν•œλ‹€. ν†΅μ‹ ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€ 각 μŒμ— λŒ€ν•΄ 일반적으둜 Client의 ν”„λ‘œμ„ΈμŠ€μ™€ Server의 ν”„λ‘œμ„ΈμŠ€ 쀑 ν•˜λ‚˜λ‘œ 이름 μ§“λŠ”λ‹€. P2P 파일 κ³΅μœ μ™€ 같은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ ν”„λ‘œμ„ΈμŠ€ (Process) κ°€ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ λ‘˜ λ‹€ κ°€λŠ₯함을 μ•Œ 수 μžˆλ‹€. μ΄λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ νŒŒμΌμ„ 올리고 λ˜ν•œ λ‚΄λ € 받을 수 μžˆλ‹€λŠ” 것이닀. 

 

 

 

λŒ€λΆ€λΆ„μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 두 ν”„λ‘œμ„ΈμŠ€κ°€ λ©”μ‹œμ§€λ₯Ό μ„œλ‘œμ—κ²Œ λ³΄λ‚΄λŠ” 톡신 ν”„λ‘œμ„ΈμŠ€ μŒμ„λ‘œ κ΅¬μ„±λœλ‹€. ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ‘œλΆ€ν„° λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ‘œ λ³΄λ‚΄λŠ” λ©”μ‹œμ§€λŠ” λ„€νŠΈμ›Œν¬λ₯Ό 톡해 움직인닀. ν”„λ‘œμ„ΈμŠ€λŠ” μ†ŒμΌ“ (Socket) 을 톡해 λ„€νŠΈμ›Œν¬λ‘œ λ©”μ‹œμ§€λ₯Ό 보내고 λ°›λŠ”λ‹€. μœ„μ˜ κ·Έλ¦Όμ—μ„œ ν•˜μœ„ 전솑 ν”„λ‘œν† μ½œμ΄ μΈν„°λ„·μ˜ TCP ν”„λ‘œν† μ½œμ΄λΌκ³  κ°€μ •ν•œλ‹€. μ†ŒμΌ“μ€ 호슀트의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측과 트랜슀포트 계측 κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€λ‹€.  λ˜ν•œ μ†ŒμΌ“μ€ λ„€νŠΈμ›Œν¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 인터넷에 λ§Œλ“  ν”„λ‘œκ·Έλž˜λ° μΈν„°νŽ˜μ΄μŠ€μ΄λ―€λ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό λ„€νŠΈμ›Œν¬ μ‚¬μ΄μ˜ API라고도 ν•œλ‹€.

 

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμžλŠ” μ†ŒμΌ“ (Socket)의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측에 λŒ€ν•œ λͺ¨λ“  ν†΅μ œκΆŒμ„ κ°–μ§€λ§Œ μ†ŒμΌ“μ˜ 트랜슀포트 계측에 λŒ€ν•œ ν†΅μ œκΆŒμ€ 거의 갖지 λͺ»ν•œλ‹€.