Qua đó, các máy tính nằm trên đường mà gói thông tin qua sẽ nhân biết là có phải gửi cho mình hay không.. Hay: Các máy tính có thể tận dụng một đường truyền nào đó mà gửi các gói thông t
Trang 1PHẦN 2
GIỚI THIỆU BỘ GIAO THỨC TCP/IP Mục lục:
I Nhìn lại một số công nghệ mạng 35
II Khái niệm và mô hình mạng Internet 38
III Sự thành công của Internet: giao thức IP và TCP 42
IV World Wide Web (WWW) và siêu văn bản HyperText 49
Trang 2GIỚI THIỆU BỘ GIAO THỨC TCP/IP
là tổng đài tương tự gồm ba trung kế.)
Các mạng chuyển gói thường dùng để nối các máy tính với nhau và có một cách tiếp cận hoàn toàn khác Thông tin thường được chia thành các gói nhỏ (khoảng vài trăm byte) Các gói này, ngoài thành phần thông tin ra, còn có phần địa chỉ đến Qua đó, các máy tính nằm trên đường mà gói thông tin qua sẽ nhân biết là có phải gửi cho mình hay không
Tính lợi hại của phương án ?
Trang 3Hay: Các máy tính có thể tận dụng một đường truyền nào đó mà gửi các gói thông
tin(không cần một trật tự nào vì các gói đều có địa chỉ)
Dở: Nếu đường truyền quá tải thì các máy tính phải chờ
Thực ra điểm dở này sẽ không còn là một vấn đề nếu vận tốc đường truyền cực lớn
Bây giờ ta xét qua hai kỹ nghệ thường dùng trong mạng cục bộ, đó là Ethernet và ProNET Token Ring
1 Kỹ nghệ Ethernet
Kỹ nghệ này được công ty Xerox PARC sáng tạo ra vào đầu những năm 1970 các máy tính được kết nối vào một đường truyền đơn tuyến, đường này được gọi là Bus
Trang 4Vận tốc truyền trên bus thường là 10 Mbps đường truyền này có thể là cáp đồng trục (loại 10base5 - loại dây to, 10Base2 - loại nhỏ) và có thể là loại dây như dây điện thoại (10BaseT)
Để gửi một gói thông tin, đầu tiên máy tính phải " nghe" xem đường truyền có rỗi hay không Nếu rỗi thì máy tính đó bắt đầu truyền gói thông tin của mình Cách truyền này có tên gọi là Carries Sense Multiple Access with Collision Detect (CSMA/CD)
Độ dài của thông tin có một giới hạn trên và một giới hạn dưới Như vậy, thời gian truyền của một gói thông tin bị giới hạn Do đó, các máy tính khác có cơ hội để gửi gói thông tin của mình
Khi hai hay nhiều máy tính cùng gửi thông tin lên đường truyền thì có thể xảy
ra đụng độ (collision) Lúc này thông tin bị nhiễu, các gói thông tin không còn giá trị
gì Vì vậy các máy gửi bắt buộc phải gửi lại Rõ ràng là rất có khả năng lại bị đụng độ Ethernet xử lý đụng độ rất thông minh, người ta gọi là thuật toán exponential backoff Đầu tiên, khi gặp đụng độ ta chờ một khoảng thời gian ngẫu nhiên Sau đó, nếu vẫn gặp đụng độ, tăng gấp đôi khoảng thời gian chờ
Cấu trúc của một gói thông tin Ethernet:
FameType Fame Data CRC
64 bits 48 bits 48 bits 16 bits 368-12000
bits
32 bits
Cấu trúc này có hai điểm ưu việt nổi bật:
Trang 51) với 48 bit địa chỉ, tất cả các card Ethernet đều có địa chỉ phân biệt trên toàn cầu (IEEE phân chia địa chỉ) Hơn nữa, nó còn có thêm hai chế độ: broadcast, multicast Đây là những ý tưởng rất độc đáo mà Internet sau này sử dụng triệt để
2) Các gói thông tin kiểu này có tính seft-identifying Tính chất này rất hữư ích khi
có nhiều giao thức trong một môi trường
2 Kỹ nghệ ProNET Token Ring
Dựa trên kết quả nghiên cứu của các trường đại học, công ty proteon Incorporated đã đưa ra kết cấu vòng như trên Vận tốc truyền cũng là 10 Mbps
Các gói thông tin được truyền từ máy nọ sang máy kia theo một chiều nhất định và có tên là token passing Chú ý là cấu trúc vòng trên không phải là một đường liên tục mà dây được nối theo từng cặp máy Giao diện của mỗi máy làm việc theo chế độ: copy mode, transmit mode và recovery mode
- Copy mode: nhận một gói thông tin và gửi sang máy tiếp theo ( các điểm 11, 12, và 14)
- Transmit mode: giữ token, gửi một gói thông tin và kiểm tra xem đã gửi được chưa (điểm 13)
Trang 6- Recovery mode: Để kiểm tra việc mất gói thông tin, người ta dùng hai đồng hồ, một dùng cho gói tin và một dùng cho token Nếu quá giờ một trong hai đồng hồ trên thì điểm đó chuyển sang chế độ này Chú ý là khi một điểm rơi vào recovery mode thì một điểm thứ hai cũng có thể rơi vào recovery mode Người ta áp dụng thuật toán exponetial backoff để thoát ra khỏi tình trạng này
IBM token passing dùng kiểu hình vòng ở trong và hình sao ở ngoà
Giao diện của một
đặt ở đây
Trang 7Dạng thức của một gói thông tin ProNET:
Start of
Msg
Dest Address
Src Address
Fame Type
Fame Data
End of Msg Parlty Refuse
10 bits 8 bits 8 bits 24 bits 0-16352 bits 9 bits 1 bits 1 bits
Sự khác biệt cơ bản của dạng thức này so với Ethernet là địa chỉ Địa chỉ của ProNET
là địa chỉ mềm, đi liền với máy chứ không địa chỉ liền với card và cao nhất cũng chỉ có
256 máy trong một mạng
ii KHÁI NIỆM VÀ MÔ HÌNH MẠNG INTERNET
Chúng ta vừa đề cập đến 2 kỹ nghệ trong các mạng cục bộ Đương nhiên người ta dùng rất nhiều các kỹ nghệ khác nhau, kể cả những biến hoá của hai kỹ nghệ trên Đủ thấy tính phức tạp khi nối các mạng với nhau Mục tiêu của Internet là giấu các chi tiết
kỹ thuật, mà thật ra các chi tiết này không cần thiết đối với người sử dụng
Trang 8Vấn đề thứ hai là phải đưa ra một địa chỉ, sao cho mỗi máy trên toàn cầu được định vị một cách duy nhất
Các máy tính nối hai mạng với nhau được gọi là Internet Gateway hay Router (xem hình vẽ trên) Trách nhiệm của các Gateway là gửi một gói thông tin từ mạng này sang mạng khác Gateway không để ý đến các máy lẻ
Và tất cả các mạng đều bình đẳng
Class A 0 netid hostid
Class B 10 netid hostid
Class D 1110 multicast address
Class E 11110 reserver for future use
Chú ý cách lập địa chỉ này: vừa có thể chỉ định một máy nào đó, vừa cxó thể chỉ định một mạng nào đó
Địa chỉ mạng: hostid = 0s
Broadcast: hostid=ls
Multicast: lớp địa chỉ D
Trang 9Hai loại địa chỉ này có ý nghĩa rất cao trong thông tin Với điạ chỉ broadcast, ta có thể gửi một gói thông tin đến tất cả các thành viên trong mạng nào đó (điều này cũng có thể gây ra nguy hiểm)
Một trong những ứng dụng quan trọng của multicast là thành lập các nhóm tin và nhóm thảo luận chuyên đề, các nhóm làm việc ảo Một thành viên có thể tham gia nhiếu nhóm và mỗi một nhóm có thể có thể có một số lượng tuỳ ý các thành viên
Việc cung cấp địa chỉ mạng được thực hiện bởi một uỷ ban có tên là The Internet Assigned Numbers Authority (IANA)
Một số địa chỉ IP đặc biệt :
• 127.0.0.0 là địa chỉ cho chính một máy(localhost)
• Thông thừng một máy chỉ sử dụng 1 địa chỉ IP Tuy nhiên, có một số máy có nhiều địa chỉ IP như các gateways
• Nếu dùng DHCP thì một máy có thể có địa chỉ IP thay đổi theo phiên làm việc: đây là trường hợp khá phổ biến đối với các ISP
Các địa chỉ dùng cho Proxy:
¾ Class A: 10.0.0.0 – 10.255.255.255
¾ Class B: 172.16.0.0 – 172.31.255.255
¾ Class C: 192.168.0.0 –192.168.255.255
IP subnet và mặt nạ mạng (mask)
• Do sự phát triển không ngừng, một số mạng, sau một thời gian phát triển có thể
có nhu cầu chia nhỏ hơn (đặc biệt như lớp A và lớp B)
• Hình thức chia: (neitid, hostid) => (neitid, subneitid, hostid);
Trang 10• Hình thưc thay đổi này chỉ có ý nghĩa cuc bộ, đối với bên ngoài thì vẫn coi như chỉ có một mạng;
• Người ta dùng mặt nạ để tách phần địa chỉ mạng ra khỏi một địa chỉ IP:
• A=>0xFF000000, B=>0xFFFF0000, C=> 0xFFFFFF00;
Tổng quát hoá các trường hợp trên: có thể đưa ra một mặt nạ bất kỳ, các bit 1 sẽ ứng với địa chỉ mạng và các bit 0 ứng với địa chỉ hostid Chú ý: chuẩn Internet không yêu cầu là các bit 1 phải nằm liên tục với nhau Tuy nhiên, trên thực tế chúng ta nên chọn các bit 1 nằm liên tục với nhau
Ánh xạ địa chỉ IP sang địa chỉ vật lý(ARP)
• Địa chỉ IP là địa chỉ logic, còn khi truyền tin thì phải dùng địa chỉ vật lý: vì vậy, câng phải có phương thức lập chuyển đổi 1-1 giữa địa chỉ vật lý và địa chỉ IP;
• Chú ý rằng trong mạng Internet, các máy có vai trò bình đẳng như nhau nên không có một máy nào phải chịu trách nhiệm chung cả: phải có một phương thức nào đó để các máy không phụ thuộc lẫn nhau
• Address Resolution Protocol(ARP) dùng để giải địa chỉ IP sang địa chỉ vật lý;
• Phương thức: A dùng broascasst hỏi ai có địa chỉ IP x; máy B có địa chỉ IP x sẽ trả lời A;
• Để tránh dùng quá nhiều broadcast, các máy thường dùng cache để lưu tạm bảng trong phiên làm việc
Ánh xạ địa chỉ vật lý sang địa chỉ IP (RARP)
• Đây là vấn đề ngược với ARP: cho địa chỉ vật lý, tìm địa chỉ IP tương ứng;
• Cách làm tương tự như ARP: máy broadcast địa chỉ vật lý xx mà máy Server(chứa bảng IP) sẽ trả lời máy A địa chỉ IP tương ứng)
Trang 11• Cấu hình mạng nào cần đến RARP: các máy không có đĩa; khi khởi động máy, máy A cần biết địa chỉ IP của mình là gì
• BOOTP thường được dùng cho lúc khởi động của các máy không có đĩa cứng
• Các máy không có đĩa thường phải dựa vào một máy chủ để tại chương trình khởi động máy về máy chính mình
Trang 12iii SỰ THÀNH CÔNG CỦA INTERNET: GIAO THỨC IP VÀ TCP
Đối với người sử dụng thì Internet giống như một mạng ảo, nối tất cả các máy tính trên toàn cầu, giống như chỉ là chỉ trong một mạng thôi, chứ không phải là liên kết của nhiều mạng khác nhau
Cách tiếp cận của vấn đề của những người tạo ra Internet như trong hình vẽ dưới đây, (ngoài lề: phần lớn họ là những người làm việc trên Unix)
Application Service
Reliable Transport Service
Connectionless Packet Deliver Service
Nếu ta đem so sánh OSI 7 lớp thì triết lý ở đây hoàn toàn khác Đối với ISO thì truyền dẫn giữa hai điểm bất kỳ đều phải được kiểm tra kỹ càng và chắc chắn (reliable) Chính cái điểm tưởng như đáng tin cậy này lại là điểm cản trở chính cho việc phát triển mạng ( không có một mạng máy tính toàn cầu nào theo chuẩn ISO)
Internet protocol (IP)
Ngược lại, IP, giao thức thấp nhất của Internet, thì:
Trang 13Unreliable(không tin cậy): vì việc chuyển một gói thông tin từ điểm A đến điểm B không có gì đảm bảo là đến nơi
Conectionless(bút liên quan): giả sử có một bản tin X gồm ba gói thông tin A, B,
C Ba gói này khi gửi qua IP thì chúng được xử lý hoàn toàn độc lập với nhau, không có một sự ràng buộc nào giữa chúng
Best effort deliver( với cố gắng cao nhất): đương nhiên phần mềm của mạng phải
cố gắng cao nhất để đưa cá gói thông tin “đi đến nơi về đến chốn” ( trong Internet còn các giao thức kiểm tra phần mềm)
Việc gửi gói thông tin qua IP giống như việc gửi thư qua đường bưu điện Không ai dám đảm bảo thư không bị thất lạc Nếu hôm nay ta gửi lá thư A, rồi ngày mai ta gửi lá thư B đến cùng một địa chỉ cũng không ai dám đảm bảo rằng là thư A sẽ đến trước lá thư B Và tất nhiên ngành bưu điện họ vẫn hứa là họ đem hết sức mình ra để phục vụ nhân dân !
Một gói thông tin còn có điểm tệ hại hơn là nó có thể bị lặp nhiều lần Tại sao lại giảm độ tin cậy xuống như vậy, điểm lợi của nó ở đâu ? Đó là: giải phóng gánh nặng cho phần mềm Sau khi một gói IP đã ra khỏi một điểm nào đó, phần mềm của điểm này không cần quan tâm đến nó nữa Nếu chúng ta đã từng viết phần mềm cho truyền tin thì đây là một lợi thế không nhỏ Chúng hãy tưởng tượng
là để gửi một byte từ một nút nọ sang một nút kia đều chạy một chương trình kiểm tra khổng lồ thì tốc độ truyền sẽ bị giảm xuống một cách thảm hại
Packet header Data Area
Header có nhiều thành phần, nhưng có bốn thành phần quan trọng:
3) Indentification
Trang 14Transmission Control Protocol (TCP)
Mức IP có thể chấp nhận thông tin bị mất, có thể đến không theo thứ tự và có thể
bị lặp nhiều lần
Một trong những phương án để giảm lỗi là giao trách nhiệm đó cho mức ứng dụng Tuy nhiên, như vậy sẽ dẫn đến là tất cả ứng dụng trên mạng đều phải có các đơn thể khử lỗi
Internet cung cấp một dịch vụ trao hàng có đản bảo Điều đó có nghĩa là bên gửi và bên nhận sẽ được thông báo là hàng đến nơi an toàn hay không Đây là
cơ sở cho việc xây dựng giao thức truyền có điều khiển (TCP) Quan điểm của Internet là cung cấp một giao thức tchồng lên giao thúc IP với 5 đặc trưng:
7) Truyền theo dòng dữ liệu(stream orientation): nghĩa là hết byte này đến byte
khác, không cần quan tâm đến sự phân chia gói ở mức IP
8) Tạo mạch nối đo(victual circuit conection): ở múc IP, các gói thông tin có thể
đi theo nhiều con đường khác nhau để đến đích Tỵa mức TCP, người sử dụng có thể hình dung như là cá dòng dữ liệu liên tục và nối trực tiếp
Trang 159) Truyền có đệm (buffer transfer): các phần mềm TCP sẽ chuyển nhập từng byte
vào vùng đệm, rồi số byte đủ lớn mới truyền lên mạng Việc này sẽ giảm lưu lượng trên đường truyền
10) các dòng dũ liệu không tuan theo một cấu trúc nào (unstructure stream): điều
này có nghĩa không cần quan tâm đến dạng thức của dữ liệu
Định tuyến các gói tin IP
• Router: bộ định tuyên, chuyển gói tin đến địa chỉ cần đến
• Chuyển trực tiếp: A và B vào cùng một mạng
• Chuyển gián tiếp: A và B trên ha mạng khác nhau;
Thuờng các máy sử dụng bảng định tuyên IP qua đó phần mêm TCP/IP sẽ xác định là gửi trực tiếp hay gián tiếp
ICMP
• Chúng ta đã tháy là các gói tin IP đi tù gateway này đén các gateway khác trước khi đến địa chỉ cuối cùng, Nếu gói tin không đến được địa chỉ cần gửi thì phải có cơ chế báo lỗi
• Internet Control Message Protocol (ICMP) là một gói tin IP đặc biệt để kiểm soát các gói tin và báo lỗi cho máy gửi (thường báo lỗi không gửi được)
• Chương trình ping gửi một loạt ICMP đến một địa chỉ IP nào đó và chờ
nhận lại kết quả Nếu mọi việc êm đẹp máy gửi sẽ nhận lại các goi tin đã gửi đi Nếu chờ một khoảng thời gian nào đó mà không nhận lại được thì
ping sẽ báo time out Khi nhận lại time out thì phần cứng hoặc phần mềm
Trang 16trên máy gửi đến chưa hoạt động Nếu máy ở xa thì có khả năng đường truyền chưa tốt
IGMP
Broadcast(1st): gửi đến tất cả các máy:
Multicast: các máy tham gia một nhóm nào đó chọn một địa chỉ chung, sau đó bất
kỳ gói tin nào gửi đến địa chỉ chung đó sẽ được guỉ đến tất cả các máy trong nhóm, địa chỉ chung thuộc vào lớp D
Internet Group Manangement Protocol: (IGMP) dùng để xác định thành viên và để gateway gửi các gói tin đến các thành viên
Tuy nhiên, SLIP có một số nhược điểm:
Chỉ truyền được gói IP, Không truyền được các giao thức khác
Không có khả năng tự xác định được IP máy đối diện
Không có cơ chế tự sửa lỗi, truyền không tốt khi đường truyền bị nhiễu
SLIP không phải là giao thức chuẩn của TCP/IP Tuy nhiên giao thức này được dùng khá phổ biến để truy cập từ xa
PPP
Trang 17• Point – to - point(PPP): là giao thức được thiết lập để khắc phục các nhược điểm của SLIP
• Dùng PPP, hai bên có thể “thương lượng” để thống nhất địa chỉ IP
• Ngoài việc có cơ chế sửa lỗi, PPP còn có chế độ nén dữ liệu nếu cả hai đầu có cùng cơ chế nén và như vậy có thể tăng tốc độ đường truyền
• Ngoài ra PPP còn cho phép đưa liên kết (multilink) trên cùng một đường truyền để tận dụng băng thông
Cổng
• Trong các hệ điều hành đa nhiệm, có nhiều qúa trình cùng chạy, có thể có nhiều quá trình như vậy có nhu cầu truyền tin, khi các gói tin được gửi đến thì phải có cơ chế nào đó để phân biệt các gói tin thuộc quá trình nào
• Như vậy, trên cùng một máy, có có nhiều đầu điểm kết nối và các gói tin phải
có “địa chỉ” của quá trình nhận
• Tuy nhiên, trên máy này không thể biết được máy kia đàn chạy quá trình nào
Rõ ràng, phải có cách sao cho tất cả các máy đều hiểu biết bất kể chạy hệ điều hành(HĐH) nào
• Người ta đi đến khái niệm về cổng giao thức, thực chất “cổng” là một số nguyên dương, HĐH có trách nhiệm cài đặt cơ chế truy xuất qua cổng
• Thông thường, để tránh mất dữ liệu, các cổng có vùng nhớ đệm
• Một kết nối được định nghĩa bằng (IPa, Pa)-(IP-Pb)
• IPa được gọi là địa chỉ IP nguồn, Pa được gọi là cổng nguồn