Pages

Tuesday, May 25, 2010

3-way hand shake của TCP( vui một tý)

Có rất nhiều câu hỏi về chủ đề này: tại sao không phải là bắt tay 2 bước, 4 bước, n bước mà cứ phải là 3 bước. Qua ví dụ sinh động về cách diễn đạt này, bạn sẽ hiểu thêm được tại sao lại là 3 bước:

-----------------------------------------
Trong một trận chiến có 2 đội quân A và B.
Đội quân B hiện đang bị bao vây phía dưới thung lũng, và có khoảng 10 nghìn quân
Đội quân A ở phía trên, chia thành 2 nhóm là A1 và A2 đóng ở 2 đầu thung lũng, mỗi nhóm nhỏ có khoảng 7 nghìn quân
Rõ ràng là nếu đội quân A tiến công từng nhóm lẻ tẻ thì sẽ không thể thắng được, muốn thắng thì đòi hỏi cả 2 nhóm quân A1 và A2 cùng tiến đánh một lúc. Thời ngày xưa thì không có các phương tiện truyền thông hiện đại như bây giờ, mỗi khi muốn trao đổi thông tin thì cần cử người đem thông điệp sang tận nơi. Vậy làm thế nào để đảm bảo cả 2 đội quân đều ồ ạt tấn công 1 lúc?
Như vậy trong trường hợp này, quân A muốn đánh thắng thì trước hết 2 nhóm A1 và A2 phải "đồng bộ" thời gian tấn công như sau:
Bước 1: A1 gửi thư sang cho A2, yêu cầu đúng giờ X thì tấn công
Bước 2: A2 gửi trả lời: "đồng ý, giờ X nhé!"
Tuy nhiên nếu chỉ 2 bước thế này thì vẫn chưa chặt chẽ. Trong trường hợp anh lính liên lạc bị giết chết trong quá trình mang thư trả lời của A2, A1 không nhận được trả lời thì không dám tấn công một mình, còn A2 thì cứ đinh ninh rằng giờ đó tấn công là được --> đến giờ đó A2 tấn công 1 mình --> hy sinh
Như vậy cần thêm 1 bước nữa để đảm bảo rằng A1 đã nhận được trả lời của A2:
Bước 3: A1 gửi trả lời: "đã nhận thông điệp thành công!"
Đến lúc này, qua 3 bước thì quân A có thể đảm bảo sự thống nhất giữa 2 nhóm quân, chỉ việc chờ đến giờ X cùng tấn công đồng loạt là giành phần thắng

Đó là ý nghĩa vì sao là 3 ways chứ ko phải 2 ways, 4 ways hay n ways...

Sử dụng Tracert

Tracert (hay Traceroute) là công cụ dựa trên nền tảng Windows cho phép bạn hỗ trợ chương trình kiểm tra cơ sở hạ tầng mạng. Trong bài này chúng tôi giới thiệu cách dùng Tracert để sửa chữa các vấn đề gặp trong thực tế. Điều này giúp tăng cường tính hữu ích của công cụ và chỉ cho bạn một số cách dùng khi làm việc với các mạng riêng của mình.

Tiện ích TCP/IP này cho phép bạn xác định các gói định hướng lưu chuyển trong toàn bộ mạng tới host cụ thể theo yêu cầu của bạn. Tracert hoạt động bằng cách tăng thêm giá trị "thời gian sống" (TTL) cho từng gói liên tiếp được gửi đi. Khi một gói đi qua một host, host này sẽ giảm TTL đi một giá trị và tiếp tục gửi nó sang host kế tiếp. Khi một gói có TTL đến được host cần tới, host sẽ loại bỏ gói và gửi thông báo thời gian ICMP quá hạn. Tracert nếu được dùng phù hợp và chính xác có thể giúp bạn tìm ra các điểm định tuyến không chính xác hoặc không tồn tại trong mạng của bạn.

Giới thiệu về Tracert

Tracert là công cụ dòng lệnh nền tảng Windows dùng để xác định đường đi từ nguồn tới đích của một gói Giao thức mạng Internet (IP - Internet Protocol). Tracert tìm đường tới đích bằng cách gửi các thông báo Echo Request (yêu cầu báo hiệu lại) Internet Control Message Protocol (ICMP) tới từng đích. Sau mỗi lần gặp một đích, giá trị Time to Live (TTL), tức thời gian cần để gửi đi sẽ được tăng lên cho tới khi gặp đúng đích cần đến. Đường đi được xác định từ quá trình này.

Nhìn vào hình minh hoạ sau bạn có thể hình dung ra được cách thức Tracert hoạt động trong một mạng sản xuất.

Sử dụng Tracert như thế nào

Như bạn thấy ở hình minh hoạ, chúng ta sẽ gửi lưu lượng từ trạm kiểm tra bên B (Site B) tới một server ở bên A (Site A). Các gói tin sẽ truyền đi trong mạng diện rộng (WAN), phân tách thành hai phía nối với nhau qua liên kết T1 và một liên kết dự phòng ISDN (Integrated Services Digital Network). Để dùng tiện ích Tracert, đơn giản bạn chỉ cần biết địa chỉ IP của máy đích muốn gửi đến, cách sử dụng Tracert chính xác và bạn cần tìm cái gì trong kết quả.

Tracert hoạt động dựa vào thao tác với trường Time to Live (TTL). Bằng cách tăng TTL và sau mỗi lần gặp router, giá trị của nó lại giảm đi một, gói tin được gửi tới router tiếp theo. Mỗi lần gói tin được gửi từ router này đến router khác, người ta gọi là nó đã thực hiện một bước nhảy (hop). Khi trường TTL có giá trị trở về 0, router sẽ gửi thông báo "Time Exceeded" ICMP (hết thời gian) tới máy nguồn. Bạn có thể xem ví dụ với mạng mẫu sau của chúng tôi trong phần minh hoạ bên dưới. Với địa chỉ IP nguồn và đích,… chúng ta sẽ dùng trạm làm việc ở Site B và server bên Site A để thực hiện bài kiểm tra.

Từ minh hoạ này bạn có thể thấy, IP nguồn là 10.1.2.4 và IP đích (ví dụ) có thể là 10.1.1.6. Việc định tuyến thông thường diễn ra từ Site B sang Site A, qua liên kết có dung lượng cao hơn là T1 (1.544 Mbqs). Liên kết ISDN có dung lượng 128 Kbqs chỉ được dùng dự phòng trong trường hợp liên kết chính gặp lỗi. Tracert sẽ chỉ cho bạn thấy các gói tin được gửi từ Site B, tại máy có địa chỉ 10.1.2.4, qua liên kết T1 tới máy có địa chỉ 10.1.1.1. như thế nào. Bạn còn có thể biết được cách gửi các gói tin tới mạng LAN cục bộ (10.1.1.0) và cuối cùng là 10.1.1.6 như thế nào.

Khi các gói tin đã được gửi đi, Tracert sẽ dùng giao diện đầu tiên trên router nó nhìn thấy để thông báo lại các bước nhảy router. Vì thế, hãy xem xét toàn bộ đường đi hoàn chỉnh của chúng ta trước khi gửi các gói tin đi.

Đường đi (được tô màu đỏ trên hình) là danh sách các router nằm giữa host nguồn và host đích. Một điểm rất quan trọng cần nhớ là các giao diện ở phía bên trái sẽ được dùng khi mô tả. Giao diện bên trái là giao diện của router gần nhất với host gửi tin trong đường đi. Trong ví dụ này bạn có thể thấy đường đi qua T1, từ phía B (Site B) sang phía A (Site A). Bây giờ chúng ta hãy cùng xem tại sao điều này lại quan trọng.

Vậy các cách làm việc của tracert là gì? Khi khởi chạy và sử dụng, tracert sẽ báo cáo (in ra) danh sách đã được sắp xếp các địa chỉ của từng host mà nó đã đi qua trên đường đến đích. Điều này thực sự hay vì bạn có thể biết được nhiều hơn về đường đi này. Nếu bạn thu được phần gần mặt phân cách, bạn sẽ thấy một thiết lập mới của địa chỉ IP trong hình minh họa tiếp theo (192.168.10.1 và 192.168.11.1) 10.1 được sử dụng cho liên kết ISDN và 11.1 sử dụng cho liên kết T1. Vậy tại sao điều này lại quan trọng?

Khi nhận được kết quả từ Tracert, một số người không thạo làm việc với công cụ này sẽ thấy lúng túng. Router cổng vào 10.1.1.1 mặc định của Site A được thay thế bằng địa chỉ WAN. Chỉ là một router nhưng giao diện khác. Điều này mang tính chất bắt buộc khi muốn kiểm tra với Tracert bởi vì nếu bạn nhầm, bạn sẽ không biết được mình đang đọc gì.

Ví dụ, đường đi bạn thấy ở hình minh hoạ trên là từ 10.1.2.4 tới 10.1.2.1 (cổng vào mặc định của mạng LAN). Sau đó nó sẽ qua mạng WAN tới 10.1.1.1. Chỉ có một vấn đề xuất hiện ở đây là bạn sẽ không thấy địa chỉ xuất hiện. Sau khi T1 có giao diện trên router (11.1) của phía A (Site A) và thực hiện liên kết ISDN (10.1) thì hai địa chỉ IP này là quan trọng nhất trong kết quả trả ra của Tracert. Đó là do trong ví dục này T1 có thể bị lỗi và đường đi bây giờ là qua ISDN. Điều này hoạt động "như được công khai hoá". Nhưng chuyện gì sẽ xảy ra nếu bạn để T1 online trở lại (trừ trường hợp bạn cảm thấy tốc độ mạng của mình tại T1 tụt từ 1.544 Mbqs xuống còn 128 Kbqs), bạn không nên dùng liên kết ISDN thêm phút nào nữa. Đó là điều chúng ta sẽ kiểm tra.

Kiểm tra Tracert

Bây giờ, để dùng Tracert, đơn giản bạn chỉ cần mở màn hình lệnh Command Prompt. Để thực hiện điều này, bạn vào Start -> Run -> cmd -> tracert
(Chú ý: bạn phải gõ "tracert" vì bạn có thể thấy Traceroute chỉ hoạt động trên UNIX/Linux và các hệ thống khác như Cisco, v.v…).

Trong ví dụ sau, sau khi gõ lệnh "tracert" và xem phần thông tin hiển thị ra bạn có thể thấy các gói di chuyển qua hai router (như ở phần minh hoạ trên) rồi mới tới host đích 10.1.1.6. Ở đây, cổng vào mặc định từ Site B là 10.1.2.1 và địa chỉ IP của router trên mạng WAN qua các liên kết T1 và ISDN (lần lượt) là 192.168.11.1 và 192.168.10.1.

Đầu tiên chúng ta hãy xem mọi việc diễn ra như thế nào khi dùng T1.
C:\>tracert 10.1.1.6
Tracing route to 10.1.1.6 over a maximum of 30 hops (Xác định đường đi tới địa chỉ 10.1.1.6 qua tối đa 30 bước nhảy)
---------------------------------------------------
1 2 ms 3 ms 2 ms 10.1.2.1
2 25 ms 83 ms 88 ms 192.168.11.1
3 25 ms 79 ms 93 ms 10.1.1.6
Trace complete. (Quá trình xác định hoàn tất)

