DEV Community

Ragib Hasan
Ragib Hasan Subscriber

Posted on

UDP কীভাবে কাজ করে? TCP বনাম UDP, Header, Checksum ও Real-World Use Case

Networking শেখার সময় অনেকেই TCP, UDP, IP, HTTP, DNS—এই শব্দগুলো আলাদা আলাদা করে মুখস্থ করেন। কিন্তু আসল সমস্যা হয় অন্য জায়গায়:

এই জিনিসগুলোর মধ্যে সম্পর্কটা কী?

TCP/UDP শুধু কয়েকটি field মুখস্থ করার বিষয় নয়। এগুলো Transport Layer-এর communication mechanism। একটি application যখন data পাঠায়, সেই data কীভাবে transport layer-এ যায়, কীভাবে receiver-এর কাছে পৌঁছায়, কোথায় reliability দরকার আর কোথায় speed বেশি গুরুত্বপূর্ণ—এই flow-টা বুঝলেই networking অনেক পরিষ্কার হয়ে যায়।

এই লেখায় আমরা UDP-কে একদম ভিতর থেকে দেখব:

  • UDP কী?
  • UDP header কেমন?
  • Source Port ও Destination Port কী?
  • Length field কীভাবে কাজ করে?
  • UDP checksum কীভাবে error detect করে?
  • UDP কেন connection তৈরি করে না?
  • Packet হারিয়ে গেলে কী হয়?
  • TCP কেন তুলনামূলকভাবে বেশি overhead বহন করে?
  • Video call, live streaming-এর মতো কাজে UDP কেন উপযোগী?
  • TCP, UDP এবং QUIC-এর মধ্যে সম্পর্ক কী?
  • Transport Layer-এর সঙ্গে HTTP, IP এবং Data Link Layer-এর সম্পর্ক কোথায়?

1. প্রথমে বড় ছবিটা বুঝি

Networking-কে যদি একটি layered system হিসেবে দেখি, তাহলে TCP ও UDP কোথায় আছে সেটা আগে পরিষ্কার হওয়া দরকার।

flowchart TB
    A["Application Layer<br/>HTTP / DNS / REST API"] --> B["Transport Layer<br/>TCP / UDP / QUIC"]
    B --> C["Network Layer<br/>IP"]
    C --> D["Data Link Layer<br/>Ethernet / Wi-Fi"]
    D --> E["Physical Layer<br/>Signals / Radio / Cable"]

TCP এবং UDP হলো Transport Layer protocol।

অর্থাৎ:

Application → TCP/UDP → IP → Data Link → Physical

ধরা যাক তুমি একটি application থেকে "Hello World" পাঠালে। Application layer-এর data সরাসরি network cable-এ চলে যায় না। বিভিন্ন layer নিজেদের প্রয়োজনীয় information যোগ করে সেটিকে নিচের layer-এ পাঠায়।

এই কারণেই HTTP বুঝতে হলে TCP/UDP-এর ধারণা কাজে আসে, আবার TCP/UDP বুঝতে IP-এর ভূমিকা বোঝাও গুরুত্বপূর্ণ।


2. UDP কী?

UDP-এর পূর্ণরূপ:

User Datagram Protocol

UDP হলো একটি connectionless transport-layer protocol।

Connectionless কথাটার অর্থ হলো—data পাঠানোর আগে TCP-এর মতো connection establish করার জন্য আলাদা handshake করতে হয় না।

সহজভাবে:

Sender
   |
   |  "Hello"
   |---------------------------->
                              Receiver
Enter fullscreen mode Exit fullscreen mode

Sender data পাঠিয়ে দিল।

Receiver data পেলেও পেল, না পেলেও পেল না—UDP নিজে TCP-এর মতো reliable delivery নিশ্চিত করার জন্য retransmission করে না।

এখানেই UDP-এর সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্য:

UDP delivery-এর simplicity এবং low overhead-কে অগ্রাধিকার দেয়; reliability নিজে থেকে নিশ্চিত করে না।


