Thiết kế mạng_3



Giới thiệu bộ giao thức TCP/IP

Đây là bộ giao thức được sử dụng phổ biến nhất. Mối quan hệ giữa năm tầng của bộ giao thức TCP/IP và bảy tầng của mô hình OSI được minh họa trong hình dưới đây.

Application

Application
Presentation

Sessision

Transport

Transport
Network

Internet
Data link

Data link
Physical

Physical
OSI

TCP/IP
Năm tầng của bộ giao thức TCP/IP gồm: application, transport, internet, data link và physical. Hai tầng data link và physical đôi khi được nhóm lại thành 1 tầng, gọi là tầng network interface (tầng giao tiếp mạng) hoặc network access hoặc host-to-network.
Tầng application của TCP/IP bao gồm các chức năng của tầng application, presentation và session trong mô hình OSI.
Các ứng dụng trong tầng application bao gồm:
-         FTP (File Transfer Protocol) và TFTP (Trivial File Transfer Protocol): truyền file giữa các thiết bị.
-         SMTP (Simple Mail Transfer Protocol) và POP3 (Post Office Protocol): cung cấp dịch vụ email.
-         HTTP (HyperText Transfer Protocol): truyền thông tin giữa WWW server và trình duyệt web.
-         Telnet (telecommunication network hoặc terminal network hoặc teletype network): cung cấp dịch vụ kết nối và thao tác với một máy tính ở xa thông qua môi trường mạng LAN hoặc Internet.
-         DNS (domain name system): chuyển đổi tên của thiết bị mạng (tên miền) sang địa chỉ (IP) và ngược lại.
-         SNMP (simple network management protocol): sử dụng để quản lý và theo dõi mạng.
-         DHCP (dynamic host configuration protocol): cung cấp địa chỉ IP động cho thiết bị.

Các giao thức tầng transport của bộ giao thức TCP/IP

Tầng này gồm hai giao thức:
-         TCP (transmission control protocol): giao thức TCP cung cấp khả năng truyền dữ liệu tin cậy và có yêu cầu thiết lập kết nối (hướng kết nối). Trước khi truyền dữ liệu, TCP trên thiết bị nguồn sẽ thiết lập một kết nối với TCP trên thiết bị đích, thực hiện đồng bộ giữa hai thiết bị. Trong quá trình trao đổi dữ liệu giữa hai thiết bị sẽ có cơ chế hồi báo, nếu bên nhận chưa nhận đủ dữ liệu nó sẽ yêu cầu bên gửi thực hiện gửi lại phần dữ liệu còn thiếu. Ví dụ: FTP là ứng dụng sử dụng giao thức TCP, giao thức này giúp FTP truyền dữ liệu đúng và đủ.
-         UDP (user datagram protocol): giao thức UDP cung cấp cơ chế truyền dữ liệu không có hồi báo, không thực hiện thiết lập kết nối trước khi truyền (connectionless). Nói cách khác, UDP không đảm bảo tất cả dữ liệu đã được gửi đi từ máy gửi sẽ đến máy đích. Việc kiểm tra dữ liệu đã được truyền đi có thành công hay không? đầy đủ hay chưa? có phải truyền lại hay không? là nhiệm vụ của các tầng cao hơn hoặc của người sử dụng. Ví dụ: TFTP là một ứng dụng sử dụng UDP. Sau khi nhận được dữ liệu, TFTP sẽ kiểm tra lỗi, kiểm tra tính toàn vẹn của dữ liệu, nếu có lỗi xảy ra, nó sẽ cảnh báo người dùng và yêu cầu truyền lại toàn bộ dữ liệu.
Hình sau minh họa các trường trong gói dữ liệu của TCP và UDP (PDU tại tầng này là segment)


