CN_2_1_Tổng quan tầng Physical



2.1 Tổng quan tầng Physical

Application
Transport
Network
Link
Physical
Tầng Physical đề cập tới cách thức sử dụng các loại tín hiệu để biểu diễn và truyền các bit dữ liệu trên phương tiện truyền. Như hình dưới đây.

Dữ liệu tại thiết bị gửi và thiết bị nhận đều ở dạng số (digital) (ví dụ: 10110…), tuy nhiên, tín hiệu truyền trên kết nối (ví dụ: dây dẫn) lại ở dạng tương tự (analog). Vấn đề quan trọng ở đây là làm sao biểu diễn dữ liệu dạng số bằng tín hiệu ở dạng tương tự. Đây là nhiệm vụ quan trọng nhất của tầng Physical.
Một số chủ đề cần tìm hiểu liên quan đến tầng Physical:
o       Một số môi trường truyền
  • Quá trình truyền tín hiệu
  • Điều chế tín hiệu
  • Những giới hạn mang tính bản chất
Quan sát một mô hình kết nối đơn giản sau:

Theo mô hình phân tầng của hệ thống mạng, các tầng cao hơn không quan tâm tới hoạt động chi tiết của tầng bên dưới, mà nó chỉ quan tâm tới kết quả gửi lên từ tầng bên dưới.
Cụ thể với tầng Physical, có hai độ đo mà các tầng bên trên quan tâm: một là băng thông (rate, speed, capacity, bandwidth), hai là độ trễ (delay).
  • Băng thông là tốc độ gửi (đặt) bit dữ liệu lên kết nối (ví dụ: dây dẫn). Cụ thể, là số bit gửi được lên kết nối trong thời gian một giây.
  • Độ trễ là thời gian cần thiết để phần đầu của luồng tín hiệu đi từ nơi gửi đến nơi nhận, tính từ lúc tín hiệu đã được đặt lên kết nối.
Ngoài ra, khi xem xét tầng Physical, người ta còn quan tâm tới hai yếu tố khác là: có truyền theo kiểu quảng bá (broadcast) không? và  tỉ lệ lỗi là bao nhiêu (rate error)? Mạng không dây sẽ truyền theo kĩ thuật quảng bá, trong khi mạng có dây thì không. Tỉ lệ truyền lỗi trong cáp quang thấp hơn so với mạng không dây.

Tổng thời gian để truyền một thông điệp (message latency)

Để tính tổng thời gian cần thiết để truyền một thông điệp, cần quan tâm tới hai giá trị: một là thời gian để đặt dữ liệu lên kết nối (Transmission delay) và thời gian cần thiết để phần đầu của khối dữ liệu đi đến nơi nhận (Propagation delay).
Thời gian đặt dữ liệu lên kết nối, kí hiệu T-delay, được tính bằng công thức:
T-delay = M(bit)/R(bit/second) = M/R (second)
Trong đó,
o       M: độ lớn của thông điệp (bit)
o       R: băng thông của kết nối (bit/second)
Thời gian cần thiết để phần đầu của khối dữ liệu đi từ nơi gửi đến nơi nhận (trên môi trường có dây), kí hiệu P-delay, được tính bằng công thức:
P-delay = Length/speed of signal =   Length/(2/3C) = D (second)
Trong đó,
  • Length: chiều dài của kết nối (m)
  • C: tốc độ của ánh sáng (m/s).
 Tổng thời gian để truyền một thông điệp, kí hiệu L, được tính bằng công thức:
L = M/R + D (second)

Một số đơn vị đo

Kí hiệu (tiền tố)
Giá trị
Kí hiệu (tiền tố)
Giá trị
Kilo (K)
10^3
Mili (m)
10^-3
Mega (M)
10^6
Micro (µ)
10^-6
Giga (G)
10^9
Nano (n)
10^-9
Thông thường khi nói về băng thông, người ta sử dụng lũy thừa của 10. Khi nói về dung lượng sử dụng lũy thừa của 2.
Kí hiệu byte là B và bit là b.
Ví dụ: 1 Mbps = 1000 Kbps = 1000 000 bps; 1 KB = 2^10 B = 1024 B.

Ví dụ về tính thời gian truyền

  1. Cần truyền một khối dữ liệu giữa hai máy tính trong cùng một thành phố, kích thước khối dữ liệu M = 1250 byte, sử dụng kết nối Dialup. Với băng thông R = 56kbps, độ trễ đường truyền D = 5ms. Tính thời gian cần thiết để truyền hết khối dữ liệu.
L = 5 ms + (1250 x 8) / (56 x 10^3) = 184 (ms)
Để ý thấy, độ trễ đường truyền chiếm một tỉ lệ rất nhỏ trong tổng thời gian cần thiết để truyền hết khối dữ liệu. Thời gian chủ yếu tiêu tốn vào giai đoạn đặt dữ liệu lên đường truyền.
  1. Cần truyền một khối dữ liệu giữa hai máy tính ở hai quốc gia khác nhau, kích thước khối dữ liệu M = 1250 byte, sử dụng đường truyền ADSL. Với băng thông R = 10 Mbps, độ trễ đường truyền D = 50 ms. Tính thời gian cần thiết để truyền hết khối dữ liệu.
