TRƯỜNG ĐẠI HỌC ĐÀ LẠT
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ
ÁN
TÌM HIỂU VỀ CÁC VẤN ĐỀ LIÊN QUAN ĐẾN
TCP VÀ UDP
GVHD : Thầy Vũ Minh Quan
SVTH : Trần Thị Thắm - 1011835
Lớp : CTK34
Đà Lạt, 12/2013
LỜI CẢM ƠN
Để hoàn thành học phần “ Đồ Án ” này, em xin gửi lời cảm ơn chân thành
tới quý thầy giáo, cô giáo trường Đại học Đà Lạt nói chung và quý thầy, cô giáo
ở khoa Công nghệ thông tin nói riêng, đã nhiệt tình giảng dạy và giúp đỡ chúng
em trong suốt thời gian qua. Các quý thầy, cô giáo không những cho chúng em tri
thức khoa học mà còn giúp chúng em hiểu biết thêm nhiều điều về cuộc sống và
mở mang tầm nhìn ra thế giới xung quanh bằng chính tâm huyết nghề nghiệp và
kinh nghiệm sống của mình. Những kiến thức mà em tiếp thu được sẽ là hành
trang, là vốn sống phục vụ cho tương lai và mang theo suốt cuộc đời của chính
bản thân em.
Đặc biệt, em xin chân thành cảm ơn Thầy giáo Vũ Minh Quan – người đã
trực tiếp hướng dẫn, tận tình giúp đỡ em trong quá trình thực hiện nghiên cứu và
viết đề tài Đồ Án này. Thầy luôn luôn chia sẻ những kinh nghiệm cũng như tri
thức mà thầy có được giành cho chính những sinh viên của mình. Một lần nữa,
em chân thành cảm ơn thầy rất nhiều !
Mặc dù đã có nhiều cố gắng, song do khả năng còn hạn chế và do tài liệu
cũng như thời gian có hạn. Vì vậy cho nên đề tài của em không thể tránh khỏi
những thiếu sót, rất mong nhận được những ý kiến đóng góp quý báu của quý
thầy cô và các bạn giúp cho em có thể khắc phục và hoàn thiện đồ án một cách
tốt nhất và hoàn chỉnh nhất .
Em xin chân thành cảm ơn !
Nhận xét của giáo viên
Đà Lạt, ngày … tháng …… năm 2013
Giáo viên hướng dẫn
ĐỀ CƯƠNG THỰC HIỆN ĐỒ ÁN
Sinh viên thực hiện:
STT Họ và tên MSSV Lớp Email
1 Trần Thị Thắm 1011835 CTK3
4
Giáo viên hướng dẫn: Thầy Vũ Minh Quan
Mục tiêu:
Củng cố và nắm vững kiến thức cơ bản về TCP và UDP
Nội dung:
Tìm hiểu lý thuyết về giao thức TCP và UDP
Cơ chế hoạt động và nhiệm vụ của TCP và UDP với các giao thức
tầng ứng dụng và các tầng còn lại trong mô hình OSI
Phần mềm và công cụ sử dụng:
Phần mềm Packet Tracer để bắt gói tin cho TCP và UDP.
Dự kiến kết quả đạt được
Có những hiểu biết nhất định và chính xác về TCP và UDP
Đà Lạt, ngày … tháng … năm 2013
Giáo viên hướng dẫn SV Thực hiện
(Ký tên) (Ký tên)
Trần Thị Thắm
BCN Khoa Tổ trưởng Bộ môn
(Ký tên) (Ký tên)
MỤC LỤC
Trang
MỤC LỤC HÌNH
THUẬT NGỮ VIẾT TẮT
Từ viết
tắt
Thuật ngữ Tiếng Anh Thuật ngữ Tiếng Việt
ACK acknowledgement cơ chế báo nhận
ADCCP Advanced Data
Communications Control
Procedure
Các thủ tục điều khiển truyền số liệu tiên
tiến
OSI Open Systems
Interconnection Reference
Model
Mô hình tham chiếu kết nối các hệ thống
mở
SNA Systems Network
Architecture
SNA là một đặc tả gồm rất nhiều tài liệu
mô tả kiến trúc của mạng xử lý dữ liệu
phân tán.
HBA Host Bus Adapter thiết bị tiếp hợp kênh máy chủ
HDLC High level Data Link
Control
Giao thức điều khiển đường dữ liệu mức
cao
FDDI Fiber Distributed Data
Interface
Sợi phân phối dữ liệu giao diện
MAC Media Access Control Điều khiển Truy nhập Đường truyền
LLC Logical Link Control Điều khiển Liên kết Lôgic
IP Interner Protocol Giao thức internet
TCP Transmission Control
Protocol
Giao thức điều khiển truyền vận
UDP User Datagram Protocol Là một giao thức không tin cậy
FTP File Transfer
Protocol
Giao thức truyền File
SMTP Simple Mail Transfer
Protocol
Một giao thức TCP / IP được sử dụng
trong việc gửi và nhận e-mail
HTTP Hyper Text Transfer
Protocol
Giao thức chuyển giao siêu văn bản
TPDU Transport Protocol Data
Unit
khối số liệu giao thức truyền tải
DNS Domain Name
System
Hệ thống tên miền
IANA Internet Assigned Numbers
Authority
Đây là một tổ chức nổi tiếng
TELNET TErminaL NETwork Là một giao thức mạng
RTT round-trip time Là khoảng thời gian một tín hiệu hoặc
một gói tin chạy từ source đến
destination và quay ngược lại .
CRC cyclic redundancy check phương pháp kiểm soát lỗi mã dư vòng
MSS Maximum Segment Size Kích thước phân đoạn tối đa
RTT Round Trip Time thời gian khứ hồi
SNMP Simple Network
Management Protocol
Là một phương thức tầng ứng dụng giúp
dễ dàng trao đổi thông tin giữa các thiết
bị mạng, nó là 1 phần của TCP/IP.
DHCP Dynamic Host
Configuration Protocol
Là một giao thức cấu hình tự động địa
chỉ IP
NTP Network Time Protocol Là giao thức đồng bộ thời gian mạng
MDNS Microsoft Developer
Network Là một bộ công cụ trợ giúp lập trình
trong Visual Studio gồm 3 đĩa CD
BOOTP Bootstrap Protocol Là một giao thức mạng mà máy client sử
dụng để lấy địa chỉ IP từ một máy server
WAN Wide area network Mạng diện rộng
LAN Local area network Mạng cục bộ
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
MỞ ĐẦU
CHƯƠNG I : TỔNG QUAN
Ngày nay công nghệ thông tin ngày càng được ứng dụng nhiều trong đời sống. Vì
vậy vai trò của chiếc máy tính ngày càng được nâng cao, cùng với nó, các công nghệ
được từ những chiếc máy tính ngày càng được mở rộng ra nhiều lĩnh vực. Mạng máy tính
là một ngành khoa học mới được phát triển trong vài chục năm trở lại đây và đang trên
con đường phát triển mạnh mẽ. Muốn nắm bắt được công nghệ hiện đại trước hết phải
hiểu được bản chất của một hệ thống mạng máy tính - phương tiện không thể thiếu đối
với những người làm việc trong ngành Công nghệ thông tin. Mạng máy tính và cấu trúc
của nó đã được tạo ra như thế nào, thành phần của một mạng máy tính bao gồm những gì.
Sau đây chúng tôi sẽ trình bày nội dung để giải đáp những câu hỏi trên.
Trong các ngành tin học và viễn thông, tầng vận chuyển là tầng thứ tư trong bảy tầng của
mô hình OSI(Open Systems Interconnection Reference Model - Mô hình tham chiếu kết
nối các hệ thống mở).Tầng này chịu trách nhiệm đáp ứng các đòi hỏi về dịch vụ của tầng
phiên và đưa ra các yêu cầu dịch vụ đối với tầng mạng.
I. MÔ HÌNH OSI
Sự phát triển các mạng thời kỳ đầu không được tổ chức và diễn ra theo nhiều cách.
Những năm đầu cả thập niên 1980 đã chứng kiến sự gia tăng mạnh mẽ về số lượng và
kích thước của các mạng. Khi các công ty bắt đầu nhận thức được ưu điểm của việc sử
dụng công nghệ mạng, các mạng được thêm vào và được mở rộng nhanh chóng khi các
công nghệ mạng mới được giới thiệu .
Vào giữa thập niên 1980, các công ty bắt đầu vấp phải các khó khăn bởi sự mở
rộng nhanh chóng. Cũng giống như con người bất đồng ngôn ngữ đã gặp khó khăn khi
tiếp xúc với người khác, điều khó khăn cho các mạng sử dụng các đặc tả và hiện thực
khác nhau muốn trao đổi thông tin với nhau. Vấn đề khó khăn tương tự xảy ra vs các
công ty đã phát triển riêng hay một nhóm công ty kiểm soát tất cả việc sử dụng công
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 8
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
nghệ này. Các công nghệ mạng tuân thủ nghiêm ngặt các luật định riêng có thể không
thông tin được với các công nghệ tuân theo các quy định khác.
Để giải quyết vấn đề bất tương thích mạng, tổ chức tiêu chuẩn hóa quốc tế(ISO)
đã nghiên cứu các mô hình thiết lập mạng như Digital Equipment Corporation
networking(DECnet), Systems Network Architecture (SNA) và TCP/IP để tìm ra một số
luật định có thể áp dụng một cách tổng quát cho tất cả các mạng. Sử dụng nghiên cứu
này, ISO đã tạo ra một mô hình mạng, qua đó giúp các nhà cung cấp trang thiết bị tạo ra
các mạng có thể tương thích tốt với các mạng khác.
Mô hình tham chiếu liên kết các hệ thống mở OSI (Theo OSI reference model) đã
được công bố vào năm 1984, đây là một mô hình mạng có tính chất mô tả được tạo ra bởi
OSI. Nó cung cấp cho nhà chế tạo một tập tiêu chuẩn nhằm đảm bảo khả năng tương
thích và khả năng liên kết hoạt động tốt hơn giữa các công nghệ mạng khác nhau được
giới thiệu bởi các công ty trên khắp thế giới.
Mô hình tham chiếu OSI đã trở thành mô hình chính thức cho hoạt động truyền
thông mạng. Mặc dù vẫn tồn tại một số các mô hình khác, nhưng hầu hết các nhà chế tạo
đều liên hệ các sản phẩm của họ với mô hình tham chiếu OSI. Đây là thực tế khá đặc biệt
khi nhà chế tạo muốn huấn luyện khách hàng sử dụng sản phẩm của họ. Mô hình này
được xem như một công cụ tốt nhất sẵn có cho việc giảng dạy về truyền nhận dữ liệu trên
một mạng.
Hình 1: Mô hình OSI
Mô hình OSI (OPEN SYSTEMS
INTERCONNECTION REFERENCE MODEL, viết ngắn là OSI Model hoặc OSI
Reference Model) – tạm dịch là Mô hình tham chiếu kết nối các hệ thống mở – là một
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 9
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
thiết kế dựa vào nguyên lý tầng cấp, lý giải một cách trừu tượng kỹ thuật kết nối truyền
thông giữa các máy vi tính và thiết kế giao thức mạng giữa chúng. Mô hình này được
phát triển thành một phần trong kế hoạch kết nối các hệ thống mở (Open Systems
Interconnection) do ISO và IUT-T khởi xướng. Nó còn được gọi là mô hình bảy tầng của
OSI.
II. CHỨC NĂNG MÔ HÌNH OSI:
Mô hình OSI phân chia chức năng của một giao thức ra thành một chuỗi các tầng
cấp. Mỗi một tầng cấp có một đặc tính là nó chỉ sử dụng chức năng của tầng dưới nó,
đồng thời chỉ cho phép tầng trên sử dụng các chức năng của mình. Một hệ thống cài đặt
các giao thức bao gồm một chuỗi các tầng nói trên được gọi là “chồng giao thức”
(protocol stack). Chồng giao thức có thể được cài đặt trên phần cứng, hoặc phần mềm,
hoặc là tổ hợp của cả hai. Thông thường thì chỉ có những tầng thấp hơn là được cài đặt
trong phần cứng, còn những tầng khác được cài đặt trong phần mềm.
III. ĐIỂM THUẬN LỢI CỦA MÔ HÌNH OSI
• Chia nhỏ hoạt động phức tạp của mạng thành các phần công việc đơn giản.
• Cho phép các nhà thiết kế có khả năng phát triển trên từng modun chức năng.
• Cung cấp các khả năng định nghĩa các chuẩn giao tiếp có tính tương thích cao, khả
năng “plug and play” và tích hợp nhiều nhà cung cấp sản phẩm.
IV. CẤU TRÚC CỦA MÔ HÌNH OSI
Mô hình OSI bao gồm 7 lớp, mỗi lớp thực hiện chức năng riêng trong hoạt động kết nối
mạng. Trong đó: 4 lớp dưới định nghĩa cách thức thiết lập đầu cuối trên thiết bị phần
cứng để kết nối, trao đổi dữ liệu, 3 lớp trên để phát triển ứng dụng, giao tiếp người dùng.
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 10
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
Hình 2: Cấu trúc của mô hình OSI
4.1. Tầng vật lý (Physicallayer)
Lớp vật lý, lớp thấp nhất của mô hình OSI, là lớp có liên quan với truyền và nhận dòng
cấu trúc nguyên bit trên một phương tiện vật lý. Mô tả điện/quang, cơ khí và chức năng
giao diện phương tiện vật lý và thực hiện các tín hiệu cho tất cả các lớp cao hơn.Cung
cấp:
• Mã hóa dữ liệu: sửa đổi đơn giản tín hiệu số mẫu (1 và số 0) sử dụng máy tính đáp
ứng tốt hơn các đặc tính phương tiện vật lý và hỗ trợ đồng bộ hóa bit và khung. Nó
xác định:
o Trạng thái tín hiệu nào đại diện cho 1 nhị phân
o Làm thế nào mà nhận biết khi bắt đầu một "chút thời gian"
o Làm thế nào mà nhận delimits một khung
• Vật lý phần đính kèm trung bình, có nhiều khả năng trong môi trường:
o Một máy thu phát bên ngoài (MAU) sẽ được sử dụng để kết nối Trung
bình?
o Làm thế nào nhiều pins các kết nối có và những gì là mỗi pin được sử dụng
cho?
• Truyền kỹ thuật: xác định cho dù các bit mã hóa sẽ được truyền bởi baseband (kỹ
thuật số) hoặc băng thông rộng tín hiệu .
• Vật lý phương tiện truyền: truyền bit như điện hoặc tín hiệu quang học thích hợp
cho các phương tiện vật lý, và xác định:
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 11
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
o Những tùy chọn phương tiện vật lý có thể được sử dụng
o Bao nhiêu volt/db nên được sử dụng để đại diện cho một nhất định trạm
đậu tín hiệu, bằng cách sử dụng một phương tiện vật lý cho.
Tầng vật lý định nghĩa tất cả các đặc tả về điện và vật lý cho các thiết bị. Trong đó
bao gồm bố trí của các chân cắm (pin), các hiệu điện thế, và các đặc tả về cáp nối (cable).
Các thiết bị tầng vật lý bao gồm Hub, bộ lặp (repeater), thiết bị tiếp hợp mạng (network
adapter) và thiết bị tiếp hợp kênh máy chủ (Host Bus Adapter)- (HBA dùng trong mạng
lưu trữ (Storage Area Network)).
Chức năng và dịch vụ căn bản được thực hiện bởi tầng vật lý bao gồm:
• Thiết lập hoặc ngắt mạch kết nối điện (electrical connection) với một môi trường
truyền dẫn
• Tham gia vào quy trình mà trong đó các tài nguyên truyền thông được chia sẻ hiệu
quả giữa nhiều người dùng. Chẳng hạn giải quyết tranh chấp tài nguyên (contention)
và điều khiển lưu lượng.
• Điều biến (modulation), hoặc biến đổi giữa biểu diễn dữ liệu số (digital data) của
các thiết bị người dùng và các tín hiệu tương ứng được truyền qua kênh truyền thông
(communication channel).
Cáp (bus) SCSI song song hoạt động ở tầng cấp này. Nhiều tiêu chuẩn khác nhau của
Ethernet dành cho tầng vật lý cũng nằm trong tầng này, Ethernet nhập tầng vật lý với tầng
liên kết dữ liệu vào làm một. Điều tương tự cũng xảy ra đối với các mạng cục bộ như
Token ring, FDDI và IEEE 802.11.
4.2. Tầng liên kết dữ liệu (Data link layer)
Tầng liên kết dữ liệu cung cấp các phương tiện có tính chức năng và quy trình để
truyền dữ liệu giữa các thực thể mạng, phát hiện và có thể sửa chữa các lỗi trong tầng vật
lý nếu có. Cách đánh địa chỉ mang tính vật lý, nghĩa là địa chỉ (địa chỉ MAC) được mã
hóa cứng vào trong các thẻ mạng (network card) khi chúng được sản xuất. Hệ thống xác
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 12
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
định địa chỉ này không có đẳng cấp (flat scheme). Chú ý: Ví dụ điển hình nhất là
Ethernet. Những ví dụ khác về các giao thức liên kết dữ liệu (data link protocol) là các
giao thức HDLC, ADCCP dành cho các mạng điểm-tới-điểm hoặc mạng chuyển mạch
gói (packet-switched networks) và giao thức Aloha cho các mạng cục bộ. Trong các
mạng cục bộ theo tiêu chuẩn IEEE 802, và một số mạng theo tiêu chuẩn khác, chẳng hạn
FDDI, tầng liên kết dữ liệu có thể được chia ra thành 2 tầng con: tầng MAC (Media
Access Control – Điều khiển Truy nhập Đường truyền) và tầng LLC (Logical Link
Control – Điều khiển Liên kết Lôgic) theo tiêu chuẩn IEEE 802.2.
Tầng liên kết dữ liệu chính là nơi các cầu nối (bridge) và các thiết bị chuyển mạch
(switches) hoạt động. Kết nối chỉ được cung cấp giữa các nút mạng được nối với nhau
trong nội bộ mạng. Tuy nhiên, có lập luận khá hợp lý cho rằng thực ra các thiết bị này
thuộc về tầng 2,5 chứ không hoàn toàn thuộc về tầng 2.
4.3. Tầng mạng(Network Layer)
Tầng mạng cung cấp các phương tiện để truyền các đơn vị dữ liệu qua mạng thậm
chí một mạng của các mạng.
Hai chức năng quan trọng của mạng là chọn đường và chuyển tiếp. Tầng mạng
được đánh giá là phức tạp nhất trong số các tầng của mô hình OSI bởi vì nó phải đáp ứng
nhiều kiểu mạng và các dịch vụ cung cấp bởi nhiều mạng khác nhau. Một mạng chuyển
mạch bao gồm nhiều nút và nối với nhau bởi các liên kết dữ liệu. Một gói dữ liệu được
truyền từ một hệ thống mở tới một hệ thống mở khác phải được chọn đường qua một
chuỗi các nút. Mỗi nút nhận gói dữ liệu và chuyển tiếp tới một nút khác. Như vậy mỗi
nút trung gian đều có chức năng chuyển tiếp và chọn đường nằm ở tầng mạng.
Tầng mạng thực hiện chức năng định tuyến.Các thiết bị định tuyến (router) hoạt
động tại tầng này — gửi dữ liệu ra khắp mạng mở rộng, làm cho liên mạng trở nên khả
thi (còn có thiết bị chuyển mạch (switch) tầng 3, còn gọi là chuyển mạch IP). Đây là một
hệ thống định vị địa chỉ lôgic (logical addressing scheme) – các giá trị được chọn bởi kỹ
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 13
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
sư mạng. Hệ thống này có cấu trúc phả hệ. Ví dụ điển hình của giao thức tầng 3 là giao
thức IP.
Ngoài ra tầng mạng còn có một số chức năng như thiết lập, duy trì và giải phóng
các liên kết logic, kiểm soát lỗi, kiểm soát luồng dữ liệu, phân kênh, cắt hợp dữ liệu.
4.4. Tầng vận chuyển (Transport Layer)
Tầng vận chuyển là tầng cao nhất trong nhóm 4 tầng thấp của mô hình OSI. Nó
cung cấp dịch vụ truyền dữ liệu sao cho các chi tiết cụ thể của phương tiện truyền thông
sử dụng bên dưới trở nên trong suốt đối với các tầng cao. Chính vì thế nên tầng này rất
phức tạp. Nó phải có khả năng tương thích với một phạm vi rất rộng các đặc trưng của
mạng. Phải biết được yêu cầu chất lượng dịch vụ của người sử dụng, biết được khả năng
cung cấp dịch vụ của mạng bên dưới. Nói một cách cụ thể thì tầng vận chuyển cung cấp
mức kết nối bổ sung cho tầng trên, bảo đảm gói truyền không phạm lỗi. Tầng này đóng
gói thông điệp, chia thông điệp dài thành nhiều gói và cách hợp gói nhỏ thành một bộ.
Tại nơi nhận thì tầng này mở gói lắp ghép thành thông điệp gốc. Nó kiểm soát lưu lượng,
xử lý lỗi và các thao tác truyền nhận gói.Tầng vận chuyển cung cấp dịch vụ chuyên dụng
chuyển dữ liệu giữa các người dùng tại đầu cuối, nhờ đó các tầng trên không phải quan
tâm đến việc cung cấp dịch vụ truyền dữ liệu đáng tin cậy và hiệu quả. Tầng vận chuyển
kiểm soát độ tin cậy của một kết nối được cho trước. Một số giao thức có định hướng
trạng thái và kết nối (state and connection orientated). Có nghĩa là tầng vận chuyển có thể
theo dõi các gói tin và truyền lại các gói bị thất bại. Một ví dụ điển hình của giao thức
tầng 4 là TCP. Tầng này là nơi các thông điệp được chuyển sang thành các gói tin TCP
hoặc UDP. Ở tầng 4 địa chỉ được đánh là address ports, thông qua address ports để phân
biệt được ứng dụng trao đổi.
Tầng vận chuyển, đảm bảo rằng thư được gửi lỗi-Việt, theo thứ tự, và không có
thiệt hại. Nó làm giảm các giao thức lớp cao hơn từ bất kỳ mối quan tâm với việc chuyển
giao dữ liệu giữa họ và đồng nghiệp của họ.
Kích thước và độ phức tạp của một giao thức giao thông vận tải phụ thuộc vào loại bản
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 14
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
ghi dịch vụ, nó có thể nhận được từ các lớp mạng. Cho một đáng tin cậy mạng lớp với
khả năng mạch ảo, một vận chuyển tối thiểu lớp là cần thiết. Nếu lớp mạng là không
đáng tin cậy và/hoặc chỉ hỗ trợ cùng, giao thức giao thông vận tải nên bao gồm mở rộng
phát hiện lỗi và phục hồi.
Tầng vận chuyển cung cấp:
• Tin thư thoại phân khúc: chấp nhận thư từ các lớp (phiên) ở trên nó, chia thư thành
các đơn vị nhỏ hơn (nếu không phải đã nhỏ đủ), và vượt qua các đơn vị nhỏ hơn
xuống mạng lớp.
• Thư thừa nhận: cung cấp đáng tin cậy kết thúc để kết thúc tin thư thoại phân phối
với acknowledgments.
• Thông báo điều khiển lưu lượng truy cập: cho biết các trạm phát sóng để "trở lại-
off" khi bộ đệm thông báo không có sẵn.
• Phiên làm việc ghép kênh: multiplexes một số thông báo dòng, hoặc buổi lên một
liên kết hợp lý và giữ theo dõi của thư nào thuộc về phiên họp đó (xem tầng phiên).
Thông thường, tầng vận chuyển có thể chấp nhận tin thư thoại tương đối lớn, nhưng
cũng có những giới hạn kích thước thư nghiêm ngặt áp đặt bởi các mạng (hoặc lớp thấp).
Do đó, tầng vận chuyển phải chia các tin thư thoại vào các đơn vị nhỏ hơn, hoặc khung
prepending một tiêu đề cho mỗi khung.
Thông tin tiêu đề lớp giao thông vận tải sau đó phải bao gồm kiểm soát thông tin, chẳng
hạn như tin thư thoại Bắt đầu và cờ thư kết thúc, để kích hoạt tầng vận chuyển bên kia để
nhận ra ranh giới tin thư thoại. Ngoài ra, nếu các lớp thấp hơn không duy trì chuỗi, các
tiêu đề giao thông vận tải phải chứa thông tin chuỗi để cho phép các tầng vận chuyển vào
cuối nhận để nhận được các mảnh lại với nhau theo thứ tự đúng trước khi bàn giao tin thư
thoại nhận được vào các lớp ở trên.
Kết thúc để kết thúc lớp
Không giống như các lớp thấp hơn "con" giao thức mà nằm giữa ngay lập tức các
nút chọn một lân cận, tầng vận chuyển và các lớp ở trên là đúng sự thật "nguồn đến" hoặc
kết thúc để kết thúc lớp, và là không quan tâm với các chi tiết của các thiết bị thông tin
liên hệ cơ bản. Giao thông vận tải phần mềm lớp (và phần mềm trên nó) trên các nguồn
trạm mang một cuộc trò chuyện với các phần mềm tương tự trên điểm đến bởi sử dụng
tiêu đề thư và kiểm soát thư.
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 15
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
4.5. Tầng phiên (Session Layer)
Tầng phiên kiểm soát các (phiên) hội thoại giữa các máy tính. Tầng này thiết lập,
quản lý và kết thúc các kết nối giữa trình ứng dụng địa phương và trình ứng dụng ở xa.
Tầng này còn hỗ trợ hoạt động song công (duplex) hoặc bán song công (half-duplex)
hoặc đơn công (Single) và thiết lập các qui trình đánh dấu điểm hoàn thành
(checkpointing) – giúp việc phục hồi truyền thông nhanh hơn khi có lỗi xảy ra, vì điểm
đã hoàn thành đã được đánh dấu – trì hoãn (adjournment), kết thúc (termination) và khởi
động lại (restart). Mô hình OSI uỷ nhiệm cho tầng này trách nhiệm “ngắt mạch nhẹ
nhàng” (graceful close) các phiên giao dịch (một tính chất của giao thức kiểm soát vận
chuyển TCP) và trách nhiệm kiểm tra và phục hồi phiên, đây là phần thường không được
dùng đến trong bộ giao thức TCP/IP.
4.6. Tầng trình diễn (Presentation Layer)
Lớp trình diễn hoạt động như tầng dữ liệu trên mạng. lớp này trên máy tính truyền
dữ liệu làm nhiệm vụ dịch dữ liệu được gửi từ tầng Application sang dạng Fomat chung.
Và tại máy tính nhận, lớp này lại chuyển từ Fomat chung sang định dạng của tầng
Application. Lớp thể hiện thực hiện các chức năng sau: – Dịch các mã kí tự từ ASCII
sang EBCDIC. – Chuyển đổi dữ liệu, ví dụ từ số interger sang số dấu phảy động. – Nén
dữ liệu để giảm lượng dữ liệu truyền trên mạng. – Mã hoá và giải mã dữ liệu để đảm bảo
sự bảo mật trên mạng.
4.7. Tầng ứng dụng (Application Layer)
Tầng ứng dụng là tầng gần với người sử dụng nhất. Nó cung cấp phương tiện cho
người dùng truy nhập các thông tin và dữ liệu trên mạng thông qua chương trình ứng
dụng. Tầng này là giao diện chính để người dùng tương tác với chương trình ứng dụng,
và qua đó với mạng. Một số ví dụ về các ứng dụng trong tầng này bao gồm Telnet, Giao
thức truyền tập tin FTP và Giao thức truyền thư điện tử SMTP, HTTP, X.400 Mail
remote.
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 16
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
Chương 2: TẦNG VẬN CHUYỂN (TRANSPORT LAYER)
I. VAI TRÒ VÀ CÁC CHỨC NĂNG CỦA TẦNG VẬN CHUYỂN
Tầng vận chuyển (transport layer) là tầng cơ sở mà ở đó một máy tính của mạng
chia sẻ thông tin với một máy khác. Tầng vận chuyển đồng nhất mỗi trạm bằng một địa
chỉ duy nhất và quản lý sự kết nối giữa các trạm. Tầng vận chuyển cũng chia các gói tin
lớn thành các gói tin nhỏ hơn trước khi gửi đi. Thông thường tầng vận chuyển đánh số
các gói tin và đảm bảo chúng chuyển theo đúng thứ tự.
Tầng vận chuyển cung cấp các chức năng cần thiết giữa tầng mạng và các tầng trên,
nó là tầng cao nhất có liên quan đến các giao thức trao đổi dữ liệu giữa các hệ thống mở.
Nó cùng các tầng dưới cung cấp cho người sử dụng các phục vụ vận chuyển.
Tầng vận chuyển là tầng cuối cùng chịu trách nhiệm về mức độ an toàn trong truyền dữ
liệu nên giao thức tầng vận chuyển phụ thuộc rất nhiều vào bản chất của tầng mạng.
Người ta chia giao thức tầng mạng thành các loại sau:
+) Mạng loại A: Có tỷ suất lỗi và sự cố có báo hiệu chấp nhận được (tức là chất
lượng chấp nhận được). Các gói tin được giả thiết là không bị mất. Tầng vận chuyển
không cần cung cấp các dịch vụ phục hồi hoặc sắp xếp thứ tự lại.
+) Mạng loại B: Có tỷ suất lỗi chấp nhận được nhưng tỷ suất sự cố có báo hiệu lại
không chấp nhận được. Tầng vận chuyển phải có khả năng phục hồi lại khi xảy ra
sự cố.
+)Mạng loại C: Có tỷ suất lỗi không chấp nhận được (không tin cậy) hay là giao
thức không liên kết. Tầng vận chuyển phải có khả năng phục hồi lại khi xảy ra lỗi
và sắp xếp lại thứ tự các gói tin.
Dòng dữ liệu tầng trên tầng vận chuyển là một kết nối logic giữa các điểm cuối của
mạng, và cung cấp các dịch vụ vận chuyển từ một trạm đến một đích nào đó, nên
còn được xem như là dịch vụ cuối đến cuối.
II. CÁC GIAO THỨC CHUẨN CHO TẦNG VẬN CHUYỂN
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 17
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
Trên cơ sở loại giao thức tầng mạng chúng ta có 5 lớp giao thức tầng vận chuyển đó là:
+) Giao thức lớp 0 (Simple Class - lớp đơn giản): cung cấp các khả năng rất đơn giản để
thiết lập liên kết, truyền dữ liệu và hủy bỏ liên kết trên mạng "có liên kết" loại A. Nó có
khả năng phát hiện và báo hiệu các lỗi nhưng không có khả năng phục hồi.
+) Giao thức lớp 1 (Basic Error Recovery Class - Lớp phục hồi lỗi cơ bản): dùng với các
loại mạng B, ở đây các gói tin (TPDU) được đánh số. Ngoài ra giao thức còn có khả
năng báo nhận cho nơi gửi và truyền dữ liệu khẩn. So với giao thức lớp 0 giao thức lớp 1
có thêm khả năng phục hồi lỗi.
+) Giao thức lớp 2 (Multiplexing Class - lớp dồn kênh) là một cải tiến của lớp 0 cho
phép dồn một số liên kết chuyển vận vào một liên kết mạng duy nhất, đồng thời có thể
kiểm soát luồng dữ liệu để tránh tắc nghẽn. Giao thức lớp 2 không có khả năng phát hiện
và phục hồi lỗi. Do vậy nó cần đặt trên một tầng mạng loại A.
+) Giao thức lớp 3 (Error Recovery and Multiplexing Class - lớp phục hồi lỗi cơ bản và
dồn kênh) là sự mở rộng giao thức lớp 2 với khả năng phát hiện và phục hồi lỗi, nó cần
đặt trên một tầng mạng loại B.
+) Giao thức lớp 4 (Error Detection and Recovery Class - Lớp phát hiện và phục hồi lỗi)
là lớp có hầu hết các chức năng của các lớp trước và còn bổ sung thêm một số khả năng
khác để kiểm soát việc truyền dữ liệu.
III. CÁC DỊCH VỤ VẬN CHUYỂN
Tầng vận chuyển cung cấp truyền thông logic giữa các tiến trình ứng dụng chạy trên
các trạm khác nhau.
Các giao thức vận chuyển chạy trên các hệ thống đầu cuối.
Bên gửi: chia các thông điệp tầng ứng dụng thành các đoạn, rồi đưa chúng xuống cho
tầng mạng.
Bên nhận: ráp nối các đoạn lại thành các thông điệp rồi đưa lên cho tầng ứng dụng.
Có nhiều giao thức ở tầng vận chuyển để phục vụ cho tầng ứng dụng.
TCP và UDP là 2 giao thức ở tầng vận chuyển được sử dụng nhiều trên internet.
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 18
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
IV. THÀNH PHẦN CỦA GIAO THỨC VẬN CHUYỂN
1. Đánh địa chỉ (Addressing).
1.1. Port - Cổng giao tiếp.
Trong giao thức TCP và UDP, port là số nguyên 16 bit được chèn vào phần đầu
(header) của mỗi gói tin. Chẳng hạn, phía người dùng (client) có thể yêu cầu một máy
chủ nào đó trên Internet cung cấp dịch vụ chia sẻ tập tin (file) qua máy chủ FTP. Để đáp
ứng yêu cầu này, lớp phần mềm TCP trên máy của bạn phải nhận diện được port số 21
(đăng ký sẵn cho dịch vụ FTP) trong số các port 16 bit số nguyên được ghép theo gói tin
yêu cầu của bạn. Tại máy chủ, lớp TCP sẽ đọc port 21 và chuyển tiếp yêu cầu đến máy
chủ FTP.
Hay nói cách khác, với một địa chỉ IP, chúng ta chỉ có thể xác định được một máy
tính duy nhất trên mạng, tuy nhiên khi một máy tính chạy nhiều dịch vụ khác nhau thì
chúng phải được phân biệt bởi khái niệm port. Ví dụ, máy chủ A (Server A) có dịch vụ
web, DNS và FTP server, có địa chỉ IP là 210.245.126.14. Các máy tính khác khi muốn
đến Server A thì cần đến địa chỉ IP (hay tên miền), nhưng để phân biệt dịch vụ là web,
DNS hay FTP, cần xác định thêm port. Chẳng hạn, khi máy B muốn truy nhập dịch vụ
web trên server A, trong gói tin gửi đi, IP đích sẽ là 210.245.126.14 và port đích sẽ là 80.
Cùng lúc đó có máy C truy nhập đến dịch vụ DNS trên server A thì trong gói tin IP gửi
đi, IP đích vẫn là 210.245.126.14 nhưng port đích sẽ là 53. Tương tự, máy D truy cập đến
dịch vụ FTP trên server A, IP đích sẽ là 210.245.126.14 và port là 21. Thông thường các
ứng dụng thường ẩn các port này để giảm tính phức tạp của giao thức TCP/IP.
Có tất cả 65535 cổng (port) và được chia thành 3 đoạn: Well Known Port (WKP),
Registered Port (RP) và Dynamic/Private Port (D/PP). WKP gồm các port từ 0 đến 1023
và được giữ cho các ứng dụng phổ biến như web (port 80), mail (port 25), ftp (port 21)
RP gồm các port từ 1024 đến 49151. Còn D/PP là các port từ 49152 đến 65535. IANA
qui định WKP và RP phải được đăng ký với IANA (iana.org) trước khi sử dụng.
Các cổng phổ biến (Well Known Port 0-1023)
Trong khoảng từ 0-1023, hầu hết các port đã được đăng ký
(1)
. Với mạng cá nhân, muốn
triển khai được các dịch vụ, chẳng hạn web server, ftp server hệ thống của bạn phải mở
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 19
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
các port tương ứng. Ứng với mỗi thiết bị định tuyến (router) của từng hãng, bạn sẽ có
cách mở port khác nhau. Để dễ dàng mở các port cũng như hướng dẫn chi tiết trên từng
router.
Một điều cần lưu ý trước khi mở port là bạn nên kiểm tra lại hệ thống đã mở sẵn cổng
này để biết máy của bạn đang sử dụng và "lắngnghe" những port nào.
- Danh sách các port thông dụng.
Hình 3: Danh sách các port thông dụng
Cổng đăng ký (Registered port: 1024–49151)
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 20
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
Các cổng TCP và UDP có số từ 1024 đến 49151 được gọi là các cổng đăng ký
(registered ports). IANA quản lý danh sách các dịch vụ sử dụng các port trong tầm số này
để giảm thiểu việc sử dụng trùng nhau. Không giống nhu các port có số thấp hơn (0-
1023), những nhà phát triển dịch vụ TCP/UDP mới có thể chọn một số mới để đăng ký
với IANA thay vì dùng trùng số đã đăng ký.
Cổng động / Cổng riêng (Dynamic/ Private Port: 49152–65535)
Các cổng TCP và UDP có số bắt đầu từ 49152 đến 65535 được gọi là port động
(dynamic port), port riêng (private port) hay port tạm (ephemeral port). IANA không
quản lý Dynamic port cũng như không giới hạn việc sử dụng của người dùng. Các dịch
vụ có thể chọn một hoặc vài port ngẫu nhiên miễn phí trong tầm số này khi cần truyền
trên nhiều socket.
Ứng dụng
Bạn phải cho biết server đang lắng nghe (listening) ở port nào để client biết và gửi
yêu cầu. Router trong mô hình bên dưới giữ vai trò như một người gác cổng. Nó sẽ mở
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 21
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
các port dịch vụ trong mạng.
Hình 4: Ứng dụng trong cuộc sống
1.2.TELNET.
TELNET (viết tắt của TErminaL NETwork) là một giao thức mạng (network protocol)
được dùng trên các kết nối với Internet hoặc các kết nối tại mạng máy tính cục bộ LAN.
TELNET là một giao thức khách-chủ (client-server protocol), dựa trên nền TCP, và
phần khách (người dùng) thường kết nối vào cổng 23 với một máy chủ, nơi cung cấp
chương trình ứng dụng thi hành các dịch vụ. Người ta cũng có thể sử dụng chương trình
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 22
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
ứng dụng TELNET, để thiết lập một kết nối TCP tương tác của giao thức, và đồng thời
còn có thể dùng nó để định nghĩa những thực thi mở rộng. Rất nhiều mở rộng của giao
thức đã hoàn thành và một số những thực thi trong đó đã được chấp nhận là tiêu chuẩn
của Internet. Tài liệu số 27 đến 32 của IETF STD định nghĩa những mở rộng của
TELNET (phần đông trong số đó là những cái đang được dùng rất phổ biến). Trong số
những mở rộng còn lại, những cái có tác dụng nhất, rất có thể là những cái vốn là những
dự thảo tiêu chuẩn, lại là những cái đang trên đà trở thành tiêu chuẩn của IETF.
Chức năng.
- Mục đích của giao thức TELNET là cung cấp một phương tiện truyền thông chung
chung, có tính lưỡng truyền, dùng độ rộng 8 bit, định hướng byte.
- TELNET thường được dùng để cung cấp những phiên giao dịch đăng nhập, giữa các
máy trên mạng Internet, dùng dòng lệnh có tính định hướng người dùng. Tên của nó có
nguồn gốc từ hai chữ tiếng Anh "telephone network" (mạng điện thoại), vì chương trình
phần mềm được thiết kế, tạo cảm giác như một thiết bị cuối được gắn vào một máy tính
khác.
2. Thiết lập kết nối (Connection establishment).
Thiết lập một kết nối tưởng chừng là một công việc dễ dàng, nhưng thực sự nó rất
phức tạp. Thoạt nhìn, nó là phương tiện truyền tải để gửi một TPDU (Transport Protocol
Data Unit) yêu cầu kết nối đến đích và chờ đợi cho một kết nối chấp nhận trả lời. Vấn đề
xảy ra khi cả mạng có thể bị mất, lưu trữ và trùng lặp các gói tin. Việc này gây ra những
rắc rối nghiêm trọng.
Giả sử rằng subnet sử dụng các datagram bên trong và mỗi gói tin được truyền theo
một route khác nhau. Một vài gói tin có thể bị kẹt khi tắc nghẽn xảy ra bên trong subnet
và phải mất 1 khoảng thời gian để đến. Điều đó có nghĩa là chúng bị giữ lại trong subnet
và có thể thoát ra được vào một thời điểm nào đó sau tắc nghẽn. Để giải quyết vấn đề này
chúng ta đưa ra 2 cách sau:
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 23
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
Cách thứ nhất là sử dụng địa chỉ dùng 1 lần. Trong phương pháp này, cứ mỗi lần địa
chỉ vận chuyển được yêu cầu thì một cái mới được tạo ra. Khi một kết nối được giải
phóng, địa chỉ được bỏ đi và không bao giờ sử dụng một lần nữa .
Cách thứ hai là cung cấp cho mỗi kết nối một định danh kết nối (connection
identifier) ( ví dụ: một số thứ tự tăng lên cho mỗi kết nối được thành lập) được lựa
chọn bởi bên khởi xướng, và được đặt trong mỗi TPDU, bao gồm cả một yêu cầu
kết nối. Sau khi mỗi kết nối được giải phóng, mỗi đơn vị vận tải(transport entity) có
thể cập nhật một bảng liệt kê các kết nối lỗi thời. Bất cứ khi nào một yêu cầu kết nối
đến, nó sẽ kiểm tra kết nối đó với bảng để xem nó có thuộc về một kết nối nào trước
đó đã được giải phóng hay không.
Đáng tiếc là chương trình này có một lỗ hổng cơ bản: nó đòi hỏi mỗi transport entity
cần 1 lượng tiền nhất định để duy trì những thông tin lịch sử vô thời hạn. Nếu máy gặp sự
cố và dữ liệu bị mất, nó không còn khả năng nhận dạng kết nối đã được sử dụng.
Thay vào đó chúng ta cần có một chiến thuật khác. Thay vì cho các gói tin tồn tại mãi
mãi, chúng ta phải tạo ra một cơ chế loại bỏ các tập tin cũ mà vẫn còn hobbling về. Nếu
chúng ta biết chắc chắn rằng gói tin ấy tồn tại không quá một khoảng thời gian nào đó,
vấn đề quản lí sẽ trở nên dễ dàng hơn rất nhiều.
Với vòng đời của gói tin bị chặn, ta có thể thiết lập kết nối một cách an toàn. Phương
pháp mô tả dưới đấy do Tomlinson(1975). Phương pháp này tiếp tục được tinh chế bởi
Sunshine Dalal (1978). Biến thể của nó được sử dụng rộng rãi trong thực tế, kể cả trong
giao thức TCP.
Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bước (3-way handshake).
Trước khi client thử kết nối với một server, server phải đăng ký một cổng và mở cổng đó
cho các kết nối: đây được gọi là mở bị động. Một khi mở bị động đã được thiết lập thì
một client có thể bắt đầu mở chủ động. Để thiết lập một kết nối, quy trình bắt tay 3 bước
xảy ra như sau:
3. Quy trình bắt tay 3 bước (3-way handshake).
Quy trình bắt tay 3 bước (3-way handshake) :
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 24
Báo Cáo Đồ Án “ Tìm hiểu về các vấn đề liên quan đến TCP và UDP “
Trước khi client thử kết nối với một server, server phải đăng ký một cổng và mở cổng
đó cho các kết nối: đây được gọi là mở bị động. Một khi mở bị động đã được thiết lập thì
một client có thể bắt đầu mở chủ động. Để thiết lập một kết nối, quy trình bắt tay 3 bước
xảy ra như sau:
Hình 5: Quá trình bắt tay 3 bước của TCP
- Bước 1: Client yêu cầu mở cổng dịch vụ bằng cách gửi gói tin SYN (gói tin TCP) tới
server, trong gói tin này, tham số sequence number được gán cho một giá trị ngẫu nhiên
X.
- Bước 2: Server hồi đáp bằng cách gửi lại phía client bản tin SYN-ACK, trong gói tin
này, tham số acknowledgment number được gán giá trị bằng X + 1, tham số sequence
number được gán ngẫu nhiên một giá trị Y
- Bước 3: Để hoàn tất quá trình bắt tay ba bước, client tiếp tục gửi tới server bản tin
ACK, trong bản tin này, tham số sequence number được gán cho giá trị bằng X + 1 còn
tham số acknowledgment number được gán giá trị bằng Y + 1
Tại thời điểm này, cả client và server đều được xác nhận rằng, một kết nối đã được
thiết lập.
GVHD: Thầy Vũ Minh Quan SVTH: Trần Thị Thắm - 1011835
Trang 25