PDA

View Full Version : TCP,UDP sao mà rắc rối !!!



Kien Cang
07-09-2003, 07:47 PM
Xin chào !
Có ai coi lại “protocol praph” hình 2-12 /66 trong sách CNAP (semeter I) chỉ cho mình với :
_Tại sao DNS lại thuộc về cả TCP và UDP ?
_Mặc dù IP là connectionless nhưng sao mình thấy có vẻ như nó đựơc sử dụng với cả UDP ?
Thanks .
:roll:

alovend
08-09-2003, 10:34 AM
Tui nghĩ rằng DNS sử dụng cả UDP và TCP là do :
- UDP : DNS request để broadcast
- TCP : DNS reply

TCP là connection oriented : mất truyền lại
UDP la connectionless : mất không sao
IP : bản thân nó chỉ biết truyền tới đích mà thôi, nếu tầng trên là TCP thì nó sẽ yêu cầu IP truyền lại, con nếu là UDP thì mất thì ráng chịu.
Thân

happyman_1x
08-09-2003, 06:23 PM
IP là connectinless hoạt động tại lớp 3
TCP là connection-oriented hạot động tại lớp 4, dùng lớp 3 là IP
UDP là connectinless hoạt động tại lớp 4, dùng lớp 3 là IP.

Như vậy bạn hiểu chưa ?

Saigon,Vietnam
08-09-2003, 07:10 PM
Chao2 KienCang,

_Tại sao DNS lại thuộc về cả TCP và UDP ?
DNS (UDP53) dùng dễ clients và servers talk mí nhau.
DNS (TCP53) dủng dể Server talk với server.

_Mặc dù IP là connectionless nhưng sao mình thấy có vẻ như nó đựơc sử dụng với cả UDP ?
Phần lớn các applications sẽ resent lost packets nếu run trên UDP.
Riêng DNS, client có thể make another request nếu không nhận dược reply. Ngoài ra, vì lý do security người ta còn có các mechanism ngăn bớt DNS replies mà chỉ cho một reply di qua mà thôi!

Thân,

p_11
14-10-2004, 03:23 PM
làm ơn giúp mình hiểu đoạn văn này
The TCP header is 20 bytes. Transporting multiple packets with small data fields results in
les-eficient use of available bandwidth than transporting the same amount of data with fewer, larger packets.This is like placing a small object in a large box instead of filling the box completely
Đoạn tô đậm là mình không hiểu

p_11
14-10-2004, 03:30 PM
1.Both Tcp and udp use port numbers to pass information to the upper layers. Port numbers are used to keep track of different conversations crossing the network at the same time .

2.Some ports are reserved in both TCP and UDP . But applications might not be written to support them . Port numbers have the following assigned ranges:
- Numbers below 1024 are considered well-known ports
- Numbers above 1024 are dynamically assigned ports.
- Registered ports are those registered for vendor-specific applications . Most are above 1024

1'hpSky
14-10-2004, 03:50 PM
vậy có vấn đề gì hả bạn

1'hpSky
14-10-2004, 04:39 PM
Giả sử bây giờ bạn có 10 Tấn cần vận chuyển từ A đến B. Mỗi xe có thể vận chuyển tối đa 5 tấn. Có nhiều giải pháp để thực hiện:
cách 1. Dùng 10 xe, mỗi xe chở 1 tấn
cách 2. Dùng 2 xe, mỗi xe chở 5 tấn
So sánh 2 cách này bạn thấy cách nào hiệu quả hơn!

Quá trình truyền thông tin trên mạng cũng vậy. Mỗi TCP header 20 bytes được coi như 1 xe, trọng tải mỗi xe phụ thuộc vào loại interface, chất lượng đường truyền, khả năng xử lý của các thiết bị mạng...
Cùng một lượng thông tin, nếu chia thành quá nhiều packet để chuyển đi sẽ làm hiệu quả hoạt động của mạng giảm xuống. Để xác định kích thước packet tối ưu, người ta đưa ra một khái niệm là MTU.

