Mô hình liên mạng Internet l Trong mô hình Internet, các gateways liên kết các mạng lại với nhau; l Các gateways chuyển gói tin dựa trên ñịa chỉ mạng, chứ không dựa trên ñịa chỉ máy ñơn
Trang 1Giới thiệu bộ giao thức TCP/IP
ThS Lê Văn Lợi e-mail: lv_loi@yahoo.com
Tham khảo:
Douglas E Comer: Internetworking with TCP/IP, Volume I ibm.com/redbooks
Nội dung trình bày
l Cơ bản về Internet, TCP/IP
l Lớp truyền tải
l Các giao thức ứng dụng
Trang 2TCP/IP là gì?
l Transmission Control Protocol / Internet Protocol
l TCP/IP là bộ giao thức ñược sử dụng trên Internet và ñược tài liệu hoá thông qua RFC (Request For Comments)
l Không có ai sở hữu TCP/IP, ñược phát triển bởi cộng ñồng dưới
sự quản lý của ISOC (Internet Society), trước ñây là IAB (Internet Activities Board) IAB hiện nay trực tiếp theo dõi RFC
l Khác với các dạng tài liệu nghiên cứu khác, RFC chỉ xuất hiện khi cần thiết và thường là xuất hiện kèm theo ứng dụng mới Một số RFC cũ bất hợp lý sẽ ñược thay thế bới RFC mới
l Không phải RFC nào cũng trở thành giao thức, nhưng các giao thức ñều ñược phát triển từ RFC.
Mô hình liên mạng (Internet)
l Trong mô hình Internet, các gateways liên kết các mạng lại với nhau;
l Các gateways chuyển gói tin dựa trên ñịa chỉ mạng, chứ không dựa trên ñịa chỉ máy ñơn lẻ;
l Tất cả các mạng ñều bình ñẳng như nhau, bất kể ñó là mạng lớn hay mạng bé;
l Dưới con mắt của người dùng, họ không cần biết ñến mạng hay gateways, họ chỉ cần biết ñến các dịch vụ ñược cung cấp.
Trang 3Cấu trúc lớp TCP/IP
Lớp ứng dụng
Lớp truyền tải
Lớp liên mạng
Lớp vật lý LAN, X.25, SNA, ATM, FR, Asynch,
IP, ICMP, IGMP, ARP,
l Cấu trúc và phân lớp của ñịa chỉ IP:
01234 8 16 24 31
Trang 4Các ñặc tính của ñịa chỉ IP
l Địa chỉ IP có 2 phần rõ rệt: ñịa chỉ mạng và ñịa chỉ máy;
l Số 0 có nghĩa là chính bản thân mạng ñó - vì vậy, không có máy nào
có phần hostid = 0; netid=0 => chính mạng này;
l Địa chỉ hostid với toàn bộ các bit =1 có nghĩa là “tất cả các máy” ñây gọi là chế ñộ broadcast;
-l Cách viết ñịa chỉ: a.b.c.d; a,b,c,d từ 0 ñến 255;
l Địa chỉ IP là ñịa chỉ logic, không phải là ñịa chỉ vật lý (phân biệt với ñịa chỉ Ethernet là ñịa chỉ vật lý);
l The Internet Assigned Numbers Authority (IANA) cấp ñịa chỉ
l Bài tập 1:Tính số ñịa chỉ mạng và ñịa chỉ máy ñối với các lớp A, B, C
Một số trường hợp ñặc biệt
l 127.0.0.1: là ñịa chỉ cho chính một máy (localhost);
l 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;
l 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;
l 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
Trang 5IP subnet và mặt nạ mạng (mask)
l 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);
l Hình thức chia: (netid,hostid) => (netid,subnetid,hostid);
l Hình thức thay ñổi này chỉ có ý nghĩa cục bộ, ñối với bên ngoài thì vẫn coi như chỉ có một mạng;
l 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;
l 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 liên tục
l Address Resolution Protocol (ARP) dùng ñể giải ñc IP sang ñc vật lý;
l Phương thức: A dùng broadcast hỏi ai có ñc IP x; máy B có ñc IP
x sẽ trả lời A;
Trang 6IP: unreliable, connectionless, best-effort unreliable, connectionless, best
l Khi A muốn gửi cho B, A ñể ñc B vào gói tin và gửi;
l Gói tin có thể ñến ñược B hoặc không ñến; gói tin có thể ñến lặp nhiều lần; A không xác ñịnh ñược là B có nhận ñược gói tin hay không; thậm chí A cũng không biết B có bật máy hay không;
l Cách làm này tạo ñiều kiện cho máy gửi hoàn toàn chủ ñộng, không cần phải kết nối với máy ñịnh gửi;
l Lớp truyền tải có TCP là giao thức ñảm bảo thông tin gửi ñi;
l Các nhà thiết kế ñã trao trách nhiệm cho IP là gửi gói tin, còn TCP có trách nhiệm ñảm bảo tin ñến nơi cần gửi;
Trang 7Cấu trúc gói tin IP (1)
vers hlen service type total length
0 4 8 16 19 24 31
identification flags fragment offset time to live protocol header checksum
source IP address destination IP address
IP options (if any) padding
data
Cấu trúc gói tin IP (2)
l vers: phiên bản = 4; hlen = header length (y bytes)
l service type:
l identification: số nguyên (16 bit) cùng với flags và offset kiểm soát việc chia gói tin từ ñiểm gửi ñến ñiểm nhận;
l time to live (TTL): số giây cho phép gói tin tồn tại trên mạng;
l protocol: giao thức mức cao hơn;
l header checksum: dùng ñể kiểm lỗi;
l IP options: các tuỳ chọn trong gói tin - chúng ta không ñi sâu;
precedence d t r unused
Trang 8Định tuyến các gói tin IP
l Router: bộ ñịnh tuyến, chuyển gói tin ñến ñc cần ñến;
l Chuyển trực tiếp: A và B trên cùng một mạng;
l Chuyển gián tiếp: A và B trên hai mạng khác nhau;
l Thườ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;
l Bài tập 2: trong một mạng LAN, người ta quan sát thấy là các gói tin có ñc của máy A thì ñược gửi về máy A, còn một số gói tin không có ñc của máy B lại ñược gửi về máy B Giải thích tại sao?
ICMP
l Chúng ta ñã thấy là các gói tin IP ñi từ gateway này ñến gateway khác truớc khi ñến ñc cuối cùng; Nếu gói tin không ñến ñược ñc cần gửi thì phải có cơ chế báo lỗi;
l 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 là báo không gửi ñược);
l Chương trình pinggử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 thì máy gửi sẽ nhận lại các gói 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ì pingsẽ 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 là ñường truyền chưa tốt;
Trang 9l broadcast (1s): gửi ñến tất cả các máy;
l multicast: các máy tham gia vào một nhóm nào ñó chọn một ñc chung; sau ñó, bất cứ gói tin nào gửi ñến ñc chung ñó sẽ ñược gửi ñến tất cả các máy trong nhóm; ñc chung thuộc vào lớp D;
l Internet Group Management Protocol (IGMP) dùng ñể xác ñịnh các thành viên và ñể gateways gửi các gói tin ñến các thành viên;
SLIP
l Serial Line Internet Protocol (SLIP) là giao thức 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 tingiữa hai mạng;
l Tuy nhiên, SLIP có một số nhược ñiểm:
4 Chỉ truyền ñược gói IP, không truyền ñược các giao thức khác;
4 Không có khả năng tự xác ñịnh ñược ñc IP máy ñối diện;
4 Không có cơ chế tự sửa lỗi, truyền không tốt khi ñường truyền bị nhiễu
l 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;
Trang 10l Point-To-Point Protocol (PPP) là giao thức ñược thiết lập ñể khắc phục các nhược ñiểm của SLIP;
l Dùng PPP, hai bên có thể “thương lượng” ñể thống nhất ñc IP;
l 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;
l 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;
Sự cần thiết phải chia lớp giao thức
l Khi liên lạc giữa các máy tính, rõ ràng là cần nhiều giao thức và các giao thức này phải hợp tác với nhau;
layer n
layer 2 layer 1
layer n
layer 2 layer 1
Network
Trang 11Chia lớp trong bộ TCP/IP
ứng dụng truyền tải Internet giao diện mạng
ứng dụng truyền tải Internet giao diện mạng
Network
Internet giao diện mạng Gateway G
Network
Cổng (1)
l Trong các hệ ñiều hành ña nhiệm, có nhiều tiến trình cùng chạy;
có thể có nhiều tiến 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 tiến trình nào;
l Như vậy, trên cùng một máy, có thể có nhiều ñầu ñiểm kết nối và các gói tin phải có “ñịa chỉ” của tiến trình nhận:
Trang 12l Tuy nhiên, trên máy này không thể biết ñược trên máy kia ñang chạy tiến trình nào; rõ ràng, phải có cách sao cho tất cả các máy ñều hiểu bất kể máy chạy HĐH nào;
l 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;
l Thông thường, ñể tránh mất dữ liệu, các cổng ñều có vùng nhớ ñệm;
Cổng (2)
l Một kết nối ñược ñịnh nghĩa bằng (IPa, Pa)-(IPb, Pb);
l IPa ñược gọi là ñc IP nguồn, Pa ñược gọi là cổng nguồn;
l IPb ñược gọi là ñc IP ñích, Pb ñược gọi là cổng ñích;
l Chúng ta lưu ý rằng cổng không hề có quan hệ gì với tiến trình;
Cổng (3)
Trang 13Cổng TCP/IP
l Trên thực tế, mỗi một giao 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ác cổng nổi tiếng (well-known ports); các cổng này có giá trị nhỏ hơn 1024; chúng là các cổng TCP/IP;
l Chúng ta lưu ý rằng có thể có nhiều tiến trình cùng truyền tin thông qua 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 tiến trình;
User Datagram Protocol (UDP)
l Cũng giống như IP, UDP không có cơ chế kiểm tra, sau khi gửi không biết máy kia có nhận ñược không;
l UDP hơn IP ở chỗ là UDP có cổng nguồn và cổng ñích;
l Chương trình muốn sử dụng UDP phải có cơ chế tự kiểm lỗi vì UDP không có cơ chế kiểm lỗi;
UDP source Port UDP destination Port UDP message length UDP checksum
Data
0 16 31
Trang 14Transmission Control Protocol (TCP)
l TCP là giao thức dùng ñể gửi thông tin ñi một cách ñáng tin cậy;
bên gửi và bên nhận thiết lập một liên kết trước khi trao ñổi với nhau
source Port destination Port
Data
0 4 10 16 31
Sequence Number Acknowledgement number Reserved Code bits
Checksum Urgent Pointer
Hình thức trao ñổi thông tin của TCP
l 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ự;
l Ngược lại, bên nhận sẽ gửi trả một gói tin (Acknowledge) báo là ñã nhận ñược
l 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
Gửi P1
Nhận P1, gửi trả Ack1 NhậnAck1, gửi P2
Nhận P2, gửi trả Ack2 NhậnAck2
Trang 15Khái niệm cửa sổ trượt (Sliding windows)
l 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;
l Người ta cho phép bên gửi gửi ñi n gói tin trước khi chờ nhận trả lời; n ñược gọi là chiều rộng cửa sổ;
1 2 3 4 5 6 7 8 9 10
Truyền tin với cửa sổ trượt
l Với sự tham gia của cửa sổ trượt, TCP trao ñổi hiệu quả cao hơn;
l 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á thì hiệu suất thấp, lớn quá thì gây tắc nghẽn trên mạng;
Gửi Pi
Nhận P i , gửi trả Ack i
Trang 16Đầu cuối và mạch ảo
l TCP dựa vào khái niệm ñầu cuối (end point) là cặp (ñc IP, cổng);
l 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);
l 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)
Trang 17Sơ kết các lớp giao thức
l Lớp dưới cùng là lớp phần cứng, chủ yếu các mạng hiện nay sử dụng Ethernet;
l ARP và RARP không phải lúc nào cũng ñược sử dụng; RARP rất
ít khi ñược sử dụng; Ethernet sử dụng ARP;
l IP dựa vào ARP, RARP và các giao thức phần cứng; TCP và UDP dựa vào IP; Các giao thức ứng dụng dựa vào TCP & UDP
l Bài tập 3: Các gói tin ñóng gói nhau như thế nào?
Các giao thức phần cứng ARP & RARP
l Trong các phiên bản của Windows ñều có telnet (start>run>telnet);
ñối với Unix/Linux thì telnet là một lệnh của hệ ñiều hành;
l Câu lệnh: telnet ñcIP (telenet 192.168.0.1)
Internet
Hiển thị trên màn hình
Trang 18File Transfer Protocol (ftp)
l ftp là giao thức ñược dùng một cách phổ thông ñể truyền file, ñặc biệt là ñối với các máy ở xa;
l Trong các phiên bản của Windows ñều có ftp (start>run>ftp); ñối với Unix/Linux thì ftp là một lệnh của hệ ñiều hành;
l ftp có một tập lệnh riêng (sau khi vào ftp, gõ lệnh help ñể biết các lệnh của ftp);
l WS FTP Pro là một chương trình ftp có giao diện ñồ hoạ và vì vậy rất dễ sử dụng;
InternetCâu lệnh ftp dùng ñể truy cập ñĩa
Có thể dùng ñể truyền file theo hai chiều
Domain Name System (DNS) (1)
l Vì ñc IP là những con số nên khó nhớ; người ta ñặt tên máy bằng hệ thống tên miền như yahoo.com, hotmail.com, home.vnn.vn;
l Chú ý rằng ñể truy cập ñược các máy, chúng ta cần ñc IP chứ không phải tên, do ñó cần thiết phải có cơ chế chuyển ñổi tên sang ñc IP;
l Internet giải quyết vấn ñề này bằng cách sử dụng một máy chủ có tên
là Domain Name Server; máy chủ này nhận các yêu cầu từ các máy khác gửi ñến ñể giải các tên và trả lại ñc IP hoặc gửi ñến IP và hỏi tên là gì (reverse mapping);
l Các yêu cầu ñược gửi ñến theo một dạng thức nhất ñịnh (DNS format); chúng ta không xét chi tiết dạng thức này;
Trang 19Domain Name System (DNS) (2)
l Nếu ñể tên “phẳng” như cách làm của WINS thì chỉ thích hợp với một số lượng nhỏ các máy; (thực chất là ánh xạ giữa ñc IP và tên);
l Máy làm quản trị sẽ trở nên rất nặng nề khi số lượng máy tăng lên ;
l Trước ñây toàn bộ tên ñược quản lý bởi InterNIC, có 1 file tên là hosts.txt Các máy khác muốn lấy danh sách thì dùng ftp lấy file ñó
về máy của mình ñể tra;
l Sau ñó, việc quản trị tên ñược giao cho DNS server phân tán theo cơ chế phân cấp, phân cấp cả về trách nhiệm lẫn quyền hạn;
Domain Name System (DNS) (3)
l Các domain ñược chia thành các domain nhỏ và có các DNS server chịu trách nhiệm giải tên; nếu tên không nằm trong miền của mình thì sẽ gửi tiếp yêu cầu lên cấp trên; tại cấp trên cùng, các server sẽ gửi xuống cấp dưới căn cứ vào tên miền;
Root Server
Server com Server edu Server gov
purdue.edu yahoo.com
Trang 20Thư ñiện tử (e-mail)
l Cũng giống như ftp, thư ñiện tử là hình thức cho phép trao ñổi thông tin từu máy này sang máy khác thông qua Internet nhưng bắt chước hình thức gửi thư thông thường;
l Người ta tổ chức thành các hộp thư ñiện tử và trong ñó có tên của từng người; hộp thư (mailbox) vừa làm công việc nhận thư vừa làm công việc gửi thư;
l Địa chỉ thư ñiện tử có dạng:
local-part@domain-name
ví dụ: vielina@hn.vnn.vn
mail server
smtp pop3
smtp pop3
server
Trang 21l DHCP là giao thức cho phép một máy chủ DHCP phân tự ñộng ñc IP cho các máy ở trong mạng; DHCP hỗ trợ các chức năng sau:
– Cấp phát tự ñộng: mỗi máy sẽ ñược gán thường trực một ñc IP;
– Cấp phát mềm dẻo: cấp ñc IP trong một khoảng thời gian nhất ñịnh; cơ
chế này cho phép sử dụng lại các ñc IP ñã ñược cấp phát nhưng lại không dùng nữa;
– Cấp phát thủ công: do quản trị viên chịu trách nhiệm;
l Có thể có nhiều DHCP server trên cùng một mạng; mỗi một server quản lý một vùng ñc IP riêng biệt; Tuy nhiên, các server này không ñược quản lý các vùng ñc chồng chéo lên nhau;
l Với DHCP, việc quản trị ñc IP ñược giảm ñáng kể;
Dynamic DNS (DDNS)
l DDNS là mở rộng của DNS, có thể giải các ñịa chỉ từ tên miền ngay
cả khi sử dụng DHCP;
l Phải có phương thức giảo xuôi (tên miền -> ñịa chỉ IP) và giải ngược:
ñịa chỉ IP -> tên miền;
l Việc ghi vào DNS phải ñược thực hiện ngay, không cần sự can thiệp của người quản trị;
Trang 22Dịch vụ World Wide Web (www)
l Tim Berners Lee ở Phòng thí nghiệm Vật lý hạt châu Âu ñã phát triển hình thức mà hiện nay ñược biết ñến là WWW Mục ñích của anh lúc ñầu là ñể chia sẻ tài liệu giữa các nhà nghiên cứu;
l Hiện nay Web là dịch vụ phổ biến nhất trên mạng Internet;
l Web hoạt ñộng theo phương thức client/server (khách/chủ);
l Web server cung cấp dịch vụ Web;
l Các máy client sử dụng bộ duyệt (browser) ñể xem nội dung;
l Nội dung của các trang web ñược viết ra dưới dạng ngôn ngữ html (hyper text markup language);
l Địa chỉ các trang web gồm ñc máy và ñường dẫn ñến file chứa html trên máy ñó, ví dụ:
http:// support.vnn.vn /tiengviet/index.html
HyperText Transfer Protocol (http)
l http là giao thức ñược thiết kế ñể truyền tải html;
l html là ngôn ngữ dùng “thẻ” ñể chỉ ñịnh các dạng thức ñược trình bày trên màn hình Cụ thể như thế nào là trách nhiệm của bộ duyệt;
htnl chứa các liên kết ñến các trang khác trên các máy web server khác nhau, các ảnh, audio, video, ;
l http ñược chia thành 4 bước:
– Bộ duyệt mở kết nối ñến web server;
– Bộ duyệt gửi một yêu cầu ñến server;
– Web server gửi html trả về cho bộ duyệt;
– Đóng kết nối bởi server;
l Thông thường http dựa trên cổng 80 của TCP, nhưng ñiều này không bắt buộc;