Lớp vận chuyển và giao thức UDP, TCP

pdf 22 trang hoanguyen 3960
Bạn đang xem 20 trang mẫu của tài liệu "Lớp vận chuyển và giao thức UDP, TCP", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdflop_van_chuyen_va_giao_thuc_udp_tcp.pdf

Nội dung text: Lớp vận chuyển và giao thức UDP, TCP

  1. Lớpvp vận chuyểnvàgiaothn và giao thức UDP, TCP 1
  2. Lớp vận chuyển – giám sát và chuyển tiếp dữ liệu của các tiến trình xử lý hoặc Transport Layer các chương trình lớp ứng dụng trên máy tính này sang máy tính khác trong mạng. Î Mở rộng chức năng của tầng mạng và cho phép thiết lập kênh tuyền thông logic giữa các tiến trình lớp ứng dụng 2
  3. Các chức năng của lớp vận chuyển (1) Đóng gói Với dữ liệu được phát sinh từ các chương trình lớp ứng dụng, Packetizing lớp vận chuyển cần phải đáp ứng xử lý để chuyển tiếp gói tin. 1) Chia nh ở các gói tin l ớn thành các phầnnhn nhỏ để phân lớp mạng có thể xử lý. 2) Thêm phần tiêu đề vào mỗi gói tin chứa các phần dữ liệu được chia để phía thu có thể tái ghép lại. (2) Điều khiển kết nối Hỗ trợ bởi một số giao thức trong họ giao thức TCP/IP Connection Control ()(3) Đảm bảo tính tin cậy Hai kiểu chuyển tiếpgp gói tin giữa các trình ứng dụng của Reliability lớp vận chuyển: 1) Dịch vụ hướng kết nối - connection oriented (TCP) Thiết lập kết nối Điều khiểnlun luồng Chuyển tiếp và thu nhận gói tin theo đúng thứ tự Điều khiển lỗi Điều khiển tắc nghẽn 2) Dịch vụ không hướng kếttn nối - connectionless (UDP) Không đảm bảo tính tin cậy, chuyển tiếp gói tin không theo thứ tự Giới gian tính năng trong điều khiển lỗi 3
  4. Các chức năng của lớp vận chuyển (4) Addressing Địa chỉ lớp ứng dụng (địa chỉ cổng) dùng để phân biệt giữa các tiến trình xử lý lớp trên đang thực hiện truyền thông dữ liệu. client – demand service server – provide service 4
  5. Giao thức truyền thông UDP UDP message UDP UDP segment UDP header UDP header 5
  6. Giao thức vận chuyển Là giao thức lớp vận chuyển không hướng kết nối và không UDP đảm bảo tính tin cậy (không điều khiển luồng và giới hạn việc kiểm tdtra dữ liệu) . UDP khô ng thê m bất cứ xử lý nà o với các dịch vụ ở lớp IP, ngoại trừ cho phép cơ chế xử lý ghép/tách các luồng dữ liệu truyền thông Các ưu điểm chính 1) Không cần thiết lập kết nối giữa các hệ thông đầu cuối. Với giao thức TCP cần có xứ thiết lập kêt nối “bắt tay 3 bước” trước khi truyền nhận các gói dữ liệu Î trễ thiết lập. 2) Không kiểm soát trạn thái kết nối – xử lý phần thông tiêu đề đơn giản. Với giao thức TCP cần quản lý trạng thái kết nối ở mỗi hệ thông đầu cuối và quản lý các thông tin khác như các chỉ số các gói dữ liệu truyền và nhận, chỉ số các gói tin báo nhận ACK 3) Phần thông tin tiêu đề ngắn – chỉ có 8-byte. Với giao thức TCP yêu cầu phần thông tin tiêu đề là 20-bytes 4) Không điều khiểnnlu luồng và điều khiểnnt tắccngh nghẽn – UDP có th ể gửi các gói nhanh nhất có thể. Î ứng dụng tốt trong các dịch vụ truyền dữ liệu thời gian thực. 6
  7. Giao thức truyền thông UDP Gói tin UDP 8 byte tiêu đề + dữ liệu lớp ứng dụng header = 4 fields only, each consisting of 2 bytes Chiều dài– tổng Chỉ định kích thước của gói tin UDP bao gồm cả phần tiêu đề và tải trong bits ֜ giá trị max có thể là 65,535 bytes; tuy nhiên do sự giới hạn 16 về tài nguyên bộ nhớ được phép cấp phát của hệ điều hành nên gói tin UDP có kích thước tối đa là 8192 Chuỗi kiểm tra Chỉ dùng để xác định lỗi với dữ liệu trong gói tin UDP (header + data) ¾ Việc tính toán kiểm tra được tùy chọn! - Nếu không cần tính, dữ liệu thết lập cho trường nàààáíy là các bít 0 ¾ Nếu có lỗi được xác định, bản tin được bỏ qua và khong có xử nào được thực hiện tiếp sau. 7
  8. Giao thức truyền thông TCP Giao thức điều khiển truyền dẫn Là giao thức lớp vận chuyển có các thuộc tính sau: TCP Định hướng kết nối: giữa các hệ thống đầu cuối phải bắt tay “handshake” trước khi th ựchic hiệnntruy truyền thông Điều khiển luồng Tính tin cậy=dữ liệu được sắp xếp + điều khiển lỗi: điều khiển lỗi trong TCP bao gồm cả cơ chế xác định lỗi, xác định thứ tự và tinh sao chép của các gói dữ liệu được xử lý. Tính liên tục: Nếu dữ liệu bị chuyển tiếp sai và vượt quá thời gian cho phép TCP sẽ cảnh báo với hệ thống và ngắt kết nối Điều khiển tắc nghẽn: TCP giới hạn số lượng dữ liệu được chuyển tải trong mạng nằm trong khả năngyg chuyển tải của mạng. Kết nối điểm – điểm: kết nối TCP được thiết lập giữa hai phía phát và phía thu theo tính chất một – một. Truyền dẫn song công: xử lý p hát và nh ận độc lập, vàdà dữ liệu truyển tải theo hai hướng đồng thời. 8
  9. Giao thức truyền thông TCP Cấu trúc gói tin TCP 9
  10. Cấu trúc gói tin TCP Chỉ số phân đoạn dữ liệu Trường thông tin 32-bit, giúp cho xử lý phía thu xác định Sequence Numbet được vị trí của byte đầu tiên trong mỗi bản tin (segment) Chỉ số báo nhận Trường thông tin 32-bit – chỉ định vị trí của byte kế tiếp cần đượctruyc truyền đi ở phía phát Chiều dài tiêu đề Trường thông tin 4-bit , là giá trị bội số của 4, chỉ định kích thước (số byte) của phần thông tin tiêu đề Reserved Trường thông tin 6-bit , trường thông tin dữ phòng (chứa dùng) Window Size Trường thông tin 16 -bit , ch ỉ địnhkíhthh kích thước của phần dữ liệu trong bản tin TCP 10
  11. Cấu trúc gói tin TCP Chuỗi kiểm tra trường thông tin 16 bit – sử dụng để xác định lỗi thành phần dữ liệu trong gói tin TCP bao gồm (header + data) + 96-bit để đảm bảo tính chính xác cho các x ử lý, tính toán tiếptheop theo. phần giả tiêu đề chứa một số trường thông tin trong phần tiêu đề gói tin IP gồm: địa chỉ nguồn và địa chỉ đích, giao thức và chiều dài phân đoạn dữ liệu. Phần giả tiêu đề này sẽ giúp xử lý chuyển tiếp nhầm bởi phân lớpIPp IP. phần tiêu đề giả ngẫu nhiên giúp tránh xử lý với gữ liệu bị chuyển tiếp nhầm ở lớp IP Urgent Pointer –trường thông tin 16 bit – chỉ định vị trí (thứ tự) của byte cuối cùng trong khối dữ liệu cần được truyền. Options –có thể mở rộng lên 40 byte để mang thêm các thông tin dùng cho các quá trình xử lý điều khiển luồng/ điều khiển tắc nghẽn Padding – các bít chèn, cách ly giữa phần thông tin tiêu đề và dữ liệu, được thiết lập là các bít 0 11
  12. Các giá trị cờ điều khiển Flag Miêu tả If this bit field is set, the receiving TCP should interpret the urgent URG pointer field. Used when data should be read out of order, from receive window, by the receiving application. ACK If this bit field is set, the acknowledgement field is valid. If this bit field is set, the receiver should deliver this segment to the PSH receiving application as soon as possible, without waiting for receive window to get filled. If this bit is present, it signals the receiver that the sender is aborting RST the connection and all queued data and allocated buffers for the connection can be freely relinquished. When present, this bit field signifies that sender is attempting to SYN "synchronize" sequence numbers. This bit is used during the initial stages of connection establishment between a sender and receiver. If set, this bit field tells the receiver that the sender has reached the FIN end of its byte stream for the current TCP connection. 12
  13. Điều khiển thiết lập kết nối theo giao thức TCP Thiết lập kết nối Các tranh TCP phải thiết lập kết nối trước khi gửi đi dữ liệu của mình, thông qua quá trình thiết lập kết nối bắt tay ba bước. TCP “Three-Way Handshake”: (1) máy trạm gửi bản tin yêu cầu kết nối SYN cho server, kèm theo các thông tin: Source and Destination Port – chỉ định địacha chỉ cổng (ch ỉ số cổng) truyền thông SYN = 1 Sequence Number = client_seq –thiết lập giá trị ngẫu nhiên Không mang theo dữ liệu!!! allocate buffers and variables (window size defined) allocate buffers and variables (window size ACK = defined) Client seq + Client TCP Length 13
  14. Quá trình bắt tay 3 bước (tiếp) (2) khi server nhận được bản tin yêu cầu kết nối SYN, nó sẽ cấp phát bộ nhớ và thiết lập cáábic biến xử lý k ết nốiài, và gửibi bản tiibáhin báo hiệu chấp nhận kết nối (SYNACK) cho phía máy trạm có yêu cầu. SYN = 1 Sequence Number = serverserver_seq seq ACK = client_seq + 1 (chỉ +1 vì chưa có dữ liệu nào được truyền) (3) khi phía máy trạm nhận được bản tin SYNACK, nó cũng cấppp phát bộ nhớ và thiết lập các biến cho xử lý truyền thông, và gửi lại bản (SYN=1, seq. # = i, ACK - ) tin báo nhận (ACK) SYN = 0 – connection is established! Sequence Number = client_seq + 1 connection ACK = server_seq + 1 cldlosed SYN=1, seq. # = j, ACK = i+1) time time 14
  15. Giản đồ chuyển trạng thái của máy trạm và máy chủ TCP trong xử lý truyền thông dotted lines = server, solid lines = client 15
  16. Các trạng thái xử lý Tên trạng thái Miêu tả chức năng và ý nghĩa CLOSED Không có một kết nối nào đang được thiết lập trước đó LISTEN S Máy chủ chờ yêu cầu kết nối từ phía các máy trạm. SYN-SENT C Một yêu cầu kết nối được gửi đi; chờ báo nhận. SYN-RCVD S Một yêu cầu kết nối được nhận về. ESTABLISHED Kết nối đã được thiết lập, tiến hành quá trình truyền thông. FIN-WAIT-1 C Lớp úng dụng được yêu cầu đóng kết nối. FIN-WAIT-2 C Hệ thống đầu cuốihi chấp nhận đókóng kết nối. TIME-WAIT C Trạng thái chờ và truyền lại các bản tin để đóng kết nối hoàn toàn. CLOSE-WAIT S Máy ch ủ chờ thông báo từ lớp ứng dụng để đóng kếtnt nối. LAST-ACK S Máy chủ đạng chờ bản tin báo nhận ACK cuối cùng để đóng kết nối. 16
  17. Chuỗi xử lý của máy trạm TCP (1) Máy trạm TCP thiết lập ban đầu ở trạng thái CLOSED . (2) Ở trạng thái này, máy trạm TCP có thể nhận một yêu cầu mở “cổng truyền thông” từ các chương trình lớp trên để thu nhận dữ liệu. Ngay sau đó, bản tin (segment) SYN được gửiit tớiiáh máy chủ TCP và ch uyển vàtào trạng thái SYN-SENT. (3)Trong khi ở trạng thái SYN-SENT, máy trạm TCP có thể nhận được bản tin SYN+ACK từ một máy chủ TCP kết nối. Ngay sau đó, nó sẽ gửi một bản tin ACK cho máy chủ TCP và chuyển vào trạng thái ESTABLISHED, cho truyền nhận dữ liệu. Máy trạm TCP có thể ở trạng thái này trong mộttht thời gian dài trong suôt quá trình truyền thông dữ liệu. (4)Ở trạng thái ESTABLISHED, máy trạm TCP có thể nhận một bản tin yêu cầu đóng (ngắt) send & receive kết nối tử chương trình ứng dụng lớp trên của receive only máy trạm. Ngay sau đó nó sẽ gửi một bản tin FIN cho máy chủ TCP đang kết nối và chuyển vào trạng thái FIN-WAIT-1. 17
  18. Chuỗi xử lý của máy trạm TCP (5)Khi ở trạng thái FIN-WAIT-1, nếu nhận được bản tin ACK t ừ phía máy chủ, máy tr ạmsm sẽ chuyển sang trạng thái FIN-WAIT-2, và không gửi đi bản tin báo hiệu tiếp theo nào. Truyền thông giữa 2 máy được kêt thúc, kết nối được ngắt từ một chiều (6)Máy trạm TCP vẫn ở trạng thái FIN-WAIT-2 và chở cho máy chủ TCP đóng kếttn nối đầu cuối. Khi máy trạm nhận được bản tin FIN từ phía máy chủ nó sẽ gửi lại bản tin ACK và chuyển về trạng thái TIME-WAIT. (7)Khi ở trạn thái TIME-WAIT, Máy trạm TCP định thời đợi một khoảng thời gian. Khoảng thời gian đợi “TIME-WAIT” được thiết lập gấp đôi so với thời gian sống dài nhất của một gói tin trong mạng (maximum segment lifetime) (2MSL). Máy trạm vẫn ở trạng thái này trước khi đóng hẳn kết nối để chắc chắn rằng bản tin ACK được gửi tới máy chủ. nếu do một nguyên nhân nào bản tin FIN gửi từ phía máy chủ không được nhận ở máy trạm thì các bản tin ACK sẽ được gửi lại, và việc thiết lập định thời sẽ thực hiện lại để đảm bảo đảm bảo rằng tất cả các bản tin được trao đổi trước đó được xóa bởi mạng 18
  19. Chuỗi xử lý của máy chủ TCP Thông thường, máy chủ TCP có thể ở bất cứ trạng thái nào Trong 11 trạng thái chỉ định. Tuy nhiên thông thường máy chủ có thể ở tại một trạnggg thái trong chuỗi xử lý sau: (1) Máy chủ TCP ở trạng thái CLOSED. (2)Khi ở trạng thái này, máy trạm TCP có thể nhậnmn mộtyêuct yêu cầukíchhou kích hoạtmt mộtct cổng truyền thông từ các chương trình ứng dụng lớp trên. Sau đó máy chủ sẽ chuyển sang trạng thái LISTEN. (3)Trong khi ở trạng thái này LISTEN, máy chủ có thể nhận được bản tin từ phía máy trạm. Ngay sau đó nó sẽ gửi lại một bản tin SYN + ACK cho máy trạm và chuyểnsangn sang trạng thái SYN-RCVD (4)Khi ở trạng thái SYN-RCVD, máy chủ có thể nhận một bản tin ACK từ phía máy trạm để chuyểnsangtrn sang trạng thái tiếp send & receive theo ESTABLISHED. Máy trạm và máy chủ TCP sẽ ở trạng thái này trong một thời gian dài send only để truyền nhận dữ liệu. 19
  20. Chuỗi xử lý của máy chủ TCP (5) Trong khi ở trạng thái ESTABLISHED, Máy chủ TCP có thể nhận được bản tin FIN từ phía máy trạm để báo hiệu cần kết thúc truyền thông và cắt kết nối. Khi đó máy chủ sẽ gửi lại bản tin ACK cho máy trạm có yêu cầu và chuyển sang trạng thái CLOSE-WAIT. (6)Trong khi ở trạng thái CLOSE-WAIT, máy chủ TCP sẽ chờ cho đến khi nhận được yêu cầu đóng kết nối từ chương trinh ứng dụng lớppêvsu trên và sau đóycó máy chủ sẽ gửi ccoho máy trạm bản tin FIN và chuyển sang trạng thái LAST-ACK. (7)Khi ở trạng thái LAST-ACK, Máy chủ sẽ chờ nhận bản tin ACK cuối cùng từ phía máy trạm và đóng kết nối, chuyển về chế độ CLOSED. 20
  21. receiving buffer deallocated sending buffer deallocated receiving buffer deallocated sending buffer dlltddeallocated 21