L = 50 ms + (1250 x 8) / (10 x 10^6) = 51 (ms)
Để ý thấy, độ trễ đường truyền chiếm phần lớn tổng thời gian cần thiết để truyền hết khối dữ liệu.
Từ hai ví dụ trên ta thấy, khoảng cách xa và tốc độ truyền thấp đều làm tăng thời gian cần thiết để truyền dữ liệu.

Đường truyền đang chứa bao nhiêu thông tin

Như đã đề cập ở phần trên, bất kì môi trường truyền nào cũng có độ trễ đường truyền (P-delay), nghĩa là, từ khi các bit được đặt lên đường truyền thì cũng cần một khoảng thời gian để các bit này đi đến đích. Như vậy, trên toàn đường truyền cũng đang chứa các bit đang trên đường đến đích. Người ta gọi lượng thông tin này là Bandwidth-Delay Product. Trong mạng LAN lượng thông tin này rất nhỏ, với các mạng băng thông lớn, đường truyền dài thì lượng thông tin này khá lớn.
Bandwidth-Delay (kí hiệu BD) được tính bằng công thức:
BD = R x D
Trong đó:
  • BD: dữ liệu đang trên đường truyền (bit)
  • R: băng thông (Mbps)
  • D: độ trễ (ms)
Ví dụ: xét một mạng cáp quang với R = 40 Mbps, D = 50 ms.
BD = 40 x 10^6 x 50 x 10^-3 =  2 x 10^6 (bit) = 250 (KB)

Tham khảo:

[1] Andrew S. Tanenbaum, David J. Wetherall, Computer Networks 5th edition, 2011
[2] David J. Wetherall, Introduction to Computer Networks, www.coursera.org, 2013
------------------------
2013/8/27

CN_1_9_Phác thảo nội dung môn học



1.9 Phác thảo nội dung môn học

Phần này sẽ phác thảo nội dung kế tiếp của môn học.
Ở phần đầu, chúng ta đã được tìm hiểu các khái niệm quan trọng đó là các giao thức và sự phân tầng, đây chính là cơ sở để xây dựng hệ thống mạng. Nếu đã nắm được điều này, sẽ rất dễ để hiểu quá trình giao tiếp thông qua mạng không dây giữa hai host sau:

Chúng ta cũng đã tìm hiểu về mô hình tham chiếu Internet.

Điểm quan trọng của mô hình tham chiếu Internet là giao thức IP (phần tô màu hồng), giao thức IP giúp cho các công nghệ kết nối ở tầng bên dưới có thể làm việc được với  các ứng dụng ở tầng bên trên.
Phần tiếp theo của môn học sẽ tập trung chủ yếu vào mô hình tham chiếu Internet:
Tầng trong OSI
Tên
Chức năng
7
Application
Các chương trình có sử dụng dịch vụ mạng.
4
Transport
Cung cấp dịch vụ truyền điểm tới điểm.
3
Network
Gửi các packet giữa các mạng
2
Link
Gửi frame qua các liên kết
1
Physical
Sử dụng các loại tín hiệu để gửi bit
Bắt đầu tìm hiểu các tầng từ dưới lên.



Ngoài ra, khóa học cũng đề cập tới một số vấn đề có liên quan tới nhiều tầng như: QoS (Quality of Service), bảo mật (VPN, SSL).
Sách tham khảo của khóa học:
Andrew S. Tanenbaum, David J. Wetherall, Computer Networks 5th edition, 2011

Tham khảo:

[1] Andrew S. Tanenbaum, David J. Wetherall, Computer Networks 5th edition, 2011
[2] David J. Wetherall, Introduction to Computer Networks, www.coursera.org, 2013
---------------------
2013/8/25

CN_1_8_Lịch sử Internet



1.8 Lịch sử Internet

Hình sau minh họa sơ lược sự phát triển của Internet.

Tính tới năm 2013, Internet đã hình thành và phát triển được khoảng 4 thập kỉ. Quá trình phát triển của Internet có 3 giai đoạn chính: ARPANET, NSFNET, Modern Internet & Web. Số host tăng lên hàng ngàn lần qua mỗi giai đoạn.

Mạng ARPANET

Mạng ARPANET được xây dựng và tài trợ bởi Bộ quốc phòng Mỹ, là tiền thân của mạng Internet.
ARPANET ra đời đã thúc đẩy nhu cầu chia sẻ tài nguyên. Máy tính ở các vị trí khác nhau đã có thể kết nối và trao đổi dữ liệu qua lại. Năm 1969, số lượng các máy tính được kết nối là 4, đến cuối giai đoạn ARPANET số kết nối đã tăng lên đến hàng trăm host.
Ứng dụng mạng quan trọng nhất trong giai đoạn này là email. Tuy nhiên, đây không phải là mục tiêu hướng tới của hệ thống ARPANET, mục tiêu chính của nó là chia sẻ dữ liệu. Sở dĩ Email trở nên nổi bật bởi vì nó được phát triển rất sớm ngay sau khi ARPANET ra đời, và là phương tiện hữu ích trong việc trao đổi thông tin giữa mọi người.
Những nhân tố quan trọng góp phần vào sự ra đời của ARPANET:
  • Sự xuất hiện của công nghệ chuyển mạch gói (packet switching)
  • Điều khiển phi tập trung (decentralized control)
  • Kết nối mạng (Internetworking)