Các trường của 1 UDP segment:
-         Source port number và destination port number (mỗi trường 16 bit): là các số nguyên không âm cho biết giao thức của tầng bên trên (tầng application) tại máy gửi và máy nhận.
-         Length (16 bit): kích thước của vùng header và data, đơn vị tính là từ nhớ 32-bit (32-bit word).
-         Checksum (16 bit): giá trị kiểm tra (checksum) của trường header và data, được sử dụng để đảm bảo dữ liệu (segment) đã nhận được là chính xác.
-         Data (kích thước có thể thay đổi): PDU của tầng bên trên.
Các trường của một TCP segment:
-         Source port number và destination port number (mỗi trường 16 bit): là các số nguyên không âm cho biết giao thức của tầng bên trên (tầng application) tại máy gửi và máy nhận.
-         Sequence number và acknowledgment number (mỗi trường 32 bit): là các số nguyên, được sử dụng để kiểm soát quá trình truyền dữ liệu, giúp đảm bảo các gói dữ liệu nhận được có thứ tự chính xác và đảm bảo dữ liệu gửi đã tới được đích.
-         Header length (4 bit): kích thước của header, tính bằng từ nhớ 32-bit.
-         Reserved (6 bit): không sử dụng, mang giá trị 0.
-         Code bit (6 bit): mã xác định kiểu của segment. Ví dụ, bit SYN (synchronize) được sử dụng để thiết lập phiên kết nối, bit ACK (acknowledge) được sử dụng để hồi báo, và bit FIN (finish) được sử dụng để đóng phiên kết nối.
-         Window size (16 bit): số octet mà thiết bị nhận có thể tiếp nhận, trước khi phải gửi một hồi báo cho thiết bị gửi, một octet gồm tám bit dữ liệu.
-         Checksum (16 bit): giá trị kiểm tra của trường header và data, được sử dụng để đảm bảo dữ liệu đã nhận được là chính xác.
-         Urgent (16 bit): báo hiệu kết thúc của phần dữ liệu cần truyền gấp.
-         Option (0 hoặc 32 bit): là trường tùy chọn, xác định kích thước tối đa của một TCP segment.
-         Data (kích thước không cố định): dữ liệu của tầng phía trên.
Chú ý, header của UDP có kích thước nhỏ hơn header của TCP. UDP không cần các trường sequence, acknowledgment, window size, vì nó không cần cơ chế đảm bảo truyền tin cậy, không thiết lập và duy trì kết nối.
Port number
TCP và UDP sử dụng port number để phân biệt các ứng dụng đang chạy trên cùng một thiết bị.
Port number được chia thành ba loại: well-known, registered và public/private.
-         Well-known là các port có giá trị từ 0 -> 1023, dùng cho các ứng dụng phổ biến. Ví dụ:
o       FTP: TCP sử dụng port 20 cho truyền dữ liệu (data) và port 21 cho điều khiển (control).
o       TFTP: UDP sử dụng port 69.
o       SMTP: TCP sử dụng port 25.
o       POP3: TCP sử dụng port 110.
o       HTTP: TCP sử dụng port 80.
o       Telnet: TCP sử dụng port 23.
o       DNS: TCP và UDP sử dụng port 53.
o       SNMP: UDP sử dụng port 161.
-         Registered là các port có giá trị từ 1024 -> 49151, người dùng muốn sử dụng các port này, cần phải đăng kí với tổ chức IANA.
-         Public/private là các port có giá trị từ 49152 -> 65535, người dùng được phép sử dụng tự do các port này mà không cần đăng kí.
Hình dưới đây minh họa thiết bị tại Toronto đang mở một phiên làm việc Telnet với thiết bị ở London. Để ý là, giá trị source port từ Toronto là 50051, nghĩa là, Toronto ghi nhận phiên làm việc telnet này với London ở cổng 50051, để phân biệt với các phiên làm việc telnet khác có thể đang chạy trên chính máy Toronto.
Thiết bị tại London nhận được gói tin với giá trị dest port là 23, nó nhận ra đây là một phiên làm việc telnet. Trong gói trả lời, nó sử dụng dest port là 50051, với giá trị dest port này, Toronto sẽ biết đây là phiên telnet mà nó đã mở để làm việc với London.
 


Sequencing (sắp tuần tự), acknowledgment (hồi báo) và Windowing (khung truyền) của TCP

Để minh họa hoạt động của TCP, hãy xem xét một phiên làm việc của TCP từ lúc thiết lập kết nối, truyền dữ liệu  và đóng kết nối.
Một kết nối TCP được thiết lập bằng quá trình “three-way handshake” – ba lần bắt tay. Quá trình này sử dụng trường code bit (SYN, ACK), trường sequence number và acknowledgment number.
Hình sau thể hiện quá trình “three-way handshake”:


Ở ví dụ trên, người dùng tại Toronto muốn thiết lập một phiên làm việc dựa trên TCP với  thiết bị ở London để chạy chương trình telnet.
Bước đầu tiên của “three-way handshake” là bước khởi tạo, Toronto gửi đi một segment với bit SYN được thiết lập – có nghĩa là nó muốn bắt đầu một phiên làm việc và thực hiện đồng bộ với London. Segment này có giá trị sequence number khởi tạo là 21.
Giả sử thiết bị tại London đồng ý thiết lập phiên làm việc, nó sẽ gửi lại một segment với bit SYN được thiết lập. Ngoài ra, bit ACK cũng được thiết lập, vì London phải gửi hồi báo cho Toronto biết là đã nhận được segment mà Toronto đã gửi trước đó. Giá trị acknowledgment number được thiết lập là 22, chỉ ra rằng London đang mong nhận được segment thứ 22, tức là nó đã nhận được segment 21. Segment mới thiết lập giá trị sequence number là 75.
Cuối cùng, Toronto trả lời bằng một segment hồi báo với sequence number là 22 (như London đang mong đợi), và acknowledgment number là 76, chỉ ra rằng, nó đang mong đợi segment thứ 76, nghĩa là segment thứ 75 đã truyền tới đích thành công. Phiên làm việc đã được thiết lập, và hai máy Toronto và London có thể bắt đấu trao đổi dữ liệu.
Chú ý: sequence và acknowledgment number chính là số octet, chứ không phải số segment. Để dễ hiểu, ở ví dụ trên đã giả sử một segment là một octet dữ liệu. Trong thực tế điều này không đúng.
Trường window size trong segment có nhiệm vụ kiểm soát lưu lượng (flow) của phiên truyền dữ liệu. Nó cho biết số octet mà một thiết bị có thể nhận trước khi phải gửi một hồi báo. Vì mỗi thiết bị có khả năng tiếp nhận dữ liệu khác nhau (nếu thiết bị quá bận nó sẽ yêu cầu gửi số lượng dữ liệu ít hơn), nên mỗi thiết bị có thể có windows size khác nhau. Ví dụ minh họa trong hình dưới đây.