Bây giờ, nếu T1 bị lỗi và chuyển sang dùng ISDN, bạn sẽ thấy có một 'đường đi' khác và nó 'dài hơn' so với đường đi ban đầu.
C:\>tracert 10.1.1.6
Tracing route to 10.1.1.6 over a maximum of 30 hops
---------------------------------------------------
1 2 ms 3 ms 2 ms 10.1.2.1
2 75 ms 83 ms 88 ms 192.168.10.1
3 75 ms 79 ms 93 ms 10.1.1.6
Trace complete.

Như bạn thấy, sử dụng tracert sẽ giúp bạn xác định rõ được đường dẫn mạng như nó hướng ra ngoài thông qua mạng và quan trọng nhất là làm thế nào để dữ liệu đi qua đường dẫn đó.

Sử dụng các tuỳ chọn Tracert

Để dùng Tracert, các bạn nên biết một số tuỳ chọn sau. Hữu ích nhất là tuỳ chọn đầu tiên "-d". Nó được dùng khi bạn muốn loại bỏ giải pháp DNS. Các server name (tên máy chủ) cũng rất hữu ích, nhưng nếu nó không được thiết lập hoặc thiết lập sai, hay đơn giản là bạn chỉ muốn có địa chỉ IP của host, bạn nên dùng tuỳ chọn "-d".


-d Ngăn Tracert xử lý địa chỉ IP của các router ở giữa với tên của chúng. Điều này có thể giúp nâng cao tốc độ hiển thị kết của của Tracert. -h Số lượng lớn nhất các hop (bước nhảy) trong đường đi đến host đích. Giá trị mặc định là 30 hop -j Bạn có thể dùng tuỳ chọn này với một danh sách host (HostList). Các thông báo Echo Request (yêu cầu báo hiệu lại) dùng tuỳ chọn Loose Source Route trong phần header của địa chỉ IP với tập hợp các đích trung gian được mô tả trong HostList. Việc sử dụng tuỳ chọn Loose Source Route giúp các đích trung gian lần lượt được tách riêng bởi môt hoặc nhiều router. Số lượng lớn nhất địa chỉ hay tên trong danh sách host list là 9. HostList là một loạt địa chỉ IP (là các số thập phân liền nhau với các dấu chấm đan xen) cách nhau bởi một khoảng trắng. -w Khoảng thời gian (tính theo mili giây) chờ thông báo ICMP Time Exceeded hoặc Echo Reply đáp lại tương ứng với thông báo Echo Request. Nếu vượt quá khoảng thời gian quy định mà không có thông báo gì, dấu hoa thị (*) sẽ được hiển thị. Thời gian mặc định là 4000 (tức 4 giây) -? Phần trợ giúp ở màn hình lệnh.
tracert [-d] [-h MaximumHops] [-j HostList] [-w Timeout] [TargetName]
Sử dụng Tracert để gỡ rối như thế nào

Có thể đôi khi phần thông tin hiển thị ra ngoài không rõ ràng khiến bạn không hiểu. Chẳng hạn như khi xuất hiện các dấu hoạ thị bạn sẽ làm gì? Như đã đề cập đến ở phần trên, dấu hoa thị có thể hiển thị sai, vì gói ICMP có thể đã được chuyển đến nơi nhưng có cái gì đó đã cản trở quá trình thông báo lại, thường là một nguyên tắc nào đó trong tường lửa hoặc danh sách điều khiển truy cập (Access Control List).

Bạn có thể dùng Tracert để tìm ra chỗ gói tin bị ngừng lại trên mạng. Trong ví dụ sau, cổng mặc định đã tìm ra rằng không có đường đi nào hợp lệ ở bất kỳ host nào. Điều này có nghĩa là cả hai liên kết (T1 và ISDN) đều đã "sập" và không có đích nào có thể đến.
C:\>tracert 10.1.1.6
Tracing route to 22.110.0.1 over a maximum of 30 hops
-----------------------------------------------------
1 10.1.2.1 reports: Destination net unreachable.
Trace complete.

Từ ví dụ này bạn có thể thấy, khi bạn gửi yêu cầu kiểm tra Tracert tới địa chỉ 10.1.1.6, cổng LAN mặc định báo lại rằng nó không thể tìm thấy đường đi. Nhìn vào sơ đồ cụ thể sau có thể giúp bạn hiểu vấn đề rõ ràng hơn.
Bạn có thể thấy, không có đường đi nào cho gói tin. Router gần nguồn nhất thông báo rằng từ nguồn không có đường đi nào để tới các host khác.
Chú ý quan trọng

Dưới đây là một số chú ý quan trọng giúp bạn hiểu sâu hơn về Tracert.


  • Không phải lúc nào Tracert cũng giúp bạn tìm kiếm 'latency' (độ trễ). Để xác định đường đi và cung cấp độ trễ cũng như các gói tin thất lạc cho từng router và liên kết trong đường đi, sủ dụng lệnh "pathping". Bạn có thể tham khảo bài về pathping đã được Quantrimang.com giới thiệu trước đây.
  • Tracert chỉ có thể dùng được nếu giao thức Internet Protocol (TCP/IP) đã được cài đặt như là thành phần trong các thuộc tính của một bộ điều hợp mạng (network adapter) ở Network Connections. Đây là một tiện ích TCP/IP sử dụng ICMP, một giao thức nằm trong bộ giao thức TCP/IP.
  • Trong phiên bản Linux hiện đại, tiện ích tracerouter (không phải là tracert mặc dù một số hệ thống Linux cũng cho phép bạn sử dụng tracert) dùng UDP datagram với mã số cổng là 33434. Windows dùng yêu cầu báo hiệu lại ICMP (kiểu 8) được biết đến nhiều hơn với các gói ping.
Tóm tắt

Trong bài này chúng tôi đã chuyển tới bạn khái niệm cơ bản về Tracert. Tracert (hay còn được biết đến là traceroute) là một công cụ dựa trên nền tảng Windows, cho phép bạn hỗ trợ kiểm tra cơ sở hạ tầng mạng. Cụ thể trong bài chúng tôi hưỡng dẫn bạn cách dùng tracert để gỡ lỗi các vấn để xảy ra trong thực tế như đa đường đi hay các link không hoạt động. Điều này giúp tăng cường tính hữu ích của công cụ và chỉ cho bạn cách sử dụng khi làm việc với mạng riêng của mình. Tiện ích TCP/IP này cũng cho phép bạn xác định đường đi của các gói tin truyền qua mạng tới host cụ thể bạn chỉ định. Khi một gói tin đi qua một host, host sẽ giảm giá trị TTL của gói tin đi một giá trị và gửi tới host tiếp theo. Khi quá thời gian mà chưa đến đúng địa chỉ cần tìm, host nhận được gói tin sẽ loại bỏ và gửi lại thông báo thời gian quá hạn ICMP. Tracert nếu được dùng hợp lý có thể giúp bạn tìm ra các điểm trong mạng được định tuyến không chính xác hoặc không tồn tại. Tracert (hay traceroute) là công cụ bạn phải kiểm soát được nếu có kế hoạch làm việc trên mạng. Nó (và ping, pathping) có thể được dùng để giúp bạn ánh xạ và gỡ lỗi mạng dễ dàng. Các bạn nên tìm hiểu về các công cụ này kỹ hơn từ các bài tham khảo.


Sưu tầm

Monday, May 24, 2010

Internet: Các giao thức lớp giao vận

Lớp Giao vận trong mô hình tham chiếu DOD (xem Internet thật là đơn giản số 5/2003) cung cấp khả năng truyền thông từ một chương trình ứng dụng này tới một chương trình ứng dụng khác. Trong mục này, chúng ta sẽ nghiên cứu về 2 giao thức ở Lớp giao vận (Transport Layer): Giao thức TCP (Transport Control Protocol) và Giao thức UDP (User Datagram Protocol). Tất cả các gói tin được trao đổi giữa các máy tính trên mạng đều nhờ vào một trong 2 giao thức đó.

1. Transport Control Protocol (TCP)

Trong 2 giao thức ở Lớp giao vận, TCP là giao thức được sử dụng nhiều nhất. Đây là giao thức hướng kết nối (connection-oriented), có 5 đặc trưng của dịch vụ chuyển phát đáng tin cậy. Đó là:

+ Định hướng stream: Khi hai chương trình ứng dụng (các tiến trình của người sử dụng) truyền những khối lượng lớn dữ liệu, chúng ta xem dữ liệu này là một chuỗi các bit, được chia thành các octet 8 bit, mà chúng ta thường gọi là byte. Dịch vụ chuyển phát stream tên máy đích chuyển đến nơi nhận một cách chính xác cùng một chuỗi các octet mà máy gửi chuyển đi.

+ Kết nối mạch ảo: Thực hiện việc truyền stream cũng tương tự như thực hiện một cuộc gọi điện thoại. Trước khi việc truyền có thể bắt đầu, cả hai chương trình ứng dụng gửi và chương trình ứng dụng nhận tương tác với hệ điều hành, thông báo về mong muốn có được việc truyền stream. Về mặt khái niệm, một chương trình ứng dụng sẽ thực hiện một "cuộc gọi" mà phải được đầu kia chấp nhận, tức thiết lập một kết nối – hay mạch ảo - để truyền và nhận dữ liệu một cách chính xác.

+ Việc truyền có vùng đệm: Các chương trình ứng dụng gửi một dòng dữ liệu qua mạch ảo bằng cách lặp lại việc chuyển các octet dữ liệu đến phần mềm giao thức. Khi truyền dữ liệu, mỗi chương trình ứng dụng sử dụng bất kỳ kích thước đơn vị truyền nào nó thấy thuận tiện, có thể chỉ bằng một octet. Tại đầu nhận, phần mềm giao thức phát chuyển tự động dữ liệu theo đúng chính xác thứ tự mà chúng được gửi đi, làm cho chúng sẵn sàng được sử dụng đối với chương trình ứng dụng nhận, ngay sau khi chúng được nhận và kiểm tra. Phần mềm giao thức được tư do phân chia dòng dữ liệu thành những gói dữ liệu độc lập với đơn vị mà chương trình ứng dụng truyền đi. Để làm cho việc truyền hiệu quả hơn và tối thiểu giao thông trên mạng, các cài đặt thường tập hợp cho đủ dữ liệu từ dòng dữ liệu để đặt vào datagram có độ lớn thích hợp trước khi truyền nó qua Internet.

+ Stream không có cấu trúc: Một điều quan trọng là dịch vụ TCP stream không xác định các dòng dữ liệu có cấu trúc. Lấy ví dụ, chương trình trả lương nhân viên, không có cách nào để dịch vụ stream đánh dấu biên giới giữa các bản ghi nhân viên, hay để xác định nơi dừng của dòng dữ liệu là dữ liệu nhân viên. Các chương trình ứng dụng sử dụng dịch vụ stream phải hiểu nội dung stream và thống nhất với nhau định dạng stream trước khi khởi động việc kết nối.