Sự xuất hiện của công nghệ chuyển mạch gói (packet switching)
Người đi đầu trong lĩnh vực này là Donald Davies làm việc tại Anh và Len Kleinrock làm việc tại Mỹ.
Ý tưởng của chuyển mạch gói là chia nhỏ dữ liệu cần chuyển đi thành các gói tin, sau đó gửi các gói tin qua mạng (mỗi gói có thể đi qua các con đường khác nhau), máy nhận sẽ nhận từng gói tin một và ghép nối lại thành thông tin ban đầu. Điều này rất khác so với công nghệ chuyển mạch mạch (circuit switching), đang được sử dụng trong mạng điện thoại lúc bấy giờ. Công nghệ chuyển mạch mạch đỏi hỏi phải duy trì liên tục một đường kết nối giữa hai thiết bị trong thời gian truyền dữ liệu, không thể chia sẻ đường truyền này cho các thiết bị khác, giải pháp này không khả thi và không có hiệu quả trong giai đoạn bùng nổ số lượng các máy tính cần kết nối vào hệ thống mạng.
Với hệ thống chuyển mạch gói, các máy tính có thể cùng nhau chia sẻ đường truyền (statistical multiplexing), tăng hiệu quả sử dụng, bởi thực tế nhu cầu sử dụng đường truyền để gửi dữ liệu của các máy tính là không liên tục.
Điều khiển phi tập trung
Được đưa ra bởi Paul Baran, ông thiết kế các mô hình mạng hoạt động có tính độc lập giữa các bộ phận. Ơ thời điểm đó, hệ thống mạng điện thoại được tổ chức theo kiến trúc phân cấp rất chặn chẽ, vì vậy, nếu một nút mạng ở tầng cao không hoạt động có thể làm tê liệt toàn bộ hệ thống. Nhờ vào mô hình điều khiển phi tập trung, hệ thống mạng có thể bị hư hỏng một phần nào đó, nhưng phần còn lại của hệ thống vẫn hoạt động bình thường.
Đây cũng là lý do tại sao nhiều người vẫn hay nói ARPANET và Internet được tạo ra để chống lại một cuộc chiến tranh hạt nhân. Tuy nhiên, thực tế, nó chỉ là một ý tưởng giúp cho hệ thống Internet phát triển rất nhanh kể từ khi ra đời.
Kết nối mạng (internetworking), hay tính mở của hệ thống mạng
Đi đầu trong lĩnh vực này là Vint Cerf và Bob Kahn.
Kết nối mạng là khả năng kết nối các mạng với nhau, tạo thành một hệ thống mạng lớn hơn và xuyên suốt. Vint Cerf và Bob Kahn đã thực hiện xây dựng và phát triển ý tưởng này từ những năm 1974, sau này nó trở thành giao thức TCP/IP.
Để kết nối các hệ thống mạng với nhau, ý tưởng đầu tiên được nghĩ tới là: các hệ thống mạng sẽ cùng thống nhất với nhau để sử dụng chung một công nghệ. Tuy nhiên, Cerf và Kahn đã nhận ra là điều này không thể thực hiện được, bởi có rất nhiều các công nghệ mạng đã tồn tại (mạng không dây – packet radio network, mạng vệ tinh – satellite network, ARPANET…v.v), làm sao mà thay đổi được công nghệ. Vì vậy, hai ông đã đệ trình một giải pháp là: sẽ kết nối các mạng này ở các tầng cao hơn, thay vì thực hiện kết nối trực tiếp tại tầng đấu nối vật lý. Với giải pháp này, các mạng sử dụng công nghệ khác nhau hoàn toàn có thể kết nối với nhau để trao đổi thông tin qua lại.
Hai ông được coi là cha đẻ của Internet.
Hình ảnh của mạng ARPANET vào năm 1979

Năm 1984, ARPANET được chia thành hai phần: phần thứ nhất là ARPANET, dành cho việc nghiên cứu và phát triển; phần thứ hai là MILNET, dùng cho các mục đích quân sự.[3]
Giao thức TCP/IP ngày càng thể hiện rõ các điểm mạnh của nó, quan trọng nhất là khả năng liên kết các mạng khác với nhau một cách dễ dàng. Khả năng kết nối mạng cộng với các chính sách tại Mỹ đã cho phép các mạng nghiên cứu và thương mại kết nối với ARPANET, thúc đẩy việc tạo ra một siêu mạng (SuperNetwork). Năm 1980, ARPANET được đánh giá là mạng trụ cột của Internet.[3]
Tuy nhiên, nhiều tổ chức nghiên cứu và thương mại không muốn dính líu đến Bộ quốc phòng Mỹ, họ muốn có một hệ thống mạng mới, một công nghệ mới “tự do” hơn. Đó là lý do ra đời của NSFNET.