Ví dụ ở hình trên, window size tại Toronto có giá trị 3, và tại London có giá trị 2. Vì vậy, khi Toronto gửi dữ liệu tới London, nó có thể gửi hai octet trước khi phải đợi một hồi báo, Ngược lại, khi London gửi dữ liệu tới Toronto, nó có thể gửi ba octet trước khi phải đợi một hồi báo.
Chú ý: window size được tính bằng số octet có thể gửi, không phải số segment. Để dễ hiểu, ví dụ ở trên đã coi một segment có kích thước bằng một octet. Thực tế, kích thước của window size lớn hơn nhiều so với ví dụ, điều này cho phép thiết bị truyền một khối lượng lớn dữ liệu giữa các lần hồi báo.
Sau khi toàn bộ dữ liệu của phiên đã được truyền, phiên làm việc sẽ được đóng. Quá trình đóng cũng tương tự như quá trình thiết lập, cũng sử dụng “handshake”, gồm bốn bước, được minh họa trong hình sau:


Ở hình trên, Toronto muốn đóng phiên telnet với London. Bước đầu tiên của quá trình “handshake” là Toronto gửi một segment với bit FIN được thiết lập, với mục đích là kết thúc phiên làm việc. Segment này cũng bao gồm sequence number mà Toronto đang sử dụng (sequence number = 107).
London ngay lập tức trả lời yêu cầu của Toronto. Với segment có bit ACK được thiết lập và giá trị của ack = 108, có nghĩa là London đã nhận được segment số 107. Segment của London thiết lập sequence number 322. Sau đó London thông báo cho ứng dụng telnet biết là kết nối telnet từ Toronto tới nó đã bị đóng (đóng một chiều, từ Toronto tới London).
Khi ứng dụng tại London gửi yêu cầu đóng kết nối chiều ngược lại, London sẽ gửi một segment mới, với cờ FIN được thiết lập, nghĩa là muốn đóng phiên làm việc.
Cuối cùng, Toronto đáp lại với một segment hồi báo có acknowledgment number = 323 (nghĩa là thiết bị này đã nhận được segment 322). Phiên làm việc bây giờ đã được đóng ở cả hai phía.
-------------------------------------------------------
LGC - Lược dịch “Designing for Cisco Internetwork Solutions” 



Thiết kế mạng_2

LAN và WAN