3. UDP Header দেখতে কেমন?

UDP header খুব ছোট।

এর fixed header size হলো 8 bytes।

Header-এ মাত্র চারটি field থাকে:

  1. Source Port — 16 bits
  2. Destination Port — 16 bits
  3. Length — 16 bits
  4. Checksum — 16 bits

Diagram:

packet-beta
  0-15: "Source Port"
  16-31: "Destination Port"
  32-47: "Length"
  48-63: "Checksum"
  64-127: "Data ..."

অর্থাৎ:

16 bits       16 bits
+-------------+-------------+
| Source Port | Destination |
|             |    Port     |
+-------------+-------------+
|    Length   |   Checksum  |
+-------------+-------------+
|                           |
|           Data            |
|                           |
+---------------------------+
Enter fullscreen mode Exit fullscreen mode

UDP header = 64 bits = 8 bytes

এটি UDP-এর একটি গুরুত্বপূর্ণ advantage, কারণ TCP header-এর তুলনায় UDP header অনেক ছোট।


4. Source Port এবং Destination Port

দুটি port field-এর প্রতিটিই 16-bit।

Source Port

যে application/process থেকে data বের হচ্ছে, তার transport-layer port।

Destination Port

যে application/process-এর কাছে data পৌঁছানোর কথা, তার port।

উদাহরণ:

Client
IP: 192.168.1.10
Port: 53000
      |
      | UDP
      v
Server
IP: 8.8.8.8
Port: 53
Enter fullscreen mode Exit fullscreen mode

এখানে:

Source Port      = 53000
Destination Port = 53
Enter fullscreen mode Exit fullscreen mode

Port number-এর মাধ্যমে operating system বুঝতে পারে incoming data কোন application/process-এর কাছে দেওয়া উচিত।


5. UDP Length Field কী?

UDP header-এ Length field হলো 16-bit।

এখানে একটি গুরুত্বপূর্ণ বিষয়:

UDP Length = UDP Header + UDP Data

UDP header-এর size fixed:

Header = 8 bytes
Enter fullscreen mode Exit fullscreen mode

ধরা যাক:

UDP Datagram = 100 bytes
UDP Header   = 8 bytes
Enter fullscreen mode Exit fullscreen mode

তাহলে:

Data = 100 - 8
     = 92 bytes
Enter fullscreen mode Exit fullscreen mode

Conceptually:

flowchart LR
    A["UDP Datagram<br/>100 bytes"] --> B["UDP Header<br/>8 bytes"]
    A --> C["Payload<br/>92 bytes"]

অর্থাৎ receiver Length field দেখে বুঝতে পারে পুরো UDP datagram-এর কত byte রয়েছে।


6. UDP Checksum কী?

এখানেই UDP-এর একটি গুরুত্বপূর্ণ mechanism আসে।

UDP reliable delivery নিশ্চিত করে না, কিন্তু data transmission-এর সময় error detect করার জন্য checksum ব্যবহার করতে পারে।

সহজভাবে checksum-এর উদ্দেশ্য:

Data transmission-এর সময় কোনো bit পরিবর্তিত বা corrupted হয়েছে কি না তা শনাক্ত করা।

এটি খুব গুরুত্বপূর্ণ distinction:

Checksum ≠ Retransmission

Checksum error detect করতে সাহায্য করে।

কিন্তু TCP-এর মতো UDP নিজে থেকে বলে না:

"তোমার packet নষ্ট হয়েছে, আবার পাঠাও।"


7. Checksum কীভাবে কাজ করে?

ধারণাটি বোঝার জন্য UDP data-কে 16-bit word হিসেবে চিন্তা করা যায়।

উদাহরণ:

Word 1 = 1010101010101010
Word 2 = 0101010101010101
Word 3 = 1111000011110000
...
Enter fullscreen mode Exit fullscreen mode

তারপর sender একাধিক 16-bit word যোগ করে।