Mạng NSFNET

NSF (National Science Foundation – Quỹ khoa học quốc gia Mỹ) là một cơ quan liên bang độc lập được Quốc hội Mỹ thành lập vào 1950. NSF cung cấp tài chính cho một số đề tài nghiên cứu cơ bản của các trường đại học và học viện của Mỹ. Các lĩnh vực gồm: toán học, khoa học máy tính, khoa học xã hội.
Năm 1985, khi số nút mạng đã lên tới hàng ngàn, NSF được giao trọng trách thành lập một hệ thống mạng liên kết các trung tâm máy tính lớn lại với nhau gọi là NSFNET, nó cho phép tất cả các học viện giáo dục, đại học kết nối vào.
Sau khi ra đời, bên cạnh việc kết nối các máy tính lớn thuộc lĩnh vực giáo dục, NSFNET còn cho phép rất nhiều các máy tính lớn của các tổ chức kết nối vào hệ thống. Điều này làm cho NSFNET nhanh chóng trở thành “xương sống” để trao đổi thông tin giữa các hệ thống mạng.
Theo thời gian nhiều doanh nghiệp đã chuyển từ mạng ARPANET sang NSFNET làm cho hệ thống mạng ARPANET mất dần ưu thế và ngưng hoạt động vào năm 1990.
Các giao thức TCP/IP, DNS, Berkeley socket (API) được hình thành vào khoảng 1983, giao thức BGP năm 1993.
Ở giai đoạn này, máy tính cá nhân (personal computer) và LAN Ethernet đã xuất hiện và được kết nối vào NSFNET. Ban đầu, các máy tính cá nhân chủ yếu được sử dụng để nghiên cứu tại các viện, các đại học. Tuy nhiên, sau đó nó được sử dụng rộng rãi trong các doanh nghiệp, tổ chức và hộ gia đình.
Năm 1993 số host kết nối vào hệ thống NSFNET đã lên đến hàng triệu.
Hình sau minh họa kiến trúc của NSFNET.

Ở hình trên, NSFNET đóng vai trò là đường trục chính của hệ thống mạng. Nghĩa là nếu hai Customer ở  hai nơi khác nhau muốn giao tiếp với nhau thì gói tin phải được gửi lên Regional Network và sau đó qua NSFNET trước khi đi qua Regional Network khác và tới Customer nhận (đường màu hồng).
Dịch vụ được sử dụng nhiều nhất ở giai đoạn này là Email và FTP.

Modern Internet

Khoảng năm 1995, có hai thay đổi lớn ảnh hưởng đến kiến trúc của hệ thống Internet.
Một là, việc cung cấp kết nối vào hệ thống Internet không còn là độc quyền của NSFNET Backbone, các ISP (Internet Service Provider – nhà cung cấp dịch vụ Internet) lớn cũng có quyền cung cấp kết nối vào hệ thống Internet. Các ISP hoạt động dưới hình thức các đơn vị kinh doanh, có sự cạch tranh giữa các ISP.
Để gói tin có thể đi đến mọi nơi trong hệ thống mạng, các ISP được đấu nối với nhau thông qua IXP (Internet eXchange Point) – trạm trung chuyển Internet.
Thời gian này, các nhà cung cấp nội dung Internet (Internet Provider) cũng được kết nối vào hệ thống ISP, IXP.
Thay đổi lớn thứ 2 là sự xuất hiện của web, vào khoảng năm 1993. Người đi đầu trong lĩnh vực web là Tim Berners-Lee. Ngay sau khi xuất hiện, web đã phát triển rất nhanh, làm tăng nhanh lưu lượng mạng, cuốn hút mọi người kết nối vào hệ thống.
Năm 1998, sự phát triển của web đã dẫn tới sự ra đời của: CDN (Content Distribution Network)-mạng lưới phân phối nội dung và ICANN (Internet Corporation for Assigned Names and Numbers)-tổ chức quản lý tên miền Internet quốc tế.
Hiện nay, lưu lượng dữ liệu trên Internet phần lớn là video. Hệ thống kết nối đang chuyển dần sang kết nối không dây. Yếu tố quyết định đến chiều hướng phát triển của Internet chính là nội dung (content).
Kiến trúc của Internet hiện đại được thể hiện ở hình dưới đây.