LAN là hệ thống mạng được sử dụng để kết nối các máy tính trong một phạm vi nhỏ, để chia sẻ tài nguyên. Phạm vi thường có bán kính nhỏ hơn vài trăm mét. Vì vậy, mạng LAN thường được sử dụng để kết nối các thiết bị trong cùng một phòng, một tòa nhà hoặc một khuôn viên trường học (campus).
Mạng LAN là một hệ thống thường xuyên kết nối, không như mạng quay số (dial-up) hoặc các mạng khác cần phải khởi tạo kết nối mỗi khi cần truyền dữ liệu.
Mạng LAN thường do các tổ chức, công ty thiết lập và sở hữu. Chi phí truyền dữ liệu trong mạng LAN không cao. Hiện nay, có rất nhiều công nghệ mạng LAN đang được sử dụng, ví dụ:
-         Ethernet và IEEE802.3, truyền dữ liệu ở tốc độ 10 Mbps, sử dụng công nghệ CSMA/CD (carrier sense multiple access collision detect). Khi một thiết bị CSMA/CD cần truyền dữ liệu, nó sẽ lắng nghe xem có thiết bị nào (multiple access) sử dụng đường truyền (carrier sense) hay không. Nếu không có, nó sẽ bắt đầu gửi dữ liệu, và luôn luôn lắng nghe trong suốt quá trình truyền (collision detect), để nếu có thiết bị khác cũng gửi ra ở cùng thời điểm thì cả hai thiết bị đều phải bắt đầu lại việc lắng nghe và gửi lại gói dữ liệu, pha truyền trước xem như thất bại.
-         Fast Ethernet, truyền dữ liệu ở tốc độ 100 Mbps, được đặc tả trong IEEE802.3u, sử dụng công nghệ CSMA/CD.
-         Gigabit Ethernet, truyền dữ liệu ở tốc độ 1 Gbps, được đặc tả trong IEEE802.3z và 802.3ab, sử dụng công nghệ CSMA/CD.
-         Wireless LAN (WLAN), mạng LAN không dây, được đặc tả trong IEEE802.11, tốc độ truyền dữ liệu 54Mbps đối với chuẩn 802.11g. Và 150Mbps đối với chuẩn 802.11n. WLAN sử dụng công nghệ CSMA/CA (carrier sense multiple access collision avoidance).
Hình sau minh họa một số chuẩn mạng LAN và WAN.

 
Mạng WAN được sử dụng để kết nối các mạng LAN cách xa nhau. Tốc độ truyền dữ liệu trên mạng WAN chậm hơn so với mạng LAN, và thường yêu cầu động tác kết nối trước khi truyền dữ liệu, mạng WAN được sở hữu bởi các công ty cung cấp dịch vụ (service provider). Bạn phải trả phí cho nhà cung cấp dịch vụ khi sử dụng mạng WAN. Phí có thể trả cố định theo tháng, hoặc thay đổi tùy theo lượng sử dụng và khoảng cách.
Cũng như mạng LAN, mạng WAN hiện tại cũng có rất nhiều công nghệ đang được sử dụng. Mạng WAN được đặc tả tại hai tầng thấp của mô hình OSI. Một số ít được đặc tả ở tầng 3 (ví dụ ISDN). Các công nghệ mạng WAN cung cấp cho khách hàng phụ thuộc vào hạ tầng thiết bị hiện có, giá thành triển khai dịch vụ. Một số công nghệ WAN phổ biến:
-         Mạng chuyển mạch gói (packet-switched network): hệ thống mạng cho phép chia sẻ hạ tầng của nhà cung cấp dịch vụ. Nhà cung cấp dịch vụ tạo ra các mạch ảo cố định và các mạch ảo tạm thời để truyền dữ liệu giữa các vùng thuê bao khác nhau. Ví dụ, Frame Relay là mạng chuyển mạch gói.
-         Mạng leased line: là kết nối điểm tới điểm (point - to - point) được dành riêng cho mục đích truyền dữ liệu; được các công ty, tổ chức thuê riêng từ nhà cung cấp dịch vụ. Công nghệ sử dụng trong hệ thống mạng này là PPP và HDLC (High-Level Data Link Control).
-         Mạng chuyển mạch mạch hay chuyển mạch kênh (circuit-switched network): là đường kết nối vật lý dành riêng trong suốt quá trình truyền dữ liệu giữa hai vị trí. Ví dụ: công nghệ ISDN BRI (Basic Rate Interface).
-         Mạng DSL: sử dụng băng thông không dùng đến của đường truyền thoại truyền thống để truyền dữ liệu với tốc độ cao hơn so với mạng quay số (dial up) trước đây. Công nghệ được sử dụng phổ biến hiện nay là ADSL. ADSL là công nghệ DSL bất đối xứng (asymmetric), nghĩ là tốc độ tải dữ liệu xuống (download) nhanh hơn rất nhiều so với tốc độ tải dữ liệu lên (upload) (thường là 8:1). Công nghệ mạng này phù hợp với nhu cầu sử dụng của đa số người dùng. ADSL cho phép cùng một lúc vừa thực hiện gọi điện thoại vừa sử dụng Internet. Cả hai dùng chung một đường dây điện thoại.
-         Cable: sử dụng phần băng thông không dùng đến của mạng truyền hình cáp đề truyền dữ liệu với tốc độ cao hơn so với mạng quay số truyền thống.

Các thiết bị mạng

Các thiết bị mạng chủ yếu được sử dụng gồm: hub, switch, và router.
Một số thuật ngữ liên quan đến hoạt động của các thiết bị mạng: domain, bandwidth, unicast, multicast.
-         Domain: là tập hợp các máy tính cụ thể nào đó của một mạng.
-         Bandwidth: băng thông mạng, cho biết lượng dữ liệu truyền qua một hệ thống mạng trong một đơn vị thời gian.
-         Unicast: chỉ truyền cho một thiết bị cụ thể.
-         Broadcast: truyền cho tất cả các thiết bị trong một phạm vi cụ thể; quá trình này cần dùng tới một địa chỉ đặc biệt gọi là địa chỉ broadcast.
-         Multicast: truyền cho một nhóm thiết bị cụ thể nào đó; quá trình này cũng cần sử dụng địa chỉ đặc biệt.
-         Bandwidth domain (collision domain trong mạng Ethernet): là một tập hợp các thiết bị mà có chia sẻ băng thông với nhau.
-         Broadcast domain: là một tập hợp các thiết bị có thể nhận broadcast (có thể cả multicast) từ các thiết bị khác.
Hai thiết bị nằm trong cùng một collision domain thì chắc chắn cũng nằm cùng trong một broadcast domain. Tuy nhiên, hai thiết bị cùng nằm trong một broadcast domain thì chưa chắc đã cùng nằm trong cùng một bandwidth domain.

Hub