+ Kết nối hai chiều: Các kết nối được cung cấp bởi dịch vụ TCP stream cho phép truyền đồng thời từ cả hai chiều. Cách kết nối này được gọi là song công (full deplex). Từ quan điểm của một tiến trìh ứng dụng, một kết bối hai chiều bao gồm 2 dòng dữ liệu độc lập “chạy” theo hai chiều ngược nhau, và không có tương tác hay va chạm. Dịch vụ stream cho phép một tiến trình ứng dụng chấm dứt "dòng chảy" theo một chiều trong khi dữ liệu vẫn tiếp tục "chạy" theo chiều kia, làm cho kết nối trở thành một chiều (half duplex). Ưu điểm chính của kết nối hai chiều là phần mềm giao thức cơ sở có thể gửi thông tin điều khiển cho một stream ngược trở về nguồn trong những datagram đang chuyển tải dữ liệu theo chiều ngược lại. Điều này làm giảm bớt giao thông trên mạng.

Định dạng segment TCP

Đơn vị truyền giữa phần mềm TCP trên hai máy được gọi là segment. Các segment được trao đổi để thiết lập kết nối, để truyền dữ liệu, để gửi các acknowledgement (thông báo xác nhận nhận dữ liệu), để thông báo kích thước cửa sổ (để tối ưu hoá quá trình truyền và nhận dữ liệu) và để đóng kết nối.

Mỗi segment được chia thành hai phần, phần đầu và phần dữ liệu. Phần đầu, có tên là phần đầu TCP (TCP header), chuyển tải thông tin điều khiển và các định danh cần thiết khác. Hai vùng quan trọng nhất trong phần đầu TCP là SOURCE PORT và DESTINATION PORT chứa các giá trị cổng TCP để xác định các chương trình ứng dụng tại hai đầu kết nối. Mỗi khi TCP nhận gói dữ liệu (gọi là packet) từ IP, TCP gỡ bỏ phần đầu IP và đọc phần đầu TCP của segmet kết quả. Khi TCP đọc DESTINATION PORT, nó sẽ tìm trong tệp tin chứa các thông tin về dịch vụ để gửi dữ liệu đến chương trình tương ứng với số cổng đó.

Vùng SEQUENCE NUMBER xác định vị trí trong chuỗi các byte dữ liệu trong segmet của nơi gửi. Vùng ACKNOWLEDGEMENT NUMBER xác định số lượng octet mà nguồn đang đợi để nhận kế tiếp. Lưu ý rằng SEQUENCE NUMBER để chỉ đến lượng dữ liệu theo cùng chiều với segment, trong khi giá trị ACKNOWLEDGEMENT NUMBER để chỉ đến lượng dữ liệu theo chiều ngược lại với segment.

Vùng HLEN chứa một số nguyên để xác định độ dài của phần đầu segment, được tính theo bội số của 32 bit. Cần có giá trị HLEN bời vì vùng OPTIONS có độ dài thay đổi, tuỳ thuộc vào những lựa chọn nào đã được đưa vào. Như thế, kích thước của vùng đầu TCP cũng được thay đổi tuỳ vào các lựa chọn đã được lấy. Vùng RESERVED được dành riêng để sử dụng trong tương lai.

Có những segmet chỉ chuyển tải acknowledgement, có những segment khác chuyển tải dữ liệu. Cũng có những segment chuyển tải những yêu cầu để thiết lập hoặc đóng lại một kết nối. Phần mềm TCP sử dụng vùng FLAG để xác định mục đích và nội dung của segment. Phần mềm TCP cũng thông báo cho biết bao nhiêu dữ liệu nó sẵn sàng nhận mỗi khi nố gửi một segment bằng cách mô tả kích thước vùng đệm của nó trong vùng WINDOW.

Thủ tục bắt tay 3 bước (Three-way Handshake) và cửa sổ trượt (Sliding Window)

Vào đầu mỗi phiên TCP, máy tính gửi và nhận dữ liệu thực hiện thủ tục bắt tay 3 bước. Mỗi bước sử dụng một segment chỉ có phần đầu TCP mà không có dữ liệu. Đầu tiên, máy tính gửi dữ liệu gửi tới máy nhận dữ liệu một segment có các thông tin sau: Cờ đồng bộ (đặt ở vùng Flag) được thiết lập về trạng thái bật (on), Sequence number cho segment được gửi sau đó và giá trị của kích thước của vùng đệm dữ liệu (window size) của nó. Kế tiếp, máy tính nhận dữ liệu sẽ hồi đáp bằng một segment với các thông tin: Cờ đồng bộ cũng ở trạng thái bật, sequence number thiết lập với giá trị của segment nó dự dịnh sẽ nhận từ máy tính gửi dữ liệu và kích thước vùng đệm dữ liệu. Cuối cùng, máy tính gửi dữ liệu sẽ gửi một acknowledgemnet với sequence number mà máy tính nhận dữ liệu đã dự tính ở bước thứ hai. Qua thủ tục này, 2 máy tính sẽ sẵn sàng cho quá trình truyền và nhận dữ liệu. Trong thủ tục bắt tay 3 bước, mỗi máy tính cũng điều khiển kích thước của vùng đệm gửi dữ liệu phù hợp với kích thước của cửa vùng đệm nhận dữ liệu. TCP sẽ nhận dữ liệu từ Lớp ứng dụng (Application Layrer) ở trên nó, chia dữ liệu thành các segment và gắn cho mỗi segment phần đầu TCP. TCP chỉ gửi đi các segment vừa với kích thước vùng đệm gửi dữ liệu của nó và khởi động một bộ đếm (timer) cho segment được gửi. Nếu bộ đếm đáo hạn (time out) mà máy tính nhận dữ liệu vẫn chưa trả lời xác nhận, máy tính gửi dữ liệu sẽ gửi lại segment. Khi TCP nhận được acknowledgement cho segment đã gửi, só sẽ tiếp tục gửi các segment đang chờ gửi. Sau khi tất cả dữ liệu đã được gửi đi và xác nhận, TCP đóng phiên làm việc hiện thời.

User Datagram Protocol (UDP)

Cũng như TCP, UDP cũng chuyển phát dữ liệu giữa các ứng dụng. UDP là giao thức phi kết nối (connectionless), nó không kiểm tra dữ liệu như TCP. UDP cung cấp dịch vụ chuyển phát các datagram với phụ phí thấp vì nó không chứa các thông tin điều khiển trong phần đầu UDP.

Các ứng dụng cần lựa chọn UDP hoặc TCP khi cần dịch vụ chuyển phát dữ liệu. Mặc dù UDP cung cấp dịch vụ ít tin cậy hơn (không đảm bảo sắp xếp thứ tự gói, kiểm soát lỗi hoặc luồng dữ liệu) nhưng tính đơn giản của nó cho phép các ứng dụng tương tác trực tiếp với giao thức IP.

Định dạng gói tin UDP

Như có thể thấy trên hình vẽ, phần đầu UDP không chứa bất kỳ thông tin điều khiển nào cả với kích thước chỉ vẻn vẹn 8 byte. Bởi vì không chứa thông tin điều khiển, UDP kém tin cậy hơn TCP. Các ứng dụng được viết để sử dụng UDP làm giao thức giao vận phải tự thực hiện một số thủ tục kiểm tra việc chuyển phát dữ liệu. Tuy nhiên, một số ứng dụng sử dụng UDP khác lại có thể không cần thực hiện bất cứ việc kiểm tra nào. Ví dụ, phần lớn ứng dụng thư điện tử sử dụng giao thức UDP. Chúng chỉ việc gửi dữ liệu mà không thực hiện kiểm tra để đảm bảo rằng thông điệp đã tới một cách nguyên vẹn ở máy tính đích.

Những ứng dụng sử dụng UDP

Mặc dù UDP không cung cấp dịch vụ chuyển phát tin cậy, vẫn có nhiều loại ứng dụng thích hợp với việc sử dụng nó làm giao thức giao vận. Trong bất cứ trường hợp nào mà TCP trở nên quá phức tạp, quá chậm hoặc đơn giản là không cần thiết, các nhà phát triển ứng dụng đều có thể sử dụng UDP làm giải pháp thay thế. Các ứng dụng sử dụng UDP có thể là những ứng dụng mà bản thân nó đã có phương pháp kiểm tra việc chuyển phát dữ liệu hay những ứng dụng phù hợp với mô hình truy vấn/trả lời (query/response).

Bắt tay 3 bước(three way - handshake)



Ở lớp Transport có 2 giao thức quan trọng là UDP và TCP.

- TCP là giao thức thuộc dạng connection-oriented (hướng kết nối). Có nghĩa là nó thiết lập kênh kết nối trước khi truyển data đi.

- UDP là giao thức thuộc dạng connectionless (nghĩa là không hướng kết nối). Nó không cần thiết lập kênh truyền trước khi truyền dữ liệu đi.

TCP thiết lập kết nối bằng 3 bước bắt tay (3-way handshake)

sender ___________ receiver

SYN seq=X ----------> SYN received (step 1)

SYN received <--------send ACK X+1 and SYN Y (step 2)

Send ACK Y+1 --------> (step 3)


Tìm hiểu:

Có lẽ kiến thức về TCP/IP là những gì bạn cần phải tìm hiểu đầu tiên trên con đường trở thành Network Administrator hay Security Advisor. Kiến thức liên quan đến bộ giao thức này có rất nhiều, bạn nên dành thời gian để tìm hiểu thật kỹ về nó. Trong bài này chúng ta sẽ đề cập đến vấn đề 3 bước bắt tay tạo kết nối trong TCP.
Một gói dữ liệu TCP chứa các bit cờ (flag bits) để mô tả nội dung và mục đích của gói dữ liệu.
Ví dụ:

* Gói dữ liệu với cờ SYN (synchronization) dùng để bắt đầu một connection.
* ACK (acknowledgement).
* FIN (finish) dùng để ngắt một connection.
* ...

Bây giờ chúng ta sẽ tìm hiểu kỹ hơn một phiên (session) làm việc được bắt đầu như thế nào:



1. SYN: các chương trình máy con (ví dụ yêu cầu từ browser, ftp client) bắt đầu connection với máy chủ bằng cách gửi một packet với cờ "SYN" đến máy chủ.
SYN packet này thường được gửi từ các cổng cao (1024 - 65535) của máy con đến những cổng trong vùng thấp (1 - 1023) của máy chủ. Chương trình trên máy con sẽ hỏi hệ điều hành cung cấp cho một cổng để mở connection với máy chủ. Những cổng trong vùng này được gọi là "cổng máy con" (client port range). Tương tự như vậy, máy chủ sẽ hỏi HĐH để nhận được quyền chờ tín hiệu trong máy chủ, vùng cổng 1 - 1023. Vùng cổng này được gọi là "vùng cổng dịch vụ" (service port).
Ví dụ (mặc định):

- Web Server sẽ luôn chờ tín hiệu ở cổng 80 và Web browser sẽ connect vào cổng 80 của máy chủ.
- FTP Server sẽ lắng ở port 21.

Ngoài ra trong gói dữ liệu còn có thêm địa chỉ IP của cả máy con và máy chủ.

2. SYN/ACK: khi yêu cầu mở connection được máy chủ nhận được tại cổng đang mở, server sẽ gửi lại packet chấp nhận với 2 bit cờ là SYN và ACK.
SYN/ACK packet được gửi ngược lại bằng cách đổi hai IP của server và client, client IP sẽ thành IP đích và server IP sẽ thành IP bắt đầu. Tương tự như vậy, cổng cũng sẽ thay đổi, server nhận được packet ở cổng nào thì cũng sẽ dùng cổng đó để gửi lại packet vào cổng mà client đã gửi.
Server gửi lại packet này để thông báo là server đã nhận được tín hiệu và chấp nhận connection, trong trường hợp server không chấp nhận connection, thay vì SYN/ACK bits được bật, server sẽ bật bit RST/ACK (Reset Acknowledgement) và gởi ngược lại RST/ACK packet.
Server bắt buộc phải gửi thông báo lại bởi vì TCP là chuẩn tin cậy nên nếu client không nhận được thông báo thì sẽ nghĩ rằng packet đã bị lạc và gửi lại thông báo mới.