Ở hình trên, hệ thống Internet gồm:
o       Trạm trung chuyển Internet: IXP
o       ISP quy mô lớn: Transit ISP – thực hiện kết nối các Transit ISP, IXP và Content Provider.
o       Nhà cung cấp nội dung: Content Provider.
o       ISP khu vực: Regional ISP
o       Người sử dụng Internet: Customer.
Truyền dữ liệu từ nhà cung cấp nội dung tới người sử dụng
Giả sử có một dữ liệu cần truyền tới người sử dụng (chấm đen), dữ liệu sẽ được gửi qua IXP, tới một Transit ISP, rồi gửi tới người sử dụng Internet cụ thể nào đó (đường màu hồng).
Truyền dữ liệu giữa hai người sử dụng
Dữ liệu từ người gửi (chấm đen) sẽ được gửi lên mạng chuyển tiếp Regional ISP, qua Transit ISP, qua IXP, tới một Transit ISP khác, cuối cùng được gửi tới người nhận (đường màu xanh).
Có thể nhận thấy, tất cả các thành phần của hệ thống Internet (có thể có kiến trúc khác nhau) được kết nối xuyên suốt mà không cần tới một hạ tầng chung ở mức lõi của Internet.

Câu hỏi tìm hiểu thêm

  1. Công nghệ CDN (Content Distribution Network)?
  2. IXP?
  3. Transit ISP? Regional ISP?

Tham khảo:

[1] Andrew S. Tanenbaum, David J. Wetherall, Computer Networks 5th edition, 2011
[2] David J. Wetherall, Introduction to Computer Networks, www.coursera.org, 2013
[3] http://vi.wikipedia.org/wiki/Internet
---------------------------
2013/8/23

CN_1_7_Các mô hình tham chiếu



1.7 Các mô hình tham chiếu (reference models)

Như đã biết, hệ thống mạng được xây dựng dựa trên kiến trúc gồm nhiều tầng. Trong đó, mỗi tầng có thể gồm nhiều giao thức.
Muốn truyền dữ liệu từ ứng dụng trên máy này tới ứng dụng trên máy khác, dữ liệu cần phải đi qua các tầng từ cao đến thấp, thông qua quá trình đóng gói.
Mô hình tham chiếu là cơ sở để xây dựng các giao thức.
Trong hệ thống mạng, mỗi tầng sẽ có một chức năng cụ thể, và các giao thức sẽ được xây dựng để thực hiện các chức năng này.
Mô hình tham chiếu sẽ đưa ra chức năng cụ thể của mỗi tầng.
Có hai mô hình tham chiếu phổ biến là: mô hình OSI và mô hình Internet (Internet Reference Model).
Mô hình tham chiếu OSI
Đây là một chuẩn quốc tế, có tính quy tắc, giúp kết nối các hệ thống mạng. Nghĩa là, mọi người, mọi nhà sản xuất, nếu tuân theo những mô tả của mô hình này thì sản phẩm họ tạo ra sẽ có khả năng làm việc và kết nối được với nhau.
OSI là viết tắt của Open Systems Interconnection, tạm dịch “kết nối các hệ thống mở”.
Mô hình này không được sử dụng trong triển khai thực tế.
Mô hình OSI gồm 7 tầng.
Tên tiếng Anh
Tên tiếng Việt
Chức năng
Application
Ứng dụng
Cung cấp môi trường giao giữa người dùng, ứng dụng và hệ thống mạng.
Presentation
Trình bày
Định dạng dữ liệu truyền.
Session
Phiên
Quản lý phiên làm việc.
Transport
Vận chuyển
Cung cấp dịch vụ truyền điểm tới điểm.
Network
Mạng
Gửi các packet giữa các mạng
Data link
Liên kết dữ liệu
Gửi các frame
Physical
Vật lý
Gửi các bit qua môi trường truyền.
Mô hình tham chiếu Internet
Mô hình này được sử dụng nhiều trong triển khai, đặc biệt trong môi trường Internet.
Mô hình gồm 4 tầng, được xây dựng dựa trên những kinh nghiệm và hoạt động thực tế của hệ thống mạng. Vì vậy, nhìn ở một vài góc độ, mô hình này đối lập với mô hình OSI.
Mô hình tham chiếu Internet là kết quả của quá trình tập hợp, tổ chức lại một cách có hệ thống các tài liệu ghi chép trong quá trình xây dựng hệ thống mạng Internet.
So với mô hình OSI, mô hình Internet có ít tầng hơn, tầng Internet thay thế cho tầng Network
Các tầng của mô hình Internet và so sánh với mô hình OSI:
Mô hình Internet
Chức năng
Mô hình OSI
Application
Các chương trình có sử dụng dịch vụ mạng.
Application, Session, Presentation
Transport
Cung cấp dịch vụ truyền điểm tới điểm.
Transport
Internet
Gửi các packet giữa các mạng
Network
Link
Gửi frame.
Physical, Data link
Tầng session và presentation trong mô hình OSI thường được cung cấp bởi các thư viện, nên chúng không được thể hiện rõ trong các giao thức, trong cấu trúc phân tầng của giao thức.
Mô hình tham chiếu chính là một cấu trúc gồm nhiều tầng, trong đó mỗi tầng sẽ mô tả chức năng của tầng và các giao thức thuộc về tầng đó.
Hình sau minh họa một số giao thức phổ biến của mỗi tầng theo mô hình tham chiếu Internet:

Quan sát hình trên, để ý thấy giao thức IP là một điểm nối quan trọng (narrow waist) của Internet, nó kết nối các giao thức tầng trên với các công nghệ truyền dữ liệu ở tầng dưới. Nghĩa là, nếu các ứng dụng, công nghệ, và thiết bị đều có khả năng làm việc với giao thức IP thì chúng sẽ có khả năng gắn kết chung vào một hệ thống và làm việc được với nhau, đặc biệt là kết nối vào hệ thống Internet.
Nguồn gốc của các giao thức
Với mong muốn tạo ra một môi trường cộng tác trong cộng đồng, một số tổ chức đã tạo ra các giao thức làm chuẩn chung để cộng đồng dựa vào đó sản xuất các thiết bị, phát triển các ứng dụng …v.v. Mục đích của các giao thức là giải quyết vấn đề tương thích.
Tên tổ chức
Lĩnh vực hoạt động
Ví dụ
ITU (International Telecommunication Union): Liên minh viễn thông quốc tế
Viễn thông
ADSL (tên khác G.992)
MPEG4(tên khác H.264)
IEEE (Institute of Electrical and Electronics Engineers): Viện kĩ nghệ điện và điện tử
Thông tin
Ethernet (tên khác 802.3)
WiFi (tên khác 802.11)
IETF (Internet Engineering Task Force): Lực lượng quản lý kĩ thuật
Internet
HTTP/1.1 (tên khác RFC 2616)
DNS (tên khác RFC 1034/1035)
W3C (World Wide Web Consortium): Hiệp hội WWW
Web
Chuẩn HTML5
Chuẩn CSS
Đơn vị dữ liệu tại mỗi tầng
Bảng sau liệt kê đơn vị dữ liệu tại mỗi tầng, hay có tên gọi khác là đơn vị dữ liệu giao thức (Protocol Data Unit – PDU):
Tầng
Đơn vị dữ liệu
Application
Message
Transport
Segment
Network
Packet
Link
Frame
Physical
Bit
Chú ý: packet cũng có thể được sử dụng để chỉ một khối dữ liệu bất kì truyền qua mạng.
Thiết bị mạng tại mỗi tầng

Ở hình trên:
  • Repeater hoặc hub làm việc tại tầng Physical, nó không can thiệp vào nội dung của thông tin của các tầng bên trên.
  • Switch hoặc bridge hoạt động tại tầng Link, nó thực hiện việc kết nối và trao đổi thông tin với thiết bị khác theo các giao thức tại tầng Link, thường là các thiết bị đang sử dụng cùng công nghệ.
  • Router hoạt động ở cả hai tầng Network và Link, do vậy nó có khả năng tạo kết nối và trao đổi thông tin với thiết bị khác theo các giao thức khác nhau tại tầng Link (sử dụng khác công nghệ), ví dụ, nó có khả năng kết nối và trao đổi thông tin giữa một thiết bị đang sử dụng giao thức Ethernet với một thiết bị đang sử dụng giao thức 802.11. Nó thực hiện điều này bằng cách sử dụng tầng cao hơn (Network).
  • Proxy hoặc midlebox hoặc gateway hoạt động ở cả 4 tầng (Application, Transport, Network, Link) thực hiện chuyển tiếp thông điệp giữa các thiết bị. Nó không phải là một host.
Chú ý: việc phân tầng trong các mô hình tham chiếu chỉ là những chỉ dẫn (guideline) chứ không hoàn toàn chính xác. Thực tế, trong một tầng có thể có nhiều giao thức cùng làm việc, hoặc có giao thức không thể gán vào một tầng cụ thể.

Câu hỏi tìm hiểu thêm

  1. Tên gọi mô hình tham chiếu TCP/IP <> mô hình tham chiếu Internet?

Tham khảo:

[1] Andrew S. Tanenbaum, David J. Wetherall, Computer Networks 5th edition, 2011
[2] David J. Wetherall, Introduction to Computer Networks, www.coursera.org, 2013
--------------------
2013/8/13

CN_1_6_Các giao thức và sự phân tầng



1.6 Các giao thức và sự phân tầng (protocols and layering)

Sử dụng các giao thức và thực hiện phân tầng là những yếu tố quan trọng trong việc tạo nên cấu trúc của hệ thống mạng.
Tính phức tạp của hệ thống mạng đòi hỏi cần phải có một số cách thức chia nhỏ để quản lý và vận hành, nói cách khác là cần thực hiện mô đun hóa. Dưới đây liệt kê một số trong rất nhiều các chức năng của hệ thống mạng:
  • Tạo và ngắt các kết nối.
  • Tìm kiếm đường đi.
  • Truyền tin cậy.
  • Truyền thông tin có kích thước tùy ý.
  • Tối ưu tốc độ truyền.
  • Chia sẻ băng thông.
  • Bảo mật thông tin truyền.
  • Cho phép gắn thêm thiết bị dễ dàng.
