SDP: โพรโทคอลคำอธิบายเซสชัน
เรียนรู้วิธีที่ SDP อธิบายรูปแบบสื่อ ตัวเข้ารหัสและถอดรหัส และข้อมูลเครือข่ายที่แลกเปลี่ยนระหว่างเพียร์เพื่อเจรจาการเชื่อมต่อ
SDP: โพรโทคอลคำอธิบายเซสชัน เป็นบทเรียน Real-Time Streaming Systems (WebRTC + Live Data) ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Real-Time Streaming Systems (WebRTC + Live Data) และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Real-Time Streaming Systems (WebRTC + Live Data) มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
What is SDP?
SDP stands for Session Description Protocol. It's a text-based format used in WebRTC to describe the capabilities and parameters of a media session.
Think of it as a blueprint for what kind of audio, video, and data a peer wants to send or receive, and how it can be reached.
SDP's Role in WebRTC
Before two WebRTC peers can send data directly, they need to agree on many things:
- What media types (audio, video, data) they support.
- Which codecs to use (e.g., Opus for audio, VP8 for video).
- Their network addresses and connection methods.
SDP is the standard way to exchange this crucial information.
SDP in Offer/Answer
WebRTC uses an "Offer/Answer" model for negotiation. One peer creates an SDP Offer, describing its capabilities. The other peer receives it and creates an SDP Answer, indicating its own capabilities and agreement.
This exchange happens via a signaling server, which we discussed in the previous lesson.
SDP Message Structure
An SDP message is a collection of lines, each starting with a single lowercase letter followed by an equals sign (=). These lines are grouped into a session description and one or more media descriptions.
Common lines include: v=, o=, s=, t=, c=, m=, and a=.
SDP: Version & Origin
Every SDP message begins with a version line and an origin line:
v=0: Specifies the SDP protocol version. Always 0 for WebRTC.o=: Describes the session's originator and identifier.IN IP4
The <sess-id> and <sess-version> are unique numbers, and <address> is typically 127.0.0.1 for local generation.
SDP: Session Name & Time
Next, we find the session name and time description:
s=-: The session name. Often just a hyphen for WebRTC.t=0 0: The session's active time.0 0means permanent/always active for WebRTC.
These lines provide basic context for the overall session.
SDP: Connection Data
The c= line provides connection data, specifically the IP address for the session. In WebRTC, this is often set to 0.0.0.0 or 127.0.0.1 as the actual peer-to-peer connection addresses are negotiated later via ICE candidates.
Example: c=IN IP4 0.0.0.0
SDP: Media Descriptions (`m=`)
The m= line is critical! It describes a specific media stream (audio, video, or data channel). An SDP can have multiple m= lines.
Format: m=
<media>:audio,video, orapplication(for data channels).<port>: The port number (often 9 for WebRTC, actual port from ICE).<protocol>: E.g.,UDP/TLS/RTP/SAVPF.<fmt list>: A list of supported payload types/codecs.
SDP: Attributes (`a=`)
a= lines provide additional attributes for the session or a specific media stream. They are highly flexible and carry a lot of WebRTC-specific information.
a=rtpmap:: Maps payload types to codecs./ a=fingerprint:...: TLS certificate fingerprint.a=sendrecv,a=sendonly,a=recvonly: Directionality of media.a=ice-ufrag,a=ice-pwd: Used for ICE connectivity checks.
See a Simplified SDP
Here's a simplified example of what an SDP offer might look like. Notice the different lines and their roles in describing the session and media capabilities.
Try running it to see the raw SDP text!
function main() {
const sdpExample = `v=0
o=- 3749449080 3749449080 IN IP4 127.0.0.1
s=-
t=0 0
c=IN IP4 0.0.0.0
m=audio 9 UDP/TLS/RTP/SAVPF 111
a=rtpmap:111 opus/48000/2
a=mid:audio
a=sendrecv
a=ice-ufrag:abcdefg
a=ice-pwd:hijklmn
a=fingerprint:sha-256 A1:B2:C3:D4:E5:F6:A7:B8:C9:D0:E1:F2:A3:B4:C5:D6:E7:F8:A9:B0:C1:D2:E3:F4:A5:B6:C7:D8
`;
console.log("Simplified SDP Offer:");
console.log(sdpExample);
}
main();Quick Check on SDP
Which SDP line primarily describes the type of media (audio, video, or data), its associated port, transport protocol, and supported formats?
Recap: SDP Essentials
Great job! You've learned about SDP, the Session Description Protocol, which is fundamental to WebRTC.
- SDP is a text format for describing media and network capabilities.
- It's used in the Offer/Answer model to negotiate connections.
- Key lines include
v=,o=,s=,t=,c=,m=, anda=. - The
m=line describes media, anda=lines provide rich attributes.
Next, we'll dive into ICE candidates, which help peers find the best network path!
เรียนรู้ Real-Time Streaming Systems (WebRTC + Live Data) ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 12
- บทเรียน
- 48
คำถามที่พบบ่อย
บทเรียน “SDP: โพรโทคอลคำอธิบายเซสชัน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “SDP: โพรโทคอลคำอธิบายเซสชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Real-Time Streaming Systems (WebRTC + Live Data) ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Real-Time Streaming Systems (WebRTC + Live Data) มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “SDP: โพรโทคอลคำอธิบายเซสชัน”
เรียนรู้วิธีที่ SDP อธิบายรูปแบบสื่อ ตัวเข้ารหัสและถอดรหัส และข้อมูลเครือข่ายที่แลกเปลี่ยนระหว่างเพียร์เพื่อเจรจาการเชื่อมต่อ คุณปฏิบัติ Real-Time Streaming Systems (WebRTC + Live Data) ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Real-Time Streaming Systems (WebRTC + Live Data) หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Real-Time Streaming Systems (WebRTC + Live Data) บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “SDP: โพรโทคอลคำอธิบายเซสชัน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Real-Time Streaming Systems (WebRTC + Live Data) นี้ได้ไหม
ได้ บทเรียน Real-Time Streaming Systems (WebRTC + Live Data) ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทบาทของเซิร์ฟเวอร์ส่งสัญญาณ
- SDP: โพรโทคอลคำอธิบายเซสชัน
- ตัวเลือก ICE และการเชื่อมต่อ
- การเจรจาใหม่และสถานะการเชื่อมต่อ