Mạng Ethernet LAN thường sử dụng cáp UTP và đầu nối RJ45, vì cáp này chỉ có hai đầu, do vậy, chỉ kết nối được hai máy tính lại với nhau, nếu muốn kết nối nhiều hơn hai máy tính thì phải sử dụng thêm thiết bị khác để kết nối. Thiết bị đó là hub.
Hub làm việc ở tầng 1. Về mặt logic hub biến các thiết bị có kết nối với nó thành một khối trong mạng LAN.
Đối với hub, switch, hoặc router, cổng kết nối của các thiết bị này gọi là port hoặc interface. (lưu ý, khái niệm port này khác với number port trong bộ giao thức TCP/IP).
Hub không phải là một thiết bị thông minh, khi nó nhận được dữ liệu trên một cổng bất kì, nó sẽ gửi dữ liệu đó tới tất cả các cổng còn lại. Do vậy, các thiết bị có kết nối tới hub sẽ nhận được mọi thứ mà các thiết bị khác gửi, cho dù dữ liệu đó là gửi cho nó hay không? Mạng kết nối bằng hub giống như trong một phòng đông người, nếu chỉ có mình bạn nói thì những người khác có thể nghe bạn, tuy nhiên nếu có nhiều hơn một người nói thì sẽ tạo thành các tiếng ồn trong phòng.
Các thiết bị kết nối với hub tạo thành một collision domain và một broadcast domain.
Hub có thể coi là một repeater.

Switch

Trường hợp có nhiều người trong một phòng cùng nói một lúc sẽ dẫn tới không ai nghe được của ai, cũng giống như các máy tính được đấu nối vào một hub. Để khắc phục hạn chế này các mạng LAN thường sử dụng switch layer 2 thay cho hub.
Switch cũng có chức năng đấu nối như hub, tuy nhiên, có một ưu điểm là switch cho phép các kết nối tới nó có thể thực hiện giao tiếp đồng thời mà không ảnh hưởng đến các kết nối khác.
Switch hoạt động ở tầng 2 của mô hình OSI, thông minh hơn hub, switch chỉ gửi dữ liệu tới đúng cổng mà dữ liệu cần đi tới, các cổng còn lại không được nhận dữ liệu này, điều này làm giảm việc gửi dữ liệu dư thừa tới các cổng còn lại.
Switch đọc địa chỉ MAC nguồn và đích của frame, và do switch có thể ghi nhớ port nào thuộc về thiết bị (địa chỉ MAC) nào, nên nó sẽ gửi dữ liệu tới chính xác thiết bị cần nhận.
Tuy nhiên, nếu switch nhận được một frame mà địa chỉ đích là broadcast hoặc multicast, nó sẽ gửi frame tới tất cả các port.
Tất cả các thiết bị kết nối tới một port của switch là một collision domain, các thiết bị kết nối vào các port khác nhau của switch tạo ra các collision domain khác nhau. Mặc định, tất cả các thiết bị kết nối tới một switch là một broadcast domain.

So sánh giữa switch và bridge

Về bản chất thì switch giống bridge. Tuy nhiên có những điểm khác biệt giữa hai thiết bị này là:
-         Switch nhanh hơn bridge, vì switch chuyển mạch dựa trên nền tảng phần cứng, trong khi bridge chuyển mạch dựa trên phần mềm.
-         Switch có thể kết nối các mạng LAN có băng thông khác nhau. Ví dụ, một mạng Ethernet LAN 10Mbps có thể kết nối với mạng Ethernet LAN 100 Mbps thông qua switch. Ngược lại tất cả các port của bridge chỉ hỗ trợ một loại băng thông.
-         Thông thường, switch nhiều cổng hơn bridge.
-         Các switch hiện đại có nhiều chức năng hơn bridge.

Router

Router là thiết bị hoạt động tại tầng 3, thông minh hơn hub và switch. Router được sử dụng để kết nối các mạng LAN. Có thể sử dụng router để kết nối trực tiếp các mạng LAN hoặc thông qua môi trường WAN, Internet.
Router sử dụng địa chỉ của tầng 3: địa chỉ IP của TCP/IP hoặc địa chỉ IPX của Novell.
Router không quảng bá thông tin ra tất cả các cổng giống như hub, cũng không quảng bá các gói tin broadcast tới tất cả các cổng như switch, do đó router có thể được sử dụng để kiểm soát lưu lượng mạng.
Router đọc địa chỉ nguồn và địa chỉ đích của gói tin để xác định đường đi tốt nhất cho gói tin, chỉ gửi gói tin tới đúng nơi cần đến. Router giúp các mạng LAN trao đổi dữ liệu với nhau.
Các thiết bị kết nối tới cùng 1 cổng của router thì cùng collision domain, và cũng cùng broadcast domain.
Mặc định, router chỉ chuyển tiếp các gói tin unicast và các gói tin đặc biệt gọi là directed broadcast.
 --------------------------------------------------------------
LGC - Lược dịch “Designing for Cisco Internetwork Solutions”

Thiết kế mạng_1

Chương 1. Nhắc lại một số kiến thức cơ bản về mạng máy tính