Thực hiện mô đun hóa sẽ giúp giảm đi tính phức tạp của hệ thống, đồng thời tăng khả năng sử dụng lại các thành phần của hệ thống mạng. Vậy hệ thống mạng đã được mô đun hóa như thế nào?
Hai giải pháp đã được áp dụng là sử dụng các giao thức và thực hiện phân tầng trong hệ thống mạng. Cụ thể là:
  • Trong giao tiếp giữa hai thiết bị, các tầng có cùng giao thức mới “nói chuyện” được với nhau (tất nhiên là “nói chuyện” gián tiếp), trừ tầng dưới cùng.
  • Trong cùng một thiết bị, các giao thức sẽ chỉ sử dụng các dịch vụ được cung cấp bởi tầng thấp hơn.
Quan sát hình vẽ sau:

Hình vẽ trên gồm hai nút mạng (Node1 và Node2), thể hiện của giao thức X trên Node1 muốn “nói chuyện” với thể hiện của giao thức X trên Node2, để thực hiện, nó cần phải tuân thủ các quy định của giao thức X trong quá trình giao tiếp. Nét đứt cho biết nó không thể giao tiếp trực tiếp được, mà cần phải sử dụng dịch vụ của tầng thấp hơn (thể hiện của giao thức Y). Đến lượt thể hiện của giao thức Y cũng phải tuân theo các quy định của giao thức Y khi thực hiện giao tiếp.
Qua hình vẽ, việc phân tầng được thực hiện theo chiều dọc (giao thức ở tầng cao chỉ trao đổi trực tiếp với giao thức tầng thấp trong cùng một nút). Các giao thức được thiết kế để làm việc theo chiều ngang (các giao thức sẽ làm việc với cùng giao thức trên máy phía bên kia).
Thực tế trên mỗi Host (Node) sẽ bao gồm rất nhiều giao thức, tập hợp của các giao thức này được gọi là chồng giao thức (protocol stack). Ví dụ trong hình dưới đây:

Chồng giao thức ở hình trên gồm 5 tầng (layer 5, 4, 3, 2, và 1), cuối cùng là đường truyền vật lý, nơi thực sự truyền tín hiệu từ Host 1 tới Host 2 và ngươc lại. Đường truyền có thể là cáp đồng, cáp quang, không khí…v.v.
Tại mỗi tầng có thể có rất nhiều giao thức được sử dụng. Ví dụ một số giao thức: TCP, IP, 802.11, Ethernet, HTTP, SSL…v.v.
Ví dụ về chồng giao thức
Xét một máy tính đang duyệt web qua kết nối WiFi (hình bên dưới):

Ở hình trên, web đang sử dụng giao thức HTTP, giao thức HTTP hoạt động dựa trên giao thức TCP, IP, 802.11.
Sự đóng gói (encapsulation)
Đóng gói là quy trình giúp hệ thống mạng vận hành theo cơ chế phân tầng và dựa trên các giao thức.
Đóng gói là quá trình tầng thấp hơn sẽ nhận toàn bộ gói tin của tầng trên, coi gói tin của tầng trên là phần nội dung, sau đó gắn thêm các thông tin của tầng thấp hơn vào, tạo thành một gói tin mới. Việc này cũng giống như khi bạn gửi thư qua đường bưu điện, nội dung của lá thư chính là nội dung của tầng cao hơn,  bì thư chính là giao thức của tầng thấp, việc cho thư vào bì thư và ghi địa chỉ người gửi và người nhận chính là quá trình đóng gói. Khi nhân viên bưu điện chuyển lá thư này tới đích, họ không được phép (và không cần) mở nội dung ở bên trong ra, mà chỉ cần dựa vào thông tin có trên phong bì (thông tin của tầng thấp hơn) để gửi lá thư đến đích. Khi tới người nhận, người nhận sẽ mở bì thư ra và đọc nội dung bên trong của lá thư (nội dung của tầng cao hơn).
Hình sau minh họa quá trình đóng gói:

Ở hình trên, giao thức HTTP sẽ thực hiện đóng gói thông điệp cần gửi đi. Tiếp theo, HTTP sẽ chuyển thông điệp xuống tầng TCP. Tại tầng TCP, gói tin từ tầng trên sẽ được giữ nguyên và được gắn thêm thông tin điều khiển của tầng TCP vào phần đầu của gói tin. Tiếp theo gói tin tại tầng TCP sẽ được chuyển xuống tầng IP. Tại tầng IP, gói tin từ tầng TCP sẽ được giữ nguyên, giao thức IP sẽ gắn thêm header vào đầu gói tin, sau đó gói tin được chuyển xuống tầng 802.11. Tại tầng 802.11, header của tầng này lại được gắn tiếp vào gói tin do tầng IP chuyển xuống.
Hình ảnh gói tin tại tầng 802.11 giống với một củ hành, gồm nhiều lớp vỏ bao bọc nhau. Trong đó tầng thấp nhất sẽ là lớp vỏ phía ngoài cùng.
Sau khi hoàn thành quá trình đóng gói, gói tin sẽ được gửi đi qua dây dẫn.
Tại máy nhận, gói tin sẽ trải qua quá trình ngược lại, đó là quá trình mở gói (de-encapsulation).
Quá trình mở gói là quá trình lược bỏ các phần thông tin đã được gắn thêm vào trong quá trình đóng gói. Tại mỗi tầng, giao thức tương ứng tại mỗi tầng sẽ thực hiện kiểm tra, và gỡ bỏ các thông tin header thuộc tầng đó, sau đó chuyển gói tin lên tầng cao hơn.
Hình sau minh họa cả hai quá trình: đóng gói tại máy gửi và mở gói tại máy nhận.