3. ACK: khi client nhận được SYN/ACK packet thì sẽ trả lời bằng ACK packet. Packet này được gởi với mục đích duy báo cho máy chủ biết rằng client đã nhận được SYN/ACK packet và lúc này connection đã được thiết lập và dữ liệu sẽ bắt đầu lưu thông tự do.
Đây là tiến trình bắt buộc phải thực hiện khi client muốn trao đổi dữ liệu với server thông qua giao thức TCP. Một số thủ thuật dựa vào đặc điểm này của TCP để tấn công máy chủ (ví dụ DOS).

thêm cái video:


http://www.youtube.com/watch?v=FdwNzb1CQPg&NR=1



Saturday, May 8, 2010

MÔ HÌNH MẠNG OSI

I.Mô hình OSI
Cùng với sự phát triển rực rỡ của công nghệ vi mạch tích hợp là động lực không nhỏ vào sự phát triển của các hệ thống mạng máy tính. Nhưng có một bất cập là mỗi hệ thống lại sử dụng những chuẩn phần cứng và phần mềm riêng của mình. Những điều đó khiến cho việc kết nối giữa những hệ thống này với nhau gặp rất nhiều khó khăn. Trước tình hình đó tổ chức tiêu chuẩn quốc tế ISO đã đề xuất ra một mô hình mà các nhà thiết kế mạng có thể dựa vào đó để thiết lập các hệ thống có khả năng tương thích với nhau, đó chính là mô hình tham chiếu OSI.

Mô hình tham chiếu hệ thống mở OSI (Open System Interconnection Reference Mode) là mô hình kiến trúc gồm 7 lớp, mỗi lớp đều có chức năng mạng xác định như: gán địa chỉ, điều khiển luồng, điều khiển lỗi, đóng gói và truyền gói tin một cách tin cậy trên mạng.
Các nguyên lý được áp dụng cho 7 tầng như sau:
(1) Mỗi lớp cần thiết phi tạo ở mức độ khác nhau của khái niệm trừu tượng.
(2) Mỗi lớp phi thực hiện một chức năng xác định rõ ràng.
(3) chức năng của mỗi lớp phi được chọn theo quan điểm hướng tới các giao thức chuẩn quốc tế được định nghĩa.
(4) Ranh giới giữa các lớp phi được chọn để tối thiểu luồng thông tin đi qua các giao diện

Một số ưu điểm của việc sử dụng mô hình phân lớp đó là:
• Tách hoạt động thông tin trên mạng thành những phần nhỏ hơn, đơn giản hơn.
• Nó chuẩn hóa các thành phần mạng để cho phép phát triển một mạng từ nhiều nhà cung cấp sản phẩm.
• Cho phép các loại phần cứng phần mềm khác nhau thông tin được với nhau.
• Cho phép người thiết kế chuyên môn hoá và phát triển chức năng theo kiểu modul.
• Nó giúp cho việc học tập về mạng được dễ dàng hơn.


Trong mô hình OSI, bốn lớp dưới định nghĩa cách để các trạm thiết lập kết nối để trao đổi với nhau dữ liệu. Còn 3 lớp trên định nghĩa các ứng dụng trong phạm vi đầu cuối sẽ giao tiếp với nhau và với user như thế nào.
I.1. Lớp vật lý
Lớp vật lý cung cấp các phương tiện điện, các thủ tục để kích hoạt, duy trì và giải phóng liên kết vật lý giữa các hệ thống.
Thuộc tính điện liên quan đến sự biểu diễn các bit (mức tín hiệu điện thế) và tốc độ truyền bit.
Thuộc tính liên quan đến các chuẩn về giao diện vật lý kích thước, cấu hình.
Thuộc tính thủ tục liên quan đến giao thức điều khiển việc truyền các chuỗi bit qua đường vật lý.
Lớp vật lý là dưới cùng trong mô hình OSI giao diện với đường truyền không có PDU (Protocol Data Unit), không có phần header chứa thông tin điều khiển (PCI Protocol Control Information), dữ liệu được truyền theo dòng bit.
I.2. Lớp liên kết dữ liệu (Data Link Layer)
Lớp liên kết dữ liệu cung cấp các phương tiện để truyền thông tin qua lớp vật lý đm bo độ tin cậy thông qua các cơ chế đồng bộ, kiểm soát lỗi và kiểm soát luồng dữ liệu.
Ngoài ra, lớp liên kết dữ liệu còn được chia làm 2 lớp con là:
+MAC (Media Access Control).
+LLC (Logical Link Control).
Các chức năng của lớp 2 gồm: tạo khung dữ liệu để truyền trên các đường vật lý, truy nhập các phương tiện vật lý nhờ các địa chỉ MAC, phát hiện lỗi nhưng không sửa được lỗi.
I.3. Lớp mạng (Network Layer)
Lớp mạng được các nhà chuyên gia đánh giá lớp phức tạp nhất trong tất các lớp trong mô hình OSI. Lớp mạng cung cấp phương tiện để truyền các đơn vị dữ liệu qua mạng hay liên mạng. Bởi vậy, nó phi đáp ứng nhiều kiểu cấu hình mạng và nhiều dich vụ cung cấp bởi các mạng khác nhau. Các dịch vụ và giao thức cho lớp mạng phi phản ánh được tính phức tạp đó. Hai chức năng chủ yếu của lớp mạng đó là:
+Định tuyến (Routing).
+Chuyển tiếp (Relaying).
Mỗi node trong mạng đều phi thực hiện các chức năng này, do đó, chúng phi ở trên lớp liên kết dữ liệu để cung cấp một dịch vụ “trong suốt” đối với lớp giao vận.
Công nghệ IP là một công nghệ tiêu biểu và ưu việt nhất của lớp mạng cho nên, hiện tại và tưng lai các công nghệ ở các lớp khác đều phi tiến tới ci tiến để tối ưu trong sự liên lạc với IP.
I.4. Lớp giao vận (Transport Layer)
Trong mô hình OSI, 4 lớp thấp quan tâm đến việc truyền dữ liệu qua hệ thống đầu cuối (end systems) qua các phưng tiện truyền thông còn 3 lớp cao tập trung đáp ứng các yêu cầu và các ứng dụng của người sử dụng. Lớp giao vận là lớp cao nhất của 4 lớp thấp, nhiệm vụ của nó la cung cấp dịch vụ truyền dữ liệu sao cho các chi tiết cụ thể của các phương tiện truyền thông được sử dụng ở dên dưới trở nên “trong suốt” đối với các lớp cao. Do đó nhiệm vụ của lớp giao vận rất phức tạp. Nó phi được tính đến kh năng thích ứng với một phạm vi rất rộng các đặc trưng mạng. Chẳng hạn, một mạng có thể là “connection-oriented” hay “connectionless”, có thể là đáng tin cậy (reliable) hay không đáng tin cậy (unreliale). Nó phi biết được yêu cầu về chất lượng dịch vụ của người sử dụng đồng thời, cũng phi biết được khả năng cung cấp dịch vụ của mạng bên dưới.
I.5. Lớp phiên (Session Layer)
Nhiệm vụ của lớp phiên là cung cấp cho người sử dụng các chức năng cần thiết để quản trị các “phiên” ứng dụng của họ, cụ thể như sau:
Điều phối việc trao đổi dữ liệu giữa giữa các ứng dụng bằng cách thiếp lập và giải phóng (một cách logic) các phiên (hay còn gọi là các hội thoại-dialogues).
Cung cấp các điểm đồng bộ hoá để kiểm soát việc trao đổi dữ liệu.
Áp đặt các quy tắc cho các tưng tác giữa các ứng dụng của người sử dụng.
Cung cấp cơ chế nắm quyền trong quá trình trao đổi dữ liệu.
Việc trao đổi dữ liệu có thể được thực hiện theo 1 trong 3 phương thức:
Đơn công
Bán song công
Song công
Tóm lại, nhiệm vụ của lớp phiên là thiết lập, quản lý và kết thúc các phiên giao tiếp giữa các thực thể lớp trình bày.
I.6. Lớp trình diễn (Presentation Layer)
Mục đích của lớp trình diễn là đm bo cho các hệ thống đầu cuối có thể truyền thông có kết quả ngay có khi chúng sử dụng các cách biểu diễn dữ liệu khác nhau.
I.7. Lớp ứng dụng (Application Layer)
Lớp ứng dụng là lớp gần gũi với người dùng hầu hết, nó cung cấp các dịch vụ mạng cho các ứng dụng của người dùng.

Là lớp cao nhất trong mô hình OSI, cho nên lớp ứng dụng có một số đặc điểm khác với các lớp dưới nó.Trước hết, nó không cung cấp một dịch vụ cho một lớp trên nào như các lớp bên dưới. Do đó ở lớp không có khái niệm điểm truy nhập lớp dịch vụ. Lớp ứng dụng là ranh giới giữa môi trường nối kết các hệ thống mở và các tiến trình ứng dụng (Application Process). Các tiến trình ứng dụng thuộc các hệ thống mở khác nhau muốn trao đổi thông tin phi thông qua tầng ứng dụng thuộc các hệ thống mở khác nhau

MÔ HÌNH MẠNG TCP/IP

PHẦN 1 : BỘ GIAO THỨC TCP/IP

I Giới Thiệu:
-Để các máy máy tính có thể liên lạc với nhau qua mạng, chúng phải sử dụng cùng 1 ngôn ngữ hay còn gọi là 1 giao thức (Protocol). Giao thức là 1 hệ luật và chuẩn cho phép các máy tính trong mạng liên lạc với nhau.
-TCP/IP là viết tắt của Transmission Control Protocol (Giao thức Điều Khiển Truyền Thông) / Internet Protocol (Giao thức Internet).
-TCP/IP không chỉ gồm 2 giao thức mà thực tế nó là tập hợp của nhiều giao thức. Chúng ta gọi đó là 1 Hệ Giao Thức hay Bộ Giao Thức (Suite Of Protocols). Bài viết chúng ta sẽ tập trung vào Bộ Giao Thức này.

