3.4.1 Gói tin UDP-User Datagram Protocol
UDP hoạt động ở Tầng chuyển tải (Transport layer) của mô hình mạng TCP/IP. Nó cho phép chương trình ứng dụng truy cập trực tiếp đến gói tin của dịch vụ chuyển giao giống như dịch vụ mà mà giao thức IP cung cấp. Nó cho phép ứng dụng trao đổi thông tin qua mạng với ít thông tin điều khiển nhất.
Cấu trúc gói tin UDP:
Hình 3.7: Cấu trúc gói tin UDP
Mỗi gói thông tin UDP gọi là một phần trong Datagram, được phân làm hai phần Header và Data. Trong đó Header chứa thông tin về địa chỉ cổng nguồn, địa chỉ cổng đích, độ dài của gói và checksum.
• Source Port: số hiệu cổng trạm nguồn gửi tin
• Destination Port: số hiệu cổng trạm cuối nhận tin
• Length: tổng độ dài, tính theo byte của gói tin (bao gồm cả phần tiêu đề và phần dữ liệu)
• Checksum: đây là trường duy nhất trong gói tin UDP cung cấp cho mục đích kiểm tra lỗi và sửa lỗi. Nếu giá trị tính checksum được tính toán bởi trạm đích không khớp với giá trị checksum trong gói tin thì gói tin sẽ bị loại bỏ.
Thông thường trạm đích thường sử dụng một bộ nhớ đệm để lưu giữ hàng đợi của các gói tin đến cần xử lí. Một Server khi thông tin với trạm khách thường không biết trước có bao nhiêu gói tin sẽ đến trong một khảng thời gian, nếu như số lượng gói tin đến quá khả năng của hàng đợi thì các gói tin đến sau sẽ bị loại bỏ mà không được xử lí.
3.4.2 Gói tin TCP ( Transmission Control Protocol)
Hình 3.8: Gói tin TCP chứa trong một Ethenet frame
• Source Port (16bit): cổng nguồn trạm gửi
• Destination Port (16bit): cổng đíc trạm nhận
• Sequence Number (32bit): số thứ tự của gói tin
• Acknownledment Number (32bit): Số hiệu của Segment tiếp theo mà trạm nguồn đang chờ để nhận
• Offset (32bit): số lượng các từ 32 bit trong TCP Header
• Reserved: để dành, không sử dụng
• Flag: cờ dẫn
• Window (16bit): cấp phát Credit để kiểm soát luồng dữ liệu. Đây chính là số lượng các byte dữ liệu, bắt đầu từ byte được chỉ ra trong vùng ACK Number mà trạm nguồn sẵn sàng để nhận.
• Checksum (16bit): Mã kiểm tra lỗi sử dụng CRC (Circle Reduntant Check) cho toàn bộ Segment
• Urgent Pointer (16bit): Con trỏ trỏ tới số hiệu của byte đi theo dữ liệu khẩn, cho phép bên nhận biết được độ dài của dữ liệu khẩn, vùng này chỉ có hiệu lực khi bit URP được thiết lập.
• Option (độ dài thay đổi): khai báo các lựa chọn của TCP, trong đó có độ dài tối đa của vùng TCP data trong một Segment.
• Padding: phần chèn thêm vào Header để đảm bảo Header luôn kết thúc ở một mốc 32bit, nó bao gồm toàn số 0.
• Data: chứa dữ liệu ở tầng trên gửi xuống, có độ dài tối đa ngầm định 536 byte, giá trị này có thể điều chỉnh bằng khai báo trong phần
OPTION.
Một chương trình ứng dụng trong một host truy nhập vào các dịch vụ do TCP cung cấp thông qua một cổng. Một cổng kết hợp với một địa chỉ IP tạo thành một Socket duy nhất trong một liên mạng. Dịch vụ TCP được cung cấp nhờ một liên kết giữa một cặp Socket. Một Socket có thể tham gia vào nhiều liên kết với các socket ở xa khác nhau. Trước khi truyền dữ liệu, giữa hai trạm cần phải thiết lập một liên kết TCP giữa chúng và khi không còn nhu cầu truyền dữ liệu thì liên kết được giải phóng.
3.4.3 Gói tin IP ( Internet Protocol)
Cấu trúc gói tin IP:
Hình 3.9: Gói thông tin IP trong một Ethernet frame
• Time to live: dài 8bit, dùng để xác định xem datagram này có bị truyền lặp lại hay không (thông thường nó được gán là 1, nếu bị lặp lại nó sẽ bị gán lại là 0)
• Protocol: dài 8 bit, trường này cho biết lớp giao thức cao hơn nào sẽ được sử dụng (UDP hay là TCP)
• CRC: trường này dùng để kiểm tra sự toàn vẹn của Header
• IP Option: chứa các thông tin như bảo mật, dò đường, xác nhận thời gian
• Padding: trường điền thêm các số 0 để đảm bảo Header kết thúc tại một địa chỉ bội của 32.
• Source IP Address, Destination IP Address: chứa địa chỉ của Station gửi và địa chỉ của Station đích.
gói tin khác. Tầng IP làm công việc dẫn đường các gói tin qua mạng Internet từ máy tính này tới máy tính khác, qua các mạng khác nhau cho đến khi nó đến được trạm đích hoặc bị lỗi. Việc truyền gói tin qua các mạng khác nhau được thực hiện thông qua một thiết bị kết nối giữa hai mạng gọi là gateway. Khi một thông tin truyền qua các mạng khác nhau, nó có thể bị chia ra thành các gói nhỏ hơn. Thông tin truyền có thể quá lớn để có thẻ truyền trên một gói tin trên một mạng khác. Vấn đề này chỉ gặp khi gateway được nối giữa các mạng vật lí khác nhau. Mỗi kiểu mạng có một độ dài tối đa gói tin có thể truyền (Maximum Transmission Unit-MTU). Nếu thông tin nhận được từ mạng này có MTU dài hơn MTU của mạng kia, nó cần phải được chia nhỏ ra thành nhiều mảnh để truyền.
3.5 Địa chỉ IP
Địa chỉ IP dùng để xác định duy nhất mỗi trạm làm việc trên mạng TCP/IP. Do đó việc đánh địa chỉ cần đảm bảo không trùng lặp ngay cả khi có một số lượng lớn các trạm kết nối vào mạng. Địa chỉ trên TCP/IP được phân thành 3 loại:
Địa chỉ vật lí (Địa chỉ MAC):
Địa chỉ này có độ dài 48bit, nó được xác định bởi các thiết bị giao diện mạng NIC. Mỗi NIC khi sản xuất đã có một địa chỉ vật lí và khi nó được sử dụng để kết nối các trạm vào mạng thì các trạm sẽ mang địa chỉ vật lí của NIC đó.
Tên Internet (Internet Address):
Mỗi trạm khi kết nối vào mạng đều được cung cấp một tên duy nhất. Đây là địa chỉ 32bit với Version 4 và 128bit với Version 6 và thường được biễu diễn bởi các nhóm 8 bit
Tên trạm (Host name):
Việc biễu diễn các địa chỉ Internet dù sao vẫn gây cho người sử dụng khó nhớ, thay vì mỗi trạm có một địa chỉ Internet thì mỗi trạm sẽ được xác định bằng các tên, được biễu diễn bằng các chữ cái và được phân cấp một cách dễ nhớ. Trên thực tế, việc sử dụng tên trạm là khá phổ biến. Bộ giao thức giúp phân giải từ địa chỉ IP sang địa chỉ vật lí và ngược lại là ARP/RARP (Address Resolution Protocol/
Reversed Address Resolution Protocol) và dịch vụ DNS (Domain Name Services) được sử dụng để ánh xạ từ địa chỉ IP sang tên Hostname và ngược lại.
Phân lớp địa chỉ IP
Mạng Internet dùng hệ thống địa chỉ IP 32bit để định vị các máy tính liên kết với nó. Có hai cách đánh địa chỉ, phụ thuộc vào cách liên kết của từng máy:
Nếu các máy tính liên kết trực tiếp với mạng Internet thì trung tâm thông tin Internet (Network Information Center-NIC) sẽ cấp cho máy đó một địa chỉ IP.
Nếu các máy tính không kết nối trực tiếp với mạng Internet thông qua một mạng cục bộ thì người quản trị mạng sẽ cấp cho các máy tính đó một địa chỉ IP. Hệ thống địa chỉ này được thiết kế mềm dẻo qua một sự phân lớp. Có 5 lớp địa chỉ IP là: A, B, C, D ,E. Sự khác nhau cơ bản giữa các lớp địa chỉ này là ở khả năng tổ chức các cấu trúc con của nó.
Hình 3.10: Cấu trúc phân lớp địa chỉ IP
Địa chỉ lớp A:
Lớp A sử dụng byte đầu tiên của 4 byte để đánh địa chỉ mạng. Như hình trên, nó được nhận ra bởi bit đầu tiên trong byte đầu tiên của dịa chỉ, có giá trị là 0. Ba byte còn lại được sử dủng để đánh địa chỉ máy trong mạng. Có 27 - 2 = 126 địa chỉ lớp A với số máy tính trong mạng là 224 –2 = 16.777.214 máy cho mỗi địa chỉ lớp A. Nguyên nhân chỉ có 126 network trong khi dùng 8 bit vì bit đầu tiên mang giá trị 0 dùng để định nghĩa lớp A. Do vậy còn 7 bit đánh từ 0-127, tuy nhiên người ta không sử dụng một địa chỉ chứa toàn các số 1 hoặc 0 nên chỉ còn lại 126 mạng lớp A được sử dụng. Địa chỉ lớp A có dạng Network.Host.Host.Host
Một địa chỉ lớp B được nhận ra bởi 2 bit đầu tiên của byte thứ nhất mang giá trị 10. Lớp B sử dủng 2 byte đầu tiên của 4 byte để đánh địa chỉ mạng và 2 byte cuối đánh địa chỉ máy trong mạng. Có 214 – 2 =16.384 địa chỉ mạng lớp B với 216 – 2 = 65.534 máy cho địa chỉ lớp B. Byte đầu tiên có giá trị nằm trong khoảng từ 128 đến 191. Địa chỉ lớp B có dạng: Network.Network.Host.Host.
Địa chỉ lớp C:
Một địa chỉ lớp C được nhận ra với 3 bit đầu mang giá trị 110. Mạng lớp C sử dủng 3 byte đầu tiên để đánh địa chỉ mạng và 1 byte cuối cùng đánh địa chỉ máy trong mạng. Có 221 – 2 = 2.097.150 địa chỉ lớp C, mỗi địa chỉ lớp C có 28 – 2 = 254 máy. Byte đầu tiên của địa chỉ lớp C có giá trị trong khoảng 192 tới 223.
Địa chỉ lớp C có dạng Network.network.network.Host.
Địa chỉ lớp D dùng với mục đích quảng bá (Broadcast, Multicast).
CHƯƠNG IV: TỔNG QUAN VỀ GIAO THỨC SIP
4.1 Giới thiệu
SIP - Session Initiation Protocol (giao thức khởi tạo phiên) ,hiện là giao thức được sử dụng phổ biến trong VoIP, được dùng để thiết lập, quản lý và kết thúc phiên làm việc đa phương tiện. Các đặc tính cơ bản:
4.2 Thiết lập, thay đổi và kết thúc phiên làm việc đa phương tiện
•Nó có thể mời thành viên mới vào một phiên hiện hữu hoặc tạo ra một phiên hoàn toàn mới.
•SIP hoàn toàn độc lập với các chủng loại của phiên đa phương tiện được sử lý và phương pháp xử dụng để mô tả phiên làm việc. SIP hữu hiệu cho Videoconference, audio calls, gaming sessions. Các phiên làm việc bao gồm RTP xử lý audio hay SDP (Session Description Protocol ) thường được khai báo để xử lý video. Tuy nhiên, một số phiên có thể được khai báo với những giao thức được mô tả khác.
•Ví dụ, Bob muốn chơi cờ với Laura, anh ta sử dụng một phiên “Chess” riêng thay vì sử dụng SDP.
4.3 Tính cơ động cho người dùng
•URLs:
- SIP không thể phân phối một phiên miêu tả đến một người nếu người đó chưa ở một nơi cố định. Thông thường, một User có thể ở vài vị trí, chẳng hạn như một sinh viên trong phòng máy của trường Đại họccó thể sử dụng nhiều máy khác nhau trong cùng một ngày. Vì thế, người này có thể ở những địa chỉ IP (Internet Protocol) khác nhau tùy vào từng máy.
- Người dùng trong môi trường SIP được nhận diện bởi SIP URLs (Uniform Resource Locators). SIP có định dạng tương tự như một địa chỉ Email bao gồm username và tên miền. Ví dụ : SIP:Bob@131.160.1.112.
•Registration:
- Khi một User đăng ký đến một server, nó cũng đăng ký vị trí hiện tại đến server để có thể phát hiện. Ví dụ, Bob đang làm việc trên laptop tại địa chỉ 131.160.1.112, anh ta đăng ký với tên là Bob kèm theo địa chỉ hiện tại tới server của công ty là company.com.
Hình 4.1: Thuê bao đăng ký vị trí hiện tại tới SIP server
- Bây giờ Laura muốn liên lạc với Bob với địa chỉ được cung cấp là
Bob.Johnson@company.com. Laura sẽ liên lạc tới server và tìm Bob, ở đây SIP cung cấp hai chế độ hoạt động:
Proxy mode: server sẽ liên hệ với Bob tại 131.160.1.112 và chuyển mô tả phiên của Laura đến Bob.
Redirec mode: server sẽ báo để Laura “try” đến SIP:
Hình 4.2: Proxy Sip Server
SIP giúp kết nối giữa hai thiết bị cuối, tuy nhiên nó không tham gia vận chuyển media(…thoại, video). Khi cuộc gọi được thiết lập, giao thức vận chuyển thời gian thực( RTP – Real-time Transport Protocol) sẽ được sử dụng trong việc vận chuyển luồng media giữa các điểm đầu cuối. Hình 1.1 mô tả quan hệ giữa SIP và RTP.
Hình 4.3: Hình thang SIP
Khi phone A muốn gọi tới phone B , phone A sẽ đăng kí tới server và server sẽ tìm tới phone B (SIP). Khi cuộc gọi được thiết lập, hai máy sẽ kiên lạc trực tếp với nhau. Điều này giúp tiết kiệm tài nguyên cho máy chủ.
Ngoài SIP, còn nhiều chuẩn VoIP được sử dụng như :H.323, MGCP, IAX…
Phone B Phone A
4.4 Các thành phần SIP
Các phiên giao dịch SIP sử dụng hai thành phần chính: SIP User Agent và SIP Server. Những thành phần này cùng với nhau tạo nên các hệ thống có thể phân phát những thông điệp đã bao hàm phần nội dung được định nghĩa bởi giao thức SDP và các đặc trưng của nó để hoàn thành một phiên SIP.
Hình 4.4: Các thành phần SIP
4.4.1 User Agents:
User Agents (UA) là thành phần của SIP tương tác với người dùng. Nó có chức năng khởi tạo một yêu cầu SIP.
Sau đây là ví dụ về chức năng của SIP User Agent:
•Bob muốn tạo cuộc gọi qua Internet bằng máy tính của mình. Bob sẽ dùng chương trình có chứa User Agents. User tương tác với UA thông qua giao diện người dùng, thường là tổ hợp các phím chọn. Khi Bob chọn phím “Call Laura”, UA kích hoạt thông điệp SIP tương ứng để thiết lập cuộc gọi.
•Laura cũng có một SIP UA trên máy của mình. Khi UA nhận lời mời từ Bob, nó thông báo cho Laura biết với hai tùy chọn: Accept và Reject call. Tất cả tương tác giữa users và SIP được giàn xếp bởi UA.
Hình 4.5: Các thiết bị User Agents
Tuy nhiên, một số hệ thống dùng SIP không kết nối trực tiếp tới users. Chẳng hạn như Bob có thể chuyển tất cả lời mời phiên từ 0h-7h sáng tới SIP answering- machine của mình. Thiết bị này sẽ tự động thiết lập phiên làm việc để thực hiện việc ghi lại tin nhắn. Nó cũng gồm một UA, dù không cần tương tác trực tiếp với user nhưng vẫn có thể đáp lại hoặc chuyển những lời mời phiên thay cho Bob.
SIP chuyển một mô tả phiên tới SIP UA. Nếu phiên được mô tả là voice, UA sẽ phân phối tiếp nó đến Media Tool là voice tool để xử lý các vấn đề audio. Tương tự với các loại phiên khác cũng sẽ được UA chuyển đến media tool thích hợp.
SIP Uas có thể thực thi trên nhiều hệ thống khác nhau. Nó có thể chạy như là một trong các ứng dụng trên máy tính, hoặc trên thiết bị chuyên dụng như SIP phone. Loại thiết bị không ảnh hưởng đến SIP, Media Tool có thể đa dạnh tùy loại phiên nhưng đáp ứng SIP thì không thay đổi.
4.4.2 Redirect Server
Là server nhận yêu cầu SIP, sau đó tiến hành dịch địa chỉ nhận từ người dùng sang địa chỉ mới và gởi trả về cho ứng dụng khách (client). Hay nói cách khác, nó cũng cấp địa chỉ mà user có thể đang hiện diện. Sau đây là ví dụ:
Hình 4.6: Hoạt động của Redirect Server
Laura muốn liên lạc với Bob, Laura chọn biểu tượng “Call Bob” trên màn hình máy tính của mình. UA của Laura đầu tiên sẽ liên lạc với địa chỉ public của Bob là Bob.Johnson@company.com, nhưng tên miền company.com có một SIP redirect server nắm bắt các cuộc gọi đến. UA của Laura sẽ liên hệ tới redirect server này. Và nó biết rằng Bob đang ở vị trí SIP:Bob@131.160.1.112 khi anh ta đang làm việc tại
SIP:Bob@university.com. Do đó, redirect server sẽ giới thiệu UA của Laura try tới SIP:Bob131.160.1.112 và SIP:Bob@university.com thay vì tới company.com.
Group Addresses: Redirect server cũng được dùng cho group address. Ví dụ như public address của phòng hỗ trợ khách hàng trong công ty là
support@company.com , tại đây Bob làm việc từ 8AM-4PM, Peter từ 4PM-0AM, Mary từ 0AM-8AM, Redirect server ở company.com có thể trả về những địa chỉ khác nhau tùy vào những thời điểm khác nhau.
4.4.3 Proxy Server
Là server trung gian dùng để tạo yêu cầu SIP. Các yêu cầu này có thể được