Trong thực tế, gói tin thường được minh họa như sau:

Quá trình đóng gói không chỉ gắn thêm thông tin vào đầu các gói được chuyển từ tầng trên xuống, mà trong thực tế, tại một số tầng, gói tin sẽ được gắn thêm thông tin vào cả phần đuôi (trailer). Ngoài ra, phần nội dung có thể được mã hóa, nén, chia nhỏ hoặc ghép nối.

Quá trình chuyển gói lên tầng trên khi mở gói

Quan sát hình vẽ sau:

Khi nhận được gói tin (ở dạng các bit) từ cáp mạng, máy tính sẽ chuyển gói tin này cho giao thức nào ở bên trên để tiếp tục mở gói và xử lý tiếp? Ở hình trên, quá trình gửi gói lên tầng trên sẽ được đi theo đường nét đứt. Làm sao để máy tính xác định được đường này?
Thực tế, thông tin điều khiển trong header tại mỗi tầng đã bao gồm thông tin giúp xác định gói tin sẽ được chuyển tiếp cho giao thức nào ở tầng bên trên.
Ở hình vẽ trên, máy tính nhận gói tin từ mạng Ethernet, nên gói tin là gói Ethernet. Trong header của Ethernet trường Ethertype cho biết gói tin sẽ được chuyển cho giao thức IP. Trong header của tầng IP trường IP protocol cho biết gói tin sẽ được chuyển cho giao thức TCP. Trong header của tầng TCP, trường TCP port number cho biết gói tin sẽ được chuyển cho giao thức HTTP.

Ưu điểm và nhược điểm của việc phân tầng

Ưu điểm
Việc phân tầng giúp che dấu thông tin và tái sử dụng.
Ví dụ, khi duyệt web, người sử dụng chỉ cần mở trình duyệt web (Mozilla Firefox, IE, Chrome…v.v), nhập đường dẫn trang web, và chờ nhận kết quả trả về từ server. Thực tế, người sử dụng không cần phải quan tâm tới việc hệ thống mạng đã làm cách nào để có được nội dung trang web? Hệ thống mạng đang sử dụng là có dây hay không dây? Phải sử dụng trình duyệt nào?
Hình vẽ sau minh họa việc che dấu thông tin và tái sử dụng.

Hình vẽ trên cho thấy, ta có thể sử dụng trình duyệt bất kì để duyệt web mà không phải quan tâm xem các tầng bên dưới đang chạy giao thức gì.  Nghĩa là, tầng dưới cùng có thể sử dụng giao thức 802.11 hoặc Ethernet để truyền dữ liệu giữa Browser và Server mà không làm ảnh hưởng đến hoạt động của các tầng bên trên.
Che dấu thông tin còn giúp cho việc kết nối dễ dàng các loại hệ thống khác nhau về công nghệ.

Ở hình trên, bên Browser đang sử dụng mạng không dây (802.11), bên Server đang sử dụng mạng có dây (Ethernet). Browser muốn lấy nội dung của website (phần tô màu tím). Để chuyển nội dung website từ Server về Browser, hệ thống mạng sẽ xây dựng thành phần giao tiếp trung gian, dữ liệu sẽ được truyền theo đường nét đứt màu hồng. Giao thức IP được xem như điểm đấu nối của nhiều loại công nghệ, nhiều loại giao thức (ở tầng thấp hơn cũng như ở tầng cao hơn).
Nhược điểm
Quá trình đóng gói làm tăng kích thước gói tin do phải thêm header tại mỗi tầng. Tuy nhiên, với kích thước của phần nội dung lớn thì kích thước của header thêm vào là không đáng kể.
Do che dấu thông tin, nên trong một số trường hợp ứng dụng các tầng phía trên muốn biết thông tin của các tầng phía dưới sẽ rất khó khăn. Ví dụ, ứng dụng web sẽ rất khó để biết được nó đang chay trên mạng có dây hay không dây? băng thông của hạ tầng mạng không dây hiện thời là bao nhiêu (do bạn có thể thay đổi vị trí thường xuyên)?

Câu hỏi tìm hiểu thêm

  1. Việc lựa chọn giao thức cho quá trình đóng gói và mở gói?

Tham khảo:

[1] Andrew S. Tanenbaum, David J. Wetherall, Computer Networks 5th edition, 2011
[2] David J. Wetherall, Introduction to Computer Networks, www.coursera.org, 2013
-----------------
2013/8/7