II Tổng quát:
-Để cho các máy tính trao đổi dữ liệu với nhau TCP/IP sử dụng mô hình truyền thông 4 tầng hay còn gọi là Mô Hình DoD (Mô hình của Bộ Quốc Phòng Mỹ). Các tầng trong mô hình này là (Theo thứ tự từ trên xuống):
+ Tầng Ứng Dụng (Application Layer)
+ Tầng Giao Vận (Transport Layer)
+ Tầng Liên Mạng (Internet Layer)
+ Tầng Giao Diện Mạng (Network Interface Layer)
- Mỗi giao thức của Họ TCP/IP đều thuộc 1 trong các tầng này. Ta sẽ cùng tìm hiểu từng tầng .
1.Tầng Giao Diện Mạng (Network Interface Layer):
- Tầng Giao Diện Mạng có trách nhiệm đưa dữ liệu tới và nhận dữ liệu từ phương tiện truyền dẫn. Tầng này gồm các thiết bị phần cứng vật lí chẳng hạn như Card Mạng và Cáp Mạng.
- 1 Card Mạng chẳng hạn card Ethernet chứa 1 số HEX 12 kí tự (00-18-37-03-C0-F4) được gọi là Địa Chỉ MAC (Media Access Control) hay Địa Chỉ Truy Nhập Phương Tiện . MAC đóng vai trò quan trọng trong việc gán địa chỉ và truyền dữ liệu.
- 1 số giao thức tiêu biểu thuộc tầng này gồm :
+ ATM (Asynchronous Transfer Mode)
+ Ethernet
+ Token Ring
+ FDDI (Fiber Distributed Data Interface)
+ Frame Relay
2.Tầng Liên Mạng (Internet Layer):
- Nằm bên trên tầng giao diện mạng. Tầng này có chức năng gán địa chỉ, đóng gói và định tuyến (Route) dữ liệu. 4 giao thức quan trọng nhất trong tầng này gồm:
+ IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu trước khi truyền và định tuyến chúng tới đích.
+ ARP (Address Resolution Protocol): Có chức năng biên dịch địa chỉ IP của máy đích thành địa chỉ MAC.
+ ICMP (Internet Control Message Protocol): Có chức năng thông báo lỗi trong trường hợp truyền dữ liệu bị hỏng.
+ IGMP (Internet Group Management Protocol): Có chức năng điều khiển truyền đa hướng (Multicast)
3.Tầng Giao Vận (Transport Layer):
- Có trách nhiệm thiết lập phiên truyền thông giữa các máy tính và quy định cách truyền dữ liệu. 2 giao thức chính trong tầng này gồm:
+ UDP (User Datagram Protocol): Còn gọi là Giao Thức Gói Người Dùng. UDP cung cấp các kênh truyền thông phi kết nối nên nó không đảm bảo truyền dữ liệu 1 cách tin cậy. Các ứng dụng dùng UDP thường chỉ truyền những gói có kích thước nhỏ, độ tin cậy dữ liệu phụ thuộc vào từng ứng dụng
+ TCP (Transmission Control Protocol): Ngược lại với UDP, TCP cung cấp các kênh truyền thông hướng kết nối và đảm bảo truyền dữ liệu 1 cách tin cậy. TCP thường truyền các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về các gói tin đã nhận.
4.Tầng Ứng Dụng (Application Layer):
- Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng. Được sử dụng để định dạng và trao đổi thông tin người dùng. 1 số giao thức thông dụng trong tầng này là:
+ DHCP (Dynamic Host Configuration Protocol): Giao Thức Cấu Hình Trạm Động
+ DNS (Domain Name System): Hệ Thống Tên Miền
+ SNMP (Simple Network Management Protocol): Giao Thức Quản Lý Mạng Đơn Giản
+ FTP (File Transfer Protocol): Giao Thức Truyền Tập Tin
+ TFTP (Trivial File Transfer Protocol): Giao Thức Truyền Tập Tin Bình Thường
+ SMTP (Simple Mail Transfer Protocol): Giao Thức Truyền Thư Đơn Giản
+ TELNET
***Bảng sau mô tả khái quát về Bộ Giao Thức TCP/IP:




PHẦN 2 : ĐỊA CHỈ IP

I Địa chỉ IP:
- Mỗi máy trên mạng TCP/IP hay còn gọi là trạm TCP/IP được nhận dạng bằng 1 địa chỉ IP logic. Mỗi trạm hay mỗi thiết bị mạng sử dụng TCP/IP để truyền thông cần có 1 địa chỉ IP duy nhất.
- Địa chỉ IP cho biết vị trí của 1 hệ thống trong 1 mạng giống như địa chỉ xác định ngôi nhà trên 1 con đường nào đó. Tương tự như 1 khu dân cư. Địa chỉ IP phải là duy nhất trên toàn cầu và phải được viết dưới 1 định dạng chuẩn.
- Mỗi địa chỉ IP được chia thành 2 phần : Phần địa chỉ mạng (Net ID) và Phần địa chỉ trạm (Host ID).
+ Net ID: Dùng để nhận dạng những hệ thống trong cùng 1 khu vực vật lý còn được gọi là Phân Đoạn (Segment). Mọi hệ thống trong cùng 1 Phân Đoạn phải có cùng Địa Chỉ Mạng và Phần địa chỉ này phải là duy nhất trong số các mạng hiện có.
+ Host ID: Dùng để nhận dạng 1 trạm làm việc, 1 máy chủ, 1 Router hoặc 1 trạm TCP/IP trong 1 phân đoạn. Phần địa chỉ trạm cũng phải là duy nhất trong 1 mạng
- Giống địa chỉ bưu điện gồm 2 phần: MÃ BƯU ĐIỆN – SỐ NHÀ,TÊN ĐƯỜNG. Địa chỉ IP cũng gồm 2 phần: NET ID – HOST ID.
+ Phần đầu tiên, NET ID nhận dạng mạng mà máy tính nối tới, tất cả máy tính trong cùng mạng phải có cùng NET ID giống như mọi nhà trong cùng quận phải có cùng MÃ BƯU ĐIỆN.
+ Phần thứ hai, HOST ID xác định máy tính, router hoặc thiết bị mạng khác trong mạng. HOST ID phải là duy nhất trong 1 mạng giống như SỐ NHÀ,TÊN ĐƯỜNG phải là duy nhất trong 1 quận. Hai máy tính có thể có cùng HOST ID nếu NET ID của chúng khác nhau, giống như hai ĐƯỜNG có thể cùng tên nếu như chúng thuộc 2 quận khác nhau.
- Sự kết hợp giữa NET ID và HOST ID phải cho phép nhận dạng duy nhất mỗi máy tính riêng biệt.
- Các địa chỉ IP có chiều dài 32bit được chia thành 4 dãy. Mỗi dãy gồm 8bit (1Byte), mỗi Byte được phân cách = 1 dấu “.”, 1 Byte là 1 giá trị nằm trong khoảng từ 0-255. Cách biểu diễn như vậy gọi là “Kí hiệu thập phân dấu chấm” (Dotted-Decimal Notation) để cho mọi người sử dụng nhớ địa chỉ 1 cách dễ dàng.



- Tuy nhiên khi xử lý thông tin máy tính lại sử dụng Hệ Nhị Phân (Binary) vì tín hiệu chúng sử dụng để truyền thông chỉ có 2 trạng thái là Bật (1) và Tắt (0)

***Bảng bên dưới đây sẽ mô tả sự kết hợp giữa Kí Hiệu Thập Phân (Decimal Notation) và Kí Hiệu Khoa Học (Scientific Notation) với mỗi Bit bên trong 1 Bộ Tám Nhị Phân (Binary Octet).




Trong 1 Byte , mỗi bit được gán một giá trị. Nếu Bit được đặt là 0 thì nó được gán giá trị 0, nếu Bit được đặt là 1 thì có thể chuyển đổi thành 1 giá trị thập phân. Bit thấp nhất trong Byte tương ứng với 1, Bit cao nhất tương ứng với 128. Vậy giá trị lớn nhất của 1 Byte là 255 tương ứng với trường hợp cả 8 Bit đều được đặt là 1.




Ví dụ: Ta sẽ đổi địa chỉ sau: 10101100 00010000 00000101 01111101 sang dạng Kí Hiệu Thập Phân Dấu Chấm.




II Địa chỉ IP Public và Địa chỉ IP Private:
1.IP Public:
- Mỗi 1 địa chỉ IP ngoài Internet là duy nhất. Để các Network có những địa chỉ duy nhất ngoài Internet, thì Internet Assigned Numbers Authority (IANA) sẽ chia những khoảng địa chỉ không dự trữ thành những phần nhỏ và ủy thác trách nhiệm phân phối địa chỉ cho các tổ chức Đăng Kí Miền khắp thế giới. Những tổ chức đó là Asia-Pacific Network Information Center (APNIC), American Registry for Internet Numbers (ARIN), and Réseaux IP Européens (RIPE NCC). Những tổ chức này sẽ phân phối những khối địa chỉ đến 1 số nhà các Internet Service Provider (ISP) lớn và các ISP lớn này sau đó sẽ gán những khối nhỏ hơn cho các đại lý và các ISP nhỏ hơn.
- ISP sẽ cấp 1 IP Public cho mỗi máy tính của bạn để các máy tính này có thể kết nối trực tiếp đến ISP. Các địa chỉ này được cấp 1 cách tự động dến mỗi máy tính khi máy tính kết nối và có thể là địa chỉ tĩnh nếu đường line của bạn thuê riêng hay các tài khoàn Dial-up
2.IP Private:
- IANA đã dự trữ một ít địa chỉ IP mà các địa chỉ này không bao giờ được sử dụng trên Internet. Những địa chỉ IP Private này được sử dụng cho những Host yêu cầu có IP để kết nối nhưng không cần được thấy trên các mạng Public. Ví dụ, 1 user kết nối những máy tính trong mạng TCP/IP ở nhà thì ko cần cấp 1 địa chỉ IP Public cho mỗi Host. User có thể lấy những khoảng IP ở bảng dưới đây để cung cấp địa chỉ cho các Host trong mạng.




- Những host có địa chỉ IP Private có thể kết nối đến Internet bằng cách sử dụng 1 Proxy Server hay 1 máy tính chạy Windows Server 2003 đã cấu hình như là 1 Network Address Translation (NAT) Server. Windows Server 2003 cũng tích hợp chức năng Internet Connection Sharing (ICS) để cung cấp dịch vụ NAT đơn giản cho các Client trong mạng Private.

III Lớp địa chỉ:
- Có 5 lớp địa chỉ IP để tạo các mạng có kích thước khác nhau gồm: Lớp A, Lớp B, Lớp C, Lớp D, Lớp E.
- TCP/IP hỗ trợ gán địa chỉ lớp A, lớp B, lớp C cho các trạm.
- Các lớp này có chiều dài phần NET ID và HOST ID khác nhau nên số lượng Mạng và số lượng Trạm trên mỗi mạng cũng khác nhau:
+ Lớp A: Được gán cho các Mạng có kích thước cực lớn. Trong lớp địa chỉ này Byte đầu tiên xác định NET ID, Bit cao nhất của Byte này luôn được đặt là 0. 3 Byte còn lại xác định Host ID. Do đó lớp A có thể cấp cho 126 Mạng với 16.777.214 Trạm trên mỗi Mạng.
+ Lớp B: Được gán cho các Mạng có kích thước vừa và lớn. Trong lớp địa chỉ này 2 Byte đầu tiên xác định NET ID, 2 Bit cao nhất của Byte đầu tiên luôn được đặt là 1 0. 2 Byte còn lại xác định Host ID. Do đó lớp B có thể cấp cho 16.384 Mạng với 65.534 Trạm trên mỗi Mạng.
+ Lớp C: Được gán cho các Mạng có kích thước nhỏ. Trong lớp địa chỉ này 3 Byte đầu tiên xác định NET ID, 3 Bit cao nhất của Byte đầu tiên luôn được đặt là 1 1 0. Byte cuối cùng xác định Host ID. Do đó lớp C có thể cấp cho 2.097.152 Mạng với 254 Trạm trên mỗi Mạng.
+ Lớp D: Các địa chỉ lớp này sử dụng cho Truyền Đa Hướng (Multicast). 1 nhóm Multicast có thể chứa 1 hoặc nhiều Trạm. Trong lớp này 4 Bit cao nhất của Byte đầu tiên luôn được đặt là 1 1 1 0, các Bit còn lại định nghĩa nhóm Multicast. Địa chỉ lớp D không được chia thành Net ID và Host ID. Các gói(Packets) Multicast được truyền tới 1 nhóm Trạm cụ thể và chỉ có các Trạm đăng kí vào nhóm này mới nhận được gói.
+ Lớp E: Là lớp địa chỉ thực nghiệm, nó không được thiết kế cho mục đích sử dụng chung. Lớp E được dự phòng cho các ứng dụng tương lai. Các Bit cao nhất của Byte đầu tiên luôn được đặt là 1 1 1 1.
- Tổng số IP có thể sử dụng là : 3.720.314.628

