Một dữ liệu được định tuyến trong mạng vă được chuyển đến một địa chỉ nhất định, nó phải được chuyển đến người sử dụng chính xâc hay xử lý. Giống như dữ liệu được chuyển lín hoặc xuống giữa câc lớp của TCP/IP, một kỹ thuật được cần đến để chuyển dữ liệu đến giao thức chính xâc trong mỗi lớp. Hệ thống phải phối hợp dữ liệu từ nhiều ứng dụng trong một số giao thức lớp truyền vă từ giao thức truyền tới giao thức Internet. Phối hợp nhiều nguồn dữ liệu trong một chuỗi dữ liệu đơn được gọi lă chia phiín (multiplexing). Dữ liệu chuyển tới từ mạng phải được chia phiín (be demultiplexed) tâch ra để chuyển tới nhiều xử lý. Để hoăn thănh điều năy IP sử dụng chỉ số giao thức để nhận ra giao thức truyền, vă giao thức truyền sử dụng chỉ số cổng để nhận ra ứng dụng.
Một văi giao thức vă chỉ số cổng được sử dụng để nhận ra well-known service. Well-known services lă giao thức mạng chuẩn, giống như FTP va TELNET nó được sử dụng phổ biến trong câc mạng. Chỉ số cổng vă chỉ số giao thức xâc định rõ tới well-known service lă văn bản trong Asigned Numbers RFC.
Hệ thống UNIX định nghĩa giao thức vă cổng trong một số tệp đơn.
3.1.2.1 Chỉ số giao thức (Protocol number)
Chỉ số giao thức lă một byte đơn trong Word thứ ba của datagram header. Giâ trị năy để nhận biết giao thức lớp trín của IP, nơi mă dữ liệu được truyền đi.
Trong hệ thống UNIX, chỉ số giao thức được định nghĩa trong tệp /etc/protocols. Tệp năy lă một bảng chứa tín giao thức vă chỉ số giao thức kết hợp với tín. Định dạng của bảng: mỗi dòng văo đơn bao gồm tín giao thức ngăn câch bởi dấu câch từ chỉ số giao thức. Chỉ số giao thức được ngăn câch bởi dấu câch từ bí danh (cho tín gọi) của giao thức. Chú thích của bảng bắt đầu với #
# Internet (IP) protocols #
ip 0 IP # Internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # internet group multicast protocol ggp 3 GGP # gateway-gateway protocol tcp 6 TCP # transmission control protocol pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram prptocol
idp 22 IDP # xns idp ipv6 41 IPV6 # IPv6
nd 77 ND # UNOFFICIAL net disk proto iclfxbm 78 ICLFXBM
eigrp 88 EIGRP# EIGRP
raw 255 RAW # raw IP packet max 256 MAX
Đđy lă nội dung của tệp /etc/protocols tại một workstation hiện thời. Câc chỉ số năy không phải lă lă toăn bộ. Nếu ta đề cập tới chỉ số giao thức đoạn của
Assgned Numbers RFC ta sẽ thấy nhiều hơn câc chỉ số giao thức. Tuy nhiín một hệ thống chỉ cần dùng câc chỉ số giao thức thực tế mă nó sử dụng. Thậm chí bảng trín lă nhiều hơn một workstation cụ thể cần, nhưng thím nó văo cũng không thiệt hại gì cả.
Chính xâc lă bảng trín có ý nghĩa gì? Khi một datagram được chuyển đến vă địa chỉ đích của nó khớp với địa chỉ IP. Lớp IP hiểu rằng datagram đê được chuyển đến lớp giao thức truyền phía trín nó. Để quyết định xem giao thức năo phải nhận datagram, IP sẽ tìm chỉ số giao thức của datagram. Sử dụng bảng trín có thể thấy rằng, nếu chỉ số giao thức của datagram lă 6, IP sẽ chuyển datagram
cho TCP. Nếu chỉ số giao thức lă 17, IP sẽ chuyển datagram cho UDP. TCP vă UDP lă hai dịch vụ lớp truyền mă ta quan tđm, nhưng tất cả danh sâch giao thức trong bảng sử dụng IPdatagram chuyển dịch vụ trực tiếp. IGMP lă một mở rộng IP cho kỹ thuật multicasting vă PUP lă giao thức gói tin giống với UDP.
3.1.2.2 Port Numbers
Sau khi IP truyền dữ liệu tới giao thức truyền, giao thức truyền sẽ gửi dữ liệu tới địa chỉ mây đích chính xâc (cũng gọi lă mây chủ). Mây năy nhận dạng bằng câc chỉ số cổng (chỉ số cổng năy có giâ trị lă 16 bit). “Source port number” của giao thức ứng dụng đê truyền dữ liệu vă “destination port number” của giao thức ứng dụng mă ở đó nhận dữ liệu đều được chứa trong Word đầu tiín phần
header của mỗi đoạn TCP vă gói tin UDP.
Trong hệ thống UNIX, chỉ số cổng được định nghĩa trong tệp /etc/services. Chỉ số cổng nhỏ hơn 256 dănh riíng cho “Well-know service” (giống như FTP vă TELNET) vă được định nghĩa trong Assigned Number RFC. Chỉ số cổng từ 256 ->1024 được sử dụng cho câc dịch vụ của UNIX, lă câc dịch vụ giống như rlogin, nó đê bắt đầu được phât triển cho hệ thống UNIX.
Chỉ số cổng lă duy nhất giữa câc giao thức lớp truyền, chỉ số đó chỉ duy nhất trong một giao thức truyền cụ thể. Trường hợp khâc TCP vă UDP có thể gân chỉ số cổng giống nhau. Đó lă sự phối hợp của giao thức vă chỉ số cổng để nhận dạng duy nhất khi xử lý dữ liệu cụ thể phải chuyển tới.
Một phần của tệp /etc/services được trình băy bín dưới. Địng dạng của tệp năy rất giống với tệp /etc/protocols. Mỗi dòng bắt đầu văo với tín của dịch vụ, tâch ra bởi dấu câch từ chỉ số cổng/giao thức cặp đôi kết hợp với dịch vụ. Chỉ số cổng được cặp đôi với tín giao thức truyền, bởi vì câc giao thức truyền khâc
nhau có thể sử dụng chỉ số cổng giống nhau. Sự kết hợp, ghĩp đôi giữa chỉ số cổng/giao thức cung cấp cho ta một danh sâch tín dịch vụ cụ thể.
Một số cổng dịch vụ: #Dịch vụ mạng kiểu Internet echo 7/udp echo 7/tcp systat 11/tcp netstat 15/tcp ftp-data 20/tcp ftp 21/tcp telnet 23/tcp smtp 25/tcp : mail time 37/tcp :timeserver time 37/udp :timeserver
name 42/udp :nameserver
whois 43/tcp :nicname
domain 53/udp domain 53/tcp
hostnames 101/tcp :hostname
#host specific functions
tftp 69/udp
rje 77/tcp
finger 79/tcp
link 87/tcp :ttylink
pop-2 109/tcp :post office uucp-path 117/tcp
nntp 119/tcp :usenec #Network news Transfer
ntp 123/tcp #NetworkTime Protocol
Bảng năy phối hợp với tệp /etc/protocols, cung cấp tất cả thông tin cần thiết để truyền dữ liệu tới ứng dụng cụ thể. Một datagram được chuyển đến đích được dựa trín cơ sở địa chỉ trong Word thứ năm của datagram header. IP sử dụng chỉ số giao thức trong Word thứ ba của datagram header, để chuyển dữ liệu từ datagram tới lớp giao thức truyền thích hợp. Word đầu tiín của dữ liệu được chuyển tới giao thức truyền gồm có chỉ số cổng đích, nó nói lín rằng giao thức truyền phải truyền dữ liệu tới một ứng dụng cụ thể năo.
Hình 3.2 Quâ trình xử lý truyền dữ liệu.
TELNET TCP Internet Protocol 128.66.12.2 6 23 Address 128.66.12.2 Protocol 6 Port 23 Word 5 Protocol number segment header word 1
3.1.2.3. Sockets
Well - known ports lă chỉ số cổng tiíu chuẩn mă câc mây từ xa có thể biết cổng năo kết nối tới dịch vụ mạng. Việc đơn giản năy lă xử lý kết nối bởi vì cả người gửi vă người nhận đều biết rằng dữ liệu sẽ đi tới một xử lý đặc biệt vă sử dụng một cổng đặc biệt. Ví dụ như tất cả câc hệ thống TELNET được cung cấp cổng 23.
Có một kiểu thứ hai của chỉ số cổng gọi lă dynamically allocated port. Giống như tín của nó dynamically allocated ports không được gân chỉ số trước. Chúng sẽ được gân chỉ số cổng để xử lý khi cần. Hệ thống bảo đảm rằng nó không gân chỉ số cổng giống nhau cho hai xử lý, vă câc chỉ số được gân ở trín lă chỉ số cổng chuẩn. Dynamically assigned ports cung cấp mềm dẻo cần thiết để hỗ trợ cho nhiều người sử dụng. Nếu một TELNET người dùng được gân cổng lă 23 cho cả hai cổng nguồn vă cổng đích, thì chỉ số cổng năo được gân cho TELNET người dùng thứ hai? Để nhận ra duy nhất câc kết nối cổng nguồn được gân một chỉ số cổng phđn phối động vă chỉ số cổng chuẩn well- known port number được gân cho cổng đích.
Trong ví dụ về TELNET, người sử dụng đầu tiín được cung cấp một chỉ số cổng nguồn ngẫu nhiín vă một chỉ số cổng đích lă 23(TELNET). Người sử dụng thứ hai được cung cấp một chỉ số cổng nguồn ngẫu nhiín khâc vă chỉ số cổng đích giống thế. Đó lă một cặp chỉ số cổng, nguồn vă đích, nó lă duy nhất để nhận ra mỗi kết nối mạng. Destination host nhận biết được cổng nguồn, bởi vì nó được cung cấp cả hai đoạn header TCP vă header UDP. Cả hai hosts biết cổng đích bởi vì nó lă well- known port.