Chương này sẽ nhắc lại một số khái niệm và thuật ngữ cơ bản, có liên quan đến các nội dung sẽ được trình bày ở phần tiếp theo của tài liệu.
Các nội dung gồm:
-         Mô hình OSI.
-         LAN.
-         WAN.
-         Các thiết bị mạng.
-         TCP/IP.
-         Định tuyến (routing).
-         Địa chỉ IP.
-         Chuyển mạch (switching) tầng 2, tầng 3.
-         STP.
-         VLAN.

Giới thiệu về mạng máy tính

Vào những năm 1960, 1970, hệ thống máy tính thường gồm một máy tính trung tâm gọi là mainframe, người dùng sẽ kết nối tới máy tính trung tâm này bằng các thiết bị đầu cuối gọi là các terminal. Các thiết bị đầu cuối này không có khả năng xử lý, chỉ có chức năng hiển thị, giao tiếp với máy mainframe dựa trên dòng lệnh. Hệ thống mạng máy tính chỉ có nhiệm vụ kết nối máy mainframe và các terminal.
Vào năm 1981, IBM PC ra đời, đánh dấu một sự thay đổi lớn, máy PC có thể xử lý công việc mà trước đây phải nhờ tới máy mainframe. Từ đây, hệ thống mạng máy tính có nhiệm vụ mới, là kết nối các PC này lại với nhau.
Mạng máy tính hay gọi ngắn gọn là mạng (computer network, network) là một hệ thống kết nối giữa các máy tính và các thiết bị phần cứng khác để chia sẻ  thông tin và tài nguyên.
Mạng đơn giản nhất là mạng gồm hai máy tính kết nối với nhau bằng một sợị cáp (cable). Tuy nhiên, hầu hết các mạng luôn có rất nhiều các thiết bị kết nối với nhau.
Liên mạng (internetwork hay internet) là hai hay nhiều mạng nối với nhau bằng các thiết bị định tuyến (router) cho phép truyền dữ liệu giữa các mạng. Internet là một liên mạng.
Kết nối liên mạng (internetworking) là việc sử dụng các kĩ thuật, phần cứng, phần mềm để thiết kế, triển khai và quản trị các  liên mạng.
Mạng LAN là 1 hệ thống cho phép nhiều người dùng có thể giao tiếp, trao đổi dữ liệu (trao đổi file, thông điệp, chia sẻ máy in, ổ đĩa…v.v) với nhau trong phạm vi địa lý nhỏ.
Mạng WAN là 1 hệ thống cho phép người dùng chia sẻ thông tin như mạng LAN, tuy nhiên, điểm khác biệt là mạng WAN kết nối các mạng LAN khác nhau, nằm ở các vị trí địa lý khác nhau.

Mô hình OSI

Hãy tưởng tượng khi gửi 1 email từ nơi bạn đang ở tới cho một người bạn đang ở Nhật Bản, việc gửi email gồm các bước sau:
-         Bạn phải mở ứng dụng để gửi email (web mail hoặc application mail).
-         Nhập nội dung email.
-         Nhập địa chỉ người nhận.
-         Bấm nút Send để gửi.
-         Máy tính sẽ chuyển email bạn vừa gửi qua cạc mạng, tới cáp mạng…tới modem.
-         Modem của bạn phải ở trạng thái sẵn sàng gửi dữ liệu ra ngoài Internet.
-         Các thiết bị mạng trên Internet sẽ lựa chọn đường đi tốt nhất để email được chuyển tới đúng người nhận.
Mô hình OSI sẽ mô tả cách thức giao tiếp và mối quan hệ giữa các thành phần trong quá trình giao tiếp trên mạng.
OSI viết tắt của Open System Interconnection – kết nối các hệ thống mở. Là mô hình được sử dụng để tham chiếu.
Mô hình OSI được Hội đồng tiêu chuẩn quốc tế (ISO) đưa ra vào năm 1984, gồm các quy định, các mô tả để gửi dữ liệu trên hệ thống mạng. Mô hình này được chia thành bảy tầng.

7
Application
Các tầng phía trên
6
Presentation
5
Sessision
4
Transport
Các tầng phía dưới
3
Network
2
Data link
1
Physical
Lưu ý, mô hình OSI chỉ đưa ra tất cả những gì (what) cần phải làm để truyền dữ liệu mà không đề cập tới cách thức làm như thế nào (how). Vì vậy, các giao thức khác nhau ở cùng một tầng có thể có cách thực hiện các chức năng khác nhau, ví dụ giao thức IP và IPX tại tầng Network.
Các tầng phía trên liên quan tới ứng dụng nhiều hơn: giao tiếp với người dùng, định dạng dữ liệu.
Các tầng phía dưới liên quan tới việc truyền dữ liệu: cách thức truyền dữ liệu, các yếu tố vật lý của hệ thống mạng.

Giao thức (Protocol)