*** Bảng sau đây sẽ mô tả khái quát về các lớp địa chỉ IP:





*** Bảng mô tả sự khác nhau giữa 3 Lớp địa chỉ A, B và C:




IV Subnet Mask:
- Để biết Trạm đích thuộc Mạng cục bộ hay ở xa. Trạm nguồn cần 1 thông tin khác. Thông tin này chính là Subnet Mask
- Subnet Mask là 1 địa chỉ 32 bit được sử dụng để che 1 phần của địa chỉ IP. Bằng cách này các máy tính có thể xác định đâu là Net ID và đâu là Host ID trong 1 địa chỉ IP.
- Mỗi Trạm trong mạng TCP/IP yêu cầu có 1 Subnet Mask.Nó được gọi là Subnet Mask mặc định, nếu nó chưa được chia Subnet (và vì vậy nó chỉ có 1 Subnet Đơn), và được gọi là Subnet Mask tùy ý nếu nó được chia thành nhiều Subnet
Vd: 1 số 32bit tiêu biểu cho 1 Subnet Mask mặc định được dùng bởi những Trạm đã cấu hình với 1 địa chỉ lớp C (vd 192.168.20.50) là :
11111111 11111111 11111111 00000000 (255.255.255.0). Khi 1 trạm có địa chỉ 192.168.20.50 gởi gói tin đến địa chỉ 192.168.50.20. Đầu tiên, Trạm sẽ thực hiện phép tính AND giữa Địa Chỉ cục bộ với Subnet Mask mặc định cục bộ. Bởi vì khi thực hiện phép tính AND 2 số, bất kì số nào AND với 0 sẽ là 0, và AND với 1 sẽ là chính nó => khi AND 192.168.20.50 với 255.255.255.0 kết quả là 192.168.20.0. Máy trạm sau đó sẽ thực hiện phép tính AND giữa Địa chỉ Đích với Subnet Mask giống trên. TCP/IP sau đó sẽ so sánh kết quả những giá trị từ 2 phép tính AND. Nếu 2 giá trị đồng nhất thì Trạm TCP/IP kết luận đích kia là trên Subnet cục bộ. Nếu 2 giá trị khác nhau thì Trạm xác định đích kia là ở xa.
- Ta cũng có 1 cách viết khác để xác định Subnet Mask là:
Địa chỉ IP / Tiền tố Mạng
Tiền tố Mạng được xác định bằng cách cộng tất cả các bit 1 trong dãy 32bit của Subnet Mask.
Vd: 192.168.5.10 có Subnet Mask mặc định là 255.255.255.0.
Đổi qua số nhị phân sẽ là 11111111 11111111 11111111 00000000.
=> Tổng cộng có 24 bit 1. Vậy ta có thể viết dưới dạng:
192.168.5.10 / 24

*** Bảng dưới đây sẽ đưa ra những Subnet Mask mặc định cho các Lớp Mạng:


V Default Gateway:
- Khi 1 trạm trong TCP/IP cần truyền thông tin với 1 Trạm trên Mạng khác thì nó phải thông qua 1 Router. Router được gắn nhiều Interface (vd Card Mạng) kết nối đến các Mạng riêng biệt, Routing là quá trình nhận những gói IP tại 1 Interface và gởi những gói này ra 1 Interface khác hướng về 1 đích cuối cùng. Với 1 host được cấp trên Mạng TCP/IP thì Default Gateway là địa chỉ của Router, nằm trong 1 phạm vi Broadcast, nó được cấu hình để đưa những luồng IP đến Mạng khác.
- Khi 1 máy tính cố gắng truyền đạt thông tin đến 1 trạm khác trên Mạng IP, máy tính sẽ dùng SUBNET MASK để xác định Trạm đích là Cục Bộ (Local) hay ở Xa (Remote). Nếu đích là 1 trạm trên 1 phân đoạn Mạng Cục Bộ, máy tính sẽ đơn giản gởi 1 gói tin đến Mạng Cục Bộ bằng cách truyền cho tất cả (Broadcast). Nếu đích là 1 Trạm ở Xa, máy tính sẽ đưa gói tin đến Default Gateway đã được xác định trong TCP/IP Properties. Router được ghi rõ tại địa chỉ Default Gateway sau đó sẽ chịu trách nhiệm đưa gói tin đến Mạng 1 cách chính xác.

VI Chia Subnet:
- Những Subnet Mask được sử dụng bởi nhiều host để xác định đâu là phần chia của 1 địa chỉ IP được xem như là Net ID của địa chỉ đó.Lớp A, B và C sử dụng Subnet Mask mặc định được che lần lượt là 8, 16, 24bit tương đương với những địa chỉ 32bit. 1 Mạng cục bộ được định rõ bởi 1 Subnet Mask hay còn gọi là 1 Subnet
- Chia subnet là phương pháp logic chia 1 địa chỉ mạng bằng cách tăng bit 1 sử dụng trong Subnet Mask của 1 Mạng. Phần mở rộng này cho phép bạn chia nhiều Subnet bên trong Mạng ban đầu
+ 255.255.0.0 là Subnet Mask mặc định được sử dụng cho những host bên trong lớp B , ví dụ như 131.107.0.0, thì 2 địa chỉ 131.107.1.11 và 131.107.2.11 là giống Subnet. Và những host trong Net này liên lạc với nhau bằng cách gởi gói tin Broadcast. Nhưng khi Subnet Mask được tăng thêm thành 255.255.255.0 thì rõ ràng 2 địa chỉ 131.107.1.11 và 131.107.2.11 là khác Net. Thì những host này muốn liên lạc với nhau thì phải gởi 1 gói tin IP đến Default Gateway, cái mà nó chịu trách nhiệm routing những gói dữ liệu đến Subnet Đích
+ Trong khi ban đầu địa chỉ lớp B khi chưa chia Subnet có 65.534 host thì Subnet Mask mới được cấu hình như hình bên dưới cho phép bạn chia thành 256 Subnet với 254 host trên 1 subnet.




+ Ưu điểm của việc chia Subnet là khi chia xong những phân đoạn con có thể trải rộng trên nhiều phân đoạn vật lý (vd mạng có thể gồm 2 phân đoạn là Ethernet và Token Ring). Tuy nhiên ưu điểm chính là giảm lưu lượng mạng vì khi chia Subnet thì lưu lượng các gói tin Broadcast không làm ảnh hưởng đến toàn mạng do Router giữa các mạng sẽ chặn các gói tin Broadcast.

- Xác định Tổng số Host trên 1 Mạng bằng cách ta lấy 2 lũy thừa số bit làm Host ID sau đó trừ cho 2.
Vd: 192.168.1.0 thuộc lớp C nên mặc định sẽ có 24bit làm Net ID (192.168.1.0/24) và 8bit làm Host ID. Vậy Tổng số Host : 2 lũy thừa 8 –2 = 254 Host

- Xác định Tổng số Subnet bằng cách ta lấy 2 lũy thừa số bit mở rộng thêm vào Net ID
Vd : 172.16.0.0 . Thuộc lớp B nên có 16bit làm Net ID(172.16.0.0/16) và 16bit làm Host ID. Do Net ID chưa mở rộng bit nào nên số bit mở rộng = 0 , vậy Tổng số Subnet = 2 lũy thừa 0 = 1 Subnet
Vậy nếu 172.16.0.0 viết dưới dạng 172.16.0.0/20. Vậy có nghĩa số bit làm Host ID là 12 và số bit mở rộng thêm vào Net ID là 4.
=> Tổng Số Host : 2 lũy thừa 12 –2 = 4094 Hosts
=> Tổng Số Subnet : 2 lũy thừa 4 = 16 Subnets

- Xác định số Host trên mỗi Subnet: Tính tổng số Host trên 1 Subnet giống như tính tổng số Host trên 1 Mạng. Khi 1 địa chỉ Mạng đã được chia Subnet. Thì tổng số Host trên mỗi Subnet sẽ là 2 lũy thừa x -2 với x là số bit làm Host ID.

- Ước lượng phạm vi địa chỉ Subnet: Bằng cách sử dụng Kí Hiệu Thập Phân Dấu Chấm , ta có thể ước lượng được phạm vi của những địa chỉ IP trên mỗi Subnet đơn giản bằng cách ta lấy 256 trừ cho giá trị bộ 8 thích hợp trong Subnet Mask.

Vd1: 1 Net thuộc lớp C có địa chỉ 192.168.5.0 với Subnet Mask là 255.255.255.192. Ta lấy 256-192 = 64, Vậy kết quả mỗi phạm vị địa chỉ Subnet của Mạng được nhóm trong khoảng 64: 192.168.5.0 – 192.168.5.63, 192.168.5.64 – 192.167.5.127 , .v.v…
Vd2: 1 Net thuộc lớp B có địa chỉ 172.16.0.0 với Subnet Mask là 255.255.255.240. Ta lấy 256-240 = 16. Bởi vậy, mỗi phạm vi địa chỉ Subnet được nhóm 16 ở vị trí thứ 3 và thích hợp bộ 8. Nhưng trái lại vị trí thứ 4 của bộ 8 có phạm vi từ 0-255: 172.16.0.0 – 172.16.15.255, 172.16.16.0 – 172.16.31.255, …
- Lưu ý rằng có 2 địa chỉ không được dùng để cấp cho Host là địa chỉ mạng (tất cả các bit trong phần Host ID đều là 0) và địa chỉ Broadcast (tất cả các bit trong phần Host ID đều là 1)