"MTU (Maximum Transfer Unit) specifies the maximum transmission unit size of an interface. Each interface used by TCP/IP may have a different MTU value specified. The MTU is usually determined through negotiation with the lower driver, using that lower driver value. However, that value may be overridden".

Below is a list of Default MTU size for different media.

Interface......................................... .MTU(Bytes)
-----------------------------------
16 Mbit/Sec Token Ring.......................17914
4 Mbits/Sec Token Ring....................... 4464
FDDI.............................................. ....4352
Ethernet.......................................... ...1500
X.25.............................................. .... 576

Trong router bạn có thể thay đổi MTU bằng lệnh:<config-if>#ip mtu ###

Xem qua thì thấy MTU có vẻ tỷ lệ thuận với bandwidth của interface nhưng thực tế không phải vậy. Cụ thể đối với Ethernet, bandwidth mặc dù lớn 10/100Mbps, nhưng là mạng shared, nếu MTU lớn thì hiệu quả đạt được thấp. Cân bằng tất cả các yếu tố người ta tính ra MTU=1500 bytes là hợp lý nhất và đặt là giá trị default.

Thông thường thì MTU được để default, và chúng ta không phải cấu hình gì cả. Chỉ thay đổi MTU number trong một số trường hợp đặc biệt như khi cấu hình PPPoE..

trung tam kn
14-10-2004, 06:19 PM
các port nhỏ hơn 1024 là các port nổi tiếng. Các ứng dụng của ta viết chỉ được dùng cho các port từ 1024 trở lên.

trong các port từ 1024, vẫn có một số port đã bị các vendor đăng ký sử dụng.

p_11
15-10-2004, 06:54 PM
vâng cám ơn 1'hpsky nhiều lắm , bây giờ thì đã hiểu rồi. Hy vọng những lần tới bạn sẽ tiếp tục giúp mình

nhatphuc
08-05-2005, 02:35 AM
Mình đọc một số tài liệu thì Layer 3 của TCP/IP protocol là transport, một số tài liệu thì lại nói là host-to-host.

Vậy tài liệu nào là chuẩn?

Cám ơn

Phúc

changchancuucodon
08-05-2005, 01:18 PM
TCP/Ip xuất thân từ một mô hình DoD. Trong mô hình DoD, lớp TCP/UDP có tên gọi tương đượng là host-to-host.

vấn đề chỉ là tên gọi trong các mô hình khác nhau thôi.

VoThanhDuy
01-06-2005, 11:30 AM
Một kết nối TCP sẽ được thực hiện khi ứng dụng ở một host truyền và nhận dữ liệu đến một host khác. TCP cung cấp kh năng truyền song công (full-duplex) giữa hai ứng dụng ở hai đầu kết nối. TCP phải có nhiệm vụ chuyển dữ liệu của lớp ứng dụng thành các đơn vị dữ liệu có thể truyền để có thể đóng gói thành packet ở lớp Internet. Ưng dụng chuyển dữ liệu đến TCP và TCP đặt vào bộ đệm gửi. TCP chia nhỏ dữ liệu và thêm phần tiêu đề (header) tạo thành đơn vị dữ liệu gọi là segment. Kích thước của segment phải luôn được điều chỉnh ở mức tối ưu với tài nguyên hiện có trên mạng. TCP sẽ chờ cho đến khi nhận đủ dữ liệu từ lớp trên trước khi tạo một segment có kích thước phù hợp.

Một máy khách phải được xác định được loại dịch vụ yêu cầu từ máy chủ. Điều này được thực hiện bằng việc sử dụng cặp địa chỉ IP và số hiệu cổng TCP. Cổng TCP nằm trong khong từ 0 đến 65535. Từ 0 đến 1023 là các cổng cho những dịch vụ thông thường.

