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
Trang 1Giíi thiÖu bé giao thøc tcp/ip TATA Jsc - CIC
PhÇ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 2Nhìn lại một số công nghệ mạng TATA Jsc - CIC
Giới thiệu bộ giao thức TCP/IP
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 ?
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 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
Trang 3Nhìn lại một số công nghệ mạng TATA Jsc - CIC
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
Vậ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:
Preamble Destination
Address
Source Address FameType Fame Data CRC
64 bits 48 bits 48 bits 16 bits 368-12000 bits 32 bits
Trang 4Nhìn lại một số công nghệ mạng TATA Jsc - CIC
Cấu trúc này có hai điểm ưu việt nổi bật:
1) 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,
IBM token passing dùng kiểu hình vòng ở trong và hình sao ở ngoài
Trang 5Khái niệm vμ mô hình mạng internet TATA Jsc - CIC
Dạng thức của một gói thông tin ProNET:
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
Giao diện của một
đặt ở đây
Trang 6Khái niệm vμ mô hình mạng internet TATA Jsc - CIC
Vấ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
Hai 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:
Trang 7Khái niệm vμ mô hình mạng internet TATA Jsc - CIC
ắ 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);
• 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;
Trang 8Khái niệm vμ mô hình mạng internet TATA Jsc - CIC
• 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)
• 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 9World wide web (www) vμ siêu văn bản hypertext TATA Jsc - CIC
iii 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ì:
Unreliable(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 !
Trang 10World wide web (www) vμ siêu văn bản hypertext TATA Jsc - CIC
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:
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ể
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 11World wide web (www) vμ siêu văn bản hypertext TATA Jsc - CIC
9) 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
trê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
SLIP
Trang 12World wide web (www) vμ siêu văn bản hypertext TATA Jsc - CIC
• Serial Line Internet Protocol(SLIP) : là giap thức cho phép cho phép hai máy tính nối với nhau qua đường tuần tự (RS 232), có thể dùng giao thức này để truy cập từ xa hoặc trao đổi thông tin giữa hai mạng
• 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
• 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)
Trang 13World wide web (www) vμ siêu văn bản hypertext TATA Jsc - CIC
• IPb được gọi là IP đích, Pb được gọi là cổng đích
• Chúng ta lư ý rằng cổng không hề quan hệ gì với quá trình
Cổng TCP/IP
• Trên thực tế, mỗi một gioa thức chuẩn của TCP/IP đều được gán một hoặc vài cổng, các cổng này được gọi là cổng nổi tiếng (well-known ports), các cổng này có giá trị nhỏ hơn 1024, chún là các công TCP/IP
• Chúng ta lưu ý rằng có thể có nhiều quá trình cùng truyền tin thông qau một cổng (như cổng 80: HTTP) Như vậy, cổng TCP/IP cũng chưa đủ đẻ phân biệt giữa các quá trình
Hình thức trao đổi thông tin của TCP
• Mỗi một gói tin được TCP đánh số (sequence number) để bên nhận sắp xếp cho đúng thứ tự
• Ngược lại, bên nhận sẽ gửi trả một gói tin (Acknowledge) báo là đã nhận
được
• Với hình thức trên, người ta có thể cắt nhỏ gói tin, gửi đi và khôi phục lại
Khái niệm cửa sổ trượt (Sliding Windows)
• Với hình thức trao đổi thông tin như đã trình bày, bên gửi và bên nhận đều phải đợi nhau, không tận dụng được băng thông đường truyền
• Người ta cho phép bên gửi gửi đi n gói tin trước khi nhận trả lời, n được gọi là chiều rộng của cửa sổ
Truyền tin với cửa sổ trượt
• Với sự tham gia của cửa sổ trượt, TCP trao đổi hiệu quả hơn
• Tuy nhiên, cửa sổ cần được chọn một cách tối ưu, không bé quá, không lớn quá Bé quá hiệu suất sẽ thấp, lớn quá gây tắc ngẽn trên mạng
• Đầu cuối mạch ảo
• TCP dựa vào khái niệm đầu cuối (end point) là cặp (địa chỉ IP, cổng)
• Trên cùng một máy có thể có nhiều điểm kết nối (giá trị cổng khác nhau)
• TCP truyền dữ liệu theo dòng (stream) và như vậy, thứ tự các byte gửi đi cần
được tôn trọng ( nhờ vào sequence number)
Socket