chia se ae nhe
Trang 1Chơng I Giao thức TCP/IP
CHơNG I GIAO THỉC TCP/IP 2
1.G I I Í THI ệ U TCP/IP - GIAO THỉC INTERNET 2
1.K I ế N TRểC CẹA TCP/IP 3
Kiến trúc của TCP/IP 3
Cơ chế địa chỉ Internet 7
Địa chỉ lớp A 7
Địa chỉ lớp B 8
Địa chỉ lớp C 8
Mạng con và Subnet mask 9
Tầ NG M ạ NG (N ETWORK L AYER ) 10
Mạng Ethernet và IEEE 802.3 11
Mạng Token-Pasing Rings (IEEE 802.5) 11
Mạng Token-Passing Busses (IEEE 802.4) 12
Tầ NG I NTERNET (I NTERNET L AYER ) 13
Gói tin IP 13
Thuật toán dẫn đờng 15
Dẫn đờng trực tiếp 16
Dẫn đờng gián tiếp 18
Thuật toán 19
Cơ chế thông báo lỗi (Internet Control Message Protocol - ICMP) 21
Gói tin ICMP 21
Điều khiển dòng dữ liệu 21
Thông báo lỗi 22
Định hớng lại 22
Kiểm tra trạm làm việc 22
T ầ NG GIAO V ậ N 23
Giao thức không kết nối (User Datagram Protocol - UDP) 23
Gói thông tin UDP 23
Phân kênh, hợp kênh và Ports 24
Giao thức điều khiển truyền tin (Transmission Control Protocol - TCP) 26
TCP Segment 28
Cổng, kết nối và điểm kết nối 29
Tầ NG ỉNG DễNG CẹA TCP/IP 30
Dịch vụ tên miền (Domain Name Server - DNS) 31
?I.1 Đăng nhập từ xa (Telnet) 33
?I.2 Th điện tử (Electronic Mail) 33
?I.3 Truyền tệp (File Transfer Protocol - FTP) 35
?I.4 Nhóm tin (News groups) 35
?I.5 Tìm kiếm tệp (Archie) 36
?I.6 Tra cứu thông tin theo thực đơn (Gopher) 36
?I.7 Tìm kiếm thông tin theo chỉ số (WAIS) 36
?I.8 Siêu văn bản (WWW) 36
CHơNG II XâY D NG ỉNG DễNG Ù 37
?I G IAO DI ệ N L ậ P TR ì NH 37
?I.1 Giao diện lập trình 37
?I.2 Network I/O và file I/O 38
?I.3 Làm việc với Shocket 39
?I.3.1 socket 40
?I.3.2 Địa chỉ Socket 40
?I.3.3 Một số lời gọi tạo lập socket 42
?I.3.4 Một số lời gọi gửi dữ liệu qua socket 45
?I.3.5 Một số lời gọi nhận dữ liệu từ socket 47
?II Mô H ì NH C LIENT -S ERVER 47
?II.1 Mô hình Client-Server sử dụng dịch vụ hớng kết nối 48
?II.2 Mô hình Client-Server sử dụng dịch vụ không kết nối 49
?III X â Y D NG Ù CH ơ NG TR ì NH 50
Trang 2Chơng I Giao thức TCP/IP
1 Giới thiệu TCP/IP - giao thức internet
Vào cuối những năm 1960 và 1970, Trung tâm nghiên cứu cấp cao (Advanced Research Projects Agency - ARPA) thuộc bộ quốc phòng Mĩ (Department of Defense - DoD) đợc giao trách nhiệm phát triển mạng APARNET Mạng APARNET bao gồm những tổ chức quân đội, các trờng đại học và các tổ chức nghiên cứu và đợc dùng để hỗ trợ cho những dự án nghiên cứu khoa học và quân
đội (Ngày nay, ARPA đợc gọi là DARPA) Năm 1984, DoD chia ARPANET ra thành 2 phần ARPANET sử dụng cho nghiên cứu khoa học và MILNET sử dụng cho quân đội Đầu những năm 1980, một bộ giao thức mới đợc đa ra làm giao thức chuẩn cho mạng ARPANET và các mạng của DoD mang tên DARPA
TCP/IP.
Năm 1987, tổ chức nghiên cứu quốc gia Hoa Kỳ (National Science Foundation - NSF) tài trợ cho việc kết nối 6 trung tâm siêu tính trên toàn liên bang lại với nhau thành một mạng với tên gọi NSFNET Về mặt vật lý, mạng này kết nối 13 điểm làm việc bằng đ- ờng điện thoại cao tốc đợc gọi là NSFNET backbone Khoảng 8 đờng backbone đã đợc xây dựng NSFNET đợc mở rộng với hàng chục mạng địa phơng kết nối vào nó và kết nối vào mạng Internet của DARPA, cả NSFNET và các mạng con của nó đều sử dụng
bộ giao thức TCP/IP.
Có một số u điểm của TCP/IP nh sau:
hệ điều hành Bởi vì nó đợc hỗ trợ bởi nhiều nhà cung cấp, TCP/IP lý tởng cho việc hợp nhất phần cứng và phần mềm khác nhau, ngay cả khi truyền thông trên Internet Sự độc lập rành mạch với phần cứng vật lý của mạng cho phép TCP/IP hợp nhất các mạng khác nhau TCP/IP có thể chạy trên mạng Ethernet, mạng Token ring, mạng quay số (Dial-up line), mạng X.25 mạng ảo và mọi loại môi trờng vật lý truyền thông
địa chỉ trên mạng ngay cả khi đó là mạng toàn cầu Internet
Trang 3• Tiêu chuẩn hoá mức cao của giao thức phù hợp với ích lợi của dịch vụ ngời dùng Đợc tích hợp vào hệ điều hành UNIX, hỗ trợ mô hình client-server, mô hình mạng bình đẳng, hỗ trợ kỹ thuật dẫn đờng động.
DARPA hỗ trợ việc nghiên cứu kết nối nhiều loại mạng khác nhau lại thành một mạng toàn cầu Internet Ngoài việc sử dụng cho tất cả các máy trên Internet, TCP/IP còn đợc sử dụng trong mạng nội bộ của một số tổ chức chính phủ hoặc thơng mại, những mạng này gọi là Intranet TCP/IP có thể kết nối một số lợng lớn các máy tính (150.000 máy trên nớc Mĩ, Châu Âu, Châu á) hay chỉ kết nối hai máy tính trong phòng làm việc
Chúng ta sẽ nghiên cứu về bộ giao thức truyền thông TCP/IP sau đây
1 Kiến trúc của TCP/IP
Kiến trúc của TCP/IP
Mặc dầu có nhiều giao thức trong bộ giao thức truyền thông TCP/IP, hai giao thức quan trọng nhất đợc lấy tên đặt cho bộ giao thức này là TCP (Transmission Control Protocol) và IP (Internet Protocol)
TCP/IP đợc phân làm 4 tầng
Việc phân tầng này đảm bảo một số nguyên tắc sau:
chuẩn hoá quốc tế
chơng trình con là ít)
Trang 4• Số mức phải đủ lớn để các chức năng tách biệt không nằm trong cùng một lớp
và đủ nhỏ để mô hình không quá phức tạp
những nguyên tắc chung (cài đặt cùng một giao thức truyền thông)
năng nh nhau Các tầng đồng mức phải sử dụng một giao thức chung
Một tầng không định nghĩa một giao thức đơn, nó định nghĩa một chức năng truyền thông có thể đợc thi hành bởi một số giao thức Do vậy, mỗi tầng có thể chứa nhiều giao thức, mỗi giao thức cung cấp một dịch vụ phù hợp cho chức năng của tầng Ví dụ cả giao thức truyền file (File Transfer Protocol-FTP) và giao thức th điện tử (Electronic Mail Protocol) đều cung cấp dịch vụ cho ngời dùng và cả hai đều thuộc tầng ứng dụng Mỗi mức ngang hàng giao thức truyền thông (sự bổ sung của các giao thức cùng mức tơng đơng trên hệ thống khác) Mỗi mức phải đợc chuẩn hoá để giao tiếp với mức tơng đơng với nó Trên lý thuyết, giao thức chỉ liên quan tới lớp của nó mà không quan tâm tới mức trên hoặc dới của nó Tuy nhiên phải có sự đồng ý để làm sao chuyển dữ liệu giữa các tầng trên một máy tính, bởi mỗi tầng lại dính líu tới việc gửi dữ liệu từ ứng dụng tới một ứng dụng tơng đơng trên một máy khác Tầng cao hơn dựa vào tầng thấp hơn để chuyển dữ liệu qua mạng phía dới Dữ liệu chuyển xuống ngăn xếp từ tầng này xuống tầng thấp hơn cho tới khi đợc truyền qua mạng nhờ giao thức của tầng vật lý Tại nơi nhận, dữ liệu đi lên ngăn xếp tới ứng dụng nhận Những tầng riêng
lẻ không cần biết các tầng trên và dới nó xử lý ra sao, nó cần biết cách chuyển thông tin tới các tầng đó Sự cô lập các hàm truyền thông trên các tầng khác nhau giảm thiểu sự tích hợp công nghệ của đầu vào mỗi bộ giao thức Các ứng dụng mới có thể thêm vào mà không cần thay đổi tầng vật lý của mạng, phần cứng có thể đợc bổ sung mà không cần viết lại các phần mềm ứng dụng
Trang 5• FTP (File transfer Protocol): Giao thức truyền tệp cho phép ngời dùng lấy
hoặc gửi tệp tới một máy khác
• Telnet: Chơng trình mô phỏng thiết bị đầu cuối cho phép ngời dùng login vào
một máy chủ từ một máy tính nào đó trên mạng
• SMTP (Simple Mail Transfer Protocol): Một giao thức th tín điện tử.
• DNS (Domain Name server): Dịch vụ tên miền cho phép nhận ra máy tính từ
một tên miền thay cho chuỗi địa chỉ Internet khó nhớ
• SNMP (Simple Network Management Protocol): Giao thức quản trị mạng cung
cấp những công cụ quản trị mạng
• RIP (Routing Internet Protocol): Giao thức dẫn đờng động.
• ICMP (Internet Control Message Protocol): Nghi thức thông báo lỗi
• UDP (User Datagram Protocol): Giao thức truyền thông không kết nối, cung
cấp dịch vụ truyền không tin cậy nhng tiết kiệm chi phí truyền
• TCP (Transmission Control Protocol): Giao thức hớng kết nối, cung cấp dịch
vụ truyền thông tin tởng
• IP (Internet Protocol): Giao thức Internet chuyển giao các gói tin qua các máy
tính đến đích
Trang 6• ARP (Address Resolution Protocol): Cơ chế chuyển địa chỉ TCP/IP thành địa
chỉ vật lý của các thiết bị mạng
Cũng giống nh trong mô hình tham chiếu OSI, dữ liệu gửi từ tầng Application đi xuống ngăn xếp, mỗi tầng có những định nghĩa riêng về dữ liệu mà nó sử dụng Tại nơi gửi, mỗi tầng coi gói tin của tầng trên gửi xuống là dữ liệu của nó và thêm vào gói tin các thông tin điều khiển của mình sau đó chuyển tiếp xuống tầng dới Tại nơi nhận, quá trình diễn ra ngợc lại mỗi tầng lại tách thông tin điều khiển của mình ra và chuyển dữ liệu lên tầng trên
Header
Data
Trang 7Internet IP
Header
TCP Header
Data
Network Ethernet
Header
IP Header
TCP Header
Information Centre) sẽ cấp cho các máy tính đó một địa chỉ IP (IP Address)
mạng cục bộ thì ngời quản trị mạng sẽ cấp cho các máy tính đó một địa chỉ IP (tuy nhiên cũng dới sự cho phép của NIC)
Hệ thống địa chỉ này đợc thiết kế mềm dẻo qua một sự phân lớp, có 5 lớp địa chỉ
IP là : A, B, C, D, E Sự khác nhau cơ bản giữa các lớp địa chỉ này là ở khả năng
tổ chức các cấu trúc con của nó
Class E 1 1 1 1 0 Reverved for future use
Sau đây chúng ta sẽ thảo luận về 3 lớp địa chỉ chính của TCP/IP đó là các lớp A,B,C là các lớp đợc sử dụng rộng rãi trên mạng Internet
Địa chỉ lớp A
Lớp A sử dụng byte đầu tiên của 4 byte để đánh địa chỉ mạng Nh hình trên, nó
đ-ợc nhận ra bởi bit đầu tiên trong byte đầu tiên của địa chỉ có giá trị 0 3 bytes còn lại đợc sử dụng để đánh địa chỉ máy trong mạng
Trang 8Có 126 địa chỉ lớp A (đợc đánh địa chỉ trong byte thứ nhất) với số máy tính trong
để đánh địa chỉ máy)
Nguyên nhân chỉ có 126 networks trong khi dùng 8 bit vì bit đầu tiên mang giá trị
0 dùng để định nghĩa lớp A vậy con lại 7 bit đánh số từ 0-127
tuy nhiên ngời ta không sử dụng một địa chỉ chứa toàn các con số 1 hoặc 0 do vậy, chỉ còn lại 126 mạng lớp A đợc sử dụng Do vậy giá trị byte đầu tiên của địa chỉ lớp A sẽ luôn luôn nằm trong khoảng từ 1 tới 126, mỗi một byte trong 3 bytes còn lại sẽ có giá trị trong khoảng 1 đến 254
Đối với việc chỉ có 16.777.214 máy trong khi sử dụng 24 bit đánh địa chỉ máy trong mạng cũng đợc giải thích tơng tự
Địa chỉ lớp A có dạng: <Network.Host.Host.Host>
với con số thập phân đầu tiên nhỏ hơn 128
Ví dụ: 9 6 7 8 : Nút đợc gán Host ID là 6 7 8, nằm trong mạng lớp A có địa chỉ
là 9 0 0 0
Địa chỉ lớp B
Một địa chỉ lớp B đợc nhận ra bởi 2 bit đầu tiên của byte thứ nhất mang giá trị 10 Lớp B sử dụng 2 byte đầu tiên của 4 byte để đánh địa chỉ mạng và 2 byte cuối
đánh địa chỉ máy trong mạng
Có 64*256 - 2 = 16.128 địa chỉ mạng lớp B với 65.534 máy cho mỗi một địa chỉ lớp B
Địa chỉ lớp B có dạng: <Network.Network.Host.Host>
Byte đầu tiên của một địa chỉ lớp B nằm trong khoảng 128 tới 191
Ví dụ: 190 2 2 1 : Nút đợc gán Host ID là 2 1, nằm trong mạng lớp B có địa chỉ là 192 2 0 0
Địa chỉ lớp C
Một số tổ chức có quy mô nhỏ có thể xin cấp phát địa chỉ lớp C Một địa chỉ lớp
C đợc nhận ra với 3 bit đầu mang giá trị 110 Mạng lớp C sử dụng 3 byte đầu để
đánh địa chỉ mạng và 1 byte cuối đánh địa chỉ máy trong mạng Có 2.097.152 -2
địa chỉ lớp C, mỗi địa chỉ lớp C có 254 máy
Địa chỉ lớp C có dạng: <Networkr.Network.Network.Host>
Trang 9Địa chỉ lớp C đợc nhận ra với byte đầu tiên trong khoảng 192 tới 223
Ví dụ: 200 6 5 4 : Nút đợc gán Host ID là 4, nằm trong mạng lớp C có địa chỉ
là 200 6 5 0
Mạng con và Subnet mask
Mạng Internet sử dụng địa chỉ IP 32 bit và phân chia ra các lớp rất mềm dẻo, tuy nhiên, với một hệ thống địa chỉ nh vậy việc quản lý vẫn rất khó khăn Nếu nh một mạng đợc cấp một địa chỉ lớp A thì có nghĩa nó chứa tới 16*1.048.576 máy tính,
do vậy ngời ta dùng mặt nạ bit để phân chia mạng ra thành những mạng con gọi
là Subnet Subnet mask là một con số 32 bit bao gồm n bit 1 (thờng là các bit cao nhất) dùng để đánh địa chỉ mạng con và m bit 0 dùng để đánh địa chỉ máy trong mạng con với n+m=32
Mặt nạ subnet phải đợc cấu hình cho mỗi máy tính trong mạng và phải đợc định nghĩa cho mỗi router Nh vậy, ta phải dùng cùng một Subnet mask cho toàn bộ mạng vật lý cùng chung một địa chỉ Internet
Ví dụ:
Ta có một địa chỉ lớp B 128.001.000.000 và cần chia nó thành 254 mạng con với
254 máy trong mỗi mạng, ta giải quyết vấn đề này bằng Subnet mask nh sau
Trang 10ợc chuyển đổi thích hợp với địa chỉ mạng vật lý nơi mà dữ liệu đợc truyền đi.
Hai ví dụ RFCs mô tả giao thức sử dụng cho tầng mạng là:
Ethernet
Trang 11• RFC 894, một chuẩn cho việc truyền gói tin IP qua mạng Ethernet mô tả cáchthức đóng gói để truyền thông tin qua mạng Ethernet.
Khi cài đặt trong UNIX, giao thức của tầng này đợc xem nh sự phối hợp của
ch-ơng trình điều khiển thiết bị và các chch-ơng trình liên quan Những đơn vị tch-ơng ứng với những thiết bị mạng làm nhiệm vụ đóng gói dữ liệu và chuyển giao cho mạng
Mạng Ethernet và IEEE 802.3
Ethernet và IEEE 802.3 là hai chuẩn phổ biến nhất trong kiến trúc mạng cục bộ Chúng sử dụng công nghệ gọi là CSMA/CD (Carrier Sense Multiple Access Control/Collision Detect) Multiple Access có nghĩa là mọi máy tính và thiết bị mạng có thể truy cập đờng truyền cùng một lúc Công nghệ Carrier Sense cho phép các thiết bị nhận biết khi nào đờng truyền đang bận Trớc khi thiết bị truyền thông tin, nó kiểm tra đờng truyền, nếu đờng truyền bận, nó đợi một khoảng thời gian ngẫu nhiên nào đó và tiếp tục Nếu đờng truyền không bận, nó bắt đầu truyền dữ liệu của mình Nếu 2 trạm cùng truyền thông tin một lúc, dữ liệu có thể
bị phá huỷ (collision), Collision Detection điều khiển thiết bị collision controller gửi tín hiệu “jam signal” để báo cho mọi thiết bị trên mạng biết điều gì đang sảy
ra Nếu gặp collision, thiết bị đợi một khoảng thời gian ngẫu nhiên trong 1 - 255 Nếu gặp collision, lần thứ hai, nó đợi một khoảng trong 1 - 511 Nếu tiếp tục gặp collision, thiết bị cố gắng thêm 6 lần Thời gian truyền thông tin trên mạng Ethernet không thể xác định đợc chính xác vì không ai có thể chắc rằng gói thông tin không bị collision do vậy thờng ngời ta không dùng Ethernet với các ứng dụng thời gian thực Một đặc tính của mạng Ethernet nữa là nó không có cơ chế báo nhận, khi sử dụng với TCP/IP dịch vụ này đợc tầng transport (TCP) cung cấp
Mạng Token-Pasing Rings (IEEE 802.5)
Tolen-Pasing Rings cũng là một công nghệ mạng cục bộ phổ biến, việc điều khiển lu thông trên mạng này đợc sử dụng bởi một cơ chế gọi là thẻ bài “token” Token là một gói tin đợc chuyển vòng quanh mạng, mỗi thiết bị chỉ đợc quyền truyền dữ liệu khi nó nhận đợc token
Trang 12Một đặc tính chủ yếu của Mạng Token-Pasing Rings là nó phải đợc nối thành vòng, nếu một nút mạng bị lỗi, toàn bộ mạng sẽ ngừng hoạt động (đối với mạng Ethernet chỉ một ngừng hoạt động khi nó bị lỗi) Nếu một máy bị tắt, mạng Mạng Token-Pasing Rings vẫn cần giao diện của nó để truyền thông, Token-ring Interface board lấy năng lợng từ cáp mạng để hoạt động Khi thẻ bài bị mất, sau một thời gian nào đó, một thiết bị điều khiển sẽ sinh một thẻ bài mới.
Mạng Token-Passing Busses (IEEE 802.4)
Token-Passing còn làm việc trên topo bus Một chuẩn định nghĩa cho mạng này là IEEE 802.4, là một phần của chuẩn MAP (Manufacturing Automation Protocol) Chuẩn này sử dụng thiết bị Broadband khác với Baseband sử dụng trong Ethernet
và Token-ring Baseband chỉ sử dụng một tín hiệu trên đờng truyền trong khi broadband sử dụng nhiều kênh truyền với các tần số tín hiệu khác nhau trên đờng truyền
Hệ thống khác lại chỉ sử dụng một dây nhng dùng 2 tần số khác nhau để truyền
và nhận Thông thờng tần số truyên và nhận tạo thành một cặp tần số (tính bằng
Trang 13MHz) để dễ chuyển đổi giữa tần số gửi và tần số nhận Tuy sử dụng Broadband
đắt và phức tạp nhng nó làm việc rất tốt với hình ảnh analog và âm thanh
Tầng Internet (Internet Layer)
Tầng IP cung cấp một hệ thống chuyển giao không kết nối và đôi khi ngời ta còn gọi là không tin cậy Không kết nối bởi mỗi gói tin đợc truyền đi trên mạng một cách độc lập, sự kết hợp dữ liệu của các gói tin đợc cung cấp bởi các dịch vụ lớp trên Mỗi gói tin IP chứa địa chỉ nơi gửi và địa chỉ nơi nhận và dựa vào đó nó có thể đợc truyền trên mạng tới đích Nhng chính việc dữ liệu có thể đi tới đích trên nhiều đờng khác nhau tạo nên sự mềm dẻo cho Internet khi một đờng bị dứt hay một nút nào đó bị quá tải, các gói tin có thể đợc truyền đi theo những con đờng khác, nếu một gói tin nào có lỗi thì chỉ phải truyền lại gói tin đó thay vào việc phải truyền lại toàn bộ thông báo Không tin cậy bởi vì IP không có cơ chế kiểm tra tính đúng đắn của dữ liệu đợc truyền nhận, dịch vụ tin tởng phải đợc cung cấp bởi các giao thức lớp trên
Gói tin IP
Source IP addressDestination IP address
Typefield
IP header encapsulated in an Ethernet frame
Trang 14• Vers : Dài 4 bits, mô tả chính xác version của IP
• Hlen : Dài 4 bits, mô tả độ dài của IP header.
• Service type: dài 8 bits mô tả thứ tự u tiên của data.
• Total length: Dài 16 bits (2 bytes), đây là độ dài của datagram (in bytes-có
nghĩa là độ dài vùng data của IP datagram có thể lên tới 65535 bytes)
• Identification, flags, fragment offset: Không phải bất kỳ size nào của
datagram cũng đợc truyền trên mạng (ví dụ Ethernet LAN chỉ hỗ trợ cho size lớn nhất của datagram là 1518 bytes) Do vậy khi size của datagram vợt quá kích thớc cho phép, nó sẽ bị chia nhỏ ra và các trờng này sẽ đảm bảo rằng các datagram đã bị phân chia này là từ một datagram ban đầu
• Time to live: Dùng để xác định xem datagram này có bị truyền lặp lại hay
không (thông thờng nó đợc gán là 1, nếu bị lặp lại nó sẽ bị gán là 0)
• Protocol: Trờng này cho biết lớp giao thức cao hơn nào sẽ đợc sử dụng (UDP
hay là TCP)
• CRC: Trờng này đợc dùng để kiểm tra sự toàn vẹn của header.
• IP option: Chứa các thông tin nh: "dò" đờng, bảo mật, xác nhận thời gian.
• Padding: Trờng điền thêm các số 0 để đảm bảo header kết thúc tại một địa chỉ
bội của 32
• Source IP address, destination IP address: chứa địa chỉ của station gửi và địa
chỉ của station đích
Gói tin IP chứa một trờng checksum để kiểm tra tính toàn vẹn của IP header, nếu
IP header lỗi, gói tin IP bị loại bỏ và giao thức lớp trên sẽ truyền một gói tin khác Tầng IP làm công việc dẫn đờng các gói tin qua mạng Internet từ máy tính này tới máy tính khác, qua các mạng khác nhau cho tới khi nó đến đợc trạm đích hoặc bị lỗi Việc truyền gói tin qua các mạng đợc thực hiện thông qua một thiết bị kết nối giữa hai mạng gọi là gateway Khi một thông tin truyền qua các mạng khác nhau,
nó có thể bị chia ra thành nhiều gói nhỏ hơn Thông tin truyền có thể quá lớn để
có thể truyền trên một gói tin trên một mạng khác Vấn đề này chỉ gặp phải khi gateway đợc nối giữa các mạng vật lý khác nhau Mỗi kiểu mạng có một độ dài tối đa gói tin của có thể truyền (maximum transmission unit-MTU) nếu thông tin
Trang 15nhận đợc từ mạng này dài hơn MTU của mạng kia, nó cần phải đợc chia nhỏ ra thành nhiều mảnh để truyền
Việc xử lý này gọi là sự phân mảnh Để trực quan, ta so sánh với việc chuyên chở hàng bằng tàu hoả mỗi toa tàu có thể chở nhiều hàng hơn một chiếc xe tải sẽ trở hàng trên đờng, hàng hoá sẽ đợc chia vào nhiều xe tải Ta có thể so sánh việc
đờng ray khác về vật lý với đờng ôtô Ethernet khác X.25 về vật lý IP phải cắt gói tin Ethernet thành những gói thông tin nhỏ hơn để truyền qua mạng X.25
Định dạng của mỗi gói tin chia cắt giống nh với từng bản tin Word thứ hai của header chứa thông tin sử dụng cho quá trình tập hợp lại bản tin bao gồm: gói tin thuộc bản tin nào, vị trí của nó trong dòng, gói tin đã đợc kết nối cha
Khi những gói tin truyền đến một gateway quá nhanh, chúng có thể bị loại bỏ và
IP trả lại một thông báo lỗi (ICMP)
Thuật toán dẫn đờng
Internet là một mạng chuyển mạch gói, để chuyển các gói tin IP trên mạng, ngời
ta sử dụng thuật toán dẫn đờng Thuật toán dẫn đờng là một tiến trình lựa chọn
Identical Paket
Identical Message
Identical Frame
Gateway G
Trang 16một đờng để truyền gói tin và việc dẫn đờng đợc thực hiện bởi mọi máy tính trên mạng Ngời ta chia việc dẫn đờng ra làm 2 kiểu:
máy tính kia chỉ thực hiện đợc khi cả hai máy tính đều kết nối vào một mạng vật lý
mạng với trạm gửi cần thông qua gateway để truyền đi
Dẫn đờng trực tiếp
Mọi máy tính cùng nằm trên một mạng có cùng một network id và các máy tính cùng trên một mạng vật lý có thể gửi frame vật lý trực tiếp cho nhau nên việc truyền thông tin giữa hai máy tính trong cùng một mạng vật lý không cần sử dụng gateway Trạm gửi chỉ việc kết khối dữ liệu vào frame, chuyển địa chỉ IP của trạm đích thành địa chỉ vật lý và gửi trực tiếp nó tới máy nhận
Một cơ chế sử dụng để chuyển địa chỉ IP thành địa chỉ vật lý là ARP (Address Rosolusion Protocol) Khi hai máy tính cùng nối vào một mạng vật lý, chúng biết
đợc địa chỉ IP của nhau nhng để truyền thông giữa hai máy, chúng phải biết đợc
địa chỉ vật lý của nhau ARP giải quyết vấn đề chuyển từ địa chỉ IP 32 bit sang
địa chỉ Ethernet 48 bit Ngời ta sử dụng hai cơ chế đó là
trên mạng token ring proNET-10 là mạng cho phép đặt địa chỉ IP và địa chỉ vật
lý thoải mái Ngời ta có thể đặt địa chỉ IP là 192.5.48.3 và địa chỉ vật lý là 3, khi đó ta có PA=f(IA)
tin gửi một thông báo tới toàn bộ các máy tính trên mạng, trong thông báo đó
có chứa địa chỉ IP của máy tính nó cần liên lạc, mọi máy sẽ nhận đợc thông báo và máy nào thấy địa chỉ IP của mình thì trả lại một thông báo chứa địa chỉ vật lý, khi đó, hai máy tính có thể “nói chuyện” với nhau
Trang 17• Ngoài ra, ngời ta còn sử dụng bảng chỉ đờng để lu trữ tạm thời các địa chỉ sử dụng mới nhất (Address Reslution Cache) để tăng tốc độ của việc chuyển giao
địa chỉ
Một gói thông tin ARP là một Ethernet Frame đợc truyền trực tiếp từ máy này tới máy khác Vì không phải sử dụng IP, gói tin này không có địa chỉ IP cũng nh không cần đợc dẫn đờng, nó phải đợc gửi broadcasts tới tất cả các máy trên mạng Ethernet (với địa chỉ FFFFFFFFFFFFF)
Gói thông tin ARP đợc mô tả nh sau:
Source Protocol Address
Target Hardware Address(Ethernet Address)
Destination
Address
SourceAddress
Type orLength
Trang 18Không giống phần lớn các giao thức khác, dữ liệu trong ARP không có một định dạng chuẩn cho header Để ARP có thể làm việc với nhiều công nghệ khác nhau, ngời ta dùng một trờng để chứa độ dài của những trờng đi sau nó.
Trong trờng hợp máy trạm không có thiết bị nhớ phụ, nó không biết địa chỉ IP của chính mình khi khởi động, ngời ta sử dụng cơ chế có tên (RARP) để giải quyết vấn đề này đó là có một máy chủ chứa bảng địa chỉ IP của các máy trạm, khi máy trạm khởi động, nó gửi một request tới tất cả các máy và máy chủ trả lời
nó bằng một gói tin chứa địa chỉ IP
Dẫn đờng gián tiếp
Nếu trạm gửi và trạm nhận nằm trên các mạng khác nhau thì trạm gửi phải đóng gói thông tin và gửi tới một gateway để chuyển tới đích
Trang 19To host on network Router the datagram Across this physical port
Gateway 8’s routing table
Dữ liệu sẽ chuyển từ gateway này tới gateway khác đến khi nó có thể đợc truyền trực tiếp tới máy nhận Thuật toán dẫn đờng thờng sử dụng bảng dẫn đờng (Internet routing table - IP routing table) trên mỗi máy tính để chứa thông tin về các máy tính và cách đi đến chúng Vì việc dẫn đờng đợc thực hiện bởi cả host và gateway, mỗi thiết bị đều chứa một bảng dẫn đờng Bảng dẫn đờng chứa thông tin
về các mạng và gateway để kết nối đến đó
Một kỹ thuật đợc sử dụng để che dấu thông tin và giảm thiểu kích thớc của bảng dẫn đờng là sử dụng default gateway Nếu máy tính không tìm thấy địa chỉ đích trong bảng dẫn đờng của nó thì gói tin đợc chuyển tới một thiết bị là default gateway Kỹ thuật này đặc biệt thích hợp với trờng hợp mạng máy tính đợc nối vào Internet thông qua một máy tính duy nhất
Trang 21Cơ chế thông báo lỗi (Internet Control Message Protocol - ICMP)
Một giao thức trong tầng Internet là ICMP đợc định nghĩa trong RFC 792 ICMP
sử dụng gói tin IP để chuyển thông báo của nó ICMP gửi các thông báo làm các công việc: Điều khiển, thông báo lỗi và chức năng thông tin cho TCP/IP
Gói tin ICMP
Mặc dầu mỗi thông báo ICMP có một kiểu định dạng riêng của nó, chúng đều chứa 3 trờng đầu tiên giống nhau
• TYPE: Định nghĩa thông báo đi sau.
• CODE: Cung cấp thông tin thêm về thông báo.
• CHECKSUM: Chứa checksum của thông báo.
Điều khiển dòng dữ liệu
Khi dữ liệu gửi tới trạm nhận quá nhanh không kịp xử lý, trạm đích - hay một thiết bị dẫn đờng gửi trả trạm nguồn một thông báo để nó tạm ngừng việc truyền thông tin
Trang 22Thông báo lỗi
Khi không tìm thấy trạm đích, một thông báo lỗi Destination Unreachable
đợc đợc gateway gửi trả lại trạm nguồn Nếu một cổng không nhận ra, trạm đích gửi thông báo lỗi lại cho trạm nguồn (chúng ta sẽ nói về cổng trong phần giao thức tầng giao vận)
Định hớng lại
Một gateway gửi thông báo định hớng lại để trạm gửi sử dụng một gateway khác bởi vì gateway kia là một lựa chọn thích hợp hơn Trờng hợp này chỉ xảy ra khi trạm gửi nối vào mạng có trên 2 gateway
Ví dụ máy tính B muốn gửi thông tin đến máy C, nếu thông báo đó đến gateway
1, thì gateway 1 phải gửi thông báo rederect máy tính đó qua gateway 2 Ngợc lại, mỗi máy tính trên mạng X.25 muốn gửi thông báo tới máy tính nằm trên mạng Token Ring thì việc này không cần thiết vì gateway 1 đợc nối trực tiếp với mạng Token Ring
Kiểm tra trạm làm việc
Khi một máy tính muốn kiểm tra một máy khác có tồn tại và đang hoạt
động hay không, nó gửi một thông báo Echo Request Khi trạm đích nhận đợc
thông báo này
Trang 23và không thiết lập liên kết trớc (connectionless) Cả hai giao thức đều chuyển giao thông tin giữa tầng ứng dụng và tầng Internet Chơng trình ứng dụng có thể lựa chọn dịch vụ nào thích hợp với ứng dụng của nó
Giao thức không kết nối (User Datagram Protocol - UDP)
UDP cho phép chơng trình ứng dụng truy cập trực tiếp đến gói tin của dịch
vụ chuyển giao giống nh dịch vụ mà giao thức IP cung cấp Nó cho phép ứng dụng trao đổi thông tin qua mạng với ít thông tin điều khiển nhất UDP là giao thức không định kết nối, kém tin cậy vì nó không có cơ chế kiểm tra tính đúng
đắn của dữ liệu truyền
Gói thông tin UDP
Mỗi gói thông tin UDP gọi là một Datagram đợc phân làm 2 phần header
và data trong đó header chứa thông tin về địa chỉ cổng nguồn, địa chỉ cổng đích,
độ dài của gói và checksum
DataDataData
Destination
Address
SourceAddress
Typefield
IPheader
UDP header encapsulated in an Ethernet frame
Trang 24Phân kênh, hợp kênh và Ports
Phân kênh, hợp kênh chính là việc lựa chọn những tiến trình ứng dụng trong một
số lớn các tiến trình sử dụng giao thức UDP, ngời ta cần chọn ra những ứng dụng tơng ứng với gói thông tin chuyển đến
Việc này đợc giải quyết bằng “cơ chế cổng” - Port mechanism cơ chế này gắn mỗi ứng dụng với một con số gọi là Port number và mỗi gói thông tin mà nó gửi
đi đều mang một trờng SOURCE PORT
Tại nơi nhận, dựa vào thông tin trong trờng DESTINATION PORT mà gói tin đó
đợc truyền đến cổng tơng ứng với ứng dụng Ví dụ mọi bản TCP/IP đều có dịch
vụ FTP (File Transfer Protocol) gắn với cổng 21 và TFTP (Trivial File Transfer Protocol) gắn với cổng 69 của UDP
Việc sử dụng các port number cũng có nhiều cách
(Well-known port assignment)
• Một port number sẽ đợc sinh ra khi có một ứng dụng đòi hỏi (Dynamic binding)
Well-known port assignment cho một số port number vừa có thể định nghĩa các port number khác khi cần thiết Các port number thông dụng của UDP th-ờng đợc dành chỗ từ 1 tới 255 Một số hệ điều hành (nh 4.3 BSD UNIX) còn
Trang 25dành chỗ tới port number 1023, các port number có thể sử dụng đợc là từ số