Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

chapter 4

5. Giao thức TCP

5.1. Giới thiệu

Đặc trưng công nghệ: TCP là một giao thức hướng nối (connection-eoriented

tin cậy (reliable):

- Vận chuyển end-to-end, tin cậy, đúng thứ tự, thông qua các "phương tiện":

• Dùng cơ chế báo nhận (ACK)

• Dùng số thứ tự các gói tin (Sequence number)

• Dùng phương pháp kiểm soát lỗi mã dư vòng (CRC)

- Điều khiển lưu lượng và điều khiển tắc nghẽn

• Sử dụng cơ chế cửa dổ động : Độ lớn của cửa sổ bằng số lượng các gói dữ liệu được gửi liên tục mà không cần chờ thông báo trả lời về kết quả nhận từng gói dữ liệu đó. Độ lớn cửa sổ quyết định hiệu suất trao đổi dữ liệu trong mạng. Nếu chọn độ lớn của sổ cao thì có thể gửi được nhiều dữ liệu trong cùng một đơn vị thời gian. Nếu truyền bị lỗi, dữ liệu phải gửi lại lớn thì hiệu quả sử dụng đường truyền thấp. Giao thức TCP cho phép thay đổi độ lớn của sổ một cách động, phụ thuộc vào độ lớn bộ đệm thu của thực thể TCP nhận.

• Cơ chế phát lại thích nghi: Để đảm bảo kiểm tra và khắc phục lỗi trong việc trao đổi dữ liệu qua liên mạng, TCP phải có cơ chế đồng hồ kiểm tra Time Out và cơ chế phát lại mềm dẻo, phụ thuộc vào thời gian trễ thực của môi trường truyền dẫn cụ thể.

• Cơ chế điều khiển tắc nghẽn: Hiện tương tắc nghẽn dữ liệu thể hiện ở việc gia tăng thời gian trễ của dữ liệu khi chuyển qua mạng. Để hạn chế khả năng dẫn đến tắc nghẽn dữ liệu trong mạng, điều khiển lưu lượng dựa trên việc thay đổi độ lớn của sổ phát.

5.2. Cấu trúc gói tin TCP

Gồm 2 phần:

• Tiêu đề giả (Pseudo Header TCP), cần thiết để xây dựng IP packet. Bao gồm:

- IP Source - Địa chỉ nguồn (32 bit)

- IP Destination - Địa chỉ đích (32 bit)

- Protocol = 0x06 (thuộc giao thức TCP)

- Length: độ dài của TCP segment.

• Gói số liệu TCP thực (TCP Segment)

Cấu trúc TCP segment:

- Source/Destination port number (16 bit): 2 điểm cuối của kết nối TCP.

- Sequence number : Trường này có 2 nhiệm vụ. Nếu cờ SYN bật thì nó là số thứ tự gói ban đầu và byte đầu tiên được gửi có số thứ tự này cộng thêm 1. Nếu không có cờ SYN thì đây là số thứ tự của byte đầu tiên.

- Acknowledgement number : Nếu cớ ACK bật thì giá trị của trường chính là số thứ tự gói tin tiếp theo mà bên nhận cần.

- Data offset Trường có độ dài 4 bít qui định độ dài của phần header (tính theo đơn vị từ 32 bít). Phần header có độ dài tối thiểu là 5 từ (160 bit) và tối đa là 15 từ (480 bít).

- Flags (hay Control bits) Bao gồm 6 cờ:

• URG Cờ cho trường Urgent pointer

• ACK Cờ cho trường Acknowledgement

• PSH Hàm Push

• RST Thiết lập lại đường truyền

• SYN Đồng bộ lại số thứ tự

• FIN Không gửi thêm số liệu

- Window Số byte có thể nhận bắt đầu từ giá trị của trường báo nhận (ACK)

- Checksum 16 bít kiểm tra cho cả phần header và dữ liệu

- Data: số liệu của ứng dụng TCP

5.3. Ngyên tắc hoạt động

5.3.1. Thiết lập và hủy kết nối

 Thiết lập kết nối : Bắt tay 3 bước (Three-way Handshake):

• A yêu cầu kết nối, gửi CONNECTION REQUEST

TPDU:

- SYN=1, Seq = x (ISN)

- Source port number, Destination port number

• B nhận được, gửi lại ACK TPDU

ACK (x+1), SYN=1, Seq = y (ISN)

• A biên nhận ACK TPDU của B

ACK (y+1), Seq = x

 Kết thúc kết nối

• Đơn giản hơn việc thiết lập kết nối

• Có hai kiểu kết thúc kết nối:

- Asymmetric release: giống trong hệ thống điện

thoại.

- Symmetric release: xử lý kết nối như là 2 kết nối 1 hướng riêng biệt, mỗi kết nối này có thể được giải phóng riêng biệt.

5.3.2. Kiểm soát lỗi

• Dữ liệu và ACK có thể bị mất  bên gửi biết và gửi lại ?

• Giải pháp : timeout ít nhất là 1 RRT (Round Trip Time)

5.3.3. Kiểm soát luồng

 Cơ chế pipeline

- Điều khiển lượng dữ liệu được gửi đi

o Bảo đảm rằng hiệu quả là tốt

o Không làm quá tải các bên

- Các bên sẽ có cửa sổ kiểm soát

o Rwnd: Cửa sổ nhận

o CWnd: Cửa sổ kiểm soát tắc nghẽn

Lượng dữ liệu gửi đi phải nhỏ hơn min(Rwnd, Cwnd)

• Tính Rwnd = RcvBuffer-[LastByteRcvd - LastByteRead]

 Bên nhận sẽ báo cho bên gửi biết Rwnd trong các đoạn tin

 Bên gửi đặt kích thước cửa sổ gửi theo Rwnd

5.3.4. Kiểm soát tắc nghẽn

 Khi nào tắc nghẽn xảy ra ?

• Quá nhiều cặp gửi-nhận trên mạng

• Truyền quá nhiều làm cho mạng quá tải

 Hậu quả của việc nghẽn mạng

• Mất gói tin

• Thông lượng giảm, độ trễ tăng

• Tình trạng của mạng sẽ trở nên tồi tệ hơn.

 Kiểm soát tắc nghẽn với cơ chế cửa sổ trượt

• Bước 1: Ở thời điểm thiết lập kết nối, CWND được gán về giá trị thấp, thường là bằng kích thước tối đa của một phân đoạn (MSS).

• Bước 2: Nếu không có segment nào bị mất, CWND sẽ tăng lên dần, dùng cơ chế bắt đầu chậm (Slow Start). Khi đó sẽ tăng giá trị CWND theo cấp số nhân.

• Bước 3: Đối với mỗi segment bị mất, CWND sẽ giảm đi một nửa.

• Bước 4: Nếu segment bị mất đã được truyền lại, CWND sẽ tăng lại một lần nữa, bắt đầu bằng với cơ chế Slow Start.

• Bước 5: Nếu mất một số segment, trong khi CWND tăng cho đến khi nào đến được giá trị một nửa của giá trị CWND ban đầu. Sau đó CWND sẽ tăng với tốc độ chậm lại dùng một thuật toán tránh nghẽn. Thuật toán này tăng giá trị CWND ở tốc độ tuyến tính.

Tổng quát hơn, thuật toán bắt đầu với một kích thước cửa sổ nhỏ. Kích thước này tăng nhanh nhưng khi nghẽn xảy ra, kích thước cửa sổ truyền bị giới hạn bằng cách giảm bớt giá trị CWND. Khi dữ liệu đã được gửi lại thành công, CWND sẽ tăng nhanh hơn nhưng sẽ không quá nhanh bởi vì bản thân máy truyền này là nguyên nhân gây nghẽn ban đầu làm mất gói tin.

Trong bước 1: bên truyền chỉ có thể truyền tối đa một segment trước khi yêu cầu phải có ACK, kích thước cửa sổ truyền ban đầu là khá nhỏ. Giá trị kích cỡ segment tối đa TCP (MSS) định nghĩa kích thước cho phép lớn nhất của trường dữ liệu TCP, không bao gồm phần header của TCP. Với giá trị MTU mặc định trên phần lớn các cổng là 1500 byte (MTU có bao gồm IP header), giá trị MSS tiêu biểu là 1460.

Trong bước 2: giá trị CWND tăng nhanh dùng một thuật toán gọi là TCP slow start. CWND sẽ có thể tăng đến một con số lớn hơn kích thước cửa sổ cho phép trong khoảng thời gian vài giây. Phần lớn việc mất gói diễn ra do nghẽn vì vậy trong bước 3, CWND cũng sẽ giảm rất nhanh. Ý tưởng rất đơn giản đó là làm chậm bên máy truyền khi gói bị mất, điều này giúp cho nghẽn giảm đi. Hành động tương ứng là giảm đi một nửa giá trị CWND cho mỗi segment bị mất, phản ứng diễn ra rất nhanh.

Trong bước 4 và 5, các segment đã được khôi phục và bên truyền có thể giới hạn kích thước cửa sổ dựa trên giá trị CWND đã giảm xuống gần nhất. CWND có thể tăng lên một lần nữa ở thời điểm này nhưng thay vì tăng lên giá trị CWND trước đây, thuật toán chọn một tỉ lệ tăng chậm hơn cho đến khi nào CWND đạt đến giá trị trước khi có mất gói tin.

6. Giao thức UDP

− Không hướng nối (connectionless)

− Không bảo đảm (unreliable): không có cơ chế kiểm tra STT phát, thu và kiểm soát lỗi.

Ưu điểm: đơn giản.

− Dành cho các ứng dụng:

+ Trong đó việc phân phát tin nhanh chóng là quan trọng hơn việc phân phối tin chính xác: Email, v.v.

+ Muốn tự cung cấp các chức năng flow control và error control

− Thống kê thực tế cho thấy: 99% các gói tin UDP được vận chuyển đến đích không bị lỗi.

Cấu trúc gói số liệu UDP

− Tương tự cấu trúc TCP segment

− "Header giả" giúp thưc thể IP xây dựng IP packet.

− Lenght trong Pseudo header: độ dài toàn bộ gói số liệu UDP, kể cả "Pseudo header"

− Lenght trong UDP segment: độ dài UDP segment, min = 8.

− Checksum: tính cho toàn bộ gói số liệu UDP.

7. Internet và các dịch vụ trên Internet

7.1. World Wide Web

7.1.1. Các khái niệm cơ bản

- HTML

- HTTP

- Website

- Web server

- Web Browser

- Hyper link

- URL

7.1.2. Hoạt động của HTTP

- Nguyên lý hoạt động

• Server mở một TCP socket chờ tại cổng 80 (default)

• Client khởi tạo một liên kết TCP tới server

• Server chấp nhận yêu cầu tạo liên kết

• Trao đổi thông điệp HTTP (giao thức ứng dụng)

 HTTP Requests

 HTTP Response

• Đóng liên kết TCP

 Cơ chế pipeline

- Phân loại

• HTTP không duy trì (HTTP 1.0) : Chỉ một đối tượng web được gửi qua liên kết TCP

• HTTP duy trì (HTTP 1.1) : Nhiều đối tượng có thể được gửi qua một liên kết TCP.

- Sử dụng cơ chế pipeline, webcache để tăng hiệu suất

7.2. DSN

- Tên miền là chuỗi ký tự gợi nhớ để định danh cho một máy trạm trong mạng.

- Tại sao cần tên miền ?

- DNS : là hệ thống thông tin quản lý tên miền

- Quy tắc đặt tên miền:

• Độ dài tối đa : 255 ký tự

• Độ dài tối đa của label : 63 ký tự

• Label phải bắt đầu bằng số hoặc chữ, chỉ chứa số, chữ, "-", "."

- Phân cấp tên miền : gốc, cấp 1, cấp 2...

- Các thành phần của hệ thống DNS:

• Không gian tên miền và các bản ghi

• Các máy chủ quản lý thông tin

• Bộ phân giải tên miền

- Dịch vụ DNS

7.3. Dịch vụ e-mail

- (Mail User Agent)Lấy thư từ máy chủ, gửi thư đến máy chủ. Ví dụ Outlook, Thunderbird...

- MTA (Mail Transfer Agent):

• Chứa hộp thư đến của NSD (mail box)

• Tạo hàng đợi để gửi thư đi

• e.g. Sendmail, MS Exchange...

- Giao thức:

• Chuyển thư: STMP-Simple Mail Transfer Protocol

• Nhận thư

 POP - Post Office Protocol

 IMAP - Internet Mail Access Protocol

- Web mail:

• Sử dụng Web browser như một MUA

• MUA và MTA giao tiếp thông qua HTTP

• Mails được lưu trữ trên máy chủ

Bạn đang đọc truyện trên: Truyen247.Pro