VII Supernetting:
- Để ngăn sự cạn dần các Net ID của lớp A,B. Các nhà điều hành Internet đã sắp đặt 1 sơ đồ gọi là Supernetting. Supernetting sẽ cho phép nhiều Net gom thành 1 Net. Supernetting đưa ra nhiều thuận lợi hiệu quả cho việc đặt địa chỉ cho các Net.
- Ví dụ , giả sử 1 tổ chức cần cung cấp khoảng 2000 Trạm. Con số này là quá lớn đối với 1 lớp C (chỉ có thể cấp cho 254 trạm). Tuy nhiên 1 Net thuộc lớp B có thể cấp tới 16384 Net với 65534 Trạm trên mỗi Net và con số này cũng sẽ nhanh chóng giảm bớt. Bởi vậy nó ko thiết thực để 1 ISP (Internet Service Provider) cấp 1 Net lớp B vì nhu cầu tổ chức kia chỉ chiếm 3% trong tổng số IP của 1 Net trong lớp B , có nghĩa là lãng phí mất 63534 địa chỉ. Bằng cách sử dụng Supernetting, 1 ISP có thể cấp 1 khối những địa chỉ lớp C (1 Net có 254 Hosts) mà nó được xem như 1 Mạng độc lập ở đâu đó giữa lớp B và lớp C. Trong ví dụ này, 1 khối gồm 8 Net thuộc lớp C có thể đáp ứng nhu cầu tổ chức kia bằng cách cấp 2032 host.
- Supernetting khác với Chia Subnet ở chỗ là Supernetting mượn những Bit ở Net ID đem qua làm Host ID. Ví dụ, giả sử 1 ISP đã cấp cho bạn 1 khối gồm 8 Net lớp C từ 207.46.168.0 dến 207.46.175.0. Gán 1 Subnet Mask là /21 (mặc định là /24) đến các Router tại ISP và đến tất cả các host nằm trong tổ chức của bạn, kết quả là tất cả các máy đều thấy nhau như là 1 Net bởi vì nhờ vào Net ID bị rút ngắn phát sinh từ subnet mask là /24, phần Net ID của toàn bộ 8 địa chỉ này bây giờ được nhìn thấy như là duy nhất.

***Hình bên dưới sẽ minh họa cho phần này:




VIII CIDR (Classless Inter-Domain Routing – Định Tuyến Liên Vùng Không Phân Lớp):
- CIDR là 1 phương pháp hiệu quả để tính toán các supernet bên trong những bảng Định Tuyến. Nếu không dùng CIDR, những bảng Định Tuyến sẽ ghi vào 1 mục riêng để xử lý mạng nguyên bản trong supernet. CIDR cho phép toàn bộ supernet được xử lý chỉ bằng 1 mục duy nhất. Hình bên dưới sẽ cho ta thấy rõ điều này:




- Trái với phương pháp phân lớp. CIDR sử dụng Kí Hiệu Nhị Phân nghĩa là tất cả địa chỉ IP và Subnet Mask được chuyển đổi thành 0 và 1 tạo nên 32 giá trị thay vì 4 giá trị như ban đầu (vd 172.16.2.2->10101100 00010000 00000100 00000010). Cấu trúc này cho kích thước mạng linh hoạt hơn và tối ưu việc gán địa chỉ IP
VD: 10.217.123.7 chuyển sang nhị phân ta được 00001010 11011001 01111011 00000111. Làm tương tự với Subnet Mask chẳng hạn là 255.255.240.0 ta được 11111111 11111111 11110000 00000000. Sau đó ta sẽ AND 2 giá trị thập phân vừa chuyển để tính phần Net ID. Vậy ta được 00001010 11011001 01110000 00000000. Sau đó chuyển sang hệ Thập Phân ta được 10.217.112.0. Ta cộng tất cả các bit1 lại , cuối cùng ta được 10.217.112.0/20
- Phương pháp CIDR luôn cần cả địa chỉ IP và Subnet Mask để xác định được 1 địa chỉ bất kì cùng Net hay khác Net.

IX Variable-Length Subnet Masks (Subnet Mask có chiều dài thay đổi):
- Theo cách truyền thống thì 1 Subnet Mask đơn được chia sẻ qua mỗi host và router trong 1 tổ chức. Khi 1 Subnet Mask đơn được sử dụng khắp toàn bộ mạng, mạng có thể bị hỏng bên trong những subnet, vì những subnet này có cùng số host bởi vì nó dùng Subnet Mask giống nhau. Điều này là ko hiệu quả.
- Tuy nhiên, với Variable-Length Subnet Masks (VLSMs) thì các router trong 1 tổ chức có thể quản lý những Subnet Mask khác nhau. Thông thường nhất, VLSMs được dùng để cho phép tự các subnets chia thành subnet nhỏ hơn, hay nói cách khác, VLSMs còn được gọi là “Chia subnet trong 1 subnet lớn hơn” để tận dụng tối đa địa chỉ .

***Để hiểu rõ vấn đề này, ta sẽ làm 1 ví dụ:
Giả sử 1 công ty có 3 văn phòng A(50 host), B(27 host), C(12 host) và D(12 host) như hình bên dưới. Làm thế nào để tận dụng tối đa không gian địa chỉ




Theo đề bài thì 1 địa chỉ mạng lớp C – 192.168.100.0/24 phù hợp được cấp. Ta sẽ tiến hành mở rộng Net ID bằng cách lấy số bit Host ID đưa qua Net ID.
Các bước làm như sau:
B1: Xác định bao nhiêu bit Host ID sẽ cần để đáp ứng Net lớn nhất
B2: Lấy 1 subnet để cấp cho Net lớn nhất
B3: Chọn Net lớn kế tiếp để làm việc
B4: Chọn Net lớn thứ 3 để làm việc

Ta bắt đầu tiến hành làm B1 :
+ Ta nhận thấy văn phòng A là Net lớn nhất với 50 host. Do đó, bạn cần biết bao nhiêu bit Host ID sẽ cần:
Nếu 2 lũy thừa H –2 = Số host hợp lệ trên mỗi subnet
Sau đó, 2 lũy thừa H –2 >= 50
Do đó H = 6 (6 là giá trị nhỏ nhất hợp lệ)
+ Bạn cần 6 bit làm Host để đáp ứng yêu cầu của văn phòng A
+ Nếu bạn cần 6 bit Host và bạn đã bắt đầu với 8 bit Net, thì 8-6 = 2 bit Net để tạo ra các subnet:
Bắt đầu với: NNNNNNNN (đây là 8 bit trong bộ 8 thứ 4)
Và bây giờ : NNHHHHHH
Ta tiến hành B2:
+ Ta có 2 bit Net để làm việc vậy ta được 2 lũy thừa 2 = 4 Subnets :
NN = 00HHHHHH (6 bit H bạn cần cho văn phòng A)
01HHHHHH
10HHHHHH
11HHHHHH
+ Nếu bạn cộng tất cả các số 0 vào bit H bạn sẽ được số Mạng cho 4 subnet:
00000000 = .0
01000000 = .64
10000000 = .128
11000000 = .192
+ Đây là tất cả các subnet mà bạn có giống Subnet Mask
+ 2 bit lấy từ Host ID sang Net ID. Vậy Subnet Mask là:
11111111 11111111 11111111 11000000
hay 255.255.255.192
hay /26
+ Lấy 1 subnet cho văn phòng A . Ta còn lại 3 Subnet:




Ta tiến hành B3: Chọn Net lớn kế tiếp để làm việc
+ Ta thấy văn phòng B phù hợp yêu cầu với 27 host
+ Xác định số bit Host ID cần cho Net này:
2 lũy thừa H –2 >= 27
H = 5
+ Bạn cần 5 bit Host để đáp ứng yêu cầu văn phòng B
+ Bạn đã bắt đầu với mô hình 2 bit Net và 6 bit Host cho Văn Phòng A.
+ Bạn lấy 1 trong các Net /26 còn lại để chia cho Văn Phòng B
+ Với mục đích của đề bài, ta chọn mạng .128/26:
10000000
+ Nhưng bạn cần 5 bit , không phải 6 bit. Do đó bạn cần thêm 1 bit N bên trái:
10N00000
Khi đó
* 10 đại diện để mô ta cho phần nguyên thủy của chia Subnet
* N đại diện cho bit mở rộng
* 00000 đại diện cho 5 bit Host bạn cần cho văn phòng B
+ Bởi vì bạn có bit mở rộng này, bạn phải tạo ra 2 subnet nhỏ hơn từ subnet nguyên thủy:
10000000
10100000

+ Chuyển qua hệ thập phân, những subnet này là:
10000000 = .128
10100000 = .160

Bạn đã có subnet được chia trong subnet. Đây là dạng cơ bản của VLSMs
Mỗi subnet được chia trong subnet sẽ có 1 Subnet Mask mới. Nguyên thủy ban đầu Subnet Mask là /24 đã được thay đổi thành /24 bên trong Net A. Sau đó bạn lấy 1 trong những mạng Subnet /26 và tách nó ra thành 2 mạng subnet /27:
10000000 và 10000000 với 3 bit Net và 5 bit Host
Và Mask bây giờ sẽ bằng:
11111111.11111111.11111111.11100000
Hay 255.255.255.224
Hay /27

Lấy 1 trong những subnet được chia trong subnet cho văn phòng B:
10000000/27 = Network B

Sử dụng 1 subnet được chia trong subnet còn lại sử dụng về sau hay bạn có thể chia nhỏ ra tiếp nếu bạn cần.

Bạn muốn bảo đảm những địa chỉ sẽ không bị trùng lắp. Bạn trở lại với Bảng nguyên thủy ở trên:




Bây giờ bạn có thể chia mạng .128/26 thành 2 mạng /27 nhỏ hơn và cấp cho văn phòng B




Những mạng còn lại thì vẫn có sẵn để cấp cho những mạng hay subnet thêm nữa để kết quả tốt hơn.


Ta tiến hành B4: Chọn Net lớn thứ 3 để làm việc
+ Văn phòng C và D mỗi văn phòng 12 host
+ Xác định bit Host cần cho các mạng này:
2 lũy thừa H –2 >= 12
H = 4
+ Bạn cần 4 bit để đáp ứng yêu cầu của Văn Phòng C và D
+ Bạn đã bắt đầu với mô hình 2 bit Net và 6 bit Host cho Văn Phòng A
+ Bây giờ bạn phải lựa chọn để lấy Mạng nào. Bạn có thể lấy 1 mạng /26 khác hoặc cũng có thể lấy 1 mạng /27 và thử xem nó có vừa với yêu cầu ko.

+ Với mục đích của Đề Bài, ta chọn 1 mạng /27 – .160/27:
10100000 (bit 1 ở vị trí thứ 3 không còn được tô đậm như ở trên vì bây giờ nó là phần của bit Net)
+ Nhưng bạn chỉ cần 4 bit Host, không phải 5. Do đó bạn cần thêm 1 bit N bên trái:
101N0000
Khi đó
* 101 đại diện để mô ta cho phần nguyên thủy của Subnet
* N đại diện cho bit mở rộng
* 0000 đại diện cho 4 bit Host bạn cần cho văn phòng C, D
+ Bởi vì bạn có bit mở rộng này, bạn phải tạo ra 2 subnet nhỏ hơn từ subnet nguyên thủy:
10100000
10110000
+ Chuyển qua hệ thập phân, những subnet này là:
10100000 = .160
10110000 = .176

Mỗi subnet được chia trong subnet sẽ có 1 Subnet Mask mới. Mỗi subnet được chia trong subnet bây giờ đã có 4 bit Net và 4 bit Host và Mask mới của chúng là:
11111111.11111111.11111111.11110000
hay 255.255.255.240
hay /28

Lấy 1 trong những subnet được chia trong subnet mới tạo ra cho văn phòng C và D




Như vậy ta đã hoàn thành xong yêu cầu đề bài. Bạn đã thấy sức mạnh của VLSMs rồi chứ
Theo nhatnghe.com

Friday, May 7, 2010

Mẹ ngủ vỉa hè để nuôi con ăn học