Giao thức là một tập các quy định. Quy định về cách thức giao tiếp giữa các máy tính, thiết bị trên hệ thống mạng, nó cũng giống như các quy định khi tham gia giao thông – gặp đèn đỏ thì dừng lại, đợi tới đèn xanh thì được đi.
Hai máy tính phải cùng sử dụng một giao thức thì mới có thể giao tiếp với nhau được. Hai máy tính sử dụng hai giao thức khác nhau để giao tiếp thì cũng như một người sử dụng tiếng Việt để nói với một người chỉ biết tiếng Anh?!?.
Có rất nhiều giao thức mạng khác nhau đang được sử dụng: giao thức mạng LAN, giao thức mạng WAN, giao thức định tuyến (routing)…v.v.
Bộ giao thức (protocol suite) là tập hợp các giao thức tương ứng với các tầng của mô hình OSI. Bộ giao thức còn được gọi là chồng giao thức (protocol stack).
Bộ giao thức TCP/IP là một bộ giao thức được sử dụng nhiều nhất hiện nay. TCP/IP là nền tảng của Internet và hệ thống mạng của các tổ chức. Ngoài ra còn có 1 số các bộ giao thức khác như: NetWare của Novell, AppleTalk của Apple và System Network Architecture của IBM.

Các tầng trong mô hình OSI

Tầng 1 (Layer 1) – Physical
Tầng này đặc tả các vấn đề liên quan đến điện và cơ học như: các điều kiện về dòng điện, cơ  khí cần thiết cho việc kích hoạt, duy trì, và kết thúc kết nối vật lý giữa các thiết bị. Bao gồm các đặc tả về: mức điện áp, chiều dài tối đa của cáp kết nối, loại kết nối, tốc độ truyền dữ liệu tối đa…v.v.
Hoạt động của tầng vật lý liên quan đến việc truyền dữ liệu dạng nhị phân, được gọi là bit (viết tắt của binary digits), một bit mang một giá trị dữ liệu: 0 hoặc 1.
Tầng 2 (Layer 2) – Data link
Mô tả định dạng của dữ liệu được truyền giữa các mạng vật lý. Quá trình truyền dữ liệu tại tầng này có thể có cơ chế kiểm tra tính tin cậy của dữ liệu hoặc không, tùy thuộc vào giao thức sử dụng.
Tầng này chỉ ra cách thức để truy cập đường truyền, bao gồm: địa chỉ vật lý, phát hiện lỗi, sửa lỗi, và kiểm soát lưu lượng (flow control).
Có nhiệm vụ truyền dữ liệu giữa các nút mạng kề nhau trong mạng WAN hoặc giữa các nút mạng trong cùng một đoạn mạng (segment) LAN.
Đơn vị dữ liệu (PDU – protocol data unit) sử dụng ở tầng này là khung dữ liệu (gọi là frame). Có nhiều loại frame khác nhau tùy theo thiết bị và môi trường truyền.
Frame gồm: dữ liệu cần truyền, thông tin địa chỉ và thông tin điều khiển.
Trong mạng LAN, tổ chức IEEE chia tầng Data link thành hai tầng con là: Logical Link Control (LLC) và Media Access Control (MAC).
Tầng LLC (được mô tả trong IEEE 802.2) cho phép nhiều giao thức tại tầng Network có thể giao tiếp trên cùng một liên kết vật lý. Điều này được thực hiện bằng cách chỉ rõ giao thức được sử dụng tại tầng Network trong LLC của frame.
Tầng MAC được mô tả trong IEEE 802.3 Ethernet và IEEE 802.5 Token Ring.
Tầng MAC xem địa chỉ vật lý – MAC address - là định danh duy nhất của một thiết bị trên mạng. Mỗi frame gửi đi sẽ bao gồm địa chỉ MAC của thiết bị nguồn (thiết bị gửi) và thiết bị đích (thiết bị nhận), và chỉ có thiết bị đích mới nhận và xử lý frame.
Tầng 3 (Layer 3) – Network
Tầng Network chịu trách nhiệm tìm đường đi cho dữ liệu, nó chuyển tiếp dữ liệu qua các mạng logic (mạng logic có thể chứa nhiều mạng vật lý).
Địa chỉ IP được mô tả ở tầng này.
Trong khi tầng Data link chỉ thực hiện truyền dữ liệu giữa các trạm liền kề, trực tiếp (hop-to-hop), thì tầng Network thực hiện truyền dữ liệu giữa các trạm liền kề và trong liên mạng (end-to-end).
Giao thức định tuyến (routing protocol) được mô tả tại tầng này, giúp tìm đường đi tốt nhất để truyền dữ liệu từ nguồn tới đích.
Đơn vị dữ liệu tại tầng này là các datagram (hoặc packet). Các giao thức khác nhau sử dụng các loại datagram khác nhau.
Datagram có thể được chia nhỏ thành các packet và được lắp ghép lại khi đi qua các mạng khác nhau. Như vậy datagram là đơn vị dữ liệu lý thuyết, còn packet là đơn vị dữ liệu vật lý (dùng để truyền trên mạng). Trong một số trường hợp, nếu datagram không bị chia nhỏ thì datagram và packet là một. Hai khái niệm này có thể dùng thay thế cho nhau.
Tầng 4 (Layer 4) - Transport
Tầng này mô tả cách thức kết nối và truyền dữ liệu giữa các người dùng đầu cuối (end-to-end).
Tầng này mô tả 2 kiểu truyền dữ liệu:
Một là, truyền dữ liệu tin cậy hướng kết nối (connection-oriented), kiểu truyền này có thiết lập một kết nối logic và sử dụng cơ chế tuần tự (sequence number) để đảm bảo truyền đủ dữ liệu tới máy nhận.
Hai là, truyền dữ liệu phi kết nối (connectionless) và không đảm bảo tính tin cậy của dữ liệu truyền. Với kiểu truyền dữ liệu không tin cậy, việc kiểm tra tính tin cậy của dữ liệu được thực hiện ở tầng cao hơn hoặc bởi người sử dụng.
Truyền đa công (multiplexing) cho phép nhiều ứng dụng sử dụng chung một kết nối vật lý, khi đó dữ liệu sẽ được gán thẻ (tag) là các số để xác định dữ liệu đó thuộc ứng dụng nào.
Đơn vị dữ liệu truyền tại tầng này là segment (đoạn dữ liệu).
Các tầng còn lại – Layer 5 đến 7
Ba tầng ở phía trên có nhiệm vụ định hình dữ liệu được truyền từ nguốn tới đích; khi tìm hiểu về hạ tầng mạng, chúng ít được quan tâm. Sau đây là mô tả ngắn gọn chức năng của các tầng:
-         Tầng 5 (Layer 5) – session: chịu trách nhiệm thiết lập, duy trì và kết thúc một phiên giao tiếp giữa các ứng dụng chạy trên các thiết bị (host) khác nhau.
-         Tầng 6 (Layer 6) – presentation: mô tả về định dạng, cấu trúc, mã hóa, nén, và các vấn đề liên quan khác để biểu diễn dữ liệu, đảm bảo thông tin được gửi từ tầng application của thiết bị nguồn có thể đọc được tại tầng application của thiết bị đích.
-         Tầng 7 (Layer 7) – application: là tầng gần với người dùng nhất, nó tương tác trực tiếp với các phần mềm ứng dụng mạng, cung cấp các dịch vụ, giao thức cho các ứng dụng.
Giao tiếp giữa các tầng trong mô hình OSI
Phần này sẽ mô tả cách thức giao tiếp giữa bảy tầng trong mô hình OSI. Khi bạn gửi một email từ Toronto tới San Francisco, thực tế chính là gửi một email từ ứng dụng email của bạn tới ứng dụng email trên máy tính của người bạn tại San Francisco.
Trong mô hình OSI, việc trao đổi thông tin được xem xét trên từng tầng, ví dụ, tầng application trên máy của bạn sẽ giao tiếp với tầng application trên máy của người bạn kia, tuy nhiên, để thực hiện điều này email phải đi qua và đáp ứng các mô tả  tại các tầng khác trên máy tính của bạn; ví dụ, nó phải có địa chỉ ở tầng mạng (IP), lựa chọn loại frame phù hợp, sau đó, được truyền trên hệ thống mạng, và khi tới máy đích nó lại phải đi qua và đáp ứng tất cả các tầng tại máy đích trước khi tới được tầng application trên máy đích.
Từ tầng application, khi email chuyển xuống các tầng thấp hơn, nó sẽ được gắn thêm các thông tin điều khiển, những thông tin này giúp truyền dữ liệu tới đích. Nghĩa là tại mỗi tầng, dữ liệu sẽ được đóng gói (encapsulate hoặc wrap) với những thông tin thích hợp, gồm: địa chỉ, thông tin điểu khiển, thông tin kiểm tra lỗi.
Hình sau đây mô tả quá trình đóng gói (khi gửi email) đi từ tầng trên xuống các tầng phía dưới và quá trình mở gói (unencapsulate hoặc decapsulate) (tại máy nhận email) khi đi từ tầng dưới lên các tầng phía trên.