যদি addition-এর ফলে অতিরিক্ত carry তৈরি হয়, সেটি আবার নিচের অংশের সঙ্গে যোগ করা হয়।

এটিকে end-around carry হিসেবে ভাবা যায়।

এরপর result-এর one's complement নেওয়া হয়।

One's complement মানে:

0 → 1
1 → 0
Enter fullscreen mode Exit fullscreen mode

উদাহরণ:

Original:
10110010

One's complement:
01001101
Enter fullscreen mode Exit fullscreen mode

এই resulting value checksum field-এ রাখা হয়।


8. Checksum-এর Flow

পুরো process-টা এভাবে ভাবতে পারো:

flowchart LR
    A["UDP Header + Data"] --> B["Split into 16-bit words"]
    B --> C["Add the words"]
    C --> D["Handle carry"]
    D --> E["One's complement"]
    E --> F["Checksum"]
    F --> G["Send UDP Datagram"]

Receiver-এর দিকে আবার validation করা হয়।

flowchart LR
    A["Received UDP Datagram"] --> B["Take all 16-bit words"]
    B --> C["Add including checksum"]
    C --> D["Validate result"]
    D --> E{"Valid?"}
    E -->|Yes| F["Accept data"]
    E -->|No| G["Data is considered corrupted"]

এখানে একটি গুরুত্বপূর্ণ বিষয়:

Checksum data corruption detect করতে পারে; UDP নিজে TCP-style retransmission করে না।


9. Packet corrupt হলে কী হয়?

ধরা যাক sender পাঠাল:

Hello World
Enter fullscreen mode Exit fullscreen mode

কিন্তু transmission-এর সময় কোনো bit পরিবর্তিত হয়ে receiver-এর কাছে data corrupted হলো।

Receiver checksum validation করে বুঝতে পারে যে received data expected checksum-এর সঙ্গে মেলে না।

তখন UDP নিজে TCP-এর মতো retransmission mechanism চালায় না।

অর্থাৎ:

Sender
   |
   | UDP Datagram
   v
Network
   |
   X  Packet corrupted
   |
   v
Receiver
   |
   | Checksum validation
   |
   X  Invalid
Enter fullscreen mode Exit fullscreen mode

এখানে application-এর design অনুযায়ী packet ignore/discard হতে পারে।


10. Packet হারিয়ে গেলে?

এবার আরও গুরুত্বপূর্ণ case।

Sender
   |
   | Packet #1
   |--------------------X
   |
   | Packet #2
   |---------------------------->
   |
   | Packet #3
   |---------------------------->
                              Receiver
Enter fullscreen mode Exit fullscreen mode

Packet #1 network-এর কোথাও হারিয়ে গেল।

UDP sender-কে TCP-এর মতো built-in acknowledgement/retransmission mechanism দিয়ে বলে না:

"Packet #1 আবার পাঠাও।"

ফলে application যদি reliability চায়, সেই reliability mechanism application বা higher-level protocol-কে implement করতে হতে পারে।

এটাই UDP-এর design philosophy-এর একটি বড় অংশ।


11. TCP-এর সঙ্গে পার্থক্য কোথায়?

TCP এবং UDP দুটোই Transport Layer-এর protocol।

কিন্তু তাদের communication model আলাদা।

TCP

TCP সাধারণত:

  • connection establish করে
  • reliable delivery mechanism দেয়
  • sequence number ব্যবহার করে
  • acknowledgement ব্যবহার করে
  • lost data retransmit করতে পারে
  • connection termination-এর mechanism রাখে

একটি simplified TCP flow:

sequenceDiagram
    participant C as Client
    participant S as Server

    C->>S: SYN
    S->>C: SYN + ACK
    C->>S: ACK
    Note over C,S: Connection established

    C->>S: Data
    S->>C: ACK

    C->>S: More Data
    S->>C: ACK

    Note over C,S: Connection termination

অন্যদিকে UDP:

sequenceDiagram
    participant S as Sender
    participant R as Receiver

    S->>R: Datagram 1
    S->>R: Datagram 2
    S->>R: Datagram 3

কোনো TCP-style three-way handshake নেই।


12. TCP কেন বেশি overhead বহন করে?

TCP reliability দিতে গিয়ে অতিরিক্ত mechanism ব্যবহার করে।

Conceptually:

TCP
├── Connection establishment
├── Sequence numbers
├── Acknowledgements
├── Retransmission
├── Flow control
├── Congestion control
└── Connection termination
Enter fullscreen mode Exit fullscreen mode

UDP:

UDP
├── Source Port
├── Destination Port
├── Length
├── Checksum
└── Data
Enter fullscreen mode Exit fullscreen mode

ফলে UDP-এর protocol overhead তুলনামূলকভাবে কম।

এটি UDP-কে এমন application-এর জন্য আকর্ষণীয় করে যেখানে low latency এবং timely delivery খুব গুরুত্বপূর্ণ।


13. তাহলে UDP কি "খারাপ" protocol?

না।

এটি খুব গুরুত্বপূর্ণ ভুল ধারণা।

UDP TCP-এর চেয়ে "খারাপ" নয়।

দুটোর design goal আলাদা।

বিষয় TCP UDP
Connection Connection-oriented Connectionless
Handshake আছে নেই
Built-in reliability আছে নেই
Retransmission আছে নেই
Acknowledgement আছে নেই
Header তুলনামূলক বড় 8 bytes
Ordering নিশ্চিত করার mechanism আছে built-in ordering নেই
Overhead বেশি কম
Use case Reliable data transfer Low-latency / time-sensitive communication

এখানে "কোনটি ভালো" প্রশ্নের বদলে সঠিক প্রশ্ন হলো:

আমার application-এর requirement কী?


14. Video Call-এ UDP কেন useful হতে পারে?

ধরা যাক একটি video stream প্রতি second-এ অনেকগুলো frame পাঠাচ্ছে।

Conceptually:

Frame 1
Frame 2
Frame 3
Frame 4
Frame 5
Frame 6
...
Enter fullscreen mode Exit fullscreen mode

ধরা যাক কয়েকটি packet হারিয়ে গেল:

Frame 1  ✓
Frame 2  ✓
Frame 3  X
Frame 4  ✓
Frame 5  ✓
Frame 6  X
Frame 7  ✓
Enter fullscreen mode Exit fullscreen mode

Live communication-এর ক্ষেত্রে পুরোনো frame-এর জন্য অনেকক্ষণ অপেক্ষা করলে সমস্যা আরও বাড়তে পারে।

কারণ user সাধারণত চায়:

এখনকার video/audio যত দ্রুত সম্ভব আসুক।

একটি পুরোনো packet পরে এসে পৌঁছালেও সেটি অনেক সময় আর useful নয়।

এই ধরনের time-sensitive communication-এ low latency অনেক গুরুত্বপূর্ণ।


15. একটি সহজ বাস্তব উদাহরণ

ধরা যাক তুমি live video call করছ।

এক সেকেন্ডে অনেকগুলো frame তৈরি হচ্ছে।

Sender
  |
  | F1 F2 F3 F4 F5 F6 F7 F8
  |
  v
Network
  |
  |     F3 lost
  |     F7 lost
  v
Receiver
  |
  | F1 F2 F4 F5 F6 F8
  v
Video continues
Enter fullscreen mode Exit fullscreen mode

কিছু data missing হলেও video কিছুটা degraded হতে পারে, কিন্তু পুরো communication বন্ধ হয়ে যায় না।

অন্যদিকে banking transaction-এর ক্ষেত্রে একটি byte বা message হারানোও unacceptable হতে পারে।

সেখানে reliable delivery mechanism বেশি গুরুত্বপূর্ণ।


16. Banking-এর উদাহরণ

ধরা যাক তুমি একটি financial transaction-এর instruction পাঠালে:

Transfer = 10,000 BDT
Account = XXXXX
Enter fullscreen mode Exit fullscreen mode

এখানে data হারিয়ে গেলে বা ভুলভাবে পৌঁছালে গুরুতর সমস্যা হতে পারে।

এ ধরনের transaction-এর ক্ষেত্রে reliable communication এবং application-level correctness অত্যন্ত গুরুত্বপূর্ণ।

তাই "speed বনাম reliability" trade-off বুঝতে use case দেখা জরুরি।


17. UDP-এর সবচেয়ে গুরুত্বপূর্ণ mental model

UDP-কে মনে রাখার সবচেয়ে সহজ উপায়:

"আমি data পাঠাব। পৌঁছাবে কি না, সেটা নিশ্চিত করার দায়িত্ব UDP নিজে নিচ্ছে না।"

অন্যদিকে TCP-এর mental model:

"আমি connection establish করে reliable, ordered data transfer করার জন্য mechanism ব্যবহার করব।"

এই দুইটি sentence মনে রাখতে পারলে TCP বনাম UDP-এর অনেক terminology পরে নিজে থেকেই পরিষ্কার হবে।


18. UDP Datagram-এর পুরো Flow

একটি complete simplified flow:

flowchart TB
    A["Application Data"] --> B["UDP"]
    B --> C["Add UDP Header"]
    C --> D["Calculate Checksum"]
    D --> E["UDP Datagram"]
    E --> F["IP Layer"]
    F --> G["Network"]
    G --> H["Receiver IP Layer"]
    H --> I["UDP"]
    I --> J["Checksum Validation"]
    J --> K{"Valid?"}
    K -->|Yes| L["Deliver Payload to Application"]
    K -->|No| M["Data considered corrupted"]

এখানে খেয়াল করো:

UDP → IP → Network

এবং receiver-এর দিকে:

Network → IP → UDP → Application


19. TCP/UDP-এর সঙ্গে IP-এর সম্পর্ক

এখন networking-এর "dots" connect করা যাক।

flowchart TB
    A["Application<br/>HTTP / DNS / REST"] --> B["Transport<br/>TCP / UDP"]
    B --> C["Network<br/>IP"]
    C --> D["Data Link<br/>Ethernet / Wi-Fi"]
    D --> E["Physical<br/>Bits / Signals"]

Transport Layer

TCP/UDP-এর কাজ মূলত host-এর মধ্যে application-to-application communication-এর transport mechanism দেওয়া।

Network Layer

IP-এর মাধ্যমে packet কোন destination network/host-এর দিকে যাবে, সেই addressing এবং routing architecture-এর অংশ কাজ করে।

Data Link Layer

Local network segment-এ frame delivery-এর জন্য Ethernet/Wi-Fi-এর মতো technologies কাজ করে।

তাই TCP/UDP-কে একা দেখলে networking-এর পুরো picture পাওয়া যায় না।


20. HTTP কোথায় আসে?

এখন ধরো তুমি browser-এ একটি website খুললে।

Conceptually:

Browser
   ↓
HTTP
   ↓
Transport Protocol
   ↓
IP
   ↓
Wi-Fi / Ethernet
   ↓
Physical Network
   ↓
Internet
   ↓
Server
Enter fullscreen mode Exit fullscreen mode

এখানে HTTP হলো application-level protocol।

TCP/UDP হলো transport-level protocol।

IP হলো network-layer protocol।

এই layering-টাই networking-এর বড় mental model।


21. HTTP, TCP, UDP এবং QUIC

এখানে আরেকটি modern concept আসে: QUIC।

QUIC হলো একটি modern transport protocol যা UDP-এর উপর build করা এবং reliability, security, multiplexing ইত্যাদির মতো features protocol stack-এর উপরে নিয়ে আসে।

একটি simplified picture:

flowchart TB
    A["HTTP/3"] --> B["QUIC"]
    B --> C["UDP"]
    C --> D["IP"]
    D --> E["Link Layer"]