Sự kết hợp giữa địa chỉ IP và số hiệu cổng tạo thành cặp địa chỉ socket. Một kết nối TCP giữa hai đầu cuối được nhận diện hay phân biệt nhờ địa chỉ socket này. Trong header của packet chứa thông tin địa chỉ nguồn và địa chỉ đích, số hiệu cổng nằm trong segment của TCP. TCP là một giao thức Connection-Oriented nên để truyền được dữ liệu thì trước đó nó phi thiết lập kết nối rồi duy trì kết nối và sau khi hết dữ liệu cần gửi nó phi giải phóng kết nối. Trong quá trình truyền dữ liệu có sử dụng cơ chế điều khiển luồng (flow control) và điều khiển lỗi.

Định dạng dữ liệu của TCP

Mỗi segment của giao thức TCP bao gồm phần tiêu đề (header) và phần dữ liệu (data).

Trong đó:

Source port (16 bit) và Destination port (16 bit): số hiệu cổng của host nguồn và đích.
Sequence Number (32 bit): số hiệu xác định vị trí byte đầu tiên của segment khi bit SYN không được thiết lập. Nếu bit SYN được thiết lập thì đây là số hiệu tuần tự khởi đầu của dữ liệu.
Ackknowledgment Number (32 bit): thưng ký hiệu là ACK, là số hiệu của segment kế tiếp trong dòng dữ liệu mà bên nhận đang chờ. Data Offset (4 bit): chỉ kích thước của phần header TCP tính theo đn vị từ 32 bit. Trường này đồng thời cũng xác định vị trí bắt đầu của phần dữ liệu.
Reserved (6 bit): trường này hiện vẫn dự phòng và luôn bằng 0.
Flags (6 bit): là các bit cờ có ý nghĩa như sau:
-URG: bằng 1 nếu có dữ liệu khẩn. Dữ liệu khẩn sẽ được chỉ ra trong trường Urgent Pointer. Ngược lại thì bằng 0.
-ACK: bằng 0 nếu là segment khởi đầu và khi đó trường ACK Number mới có hiệu lực.
-PSH: thông báo dữ liệu cần chuyển đi ngay.
-RST: xác định lỗi, đồng thời để khởi động lại kết nối.
-SYN:bằng 1 khi thiết lập kết nối.
-FIN: bằng 1 khi trạm nguồn hết thông tin.
Window (16 bit): Đây là số lượng các byte dữ liệu, bắt đầu từ byte được chỉ ra trong trường ACK Number mà trạm nguồn đã sẵn sàng để nhận.
Checksum (16bit): mã kiểm soát lỗi theo phưng pháp CRC của toàn bộ segment.
Urgent Pointer (16 bit): đây là con trỏ tới số hiệu tuần tự của byte đi sau dữ liệu khẩn, cho phép bên nhận biết được độ dài của dữ liệu khẩn. Trường này có hiệu lực khi bit URG được thiết lập 1.
Padding (độ dài thay đổi): Phần mềm chèn thêm vào header để đm bo header luôn kết thúc ở một mốc 32 bit. Phần chèn thêm này luôn = 0.
Data (độ dài thay đổi): chứa dữ liệu cần gửi đi của lớp trên TCP.
Options (độ dài thay đổi): khai báo các tuỳ chọn của TCP, trong đó có độ dài tối đa của vùng TCP data trong một segment.

net_work
13-03-2006, 01:25 PM
bác nào giải thích giúp tôi một số thuật ngữ trong hình dưới này được ko? Tôi chưa hiểu rõ lắm về nó chẳng hạn như Sequence Number, Checksum, Urgent, Window là gì, chúng hoạt động ra sao? Xin cảm ơn!
http://img161.imageshack.us/img161/4567/tcp2az.jpg

ciscau
14-03-2006, 09:07 AM
bạn mở sách CCNA- Cisco Press, phần TCP/IP là có hết mà

lele_2612
14-03-2006, 02:03 PM
Chính xác đó, chỉ có ở sách thôi chứ dịch theo tiếng Việt thì khó có từ nào sát nghĩa được --> bạn phải hiểu theo ngữ cảnh tùy loại.

infin
14-03-2006, 07:52 PM
http://www.chuyenviet.com/html/articles/mohinhmangtcpip.html

lethu28787
18-03-2006, 12:00 PM
thanks a lot !