Ví dụ, ở hình trên,
-         Tại tầng 4, email này được đóng gói trong một segment.
-         Tại tầng 3, segment này được đóng gói trong một packet.
-         Tại tầng 2, packet này được đóng gói trong một frame.
-         Tại tầng 1, frame này được gửi đi trên dây cáp (không khí – nếu là mạng không dây) dưới dạng các bit.
Đơn vị dữ liệu trao đổi tại mỗi tầng gọi là PDU (protocol data unit). Tại tầng 4 là segment, tại tầng 3 là packet, tại tầng 2 là frame.
Lưu ý: tổng kích thước của thông tin sẽ được tăng thêm sau mỗi tầng trong quá trình đóng gói. Và trong quá trình mở gói, thông tin thêm vào (trong quá trính đóng gói) sẽ được gỡ bỏ từng bước qua mỗi tầng trước khi tới tầng application.
Tại mỗi tầng thường có nhiều giao thức để chọn lựa. Ví dụ, các packet có thể được gửi đi bằng giao thức IP hoặc IPX, tuy nhiên, để giao tiếp được với nhau thì tầng tương ứng của hai hệ thống phải sử dụng cùng một loại giao thức.
-----------------------------------------------------------
LGC - Lược dịch “Designing for Cisco Internetwork Solutions”