Tcp Udp
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 433333sfsdfd
    Are you sure you want to
    Your message goes here
  • thank you! very good.
    Are you sure you want to
    Your message goes here
  • Lam` the nao de tim dc tai` lieu tieng viet nhi
    Are you sure you want to
    Your message goes here
  • Đăng nhập rồi là có thể download thôi bạn àh :)
    Are you sure you want to
    Your message goes here
  • toi dang muon tim mot so thuat toan dieu khien luong trong tcp ,ban nao co the giup minh dc ko?
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
19,695
On Slideshare
19,528
From Embeds
167
Number of Embeds
3

Actions

Shares
Downloads
849
Comments
6
Likes
10

Embeds 167

http://www.slideshare.net 138
http://www.techgig.com 25
http://webcache.googleusercontent.com 4

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Giao thức TCP(transmission control protocol)
    • TCP và UDP là 2 giao thức ở tầng giao vận và cùng sử dụng giao thức IP trong tầng mạng. Nhưng không giống như UDP, TCP cung cấp dịch vụ liên kết tin cậyvà có liên kết.
    • Có liên kết ở đây có nghĩa là 2 ứng dụng sử dụng TCP phải thiết lập liên kết với nhau trước khi trao đổi dữ liệu. Sự tin cậy trong dịch vụ được cung cấp bởi TCP được thể hiện như sau:
    • Dữ liệu từ tầng ứng dụng gửi đến được được TCP chia thành các segment có kích thước phù hợp nhất để truyền đi .
    • Khi TCP gửi 1 segment, nó duy trì một thời lượng để chờ phúc đáp từ trạm nhận. Nếu trong khoảng thời gian đó phúc đáp không tới được trạm gửi thì segment đó được truyền lại.
    • Khi TCP trên trạm nhận nhận dữ liệu từ trạm gửi nó sẽ gửi tới trạm gửi 1 phúc đáp tuy nhiên phúc đáp không được gửi lại ngay lập tức mà thường trễ một khoảng thời gian .
  • 2.
    • TCP duy trì giá trị tổng kiểm tra (checksum) trong phần Header của dữ liệu để nhận ra bất kỳ sự thay đổi nào trong quá trình truyền dẫn. Nếu 1 segment bị lỗi thì TCP ở phía trạm nhận sẽ loại bỏ và không phúc đáp lại để trạm gửi truyền lại segment bị lỗi đó.
    • Giống như IP datagram, TCP segment có thể tới đích một cách không tuần tự. Do vậy TCP ở trạm nhận sẽ sắp xếp lại dữ liệu và sau đó gửi lên tầng ứng dụng đảm
    • bảo tính đúng đắn của dữ liệu.TCP (Transmission Control Protocol) là một giao thức “có liên kết” (connection - oriented), nghĩa là cần thiết lập liên kết (logic), giữa một cặp thực thể TCP trước khi chúng trao đổi dữ liệu với nhau.
    • TCP cung cấp khả năng truyền dữ liệu một cách an toàn giữa các máy trạm trong hệ thống các mạng. Nó cung cấp thêm các chức năng nhằm kiểm tra tính chính xác của dữ liệu khi đến và bao gồm cả việc gửi lại dữ liệu khi có lỗi xảy ra.
  • 3.
    • Đặc điểm củaTCP:
    • Định hướng stream: Khi hai chương trình ứng dụng (các tiến trình của người sử dụng) truyền những khối lượng lớn dữ liệu, chúng ta xem dữ liệu này là một chuỗi các bit, được chia thành các octet 8 bit, mà chúng ta thường gọi là byte. Dịch vụ chuyển phát stream tên máy đích chuyển đến nơi nhận một cách chính xác cùng một chuỗi các octet mà máy gửi chuyển đi.
    • Kết nối mạch ảo: Thực hiện việc truyền stream cũng tương tự như thực hiện một cuộc gọi điện thoại. Trước khi việc truyền có thể bắt đầu, cả hai chương trình ứng dụng gửi và chương trình ứng dụng nhận tương tác với hệ điều hành, thông báo về mong muốn có được việc truyền stream. Về mặt khái niệm, một chương trình ứng dụng sẽ thực hiện một "cuộc gọi" mà phải được đầu kia chấp nhận, tức thiết lập một kết nối – hay mạch ảo - để truyền và nhận dữ liệu một cách chính xác.
  • 4.
    • Việc truyền có vùng đệm: Các chương trình ứng dụng gửi một dòng dữ liệu qua mạch ảo bằng cách lặp lại việc chuyển các octet dữ liệu đến phần mềm giao thức. Khi truyền dữ liệu, mỗi chương trình ứng dụng sử dụng bất kỳ kích thước đơn vị truyền nào nó thấy thuận tiện, có thể chỉ bằng một octet. Tại đầu nhận, phần mềm giao thức phát chuyển tự động dữ liệu theo đúng chính xác thứ tự mà chúng được gửi đi, làm cho chúng sẵn sàng được sử dụng đối với chương trình ứng dụng nhận, ngay sau khi chúng được nhận và kiểm tra. Phần mềm giao thức được tư do phân chia dòng dữ liệu thành những gói dữ liệu độc lập với đơn vị mà chương trình ứng dụng truyền đi. Để làm cho việc truyền hiệu quả hơn và tối thiểu giao thông trên mạng, các cài đặt thường tập hợp cho đủ dữ liệu từ dòng dữ liệu để đặt vào datagram có độ lớn thích hợp trước khi truyền nó qua Internet.
    • Stream không có cấu trúc: Một điều quan trọng là dịch vụ TCP stream không xác định các dòng dữ liệu có cấu trúc. Lấy ví dụ, chương trình trả lương nhân viên, không có cách nào để dịch vụ stream đánh dấu biên giới giữa các bản ghi nhân viên, hay để xác định nơi dừng của dòng dữ liệu là dữ liệu nhân viên. Các chương trình ứng dụng sử dụng dịch vụ stream phải hiểu nội dung stream và thống nhất với nhau định dạng stream trước khi khởi động việc kết nối.
  • 5.
    • Kết nối hai chiều: Các kết nối được cung cấp bởi dịch vụ TCP stream cho phép truyền đồng thời từ cả hai chiều. Cách kết nối này được gọi là song công (full deplex). Từ quan điểm của một tiến trìh ứng dụng, một kết bối hai chiều bao gồm 2 dòng dữ liệu độc lập “chạy” theo hai chiều ngược nhau, và không có tương tác hay va chạm. Dịch vụ stream cho phép một tiến trình ứng dụng chấm dứt "dòng chảy" theo một chiều trong khi dữ liệu vẫn tiếp tục "chạy" theo chiều kia, làm cho kết nối trở thành một chiều (half duplex). Ưu điểm chính của kết nối hai chiều là phần mềm giao thức cơ sở có thể gửi thông tin điều khiển cho một stream ngược trở về nguồn trong những datagram đang chuyển tải dữ liệu theo chiều ngược lại. Điều này làm giảm bớt giao thông trên mạng.
  • 6. Cấu trúc gói dữ liệu TCP :
  • 7.
    • Các tham số trên khuông dạng có ý nghĩa như sau:
    • - source port (16 bits) là số hiệu cổng của trạm nguồn
    • Destination port (16 bits) là số hiệu cổng trạm đích.
    • Sequence number(32 bits) là số hiệu byte đầu tiên của segment trừ khi bit SYN được thiết lập. Nếu bit SYN đựợc thiết lập thì sequence number là số hiệu tuần tự khởi đầu ISN (initial sequence number) và byte dữ liệu đầu tiên là ISN +1. thông qua trường này TCP thực hiện việc quản lý từng byte truyền đi trên một kết nối TCP.
    • Acknowledgment number (32 bits) số hiệu của segment tiếp theo mà trạm nguồn đang chờ để nhận và ngầm định báo nhận tốt các segment mà trạm đích đã gửi cho trạm nguồn.
    • Header length (4 bits). Số lượng từ (32 bits) trong TCP header, chỉ ra vị trí bắt đầu của vùng dữ liệu vì trường option có độ dài thay đổi . Header length có giá trị từ 20 dến 60 byte.
    • Reserved (6 bits) dành để dùng trong tương lai.
  • 8.
    • Control bits : các bit điều khiển
    • + URG: xác định vùng con trỏ cần có hiệu lực
    • + ACK : vung báo nhận ACK number có hiệu lực
    • +PSH : chức năng PUSH
    • + RST: khởi động lại liên kết
    • + SYN : đồng bộ hóa các số hiệu tuần tự
    • + FIN: không còn dữ liệu từ trạm nguồn.
    • Window size (16 bits) : cấp phát thẻ để kiểm soát luồng dữ liệu (cơ chế cửa sổ trượt). Đâ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 (16 bits) . Mã kiểm tra lỗi cho toàn bộ segment cả phần header và dữ liệu
    • Urgent pointer (16 bits). con trỏ trỏ tới số hiệu tuần tự của byte tuần tự cuối cùng trong dòng 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 URG đựợc thiết lập
  • 9.
    • Option (độ dài thay đổi ). Khai báo các tuỳ chọn của TCP trong đó thông thường là kích thước cực đại của 1 segment: MSS (Maximum Segment Size).
    • TCP data (độ dài thay đổi ). Chứa dữ liệu của tầng ứng dụng có độ dài ngầm định là 536 byte . Giá trị này có thể điều chỉnh được bằng cách khai báo trong vùng Option.
    • TCP checksum: bắt buộc
    • 16 bit d ữ liệu dùng để kiểm tra tính toàn vẹn dữ liệu cũng như là tcp header. Ở phía gửi gắn đầu giả vào segment, thêm các bit 0 vào để segment là bội của 16 bit và tính ra 16 bit checksum kết quả.
    • TCP không tính cả đầu giả hoặc phần đệm vào thêm trong chiều dài của segment và cũng không truyền chúng đi. Nó giả sử trường checksum toàn bit không. TCP dùng đại số 16 bit và lấy bù 1 của tổng bù 1. Ở phía nhậncũng thực hiện tính toán để kiểm tra segment đến.
  • 10.
    • Mục đích dùng đầu giả là cho phép nơi nhận kiểm tra xem segment đến đúng đích hay không. Cả IP nguồn và đích quan trọng đối với tcp vì nó dùng chúng để nhận ra 1 segment thuộc về 1 kết nối nào
    • Tcp gán giá trị protocol mà các hệ thống bên dưới sẽ dùng, đối với ip datagram mang tcp giá trị này là 6.
    • Tcp length bao gồm cả tcp header và tcp segment.
    • Ở nơi nhận thông tin trong đầu giả được trích khỏi ip datagram cùng với tính toán checksum để kiểm tra xem segment đến đúng đích nguyên vẹn
  • 11. Thiết lập và kết thúc kết nối TCP
    • Thiết lập kết nối:
    • Thiết lập kết nối TCP được thực hiện trên cơ sở phương thức bắt tay ba bước (Tree - way Handsake) hình sau. Yêu cầu kết nối luôn được tiến trình trạm khởi tạo, bằng cách gửi một gói TCP với cờ SYN=1 và chứa giá trị khởi tạo số tuần tự ISN của client. Giá trị ISN này là một số 4 byte không dấu và được tăng mỗi khi kết nối được yêu cầu (giá trị này quay về 0 khi nó tới giá trị 2 32 ). Trong thông điệp SYN này còn chứa số hiệu cổng TCP của phần mềm dịch vụ mà tiến trình trạm muốn kết nối (bước 1).
    • Mỗi thực thể kết nối TCP đều có một giá trị ISN mới số này được tăng theo thời gian. Vì một kết nối TCP có cùng số hiệu cổng và cùng địa chỉ IP được dùng lại nhiều lần, do đó việc thay đổi giá trị INS ngăn không cho các kết nối dùng lại các dữ liệu đã cũ (stale) vẫn còn được truyền từ một kết nối cũ và có cùng một địa chỉ kết nối.
    • Khi thực thể TCP của phần mềm dịch vụ nhận được thông điệp SYN, nó gửi lại gói SYN cùng giá trị ISN của nó và đặt cờ ACK=1 trong trường hợp sẵn sàng nhận kết nối. Thông điệp này còn chứa giá trị ISN của tiến trình trạm trong trường hợp số tuần tự thu để báo rằng thực thể dịch vụ đã nhận được giá trị ISN của tiến trình trạm (bước 2).
  • 12.
    • Tiến trình trạm trả lời lại gói SYN của thực thể dịch vụ bằng một thông báo trả lời ACK cuối cùng. Bằng cách này, các thực thể TCP trao đổi một cách tin cậy các giá trị ISN của nhau và có thể bắt đầu trao đổi dữ liệu. Không có thông điệp nào trong ba bước trên chứa bất kỳ dữ liệu gì; tất cả thông tin trao đổi đều nằm trong phần tiêu đề của thông điệp TCP (bước 3).
  • 13.
    • Kết thúc kết nối
    • Khi có nhu cầu kết thúc kết nối, thực thể TCP, ví dụ cụ thể A gửi yêu cầu kết thúc kết nối với FIN=1. Vì kết nối TCP là song công (full-duplex) nên mặc dù nhận được yêu cầu kết thúc kết nối của A (A thông báo hết số liệu gửi) thực thể B vẫn có thể tiếp tục truyền số liệu cho đến khi B không còn số liệu để gửi và thông báo cho A bằng yêu cầu kết thúc kết nối với FIN=1 của mình. Khi thực thể TCP đã nhận được thông điệp FIN và sau khi đã gửi thông điệp FIN của chính mình, kết nối TCP thực sự kết thúc
  • 14. Điều khiển luồng(flow control):
  • 15. Giao thức UDP
    • UDP là giao thức không liên kết, cung cấp dịch vụ giao vận không tin cậy được,
    • sử dụng thay thế cho TCP trong tầng giao vận . Khác với TCP, UDP không có chức năng thiết lập và giải phóng liên kết, không có cơ chế báo nhận (ACK), không sắp xếp tuần tự các đơn vị dữ liệu (datagram) đến và có thể dẫn đến tình trạng mất hoặc trùng dữ liệu mà không hề có thông báo lỗi cho người gửi.
    • Khuôn dạng của UDP datagram được mô tả như sau:
  • 16.
    • Trong đó:
    • Số hiệu cổng nguồn (Source Port - 16 bit): số hiệu cổng nơi đã gửi datagram
    • Số hiệu cổng đích (Destination Port - 16 bit): số hiệu cổng nơi datagram được chuyển tới
    • Độ dài UDP (Length - 16 bit): độ dài tổng cổng kể cả phần header của gói UDP datagram.
  • 17.
    • UDP Checksum (16 bit): dùng để kiểm soát lỗi, nếu phát hiện lỗi thì UDP datagram sẽ bị loại bỏ mà không có một thông báo nào trả lại cho trạm gửi. UDP có chế độ gán và quản lý các số hiệu cổng (port number) để định danh duy nhất cho các ứng dụng chạy trên một trạm của mạng. Do có ít chức năng phức tạp nên UDP có xu thế hoạt động nhanh hơn so với TCP. Nó thường dùng cho các ứng dụng không đòi hỏi độ tin cậy cao trong giao vận
  • 18. Cổng:
    • KHi 1 máy khách kết nối vào máy chủ thì có thể yêu cầu nhều dịch vụ khác nhau trên máy chủ. Mỗi dịch vụ đều có cách gửi và nhận dữ liệu theo qui ước riêng. Tcp và Udp chỉ chịu trách nhiệm đưa dữ liệu đưa dữ kiệu từ máy tính này đến máy tính khác, còn dữ liệu đó được gửi đến dịch vụ theo cách nào thì phải thông qua cổng.
    • Các chỉ số port có các dải được gán như sau:
    • Nhỏ hơn 1024 được xem như các cổng danh tiếng
    • Các cổng 1024-49151 là các cổng được đăng kí
    • Còn lại là cổng động hay riêng