Mưu sinh bằng nghề nhặt ve chai, tiền kiếm được chỉ đủ hai mẹ con sống tạm bợ qua ngày. Đã khốn khổ, người mẹ goá này còn bị xe cán gãy chân, phải chịu thêm những cơn đau nhức buốt trong những ngày vạ vật vỉa hè.

“Con cò mà đi ăn đêm. Đậu phải cành mềm lộn cổ xuống ao ...” - Chẳng ngờ, câu hát bà thường ru con trong những đêm khuya trên hè phố Sài Gòn giờ chính là cảnh ngộ của mình.

Họa vô đơn chí

Cuộc đời bà Phạm Thị Hoa chẳng được mấy ngày vui. Bao nỗi bất hạnh đã in hằn lên khuôn mặt già nua, khắc khổ của người đàn bà chưa tới 60 tuổi này. Gia cảnh nghèo khó, giã từ vùng quê nghèo Bắc Ninh, bà vào Sài Gòn mưu sinh khi đã quá lứa lỡ thì. Ba mươi tư tuổi bà mới lấy chồng. Hai người cùng cảnh ngộ lang thang, làm thuê làm mướn. Đứa con gái chào đời cũng trong cảnh khốn khó, nghèo nàn.

Năm 2002, bất hạnh ập đến: chồng bà chết vì bệnh ung thư phổi. Chỉ còn hai mẹ con, không nghề nghiệp, không tiền bạc, bà đành cắn răng gửi con vào một Mái ấm tình thương ở Sài Gòn. Tiếp tục lang thang, ban ngày bà đi lượm ve chai, khuya về ngủ ở cổng sau trường Đại học Tin học và Ngoại ngữ.

Mẹ ngủ vỉa hè để nuôi con ăn học, Tin tức  trong ngày, mẹ, cha, vất vả, nuôi nấng, dạy dỗ, con, cháu, goá chồng,  goá bụa Mẹ ngủ vỉa hè để nuôi con ăn học, Tin tức  trong ngày, mẹ, cha, vất vả, nuôi nấng, dạy dỗ, con, cháu, goá chồng,  goá bụa

Đã khốn khó, tai hoạ còn ập xuống người mẹ goá tội nghiệp này. Ảnh: Đinh Nga.

Ấy vậy mà tai họa lại giáng xuống người đàn bà tội nghiệp này. Một buổi sáng cuối tháng 3/2010, đang lúi húi nhặt ve chai bên vỉa hè bà bất ngờ bị xe tông. Cái chân trái bị gãy, phải mổ để đặt đinh kích xương.

Ra viện với số tiền ít ỏi mà người gây tai nạn bồi thường, cùng với cái hẹn 5 tuần sau tái khám để mổ lấy đinh ra, bà tê tái cõi lòng. Chân gãy, không thể đi lại, không thể kiếm ra tiền trong khi vừa phải lo thuốc thang, ăn uống, vừa phải lo cho con ăn học, số tiền ấy cứ cạn dần.

Nhìn cảnh người phụ nữ với cái chân băng bó, nằm vật vạ ở vỉa hè, nhiều người đi qua thương cảm, có người cho cái giường xếp cũ, người mua cho hai cái ghế nhựa để kê chân, người mua cho cái ca để uống nước.

Vì con, khổ mấy cũng cam

Từ hôm bị nạn, người gầy xọp đi nhanh chóng, ấy thế mà bữa cơm của bà cũng chỉ có bịch rau và chai nước mắm. Xòe đôi bàn tay, da bong tróc từng mảng lớn có lẽ do ăn uống thiếu chất, bà Hoa nói trong nước mắt: “Bây giờ đến tiền ăn còn không đủ, chưa biết lấy đâu ra tiền để mổ chân”.

Mẹ ngủ vỉa hè để nuôi con ăn học, Tin tức  trong ngày, mẹ, cha, vất vả, nuôi nấng, dạy dỗ, con, cháu, goá chồng,  goá bụa Mẹ ngủ vỉa hè để nuôi con ăn học, Tin tức  trong ngày, mẹ, cha, vất vả, nuôi nấng, dạy dỗ, con, cháu, goá chồng,  goá bụa

Đôi bàn tay của bà Hoa da bong tróc từng mảng lớn vì ăn uống thiếu chất lại còn phải vất vả quanh năm...

Cái hẹn 5 tuần tái khám để mổ lấy đinh ra khỏi chân cứ ngắn dần. Cái chân gãy do chấn động, bị sưng và đau nhiều hơn trước. Bà Hoa lo lắng, mấy lần muốn vào hỏi bác sĩ xem có làm sao không, nhưng nghĩ đến khoản tiền khám, bà lại thôi, liều cắn răng chịu đựng.

Câu chuyện của bà Hoa được nhiều người sống gần trường Đại học Tin học và Ngoại ngữ biết đến. Không ít người cảm phục, gọi bà là “bà mẹ vĩ đại”. Con gái bà, Thanh H. năm nay 19 tuổi đã rời Mái ấm tình thương từ năm 2008. Hiện H. đang học lớp bổ túc văn hóa vào buổi đêm. Ban ngày, em đi học tiếng Anh tại một trung tâm nhỏ trên đường Nguyễn Thị Minh Khai.

Luôn canh cánh lo cho con có một chỗ trọ để yên tâm học hành, bà Hoa tâm sự: “Tôi già rồi sống sao cũng được. Còn cháu nó còn nhỏ, lại là thân con gái, phải cho nó một chỗ yên ổn để còn học hành”.

Nỗi lo lớn nhất của người phụ nữ này là con sẽ chịu cảnh khổ như mình bây giờ. Vì thế, bà rất chú trọng việc học của con. Khi H. còn nhỏ, vì hoàn cảnh gia đình nên không được đến trường như các bạn cùng trang lứa, bà tự mình dạy con những nét chữ đầu tiên, dạy con biết đọc, biết viết.

Mẹ ngủ  vỉa hè để nuôi con ăn học, Tin tức trong ngày, mẹ, cha, vất vả, nuôi  nấng, dạy dỗ, con, cháu, goá chồng, goá bụa
... rồi phải chịu cảnh vật vạ ở vỉa hè.

Bà Hoa bộc bạch: “Tôi xem báo, thấy công ty nào cũng đòi hỏi ngoại ngữ, tin học, ngoại hình... Con mình đã thiệt thòi hơn người ta, thôi thì ráng đầu tư cho nó học tiếng Anh để sau này còn xin được việc tốt tốt mà làm. Khổ mấy cũng phải ráng!”. Bà Hoa còn luôn dặn con giấu kín chuyện mẹ ngủ ngoài đường. Bà lo con bị bạn bè chê cười rồi đâm mặc cảm.

“Nhìn thấy mẹ khổ thế này, em đau lòng lắm. Em chỉ ước sao mẹ không phải ở ngoài đường nữa” – Thanh H. cũng không kìm được nước mắt.

Wednesday, May 5, 2010

Cisco Press ICND1 Exam 640-822 (2nd Edition) (Uthorized Self-Study Guide)


Product Description

CCENT/CCNA ICND1 Official Exam Certification Guide

Second Edition

  • Master ICND1 640-822 exam topics with the official study guide
  • Assess your knowledge with chapter-opening quizzes
  • Review key concepts with Exam Preparation Tasks
  • Practice with hundreds of exam questions on the CD-ROM

Wendell Odom, CCIE® No. 1624

CCENT/CCNA ICND1 Official Exam Certification Guide, Second Edition, is a best of breed Cisco® exam study guide that focuses specifically on the objectives for the CCENT™ and CCNA® ICND1 exam. This fully updated edition presents complete reviews and a more challenging and realistic exam preparation experience.

Senior instructor and best-selling author Wendell Odom shares preparation hints and test-taking tips, helping you identify areas of weakness and improve both your conceptual knowledge and hands-on skills. The material is presented in a concise manner, focused on increasing your understanding of exam topics and preparing you for the numerous challenges the exams present.

CCENT/CCNA ICND1 Official Exam Certification Guide, Second Edition, presents you with an organized test preparation routine through the use of proven series elements and techniques. “Do I Know This Already?” quizzes open each chapter and allow you to decide how much time you need to spend on each section. Chapter-ending Exam Preparation Tasks sections help you drill on key concepts you must know thoroughly and help increase your speed in answering questions, a difficult hurdle many exam candidates face on the new exams. A Final Preparation chapter guides you through tools and resources to help you craft your final study plan. Special troubleshooting sections help you master the complex scenarios you will face on the exam.

The companion CD-ROM contains a powerful testing engine that allows you to focus on individual topic areas or take complete, timed exams. The assessment engine also tracks your performance and provides feedback on a chapter-by-chapter basis, presenting question-by-question remediation to the text. The bonus DVD contains more than

60 minutes of personal video mentoring from the author focused mainly on bringing difficult subnetting concepts to life.

Well-regarded for its level of detail, assessment features, and challenging practice questions, this book provides you with more detailed information and more realistic practice exercises than any other CCNA study guide, enabling you to succeed on the exam the first time.

CCENT/CCNA ICND1 Official Exam Certification Guide, Second Edition, is part of a recommended learning path from Cisco that includes simulation and hands-on training from authorized Cisco Learning Partners and self-study products from Cisco Press. To find out more about instructor-led training, e-learning, and hands-on instruction offered by authorized Cisco Learning Partners worldwide, please visit www.cisco.com/go/authorizedtraining.

Wendell Odom, CCIE® No. 1624, has been in the networking industry since 1981. He currently teaches QoS, MPLS, and CCNA courses for Skyline Advanced Technology Services (www.skyline-ats.com). Wendell has worked as a network engineer, consultant, systems engineer, and instructor and course developer, and has taught authorized Cisco courses for the majority of the last 14 years.

The official study guide helps you master all the topics on the CCENT and CCNA ICND1 exam, including

  • TCP/IP and OSI networking models
  • Operating Cisco routers and LAN switches
  • Ethernet switch configuration and troubleshooting
  • Wireless LANs
  • IP addressing and subnetting
  • Routing protocols
  • Router configuration and troubleshooting
  • Network Security
  • WAN concepts and configuration

Companion CD-ROM

The CD-ROM contains an electronic copy of the book and 200 practice questions for the ICND1 and full CCNA exams, including simulation and testlet questions, all available in study mode and test mode.

BONUS DVD

The DVD contains more than 60 minutes of personal instruction from the author.

This volume is part of the Exam Certification Guide Series from Cisco Press®. Books in this series provide officially developed exam preparation materials that offer assessment, review, and practice to help Cisco Career Certification candidates identify weaknesses, concentrate their study efforts, and enhance their confidence as exam day nears.

Category: Cisco Press–Cisco Certification

Covers: CCENT and CCNA ICND1 Exam 640-822

About the Author

Wendell Odom, CCIE No. 1624, has been in the networking industry since 1981. He currently teaches QoS, MPLS, and CCNA courses for Skyline Advanced Technology Services http://www.skyline-ats.com). He has also worked as a network engineer, consultant, systems engineer, instructor, and course developer. He is the author of all previous editions of the

CCNA Exam Certification Guide, as well as theCisco QOS Exam Certification Guide, Second Edition, Computer Networking First-Step,CCIE Routing and Switching Official Exam Certification Guide, Second Edition, and CCNA Video Mentor–all from Cisco Press.


Link download : http://www.mediafire.com/?dmmaezmz0ho