1. μμΌ νλ‘κ·Έλλ° κΈ°μ΄ κ°λ
μμΌ νλ‘κ·Έλλ°μ μ»΄ν¨ν° μ¬μ΄μ ν΅μ μ κ°λ₯νκ² ν΄μ£Όλ νλ‘κ·Έλ¨μ΄λ€. μμΌμ λ€νΈμν¬μμμ μμͺ½ ν΅μ μ μννλ μ»΄ν¨ν° κ°μ μλ°©ν₯ ν΅μ μ μ’ λ¨μ μ΄λ€. μμΌ νλ‘κ·Έλλ°μ ν΅ν΄ μλ²-ν΄λΌμ΄μΈνΈ λͺ¨λΈμ ꡬννμ¬, μλ‘ λ€λ₯Έ μ»΄ν¨ν°λΌλ¦¬ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ€.
1.1 μμΌμ μν
μμΌμ λ€νΈμν¬λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ μΈν°νμ΄μ€ μν μ νλ€. μλ²μμ μμΌμ μμ±νκ³ λκΈ° μνλ‘ μ μ§νλ©°, ν΄λΌμ΄μΈνΈκ° μ μ μμ²μ 보λ΄λ©΄ μ°κ²°μ μλ½νκ³ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ ν΅λ‘λ₯Ό νμ±νλ€. μ΄λ₯Ό ν΅ν΄ μ€μκ° λλ λΉλκΈ°μμΌλ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ λ€μν λ€νΈμν¬ κΈ°λ₯μ ꡬνν μ μλ€.
1.2 μμΌ νλ‘κ·Έλλ°μ κΈ°λ³Έ λμ κ³Όμ
- μλ² μμΌ μμ±: μλ²λ λ€νΈμν¬μ μ°κ²°νμ¬ ν΄λΌμ΄μΈνΈμ μ μμ λκΈ°νκΈ° μν΄ μλ² μμΌμ μμ±νλ€.
- ν΄λΌμ΄μΈνΈ μ μ λκΈ°: μλ²λ ν¬νΈ λ²νΈλ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈμ μ μμ λκΈ°νλ€.
- ν΄λΌμ΄μΈνΈ μ°κ²° μλ½: ν΄λΌμ΄μΈνΈκ° μ μ μμ²μ 보λ΄λ©΄, μλ²λ ν΄λΌμ΄μΈνΈμ μ°κ²°μ μλ½νκ³ ν΅μ μ μν μμΌμ μμ±νλ€.
- λ°μ΄ν° μ‘μμ : μλ²μ ν΄λΌμ΄μΈνΈλ μμ±λ μμΌμ ν΅ν΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λλ€. μ΄λ TCP νλ‘ν μ½μ μ¬μ©νμ¬ μ λ’°μ±μκ³ μ°κ²° μ§ν₯μ μΈ ν΅μ μ΄ μ΄λ£¨μ΄μ§λ€.
- ν΅μ μ’ λ£: ν΅μ μ΄ μ’ λ£λλ©΄ μμΌμ λ«κ³ , ν΄λΌμ΄μΈνΈμ μλ²λ μ°κ²°μ΄ λμ΄μ§λ€.
1.3 μμΌ νλ‘κ·Έλλ°μ μ€μμ±
μμΌ νλ‘κ·Έλλ°μ λ€μν μμ© νλ‘κ·Έλ¨μμ μ¬μ©λλ©°, λ€νΈμν¬ μμμ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ κΈ°λ₯μ ꡬνν μ μλ€. μλ₯Ό λ€μ΄ μ±ν νλ‘κ·Έλ¨, μ¨λΌμΈ κ²μ, νμΌ μ μ‘ λ±μ μ¬μ©λλ©°, λκ·λͺ¨ λμ μ μμ΄λ λμ©λ λ°μ΄ν° μ μ‘μλ ν¨μ¨μ μΌλ‘ λμνλ€. μμΌ νλ‘κ·Έλλ°μ μ΄ν΄νκ³ μ¬μ©ν μ μλ€λ©΄ λ€μν λ€νΈμν¬ κΈ°λ₯μ ꡬνν μ μμΌλ©°, λΆμ° μμ€ν , ν΄λΌμ°λ μ»΄ν¨ν λ±κ³Ό κ°μ νλμ μΈ μ»΄ν¨ν νκ²½μμ νμμ μΈ κ°λ μ΄λ€.
2. TCP ν΅μ νλ‘ν μ½κ³Ό μμΌμ μν
2.1 TCP ν΅μ νλ‘ν μ½
TCP(Transmission Control Protocol)λ μΈν°λ·μμ λ°μ΄ν°λ₯Ό μμ μ μΌλ‘ μ μ‘νκΈ° μν νλ‘ν μ½ μ€ νλμ΄λ€. TCPλ μ°κ²° μ§ν₯μ μ΄λ©°, μ λ’°μ± μλ λ°μ΄ν° μ μ‘μ 보μ₯νλ€. μ΄λ₯Ό μν΄ ν¨ν·μ μμ€, μ€λ³΅, μμ λ³κ²½ λ±μ νμΈνκ³ λ³΅κ΅¬νλ κΈ°λ₯μ μ 곡νλ€.
TCPλ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ λ’°μ± μλ λ°μ΄ν° μ€νΈλ¦Όμ λ§λ€κΈ° μν΄ 3-way handshakeλ₯Ό ν΅ν΄ μ°κ²°μ μ립νλ€. λ°μ΄ν° μ μ‘ νμλ 4-way handshakeλ₯Ό ν΅ν΄ μ°κ²°μ μ’ λ£νλ€.
TCPλ μ μ‘ μ μ΄, νλ¦ μ μ΄, νΌμ‘ μ μ΄ λ± λ€μν κΈ°λ₯μ κ°μΆκ³ μμ΄ μμ μ μΈ λ°μ΄ν° μ μ‘μ 보μ₯νλ€. νμ§λ§ μ΄μ λ°λ₯Έ μ€λ²ν€λλ‘ μΈν΄ μλ μΈ‘λ©΄μμλ UDPμ λΉν΄ λ리λ€.
2.2 μμΌμ μν
μμΌμ TCP ν΅μ μ μν λ€νΈμν¬ μΈν°νμ΄μ€λ‘, λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ ν΅λ‘λ₯Ό νμ±νλ€. ν΄λΌμ΄μΈνΈμ μλ² κ°μ λ°μ΄ν°λ₯Ό κ΅ννκΈ° μν΄ μμΌμ μμ±νκ³ μ¬μ©νλ€.
μλ²λ μμΌμ μμ±νμ¬ μ°κ²° μμ²μ λκΈ°νκ³ , ν΄λΌμ΄μΈνΈλ μλ²μ IP μ£Όμμ ν¬νΈ λ²νΈλ₯Ό ν΅ν΄ μ°κ²° μμ²μ 보λΈλ€. μλ²λ μμ²μ μλ½νκ³ μλ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ μμΌμ μμ±νμ¬ ν΄λΌμ΄μΈνΈμ μ°κ²°μ νμ±νλ€.
μμΌμ λ€νΈμν¬ λ 벨μ νλ‘κ·Έλλ° μΈν°νμ΄μ€λ‘, λ°μ΄ν°μ μμ , μ‘μ , μ°κ²° μ€μ λ° ν΄μ , μλ¬ μ²λ¦¬ λ±μ μ 곡νλ€. λ€νΈμν¬ μμμ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μΌλ©°, μμΌμ ν΅ν΄ μ‘μ κ³Ό μμ μ μν λ²νΌλ₯Ό μμ±νκ³ λ°μ΄ν°λ₯Ό μ μ‘νλ€.
μμΌ νλ‘κ·Έλλ°μμλ μλ² μμΌκ³Ό ν΄λΌμ΄μΈνΈ μμΌμ΄ μ¬μ©λλ©°, μλ² μμΌμ μ°κ²° μμ²μ λκΈ°νκ³ μλ½νλ μν μ νλ€. ν΄λΌμ΄μΈνΈ μμΌμ μλ²μμ μ°κ²°μ μμ²νκ³ , μ°κ²°μ΄ μλ½λλ©΄ μλ²μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λλ€.
μμΌμ μΈν°λ· νλ‘ν μ½(IP) μ£Όμμ ν¬νΈ λ²νΈλ₯Ό κΈ°λ°μΌλ‘ μ°κ²°κ³Ό λ°μ΄ν° κ΅νμ μννλ©°, TCP νλ‘ν μ½μ ν΅ν΄ μμ μ μΈ λ°μ΄ν° μ μ‘μ μ§μνλ€. μμΌμ μ¬μ©νμ¬ λ€νΈμν¬ νλ‘κ·Έλλ°μ ꡬνν μ μμΌλ©°, λ€μν λ€νΈμν¬ κΈ°λ₯μ ν΅μ¬ μμλ‘ μ¬μ©λλ€.
3. μλ° λ€νΈμν¬ API μκ°
3.1 μλ° λ€νΈμν¬ APIλ?
μλ° λ€νΈμν¬ APIλ μλ°μμ λ€νΈμν¬ κΈ°λ₯μ ꡬννκΈ° μν΄ μ 곡λλ API(Application Programming Interface)μ΄λ€. μ΄ APIλ₯Ό μ¬μ©νμ¬ μμΌ νλ‘κ·Έλλ°μ ꡬννκ³ , ν΄λΌμ΄μΈνΈμ μλ² κ°μ ν΅μ μ μνν μ μλ€. μλ°μμλ java.net
ν¨ν€μ§λ₯Ό ν΅ν΄ λ€μν λ€νΈμν¬ κ΄λ ¨ ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό μ 곡νκ³ μλ€.
3.2 μλ° λ€νΈμν¬ APIμ ν΄λμ€μ μΈν°νμ΄μ€
μλ° λ€νΈμν¬ APIμλ λ€μν ν΄λμ€μ μΈν°νμ΄μ€κ° ν¬ν¨λμ΄ μλ€. λͺ κ°μ§ μ£Όμν ν΄λμ€μ μΈν°νμ΄μ€λ μλμ κ°λ€:
- Socket: ν΄λΌμ΄μΈνΈκ° μλ²μ μ°κ²°νκΈ° μν΄ μ¬μ©λλ ν΄λμ€λ‘, μλ²μ μ£Όμμ ν¬νΈ λ²νΈλ₯Ό μ΄μ©νμ¬ μμΌμ μμ±νλ€.
- ServerSocket: μλ²μμ ν΄λΌμ΄μΈνΈμ μ μμ λκΈ°νκΈ° μν΄ μ¬μ©λλ ν΄λμ€λ‘, μ§μ λ ν¬νΈ λ²νΈμ λν ν΄λΌμ΄μΈνΈμ μ°κ²° μμ²μ μλ½νλ€.
- InputStream λ° OutputStream: μμΌμΌλ‘λΆν° λ°μ΄ν°λ₯Ό μ½κ³ μ°κΈ° μν΄ μ¬μ©λλ μ€νΈλ¦Ό ν΄λμ€λ‘, λ°μ΄νΈ λ¨μλ‘ λ°μ΄ν°λ₯Ό μ μ‘νλ€.
- DataInputStream λ° DataOutputStream: λ°μ΄νΈ λ¨μκ° μλ μλ°μ κΈ°λ³Έ λ°μ΄ν° νμ
μΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘νκΈ° μν΄ μ¬μ©λλ μ€νΈλ¦Ό ν΄λμ€λ‘,
InputStream
λ°OutputStream
μ μμλ°λλ€. - URL: URL(Uniform Resource Locator)μ μ²λ¦¬νκΈ° μν΄ μ¬μ©λλ ν΄λμ€λ‘, μΉ νμ΄μ§λ νμΌμ λν URLμ μμ±νκ³ μ‘°μν μ μλ€.
- URLConnection: URLμ λν μ°κ²°μ μ΄κΈ° μν΄ μ¬μ©λλ©°, μ°κ²° ν λ°μ΄ν°μ μ‘μμ μ μν μ€νΈλ¦Όμ μ 곡νλ€.
3.3 μλ° λ€νΈμν¬ APIμ νμ©
μλ° λ€νΈμν¬ APIλ₯Ό μ¬μ©νμ¬ λ€μν λ€νΈμν¬ κΈ°λ₯μ ꡬνν μ μλ€. μλ₯Ό λ€μ΄, ν΄λΌμ΄μΈνΈκ° μλ²μ ν΅μ νκ³ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κΈ° μν΄μλ μμΌμ μμ±νμ¬ μλ²μ μ°κ²°νκ³ , InputStream
λ° OutputStream
μ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ€. μλ²μμλ ServerSocket
μ μ¬μ©νμ¬ ν΄λΌμ΄μΈνΈμ μ°κ²° μμ²μ μλ½νκ³ λ°μ΄ν°λ₯Ό μ‘μμ ν μ μλ€.
μλ° λ€νΈμν¬ APIλ₯Ό μ΄μ©νμ¬ HTTP μμ²μ 보λ΄κ±°λ, μΉ μλ²μ ν΅μ νλ HTTP ν΄λΌμ΄μΈνΈλ₯Ό ꡬνν μλ μλ€. λν, μμΌ νλ‘κ·Έλλ°μ νμ©νμ¬ μ±ν μλ²/ν΄λΌμ΄μΈνΈ, νμΌ μ μ‘ κΈ°λ₯ λ±μ ꡬνν μ μλ€.
μλ° λ€νΈμν¬ APIλ λ€νΈμν¬ κΈ°λ₯μ λν μΆμν κ³μΈ΅μ μ 곡νλ―λ‘, κ°λ°μλ μμΈν λ€νΈμν¬ νλ‘ν μ½μ μ΄ν΄νμ§ μκ³ λ λ€νΈμν¬ κΈ°λ₯μ μ½κ² ꡬνν μ μλ€. λ€νΈμν¬ νλ‘κ·Έλλ°μ μν΄ μλ°λ₯Ό μ¬μ©νλ κ²½μ° μλ° λ€νΈμν¬ APIλ₯Ό νμ΅νκ³ νμ©νλ κ²μ΄ λ§€μ° μ μ©νλ€.
4. TCP μμΌ ν΅μ ꡬν λ°©λ²
4.1 μμΌ μμ± λ° μ°κ²°
TCP μμΌ ν΅μ μ ꡬννκΈ° μν΄μλ λ¨Όμ ν΄λΌμ΄μΈνΈμ μλ² κ°κ° μμΌμ μμ±ν΄μΌ νλ€. ν΄λΌμ΄μΈνΈ μμΌμ μλ²μ IP μ£Όμμ ν¬νΈ λ²νΈλ₯Ό μ΄μ©νμ¬ μμ±νκ³ , μλ² μμΌμ νΉμ ν¬νΈ λ²νΈλ₯Ό μ¬μ©νμ¬ μμ±νλ€.
ν΄λΌμ΄μΈνΈ μμΌμ λ€μκ³Ό κ°μ΄ μμ±ν μ μλ€:
Socket clientSocket = new Socket("μλ² IP μ£Όμ", ν¬νΈ λ²νΈ);
μλ² μμΌμ λ€μκ³Ό κ°μ΄ μμ±νκ³ μ°κ²° μμ²μ λκΈ°ν μ μλ€:
ServerSocket serverSocket = new ServerSocket(ν¬νΈ λ²νΈ);
Socket clientSocket = serverSocket.accept(); // ν΄λΌμ΄μΈνΈμ μ°κ²° μμ² μλ½
4.2 λ°μ΄ν° μ‘μμ
μμΌμ΄ μμ±λκ³ μ°κ²°μ΄ νμ±λ νμλ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ€. λ°μ΄ν°μ μ‘μμ μ InputStream
κ³Ό OutputStream
μ μ΄μ©νμ¬ μ΄λ£¨μ΄μ§λ€.
ν΄λΌμ΄μΈνΈ μμΌμμ λ°μ΄ν°λ₯Ό 보λ΄λ μμλ λ€μκ³Ό κ°λ€:
OutputStream outputStream = clientSocket.getOutputStream();
outputStream.write(λ°μ΄ν°);
μλ² μμΌμμ λ°μ΄ν°λ₯Ό λ°λ μμλ λ€μκ³Ό κ°λ€:
InputStream inputStream = clientSocket.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String receivedData = new String(buffer, 0, bytesRead);
4.3 μμΌ μ’ λ£
λ°μ΄ν° μ‘μμ μ΄ μλ£λκ³ μ°κ²°μ μ’ λ£νκΈ° μν΄μλ μμΌμ λ«μμΌ νλ€. μμΌμ λ«μΌλ©΄ ν΄λΉ μμΌμΌλ‘μ μ μΆλ ₯ λ° μ°κ²°μ΄ μ’ λ£λλ€.
ν΄λΌμ΄μΈνΈ μμΌμ μ’ λ£ μμλ λ€μκ³Ό κ°λ€:
clientSocket.close();
μλ² μμΌμ μ’ λ£ μμλ λ€μκ³Ό κ°λ€:
serverSocket.close();
4.4 μμΈ μ²λ¦¬
μμΌ ν΅μ μ ꡬνν λλ μμΈ μ²λ¦¬κ° νμνλ€. μμΌ ν΅μ μ€μλ λ€μν μ€λ₯κ° λ°μν μ μμΌλ©°, μ΄λ₯Ό μ μ ν μ²λ¦¬νμ¬ μμ μ μΈ νλ‘κ·Έλ¨μ ꡬνν΄μΌ νλ€.
μ£Όμν μμΈλ€ μ€ μΌλΆλ λ€μκ³Ό κ°λ€:
IOException
: μ μΆλ ₯ λμ μ€μ μ€λ₯κ° λ°μν κ²½μ°SocketException
: μμΌ λμ μ€μ μ€λ₯κ° λ°μν κ²½μ°UnknownHostException
: μ£Όμ΄μ§ νΈμ€νΈ μ΄λ¦μ΄ μλͺ»λ κ²½μ°
μ΄λ¬ν μμΈλ€μ try-catch
λ¬Έμ μ΄μ©νμ¬ μ²λ¦¬νκ³ , μ€λ₯μ λν μ μ ν λμμ μ€μ ν΄μΌ νλ€.
4.5 보μ λ° μ±λ₯ κ³ λ €
μμΌ ν΅μ μ ꡬνν λλ 보μκ³Ό μ±λ₯λ κ³ λ €ν΄μΌ νλ€. λ°μ΄ν°μ μμ μ±μ 보μ₯νκΈ° μν΄ SSL(Secure Sockets Layer)κ³Ό κ°μ νλ‘ν μ½μ μ¬μ©ν μ μλ€. SSLμ λ°μ΄ν°μ μνΈνμ μΈμ¦μ μ 곡νμ¬ μμ ν ν΅μ μ κ°λ₯νκ² νλ€.
λν, λλμ λ°μ΄ν° μ‘μμ μ΄ νμν κ²½μ°μλ λ²νΌ ν¬κΈ° λ° λ°μ΄ν° μ²ν¬ ν¬κΈ°λ₯Ό μ μ ν μ€μ νμ¬ μ±λ₯μ μ΅μ νν μ μλ€. μ΄λ¬ν μ±λ₯ ν₯μμ μν΄ λ€μ΄κΈ μκ³ λ¦¬μ¦(Nagle's algorithm)μ μ¬μ©ν μλ μλ€.
4.6 μμΌ ν΅μ νλ‘κ·Έλ¨ μμ
μλλ ν΄λΌμ΄μΈνΈμ μλ² κ°μ κ°λ¨ν μμΌ ν΅μ μμμ΄λ€:
// μλ²
ServerSocket serverSocket = new ServerSocket(5000);
Socket clientSocket = serverSocket.accept();
OutputStream outputStream = clientSocket.getOutputStream();
outputStream.write("Hello from server".getBytes());
clientSocket.close();
serverSocket.close();
// ν΄λΌμ΄μΈνΈ
Socket clientSocket = new Socket("μλ² IP μ£Όμ", 5000);
InputStream inputStream = clientSocket.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead = inputStream.read(buffer);
String receivedData = new String(buffer, 0, bytesRead);
clientSocket.close();
μ΄ μμλ μλ²κ° 'Hello from server'λΌλ λ©μμ§λ₯Ό 보λ΄κ³ , ν΄λΌμ΄μΈνΈκ° ν΄λΉ λ©μμ§λ₯Ό λ°λ κ°λ¨ν μμΌ ν΅μ νλ‘κ·Έλ¨μ΄λ€.
5. TCP μμΌ νλ‘κ·Έλλ°μ νμ©κ³Ό μ₯λ¨μ
5.1 TCP μμΌ νλ‘κ·Έλλ°μ νμ©
TCP μμΌ νλ‘κ·Έλλ°μ λ€μν λΆμΌμμ νμ©λκ³ μλ€. λͺ κ°μ§ μ£Όμν νμ© μ¬λ‘λ λ€μκ³Ό κ°λ€:
μΉ μλ²μ ν΄λΌμ΄μΈνΈ ν΅μ : TCP μμΌμ μ¬μ©νμ¬ HTTP μμ² λ° μλ΅μ μ μ‘νλ λ° μ¬μ©λλ€. ν΄λΌμ΄μΈνΈλ μΉ μλ²μ μ°κ²°νμ¬ μΉ νμ΄μ§λ₯Ό μμ²νκ³ , μλ²λ ν΄λΌμ΄μΈνΈμκ² ν΄λΉ νμ΄μ§λ₯Ό μ μ‘νλ€.
μ±ν νλ‘κ·Έλ¨: TCP μμΌμ μ¬μ©νμ¬ μ±ν μλ²μ ν΄λΌμ΄μΈνΈ κ°μ μ€μκ° ν΅μ μ ꡬννλ€. ν΄λΌμ΄μΈνΈλ€μ μλ²μ μ°κ²°νμ¬ λ©μμ§λ₯Ό μ£Όκ³ λ°μ μ μλ€.
νμΌ μ μ‘: TCP μμΌμ μ¬μ©νμ¬ νμΌμ μ μ‘νλ νλ‘κ·Έλ¨μ ꡬννλ€. ν΄λΌμ΄μΈνΈλ μλ²μ νμΌμ μ λ‘λνκ±°λ, μλ²λ ν΄λΌμ΄μΈνΈμκ² νμΌμ λ€μ΄λ‘λν μ μλ€.
리λͺ¨νΈ λλ²κΉ : TCP μμΌμ μ¬μ©νμ¬ μ격 μ»΄ν¨ν°μμ λμνλ νλ‘κ·Έλ¨μ λλ²κΉ μ μ§μνλ€. λλ²κ·Έ μ 보λ₯Ό μ‘μ νκ³ μμ νκΈ° μν΄ TCP μμΌμ΄ μ¬μ©λλ€.
λ©ν°νλ μ΄μ΄ κ²μ: TCP μμΌμ μ¬μ©νμ¬ λ©ν°νλ μ΄μ΄ κ²μμμ νλ μ΄μ΄λ€ κ°μ ν΅μ μ ꡬννλ€. κ²μ λ°μ΄ν°, μν λ° λͺ λ Ήμ μ λ¬νκΈ° μν΄ TCP μμΌμ΄ νμ©λλ€.
5.2 TCP μμΌ νλ‘κ·Έλλ°μ μ₯μ
TCP μμΌ νλ‘κ·Έλλ°μ λ€μκ³Ό κ°μ μ₯μ μ κ°μ§κ³ μλ€:
μ λ’°μ±: TCPλ λ€νΈμν¬ μμμ μ λ’°μ± μλ λ°μ΄ν° μ μ‘μ μ 곡νλ€. λ°μ΄ν° μ μ‘ μ€μ λ°μνλ μμ€, μμ, μ€λ³΅, μμ λ³κ²½ λ±μ λ¬Έμ λ₯Ό μλμΌλ‘ μ²λ¦¬νμ¬ μμ μ μΈ ν΅μ μ κ°λ₯νκ² νλ€.
μλ°©ν₯ ν΅μ : TCP μμΌμ μ μ΄μ€(full-duplex) ν΅μ μ μ§μνμ¬ λμμ μλ°©ν₯μΌλ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ€. λ°λΌμ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ€μκ°μΌλ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ μλ°©ν₯ ν΅μ μ μ ν©νλ€.
ν¬νΈ κΈ°λ°μ ν΅μ : TCP μμΌμ ν¬νΈ λ²νΈλ₯Ό κΈ°λ°μΌλ‘ μ°κ²°μ νμ±νκ³ κ΄λ¦¬νλ€. ν¬νΈ λ²νΈλ₯Ό μ¬μ©νμ¬ λ€μμ ν΄λΌμ΄μΈνΈκ° μλ²μ μ°κ²°λ μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ λ€μ€ μ μμ μ§μνκ³ ν¨μ¨μ μΈ ν΅μ μ κ°λ₯νκ² νλ€.
5.3 TCP μμΌ νλ‘κ·Έλλ°μ λ¨μ
TCP μμΌ νλ‘κ·Έλλ°μ λͺ κ°μ§ λ¨μ λ κ°μ§κ³ μλ€:
μλ: TCP μμΌμ μ λ’°μ±μ μν΄ λ€μν κΈ°λ₯μ κ°μ§κ³ μμ΄ λ°μ΄ν°μ μ μ‘μ μκ°μ΄ λ 걸릴 μ μλ€. UDP μμΌμ λΉν΄ μ μ‘ μλκ° λ릴 μ μλ€.
μ°κ²° μ§ν₯μ±: TCP μμΌμ μ°κ²° μ§ν₯μ μ΄λ€. μλ²μ ν΄λΌμ΄μΈνΈ μ¬μ΄μ μ°κ²°μ΄ νμ±λμ΄μΌλ§ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ€. λ°λΌμ ν΄λΌμ΄μΈνΈκ° μλ²μ μ°κ²°νκΈ° μν΄ μΆκ°μ μΈ λ¨κ³κ° νμνλ©°, μνλ₯Ό κ΄λ¦¬νλ μ€λ²ν€λκ° λ°μν μ μλ€.
리μμ€ μꡬ: TCP μμΌμ μ λ’°μ±μ μν΄ μ½κ°μ μΆκ° 리μμ€(λ©λͺ¨λ¦¬, CPU)λ₯Ό μꡬνλ€. λ°λΌμ κ³ κ°λ΅κ² μ²λ¦¬ν΄μΌ νλ κ·λͺ¨κ° ν° μμ€ν μμλ μΆκ°μ μΈ λ¦¬μμ€κ° νμν μ μλ€.
5.4 TCP μμΌ νλ‘κ·Έλλ°μ νμ©κ³Ό μ₯λ¨μ μμ½
TCP μμΌ νλ‘κ·Έλλ°μ λ€μν λΆμΌμμ λ리 νμ©λλ©°, μ λ’°μ±κ³Ό μλ°©ν₯ ν΅μ μ μ₯μ μ κ°μ§κ³ μλ€. μΉ μλ² ν΅μ , μ±ν νλ‘κ·Έλ¨, νμΌ μ μ‘ λ± μ¬λ¬ κ°μ§ μμ© νλ‘κ·Έλ¨μμ μ¬μ©λ μ μλ€. κ·Έλ¬λ UDP μμΌμ λΉν΄ μ μ‘ μλκ° λλ¦¬κ³ , μ°κ²° μ§ν₯μ±κ³Ό μΆκ°μ μΈ λ¦¬μμ€ μκ΅¬κ° λ¨μ μΌλ‘ μμ©ν μ μλ€. λ°λΌμ μν©κ³Ό μꡬμ¬νμ λ§κ² TCP μμΌ νλ‘κ·Έλλ°μ νμ©ν μ§ μ¬λΆλ₯Ό κ³ λ €ν΄μΌ νλ€.
λκΈ