এখানে গুরুত্বপূর্ণ বিষয়:

QUIC UDP-এর উপর চলে, কিন্তু UDP-এর মতো bare-bones delivery model-এ থেমে থাকে না।

QUIC নিজস্ব protocol mechanisms ব্যবহার করে reliable transport-এর প্রয়োজনীয় features প্রদান করে।

HTTP/3 QUIC ব্যবহার করে।

এটি দেখায় যে UDP শুধু "simple unreliable protocol" হিসেবে আটকে নেই—তার উপর আরও sophisticated protocols তৈরি করা যায়।


22. একটি বড় Networking Map

সবকিছু একসঙ্গে দেখলে:

flowchart TB
    A["Application Layer"]
    A1["HTTP"]
    A2["DNS"]
    A3["REST APIs"]

    B["Transport Layer"]
    B1["TCP"]
    B2["UDP"]
    B3["QUIC"]

    C["Network Layer"]
    C1["IP"]

    D["Data Link Layer"]
    D1["Ethernet"]
    D2["Wi-Fi"]

    A --> A1
    A --> A2
    A --> A3

    A1 --> B
    A2 --> B
    A3 --> B

    B --> B1
    B --> B2
    B --> B3

    B --> C
    C --> C1

    C --> D
    D --> D1
    D --> D2

এখন networking-এর terms আলাদা আলাদা শব্দ মনে হওয়ার কথা নয়।

তুমি একটা flow দেখতে পারবে।


23. TCP বনাম UDP: একটি Practical Decision Framework

Application design করার সময় এই প্রশ্নগুলো করো:

প্রশ্ন ১: Data loss কি acceptable?

যদি না হয়, reliable transport বা application-level reliability দরকার হতে পারে।

প্রশ্ন ২: Latency কি অত্যন্ত গুরুত্বপূর্ণ?

যদি real-time responsiveness গুরুত্বপূর্ণ হয়, UDP-based architecture বিবেচনা করা হতে পারে।

প্রশ্ন ৩: Data order গুরুত্বপূর্ণ?

যদি প্রতিটি message-এর order অত্যন্ত গুরুত্বপূর্ণ হয়, transport/application design carefully করতে হবে।

প্রশ্ন ৪: Retransmission দরকার?

যদি lost data অবশ্যই আবার পাঠাতে হয়, reliability mechanism প্রয়োজন।

প্রশ্ন ৫: Application কি নিজেই reliability implement করবে?

কিছু modern protocol UDP-এর উপর নিজস্ব reliability mechanism তৈরি করে। QUIC তার একটি গুরুত্বপূর্ণ উদাহরণ।


24. UDP সম্পর্কে ৫টি misconception

Misconception 1: UDP মানেই data কখনো পৌঁছাবে না

ভুল।

UDP delivery guarantee দেয় না। কিন্তু network ঠিক থাকলে UDP datagram অবশ্যই পৌঁছাতে পারে।


Misconception 2: UDP কোনো error checking করে না

ভুল।

UDP checksum error detection-এর mechanism প্রদান করে।


Misconception 3: UDP সবসময় faster

এটাকে absolute statement হিসেবে বলা ঠিক নয়।

UDP-এর protocol overhead কম এবং connection establishment/retransmission-এর মতো TCP mechanisms নেই। কিন্তু real-world performance network condition, congestion, implementation এবং application architecture-এর উপর নির্ভর করে।


Misconception 4: TCP এবং UDP-এর মধ্যে একটি সবসময় superior

ভুল।

তাদের design goal আলাদা।


Misconception 5: UDP ব্যবহার করলে application reliability দিতে পারবে না

ভুল।

Application বা higher-level protocol UDP-এর উপর reliability mechanism তৈরি করতে পারে।

QUIC এর একটি ভালো উদাহরণ।


25. পরীক্ষার জন্য UDP Header মনে রাখার Trick

শুধু চারটি শব্দ:

Source
Destination
Length
Checksum
Enter fullscreen mode Exit fullscreen mode

অথবা:

S-D-L-C

আর size:

16 + 16 + 16 + 16
= 64 bits
= 8 bytes
Enter fullscreen mode Exit fullscreen mode

অর্থাৎ UDP fixed header:

8 bytes


26. TCP বনাম UDP এক নজরে

                TCP                     UDP
                │                       │
        Connection-oriented      Connectionless
                │                       │
          Handshake আছে           Handshake নেই
                │                       │
         ACK mechanism আছে       Built-in ACK নেই
                │                       │
         Retransmission আছে      Built-in retransmission নেই
                │                       │
         Header বড়                Header = 8 bytes
                │                       │
        Reliability বেশি          Low overhead
                │                       │
    Reliable data transfer       Time-sensitive use cases
Enter fullscreen mode Exit fullscreen mode

এটাকে মুখস্থ করার চেয়ে কেন এমন design করা হয়েছে সেটা বোঝা বেশি গুরুত্বপূর্ণ।


27. শেষ কথা: Networking-এর আসল Skill হলো "Flow" বোঝা

Networking শেখার সময় শুধু এই প্রশ্ন করো না:

TCP কী?

বরং প্রশ্ন করো:

Application-এর data কোথা থেকে বের হলো, কোন layer-এ গেল, কোন information যোগ হলো, network-এর মধ্য দিয়ে কীভাবে গেল, এবং receiver-এর কাছে গিয়ে কীভাবে আবার application-এর কাছে পৌঁছাল?

একবার এই flow বুঝে গেলে:

HTTP
 ↓
TCP / UDP / QUIC
 ↓
IP
 ↓
Ethernet / Wi-Fi
 ↓
Physical Network
Enter fullscreen mode Exit fullscreen mode

এই পুরো architecture অনেক বেশি intuitive হয়ে যায়।

UDP-এর ক্ষেত্রে সবচেয়ে গুরুত্বপূর্ণ mental model হলো:

কম overhead, connectionless communication, checksum-based error detection, কিন্তু TCP-এর মতো built-in reliability/retransmission নয়।

আর এখান থেকেই পরের concepts—HTTP, DNS, TLS, HTTP/3, QUIC, REST API—আরও সহজে connect করা যায়।


Quick Revision

UDP Header

+-------------------+-------------------+
|   Source Port     | Destination Port  |
+-------------------+-------------------+
|      Length       |     Checksum      |
+-------------------+-------------------+
|                   Data                  |
+-----------------------------------------+
Enter fullscreen mode Exit fullscreen mode

UDP =

  • User Datagram Protocol
  • Transport Layer
  • Connectionless
  • 8-byte fixed header
  • Source Port
  • Destination Port
  • Length
  • Checksum
  • No TCP-style three-way handshake
  • No built-in TCP-style retransmission
  • Useful when low overhead and timely delivery matter

Networking Flow

Application
    ↓
TCP / UDP / QUIC
    ↓
IP
    ↓
Ethernet / Wi-Fi
    ↓
Physical Network
Enter fullscreen mode Exit fullscreen mode

Conclusion

TCP এবং UDP-কে শুধু exam-এর definition হিসেবে পড়লে কয়েকদিন পর terminology ভুলে যাওয়া স্বাভাবিক।

কিন্তু যদি পুরো communication flow বুঝে ফেলো, তাহলে নতুন protocol শেখার সময়ও তুমি নিজেই বুঝতে পারবে:

এটা কোন layer-এর?

এটা কী problem solve করছে?

কেন TCP নয়?

কেন UDP?

কেন QUIC?

HTTP কোথায় বসছে?

এই প্রশ্নগুলোর উত্তরই আসলে networking-এর foundation।

Protocol মুখস্থ করার চেয়ে protocol-এর মধ্যে relationship বোঝা বেশি গুরুত্বপূর্ণ।

Top comments (0)